@adiba-banking-cloud/backoffice 0.0.69 → 0.0.71
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/build/index.cjs.js/index.js +1281 -69
- package/build/index.esm.js/index.js +1283 -73
- package/build/typings/components/forms/simple/Simple.stories.d.ts +2 -0
- package/build/typings/components/forms/simple/Simple.types.d.ts +5 -1
- package/build/typings/components/index.d.ts +1 -0
- package/build/typings/components/panels/tile/Tile.d.ts +4 -0
- package/build/typings/components/panels/tile/Tile.stories.d.ts +7 -0
- package/build/typings/components/panels/tile/Tile.types.d.ts +7 -0
- package/build/typings/components/theme.d.ts +2 -2
- package/package.json +2 -1
|
@@ -11342,8 +11342,8 @@ const createAreaFillGradient = function (baseColor) {
|
|
|
11342
11342
|
};
|
|
11343
11343
|
};
|
|
11344
11344
|
|
|
11345
|
-
function ownKeys$
|
|
11346
|
-
function _objectSpread$
|
|
11345
|
+
function ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11346
|
+
function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11347
11347
|
|
|
11348
11348
|
// Initialize Highcharts with rounded corners
|
|
11349
11349
|
if (typeof window !== "undefined") {
|
|
@@ -11352,8 +11352,8 @@ if (typeof window !== "undefined") {
|
|
|
11352
11352
|
const Column = props => {
|
|
11353
11353
|
const chartRef = React.useRef(null);
|
|
11354
11354
|
const chartOptions = React.useMemo(() => {
|
|
11355
|
-
const column = _objectSpread$
|
|
11356
|
-
return _objectSpread$
|
|
11355
|
+
const column = _objectSpread$5({}, props);
|
|
11356
|
+
return _objectSpread$5(_objectSpread$5({}, initChart$2(column)), initSeries$2(column));
|
|
11357
11357
|
}, [props]);
|
|
11358
11358
|
React.useEffect(() => {
|
|
11359
11359
|
if (chartRef.current && chartRef.current.chart) {
|
|
@@ -11456,7 +11456,7 @@ const initSeries$2 = props => {
|
|
|
11456
11456
|
enableMouseTracking: false,
|
|
11457
11457
|
showInLegend: false
|
|
11458
11458
|
});
|
|
11459
|
-
const mainSeries = _objectSpread$
|
|
11459
|
+
const mainSeries = _objectSpread$5(_objectSpread$5({}, fillSeries(boundary)), {
|
|
11460
11460
|
name: props.yAxisLabel[0],
|
|
11461
11461
|
color: seriesColors ? seriesColors[0] : "gray",
|
|
11462
11462
|
data: seriesData[0],
|
|
@@ -11496,7 +11496,7 @@ const initSeries$2 = props => {
|
|
|
11496
11496
|
pointWidth: undefined
|
|
11497
11497
|
}
|
|
11498
11498
|
};
|
|
11499
|
-
const plot = _objectSpread$
|
|
11499
|
+
const plot = _objectSpread$5(_objectSpread$5({}, {
|
|
11500
11500
|
column: {
|
|
11501
11501
|
borderWidth: 0,
|
|
11502
11502
|
borderRadius: 10
|
|
@@ -11551,13 +11551,13 @@ const initChart$1 = props => {
|
|
|
11551
11551
|
};
|
|
11552
11552
|
};
|
|
11553
11553
|
|
|
11554
|
-
function ownKeys$
|
|
11555
|
-
function _objectSpread$
|
|
11554
|
+
function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11555
|
+
function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11556
11556
|
const Area = props => {
|
|
11557
11557
|
const chartRef = React.useRef(null);
|
|
11558
11558
|
const chartOptions = React.useMemo(() => {
|
|
11559
|
-
const area = _objectSpread$
|
|
11560
|
-
return _objectSpread$
|
|
11559
|
+
const area = _objectSpread$4({}, props);
|
|
11560
|
+
return _objectSpread$4(_objectSpread$4({}, initChart$1(area)), initSeries$1(area));
|
|
11561
11561
|
}, [props]);
|
|
11562
11562
|
React.useEffect(() => {
|
|
11563
11563
|
if (chartRef.current && chartRef.current.chart) {
|
|
@@ -11618,7 +11618,7 @@ const initSeries$1 = props => {
|
|
|
11618
11618
|
const labels = {
|
|
11619
11619
|
color: "#575E77"
|
|
11620
11620
|
};
|
|
11621
|
-
return _objectSpread$
|
|
11621
|
+
return _objectSpread$4(_objectSpread$4({}, defaults), {
|
|
11622
11622
|
labels
|
|
11623
11623
|
});
|
|
11624
11624
|
};
|
|
@@ -11656,8 +11656,8 @@ const initSeries$1 = props => {
|
|
|
11656
11656
|
};
|
|
11657
11657
|
|
|
11658
11658
|
const _excluded$c = ["withLegend", "centerLabel", "centerValue"];
|
|
11659
|
-
function ownKeys$
|
|
11660
|
-
function _objectSpread$
|
|
11659
|
+
function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11660
|
+
function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11661
11661
|
const initChart = _ref => {
|
|
11662
11662
|
let {
|
|
11663
11663
|
withLegend,
|
|
@@ -11707,7 +11707,7 @@ const initChart = _ref => {
|
|
|
11707
11707
|
},
|
|
11708
11708
|
legend: !withLegend ? {
|
|
11709
11709
|
enabled: false
|
|
11710
|
-
} : _objectSpread$
|
|
11710
|
+
} : _objectSpread$3(_objectSpread$3({}, {
|
|
11711
11711
|
enabled: true,
|
|
11712
11712
|
layout: "vertical",
|
|
11713
11713
|
verticalAlign: "middle",
|
|
@@ -11740,13 +11740,13 @@ const initChart = _ref => {
|
|
|
11740
11740
|
};
|
|
11741
11741
|
};
|
|
11742
11742
|
|
|
11743
|
-
function ownKeys$
|
|
11744
|
-
function _objectSpread$
|
|
11743
|
+
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11744
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11745
11745
|
const DonutChart = props => {
|
|
11746
11746
|
const chartRef = React.useRef(null);
|
|
11747
11747
|
const chartOptions = React.useMemo(() => {
|
|
11748
|
-
const area = _objectSpread$
|
|
11749
|
-
return _objectSpread$
|
|
11748
|
+
const area = _objectSpread$2({}, props);
|
|
11749
|
+
return _objectSpread$2(_objectSpread$2({}, initChart(area)), initSeries(area));
|
|
11750
11750
|
}, [props]);
|
|
11751
11751
|
React.useEffect(() => {
|
|
11752
11752
|
if (chartRef.current && chartRef.current.chart) {
|
|
@@ -12376,50 +12376,31 @@ const SimpleText = _ref => {
|
|
|
12376
12376
|
}, rest), label);
|
|
12377
12377
|
};
|
|
12378
12378
|
|
|
12379
|
-
const
|
|
12380
|
-
focusRing: "never",
|
|
12381
|
-
colors: {
|
|
12382
|
-
adiba: ["#E7E8EB", "#CFD1D8", "#B7BAC4", "#9FA3B1", "#575E77", "#273050", "#0f193d", "#0D1636", "#0C1430", "#0A112A"],
|
|
12383
|
-
altiba: ["#F4E2CE", "#EED4B5", "#E9C59D", "#D89A54", "#D38C3B", "#CD7E23", "#c8700b", "#B46409", "#A05908", "#8C4E07"]
|
|
12384
|
-
},
|
|
12385
|
-
fontFamily: "Poppins",
|
|
12386
|
-
headings: {
|
|
12387
|
-
fontFamily: "Poppins",
|
|
12388
|
-
fontWeight: "500"
|
|
12389
|
-
},
|
|
12390
|
-
primaryColor: "adiba",
|
|
12391
|
-
other: {
|
|
12392
|
-
fontWeights: {
|
|
12393
|
-
normal: 300
|
|
12394
|
-
}
|
|
12395
|
-
}
|
|
12396
|
-
});
|
|
12397
|
-
|
|
12398
|
-
const _excluded$6 = ["title", "subtitle", "rightsection", "withCreate", "withSwitcher", "create", "switcher"];
|
|
12379
|
+
const _excluded$6 = ["createFn", "icon", "label"];
|
|
12399
12380
|
const PageTitle = _ref => {
|
|
12400
12381
|
var _switcher$items;
|
|
12401
12382
|
let {
|
|
12402
|
-
|
|
12403
|
-
|
|
12404
|
-
|
|
12405
|
-
|
|
12406
|
-
|
|
12407
|
-
|
|
12408
|
-
|
|
12409
|
-
|
|
12410
|
-
rest = _objectWithoutProperties(_ref, _excluded$6);
|
|
12383
|
+
title,
|
|
12384
|
+
subtitle = "",
|
|
12385
|
+
rightsection,
|
|
12386
|
+
withCreate,
|
|
12387
|
+
withSwitcher,
|
|
12388
|
+
create,
|
|
12389
|
+
switcher
|
|
12390
|
+
} = _ref;
|
|
12411
12391
|
if (withCreate && create) {
|
|
12412
12392
|
const {
|
|
12413
|
-
|
|
12414
|
-
|
|
12415
|
-
|
|
12416
|
-
|
|
12417
|
-
|
|
12393
|
+
createFn,
|
|
12394
|
+
icon,
|
|
12395
|
+
label
|
|
12396
|
+
} = create,
|
|
12397
|
+
rest = _objectWithoutProperties(create, _excluded$6);
|
|
12398
|
+
rightsection = /*#__PURE__*/React.createElement(core.Button, _extends({
|
|
12418
12399
|
radius: "md",
|
|
12419
12400
|
size: "sm",
|
|
12420
12401
|
leftSection: /*#__PURE__*/React.createElement(Icons, icon),
|
|
12421
12402
|
onClick: createFn
|
|
12422
|
-
}, /*#__PURE__*/React.createElement(core.Text, {
|
|
12403
|
+
}, rest), /*#__PURE__*/React.createElement(core.Text, {
|
|
12423
12404
|
fw: 300,
|
|
12424
12405
|
fz: 14
|
|
12425
12406
|
}, label));
|
|
@@ -12427,7 +12408,8 @@ const PageTitle = _ref => {
|
|
|
12427
12408
|
if (withSwitcher && switcher !== null && switcher !== void 0 && (_switcher$items = switcher.items) !== null && _switcher$items !== void 0 && _switcher$items.length) {
|
|
12428
12409
|
rightsection = /*#__PURE__*/React.createElement(core.SegmentedControl, {
|
|
12429
12410
|
size: "sm",
|
|
12430
|
-
|
|
12411
|
+
bg: "white",
|
|
12412
|
+
color: 'adiba',
|
|
12431
12413
|
data: switcher.items
|
|
12432
12414
|
});
|
|
12433
12415
|
}
|
|
@@ -12436,10 +12418,10 @@ const PageTitle = _ref => {
|
|
|
12436
12418
|
py: "lg"
|
|
12437
12419
|
}, /*#__PURE__*/React.createElement(core.Stack, {
|
|
12438
12420
|
gap: 4
|
|
12439
|
-
}, /*#__PURE__*/React.createElement(core.Title,
|
|
12421
|
+
}, /*#__PURE__*/React.createElement(core.Title, {
|
|
12440
12422
|
order: 2,
|
|
12441
12423
|
fw: 500
|
|
12442
|
-
},
|
|
12424
|
+
}, title), typeof subtitle == "string" ? /*#__PURE__*/React.createElement(core.Text, {
|
|
12443
12425
|
fz: 14,
|
|
12444
12426
|
fw: 300
|
|
12445
12427
|
}, subtitle) : /*#__PURE__*/React.createElement(core.Breadcrumbs, {
|
|
@@ -12456,7 +12438,7 @@ const PageTitle = _ref => {
|
|
|
12456
12438
|
fz: 14,
|
|
12457
12439
|
key: index,
|
|
12458
12440
|
fw: 300,
|
|
12459
|
-
c:
|
|
12441
|
+
c: "dimmed"
|
|
12460
12442
|
}, item.name);
|
|
12461
12443
|
}))), /*#__PURE__*/React.createElement(React.Fragment, null, rightsection)));
|
|
12462
12444
|
};
|
|
@@ -13063,6 +13045,25 @@ const File = _ref => {
|
|
|
13063
13045
|
}, /*#__PURE__*/React.createElement(Icons, rightsection === null || rightsection === void 0 ? void 0 : rightsection.icon)) : undefined)));
|
|
13064
13046
|
};
|
|
13065
13047
|
|
|
13048
|
+
const theme = core.createTheme({
|
|
13049
|
+
focusRing: "never",
|
|
13050
|
+
colors: {
|
|
13051
|
+
adiba: ["#E7E8EB", "#CFD1D8", "#B7BAC4", "#9FA3B1", "#575E77", "#273050", "#0f193d", "#0D1636", "#0C1430", "#0A112A"],
|
|
13052
|
+
altiba: ["#F4E2CE", "#EED4B5", "#E9C59D", "#D89A54", "#D38C3B", "#CD7E23", "#c8700b", "#B46409", "#A05908", "#8C4E07"]
|
|
13053
|
+
},
|
|
13054
|
+
fontFamily: "Poppins",
|
|
13055
|
+
headings: {
|
|
13056
|
+
fontFamily: "Poppins",
|
|
13057
|
+
fontWeight: "500"
|
|
13058
|
+
},
|
|
13059
|
+
primaryColor: "adiba",
|
|
13060
|
+
other: {
|
|
13061
|
+
fontWeights: {
|
|
13062
|
+
normal: 300
|
|
13063
|
+
}
|
|
13064
|
+
}
|
|
13065
|
+
});
|
|
13066
|
+
|
|
13066
13067
|
var ErrorAnimation = "data:null;base64,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";
|
|
13067
13068
|
|
|
13068
13069
|
const ErrorModal = _ref => {
|
|
@@ -13246,20 +13247,1086 @@ const Drawer = _ref => {
|
|
|
13246
13247
|
}, page))));
|
|
13247
13248
|
};
|
|
13248
13249
|
|
|
13249
|
-
|
|
13250
|
+
function validateFormName(name) {
|
|
13251
|
+
if (!/^[0-9a-zA-Z-]+$/.test(name)) {
|
|
13252
|
+
throw new Error(
|
|
13253
|
+
`[@mantine/use-form] Form name "${name}" is invalid, it should contain only letters, numbers and dashes`
|
|
13254
|
+
);
|
|
13255
|
+
}
|
|
13256
|
+
}
|
|
13257
|
+
const useIsomorphicEffect = typeof window !== "undefined" ? React.useLayoutEffect : React.useEffect;
|
|
13258
|
+
function useFormEvent(eventKey, handler) {
|
|
13259
|
+
useIsomorphicEffect(() => {
|
|
13260
|
+
if (eventKey) {
|
|
13261
|
+
window.addEventListener(eventKey, handler);
|
|
13262
|
+
return () => window.removeEventListener(eventKey, handler);
|
|
13263
|
+
}
|
|
13264
|
+
return void 0;
|
|
13265
|
+
}, [eventKey]);
|
|
13266
|
+
}
|
|
13267
|
+
function useFormActions(name, form) {
|
|
13268
|
+
if (name) {
|
|
13269
|
+
validateFormName(name);
|
|
13270
|
+
}
|
|
13271
|
+
useFormEvent(
|
|
13272
|
+
`mantine-form:${name}:set-field-value`,
|
|
13273
|
+
(event) => form.setFieldValue(event.detail.path, event.detail.value)
|
|
13274
|
+
);
|
|
13275
|
+
useFormEvent(
|
|
13276
|
+
`mantine-form:${name}:set-values`,
|
|
13277
|
+
(event) => form.setValues(event.detail)
|
|
13278
|
+
);
|
|
13279
|
+
useFormEvent(
|
|
13280
|
+
`mantine-form:${name}:set-initial-values`,
|
|
13281
|
+
(event) => form.setInitialValues(event.detail)
|
|
13282
|
+
);
|
|
13283
|
+
useFormEvent(
|
|
13284
|
+
`mantine-form:${name}:set-errors`,
|
|
13285
|
+
(event) => form.setErrors(event.detail)
|
|
13286
|
+
);
|
|
13287
|
+
useFormEvent(
|
|
13288
|
+
`mantine-form:${name}:set-field-error`,
|
|
13289
|
+
(event) => form.setFieldError(event.detail.path, event.detail.error)
|
|
13290
|
+
);
|
|
13291
|
+
useFormEvent(
|
|
13292
|
+
`mantine-form:${name}:clear-field-error`,
|
|
13293
|
+
(event) => form.clearFieldError(event.detail)
|
|
13294
|
+
);
|
|
13295
|
+
useFormEvent(`mantine-form:${name}:clear-errors`, form.clearErrors);
|
|
13296
|
+
useFormEvent(`mantine-form:${name}:reset`, form.reset);
|
|
13297
|
+
useFormEvent(`mantine-form:${name}:validate`, form.validate);
|
|
13298
|
+
useFormEvent(
|
|
13299
|
+
`mantine-form:${name}:validate-field`,
|
|
13300
|
+
(event) => form.validateField(event.detail)
|
|
13301
|
+
);
|
|
13302
|
+
useFormEvent(
|
|
13303
|
+
`mantine-form:${name}:reorder-list-item`,
|
|
13304
|
+
(event) => form.reorderListItem(event.detail.path, event.detail.payload)
|
|
13305
|
+
);
|
|
13306
|
+
useFormEvent(
|
|
13307
|
+
`mantine-form:${name}:remove-list-item`,
|
|
13308
|
+
(event) => form.removeListItem(event.detail.path, event.detail.index)
|
|
13309
|
+
);
|
|
13310
|
+
useFormEvent(
|
|
13311
|
+
`mantine-form:${name}:insert-list-item`,
|
|
13312
|
+
(event) => form.insertListItem(event.detail.path, event.detail.item, event.detail.index)
|
|
13313
|
+
);
|
|
13314
|
+
useFormEvent(
|
|
13315
|
+
`mantine-form:${name}:set-dirty`,
|
|
13316
|
+
(event) => form.setDirty(event.detail)
|
|
13317
|
+
);
|
|
13318
|
+
useFormEvent(
|
|
13319
|
+
`mantine-form:${name}:set-touched`,
|
|
13320
|
+
(event) => form.setTouched(event.detail)
|
|
13321
|
+
);
|
|
13322
|
+
useFormEvent(
|
|
13323
|
+
`mantine-form:${name}:reset-dirty`,
|
|
13324
|
+
(event) => form.resetDirty(event.detail)
|
|
13325
|
+
);
|
|
13326
|
+
useFormEvent(`mantine-form:${name}:reset-touched`, form.resetTouched);
|
|
13327
|
+
}
|
|
13328
|
+
|
|
13329
|
+
function getInputOnChange(setValue) {
|
|
13330
|
+
return (val) => {
|
|
13331
|
+
if (!val) {
|
|
13332
|
+
setValue(val);
|
|
13333
|
+
} else if (typeof val === "function") {
|
|
13334
|
+
setValue(val);
|
|
13335
|
+
} else if (typeof val === "object" && "nativeEvent" in val) {
|
|
13336
|
+
const { currentTarget } = val;
|
|
13337
|
+
if (currentTarget instanceof HTMLInputElement) {
|
|
13338
|
+
if (currentTarget.type === "checkbox") {
|
|
13339
|
+
setValue(currentTarget.checked);
|
|
13340
|
+
} else {
|
|
13341
|
+
setValue(currentTarget.value);
|
|
13342
|
+
}
|
|
13343
|
+
} else if (currentTarget instanceof HTMLTextAreaElement || currentTarget instanceof HTMLSelectElement) {
|
|
13344
|
+
setValue(currentTarget.value);
|
|
13345
|
+
}
|
|
13346
|
+
} else {
|
|
13347
|
+
setValue(val);
|
|
13348
|
+
}
|
|
13349
|
+
};
|
|
13350
|
+
}
|
|
13351
|
+
|
|
13352
|
+
function filterErrors(errors) {
|
|
13353
|
+
if (errors === null || typeof errors !== "object") {
|
|
13354
|
+
return {};
|
|
13355
|
+
}
|
|
13356
|
+
return Object.keys(errors).reduce((acc, key) => {
|
|
13357
|
+
const errorValue = errors[key];
|
|
13358
|
+
if (errorValue !== void 0 && errorValue !== null && errorValue !== false) {
|
|
13359
|
+
acc[key] = errorValue;
|
|
13360
|
+
}
|
|
13361
|
+
return acc;
|
|
13362
|
+
}, {});
|
|
13363
|
+
}
|
|
13364
|
+
|
|
13365
|
+
function useFormErrors(initialErrors) {
|
|
13366
|
+
const [errorsState, setErrorsState] = React.useState(filterErrors(initialErrors));
|
|
13367
|
+
const errorsRef = React.useRef(errorsState);
|
|
13368
|
+
const setErrors = React.useCallback((errors) => {
|
|
13369
|
+
setErrorsState((current) => {
|
|
13370
|
+
const newErrors = filterErrors(typeof errors === "function" ? errors(current) : errors);
|
|
13371
|
+
errorsRef.current = newErrors;
|
|
13372
|
+
return newErrors;
|
|
13373
|
+
});
|
|
13374
|
+
}, []);
|
|
13375
|
+
const clearErrors = React.useCallback(() => setErrors({}), []);
|
|
13376
|
+
const clearFieldError = React.useCallback(
|
|
13377
|
+
(path) => {
|
|
13378
|
+
if (errorsRef.current[path] === void 0) {
|
|
13379
|
+
return;
|
|
13380
|
+
}
|
|
13381
|
+
setErrors((current) => {
|
|
13382
|
+
const errors = { ...current };
|
|
13383
|
+
delete errors[path];
|
|
13384
|
+
return errors;
|
|
13385
|
+
});
|
|
13386
|
+
},
|
|
13387
|
+
[errorsState]
|
|
13388
|
+
);
|
|
13389
|
+
const setFieldError = React.useCallback(
|
|
13390
|
+
(path, error) => {
|
|
13391
|
+
if (error == null || error === false) {
|
|
13392
|
+
clearFieldError(path);
|
|
13393
|
+
} else if (errorsRef.current[path] !== error) {
|
|
13394
|
+
setErrors((current) => ({ ...current, [path]: error }));
|
|
13395
|
+
}
|
|
13396
|
+
},
|
|
13397
|
+
[errorsState]
|
|
13398
|
+
);
|
|
13399
|
+
return {
|
|
13400
|
+
errorsState,
|
|
13401
|
+
setErrors,
|
|
13402
|
+
clearErrors,
|
|
13403
|
+
setFieldError,
|
|
13404
|
+
clearFieldError
|
|
13405
|
+
};
|
|
13406
|
+
}
|
|
13407
|
+
|
|
13408
|
+
function clearListState(field, state) {
|
|
13409
|
+
if (state === null || typeof state !== "object") {
|
|
13410
|
+
return {};
|
|
13411
|
+
}
|
|
13412
|
+
const clone = { ...state };
|
|
13413
|
+
Object.keys(state).forEach((errorKey) => {
|
|
13414
|
+
if (errorKey.includes(`${String(field)}.`)) {
|
|
13415
|
+
delete clone[errorKey];
|
|
13416
|
+
}
|
|
13417
|
+
});
|
|
13418
|
+
return clone;
|
|
13419
|
+
}
|
|
13420
|
+
|
|
13421
|
+
function getIndexFromKeyAfterPath(key, path) {
|
|
13422
|
+
const split = key.substring(path.length + 1).split(".")[0];
|
|
13423
|
+
return parseInt(split, 10);
|
|
13424
|
+
}
|
|
13425
|
+
function changeErrorIndices(path, index, errors, change) {
|
|
13426
|
+
if (index === void 0) {
|
|
13427
|
+
return errors;
|
|
13428
|
+
}
|
|
13429
|
+
const pathString = `${String(path)}`;
|
|
13430
|
+
let clearedErrors = errors;
|
|
13431
|
+
if (change === -1) {
|
|
13432
|
+
clearedErrors = clearListState(`${pathString}.${index}`, clearedErrors);
|
|
13433
|
+
}
|
|
13434
|
+
const cloned = { ...clearedErrors };
|
|
13435
|
+
const changedKeys = /* @__PURE__ */ new Set();
|
|
13436
|
+
Object.entries(clearedErrors).filter(([key]) => {
|
|
13437
|
+
if (!key.startsWith(`${pathString}.`)) {
|
|
13438
|
+
return false;
|
|
13439
|
+
}
|
|
13440
|
+
const currIndex = getIndexFromKeyAfterPath(key, pathString);
|
|
13441
|
+
if (Number.isNaN(currIndex)) {
|
|
13442
|
+
return false;
|
|
13443
|
+
}
|
|
13444
|
+
return currIndex >= index;
|
|
13445
|
+
}).forEach(([key, value]) => {
|
|
13446
|
+
const currIndex = getIndexFromKeyAfterPath(key, pathString);
|
|
13447
|
+
const newKey = key.replace(
|
|
13448
|
+
`${pathString}.${currIndex}`,
|
|
13449
|
+
`${pathString}.${currIndex + change}`
|
|
13450
|
+
);
|
|
13451
|
+
cloned[newKey] = value;
|
|
13452
|
+
changedKeys.add(newKey);
|
|
13453
|
+
if (!changedKeys.has(key)) {
|
|
13454
|
+
delete cloned[key];
|
|
13455
|
+
}
|
|
13456
|
+
});
|
|
13457
|
+
return cloned;
|
|
13458
|
+
}
|
|
13459
|
+
|
|
13460
|
+
function reorderErrors(path, { from, to }, errors) {
|
|
13461
|
+
const oldKeyStart = `${path}.${from}`;
|
|
13462
|
+
const newKeyStart = `${path}.${to}`;
|
|
13463
|
+
const clone = { ...errors };
|
|
13464
|
+
const processedKeys = /* @__PURE__ */ new Set();
|
|
13465
|
+
Object.keys(errors).forEach((key) => {
|
|
13466
|
+
if (processedKeys.has(key)) {
|
|
13467
|
+
return;
|
|
13468
|
+
}
|
|
13469
|
+
let oldKey;
|
|
13470
|
+
let newKey;
|
|
13471
|
+
if (key.startsWith(oldKeyStart)) {
|
|
13472
|
+
oldKey = key;
|
|
13473
|
+
newKey = key.replace(oldKeyStart, newKeyStart);
|
|
13474
|
+
} else if (key.startsWith(newKeyStart)) {
|
|
13475
|
+
oldKey = key.replace(newKeyStart, oldKeyStart);
|
|
13476
|
+
newKey = key;
|
|
13477
|
+
}
|
|
13478
|
+
if (oldKey && newKey) {
|
|
13479
|
+
const value1 = clone[oldKey];
|
|
13480
|
+
const value2 = clone[newKey];
|
|
13481
|
+
value2 === void 0 ? delete clone[oldKey] : clone[oldKey] = value2;
|
|
13482
|
+
value1 === void 0 ? delete clone[newKey] : clone[newKey] = value1;
|
|
13483
|
+
processedKeys.add(oldKey);
|
|
13484
|
+
processedKeys.add(newKey);
|
|
13485
|
+
}
|
|
13486
|
+
});
|
|
13487
|
+
return clone;
|
|
13488
|
+
}
|
|
13489
|
+
|
|
13490
|
+
function set(obj, key, val) {
|
|
13491
|
+
if (typeof val.value === 'object') val.value = klona(val.value);
|
|
13492
|
+
if (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === '__proto__') {
|
|
13493
|
+
Object.defineProperty(obj, key, val);
|
|
13494
|
+
} else obj[key] = val.value;
|
|
13495
|
+
}
|
|
13496
|
+
|
|
13497
|
+
function klona(x) {
|
|
13498
|
+
if (typeof x !== 'object') return x;
|
|
13499
|
+
|
|
13500
|
+
var i=0, k, list, tmp, str=Object.prototype.toString.call(x);
|
|
13501
|
+
|
|
13502
|
+
if (str === '[object Object]') {
|
|
13503
|
+
tmp = Object.create(x.__proto__ || null);
|
|
13504
|
+
} else if (str === '[object Array]') {
|
|
13505
|
+
tmp = Array(x.length);
|
|
13506
|
+
} else if (str === '[object Set]') {
|
|
13507
|
+
tmp = new Set;
|
|
13508
|
+
x.forEach(function (val) {
|
|
13509
|
+
tmp.add(klona(val));
|
|
13510
|
+
});
|
|
13511
|
+
} else if (str === '[object Map]') {
|
|
13512
|
+
tmp = new Map;
|
|
13513
|
+
x.forEach(function (val, key) {
|
|
13514
|
+
tmp.set(klona(key), klona(val));
|
|
13515
|
+
});
|
|
13516
|
+
} else if (str === '[object Date]') {
|
|
13517
|
+
tmp = new Date(+x);
|
|
13518
|
+
} else if (str === '[object RegExp]') {
|
|
13519
|
+
tmp = new RegExp(x.source, x.flags);
|
|
13520
|
+
} else if (str === '[object DataView]') {
|
|
13521
|
+
tmp = new x.constructor( klona(x.buffer) );
|
|
13522
|
+
} else if (str === '[object ArrayBuffer]') {
|
|
13523
|
+
tmp = x.slice(0);
|
|
13524
|
+
} else if (str.slice(-6) === 'Array]') {
|
|
13525
|
+
// ArrayBuffer.isView(x)
|
|
13526
|
+
// ~> `new` bcuz `Buffer.slice` => ref
|
|
13527
|
+
tmp = new x.constructor(x);
|
|
13528
|
+
}
|
|
13529
|
+
|
|
13530
|
+
if (tmp) {
|
|
13531
|
+
for (list=Object.getOwnPropertySymbols(x); i < list.length; i++) {
|
|
13532
|
+
set(tmp, list[i], Object.getOwnPropertyDescriptor(x, list[i]));
|
|
13533
|
+
}
|
|
13534
|
+
|
|
13535
|
+
for (i=0, list=Object.getOwnPropertyNames(x); i < list.length; i++) {
|
|
13536
|
+
if (Object.hasOwnProperty.call(tmp, k=list[i]) && tmp[k] === x[k]) continue;
|
|
13537
|
+
set(tmp, k, Object.getOwnPropertyDescriptor(x, k));
|
|
13538
|
+
}
|
|
13539
|
+
}
|
|
13540
|
+
|
|
13541
|
+
return tmp || x;
|
|
13542
|
+
}
|
|
13543
|
+
|
|
13544
|
+
function getSplittedPath(path) {
|
|
13545
|
+
if (typeof path !== "string") {
|
|
13546
|
+
return [];
|
|
13547
|
+
}
|
|
13548
|
+
return path.split(".");
|
|
13549
|
+
}
|
|
13550
|
+
|
|
13551
|
+
function getPath(path, values) {
|
|
13552
|
+
const splittedPath = getSplittedPath(path);
|
|
13553
|
+
if (splittedPath.length === 0 || typeof values !== "object" || values === null) {
|
|
13554
|
+
return void 0;
|
|
13555
|
+
}
|
|
13556
|
+
let value = values[splittedPath[0]];
|
|
13557
|
+
for (let i = 1; i < splittedPath.length; i += 1) {
|
|
13558
|
+
if (value == null) {
|
|
13559
|
+
break;
|
|
13560
|
+
}
|
|
13561
|
+
value = value[splittedPath[i]];
|
|
13562
|
+
}
|
|
13563
|
+
return value;
|
|
13564
|
+
}
|
|
13565
|
+
|
|
13566
|
+
function setPath(path, value, values) {
|
|
13567
|
+
const splittedPath = getSplittedPath(path);
|
|
13568
|
+
if (splittedPath.length === 0) {
|
|
13569
|
+
return values;
|
|
13570
|
+
}
|
|
13571
|
+
const cloned = klona(values);
|
|
13572
|
+
if (splittedPath.length === 1) {
|
|
13573
|
+
cloned[splittedPath[0]] = value;
|
|
13574
|
+
return cloned;
|
|
13575
|
+
}
|
|
13576
|
+
let val = cloned[splittedPath[0]];
|
|
13577
|
+
for (let i = 1; i < splittedPath.length - 1; i += 1) {
|
|
13578
|
+
if (val === void 0) {
|
|
13579
|
+
return cloned;
|
|
13580
|
+
}
|
|
13581
|
+
val = val[splittedPath[i]];
|
|
13582
|
+
}
|
|
13583
|
+
val[splittedPath[splittedPath.length - 1]] = value;
|
|
13584
|
+
return cloned;
|
|
13585
|
+
}
|
|
13586
|
+
|
|
13587
|
+
function reorderPath(path, { from, to }, values) {
|
|
13588
|
+
const currentValue = getPath(path, values);
|
|
13589
|
+
if (!Array.isArray(currentValue)) {
|
|
13590
|
+
return values;
|
|
13591
|
+
}
|
|
13592
|
+
const cloned = [...currentValue];
|
|
13593
|
+
const item = currentValue[from];
|
|
13594
|
+
cloned.splice(from, 1);
|
|
13595
|
+
cloned.splice(to, 0, item);
|
|
13596
|
+
return setPath(path, cloned, values);
|
|
13597
|
+
}
|
|
13598
|
+
|
|
13599
|
+
function insertPath(path, value, index, values) {
|
|
13600
|
+
const currentValue = getPath(path, values);
|
|
13601
|
+
if (!Array.isArray(currentValue)) {
|
|
13602
|
+
return values;
|
|
13603
|
+
}
|
|
13604
|
+
const cloned = [...currentValue];
|
|
13605
|
+
cloned.splice(typeof index === "number" ? index : cloned.length, 0, value);
|
|
13606
|
+
return setPath(path, cloned, values);
|
|
13607
|
+
}
|
|
13608
|
+
|
|
13609
|
+
function removePath(path, index, values) {
|
|
13610
|
+
const currentValue = getPath(path, values);
|
|
13611
|
+
if (!Array.isArray(currentValue)) {
|
|
13612
|
+
return values;
|
|
13613
|
+
}
|
|
13614
|
+
return setPath(
|
|
13615
|
+
path,
|
|
13616
|
+
currentValue.filter((_, itemIndex) => itemIndex !== index),
|
|
13617
|
+
values
|
|
13618
|
+
);
|
|
13619
|
+
}
|
|
13620
|
+
|
|
13621
|
+
function replacePath(path, item, index, values) {
|
|
13622
|
+
const currentValue = getPath(path, values);
|
|
13623
|
+
if (!Array.isArray(currentValue)) {
|
|
13624
|
+
return values;
|
|
13625
|
+
}
|
|
13626
|
+
if (currentValue.length <= index) {
|
|
13627
|
+
return values;
|
|
13628
|
+
}
|
|
13629
|
+
const cloned = [...currentValue];
|
|
13630
|
+
cloned[index] = item;
|
|
13631
|
+
return setPath(path, cloned, values);
|
|
13632
|
+
}
|
|
13633
|
+
|
|
13634
|
+
function useFormList({
|
|
13635
|
+
$values,
|
|
13636
|
+
$errors,
|
|
13637
|
+
$status
|
|
13638
|
+
}) {
|
|
13639
|
+
const reorderListItem = React.useCallback((path, payload) => {
|
|
13640
|
+
$status.clearFieldDirty(path);
|
|
13641
|
+
$errors.setErrors((errs) => reorderErrors(path, payload, errs));
|
|
13642
|
+
$values.setValues({
|
|
13643
|
+
values: reorderPath(path, payload, $values.refValues.current),
|
|
13644
|
+
updateState: true
|
|
13645
|
+
});
|
|
13646
|
+
}, []);
|
|
13647
|
+
const removeListItem = React.useCallback((path, index) => {
|
|
13648
|
+
$status.clearFieldDirty(path);
|
|
13649
|
+
$errors.setErrors((errs) => changeErrorIndices(path, index, errs, -1));
|
|
13650
|
+
$values.setValues({
|
|
13651
|
+
values: removePath(path, index, $values.refValues.current),
|
|
13652
|
+
updateState: true
|
|
13653
|
+
});
|
|
13654
|
+
}, []);
|
|
13655
|
+
const insertListItem = React.useCallback((path, item, index) => {
|
|
13656
|
+
$status.clearFieldDirty(path);
|
|
13657
|
+
$errors.setErrors((errs) => changeErrorIndices(path, index, errs, 1));
|
|
13658
|
+
$values.setValues({
|
|
13659
|
+
values: insertPath(path, item, index, $values.refValues.current),
|
|
13660
|
+
updateState: true
|
|
13661
|
+
});
|
|
13662
|
+
}, []);
|
|
13663
|
+
const replaceListItem = React.useCallback((path, index, item) => {
|
|
13664
|
+
$status.clearFieldDirty(path);
|
|
13665
|
+
$values.setValues({
|
|
13666
|
+
values: replacePath(path, item, index, $values.refValues.current),
|
|
13667
|
+
updateState: true
|
|
13668
|
+
});
|
|
13669
|
+
}, []);
|
|
13670
|
+
return { reorderListItem, removeListItem, insertListItem, replaceListItem };
|
|
13671
|
+
}
|
|
13672
|
+
|
|
13673
|
+
var fastDeepEqual;
|
|
13674
|
+
var hasRequiredFastDeepEqual;
|
|
13675
|
+
function requireFastDeepEqual() {
|
|
13676
|
+
if (hasRequiredFastDeepEqual) return fastDeepEqual;
|
|
13677
|
+
hasRequiredFastDeepEqual = 1;
|
|
13678
|
+
|
|
13679
|
+
// do not edit .js files directly - edit src/index.jst
|
|
13680
|
+
|
|
13681
|
+
fastDeepEqual = function equal(a, b) {
|
|
13682
|
+
if (a === b) return true;
|
|
13683
|
+
if (a && b && typeof a == 'object' && typeof b == 'object') {
|
|
13684
|
+
if (a.constructor !== b.constructor) return false;
|
|
13685
|
+
var length, i, keys;
|
|
13686
|
+
if (Array.isArray(a)) {
|
|
13687
|
+
length = a.length;
|
|
13688
|
+
if (length != b.length) return false;
|
|
13689
|
+
for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;
|
|
13690
|
+
return true;
|
|
13691
|
+
}
|
|
13692
|
+
if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
|
|
13693
|
+
if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
|
|
13694
|
+
if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
|
|
13695
|
+
keys = Object.keys(a);
|
|
13696
|
+
length = keys.length;
|
|
13697
|
+
if (length !== Object.keys(b).length) return false;
|
|
13698
|
+
for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
|
|
13699
|
+
for (i = length; i-- !== 0;) {
|
|
13700
|
+
var key = keys[i];
|
|
13701
|
+
if (!equal(a[key], b[key])) return false;
|
|
13702
|
+
}
|
|
13703
|
+
return true;
|
|
13704
|
+
}
|
|
13705
|
+
|
|
13706
|
+
// true if both NaN, false otherwise
|
|
13707
|
+
return a !== a && b !== b;
|
|
13708
|
+
};
|
|
13709
|
+
return fastDeepEqual;
|
|
13710
|
+
}
|
|
13711
|
+
|
|
13712
|
+
var fastDeepEqualExports = requireFastDeepEqual();
|
|
13713
|
+
var isEqual = /*@__PURE__*/getDefaultExportFromCjs(fastDeepEqualExports);
|
|
13714
|
+
|
|
13715
|
+
function getStatus(status, path) {
|
|
13716
|
+
const paths = Object.keys(status);
|
|
13717
|
+
if (typeof path === "string") {
|
|
13718
|
+
const nestedPaths = paths.filter((statusPath) => statusPath.startsWith(`${path}.`));
|
|
13719
|
+
return status[path] || nestedPaths.some((statusPath) => status[statusPath]) || false;
|
|
13720
|
+
}
|
|
13721
|
+
return paths.some((statusPath) => status[statusPath]);
|
|
13722
|
+
}
|
|
13723
|
+
|
|
13724
|
+
function useFormStatus({
|
|
13725
|
+
initialDirty,
|
|
13726
|
+
initialTouched,
|
|
13727
|
+
mode,
|
|
13728
|
+
$values
|
|
13729
|
+
}) {
|
|
13730
|
+
const [touchedState, setTouchedState] = React.useState(initialTouched);
|
|
13731
|
+
const [dirtyState, setDirtyState] = React.useState(initialDirty);
|
|
13732
|
+
const touchedRef = React.useRef(initialTouched);
|
|
13733
|
+
const dirtyRef = React.useRef(initialDirty);
|
|
13734
|
+
const setTouched = React.useCallback((values) => {
|
|
13735
|
+
const resolvedValues = typeof values === "function" ? values(touchedRef.current) : values;
|
|
13736
|
+
touchedRef.current = resolvedValues;
|
|
13737
|
+
if (mode === "controlled") {
|
|
13738
|
+
setTouchedState(resolvedValues);
|
|
13739
|
+
}
|
|
13740
|
+
}, []);
|
|
13741
|
+
const setDirty = React.useCallback(
|
|
13742
|
+
(values, forceUpdate = false) => {
|
|
13743
|
+
const resolvedValues = typeof values === "function" ? values(dirtyRef.current) : values;
|
|
13744
|
+
dirtyRef.current = resolvedValues;
|
|
13745
|
+
if (mode === "controlled" || forceUpdate) {
|
|
13746
|
+
setDirtyState(resolvedValues);
|
|
13747
|
+
}
|
|
13748
|
+
},
|
|
13749
|
+
[]
|
|
13750
|
+
);
|
|
13751
|
+
const resetTouched = React.useCallback(() => setTouched({}), []);
|
|
13752
|
+
const resetDirty = React.useCallback((values) => {
|
|
13753
|
+
const newSnapshot = values ? { ...$values.refValues.current, ...values } : $values.refValues.current;
|
|
13754
|
+
$values.setValuesSnapshot(newSnapshot);
|
|
13755
|
+
setDirty({});
|
|
13756
|
+
}, []);
|
|
13757
|
+
const setFieldTouched = React.useCallback((path, touched) => {
|
|
13758
|
+
setTouched((currentTouched) => {
|
|
13759
|
+
if (getStatus(currentTouched, path) === touched) {
|
|
13760
|
+
return currentTouched;
|
|
13761
|
+
}
|
|
13762
|
+
return { ...currentTouched, [path]: touched };
|
|
13763
|
+
});
|
|
13764
|
+
}, []);
|
|
13765
|
+
const setFieldDirty = React.useCallback((path, dirty, forceUpdate) => {
|
|
13766
|
+
setDirty((currentDirty) => {
|
|
13767
|
+
if (getStatus(currentDirty, path) === dirty) {
|
|
13768
|
+
return currentDirty;
|
|
13769
|
+
}
|
|
13770
|
+
return { ...currentDirty, [path]: dirty };
|
|
13771
|
+
}, forceUpdate);
|
|
13772
|
+
}, []);
|
|
13773
|
+
const setCalculatedFieldDirty = React.useCallback((path, value) => {
|
|
13774
|
+
const currentDirty = getStatus(dirtyRef.current, path);
|
|
13775
|
+
const dirty = !isEqual(getPath(path, $values.getValuesSnapshot()), value);
|
|
13776
|
+
const clearedState = clearListState(path, dirtyRef.current);
|
|
13777
|
+
clearedState[path] = dirty;
|
|
13778
|
+
setDirty(clearedState, currentDirty !== dirty);
|
|
13779
|
+
}, []);
|
|
13780
|
+
const isTouched = React.useCallback(
|
|
13781
|
+
(path) => getStatus(touchedRef.current, path),
|
|
13782
|
+
[]
|
|
13783
|
+
);
|
|
13784
|
+
const clearFieldDirty = React.useCallback(
|
|
13785
|
+
(path) => setDirty((current) => {
|
|
13786
|
+
if (typeof path !== "string") {
|
|
13787
|
+
return current;
|
|
13788
|
+
}
|
|
13789
|
+
const result = clearListState(path, current);
|
|
13790
|
+
delete result[path];
|
|
13791
|
+
if (isEqual(result, current)) {
|
|
13792
|
+
return current;
|
|
13793
|
+
}
|
|
13794
|
+
return result;
|
|
13795
|
+
}),
|
|
13796
|
+
[]
|
|
13797
|
+
);
|
|
13798
|
+
const isDirty = React.useCallback((path) => {
|
|
13799
|
+
if (path) {
|
|
13800
|
+
const overriddenValue = getPath(path, dirtyRef.current);
|
|
13801
|
+
if (typeof overriddenValue === "boolean") {
|
|
13802
|
+
return overriddenValue;
|
|
13803
|
+
}
|
|
13804
|
+
const sliceOfValues = getPath(path, $values.refValues.current);
|
|
13805
|
+
const sliceOfInitialValues = getPath(path, $values.valuesSnapshot.current);
|
|
13806
|
+
return !isEqual(sliceOfValues, sliceOfInitialValues);
|
|
13807
|
+
}
|
|
13808
|
+
const isOverridden = Object.keys(dirtyRef.current).length > 0;
|
|
13809
|
+
if (isOverridden) {
|
|
13810
|
+
return getStatus(dirtyRef.current);
|
|
13811
|
+
}
|
|
13812
|
+
return !isEqual($values.refValues.current, $values.valuesSnapshot.current);
|
|
13813
|
+
}, []);
|
|
13814
|
+
const getDirty = React.useCallback(() => dirtyRef.current, []);
|
|
13815
|
+
const getTouched = React.useCallback(() => touchedRef.current, []);
|
|
13816
|
+
return {
|
|
13817
|
+
touchedState,
|
|
13818
|
+
dirtyState,
|
|
13819
|
+
touchedRef,
|
|
13820
|
+
dirtyRef,
|
|
13821
|
+
setTouched,
|
|
13822
|
+
setDirty,
|
|
13823
|
+
resetDirty,
|
|
13824
|
+
resetTouched,
|
|
13825
|
+
isTouched,
|
|
13826
|
+
setFieldTouched,
|
|
13827
|
+
setFieldDirty,
|
|
13828
|
+
setTouchedState,
|
|
13829
|
+
setDirtyState,
|
|
13830
|
+
clearFieldDirty,
|
|
13831
|
+
isDirty,
|
|
13832
|
+
getDirty,
|
|
13833
|
+
getTouched,
|
|
13834
|
+
setCalculatedFieldDirty
|
|
13835
|
+
};
|
|
13836
|
+
}
|
|
13837
|
+
|
|
13838
|
+
function useFormValues({
|
|
13839
|
+
initialValues,
|
|
13840
|
+
onValuesChange,
|
|
13841
|
+
mode
|
|
13842
|
+
}) {
|
|
13843
|
+
const initialized = React.useRef(false);
|
|
13844
|
+
const [stateValues, setStateValues] = React.useState(initialValues || {});
|
|
13845
|
+
const refValues = React.useRef(stateValues);
|
|
13846
|
+
const valuesSnapshot = React.useRef(stateValues);
|
|
13847
|
+
const setValues = React.useCallback(
|
|
13848
|
+
({
|
|
13849
|
+
values,
|
|
13850
|
+
subscribers,
|
|
13851
|
+
updateState = true,
|
|
13852
|
+
mergeWithPreviousValues = true
|
|
13853
|
+
}) => {
|
|
13854
|
+
const previousValues = refValues.current;
|
|
13855
|
+
const resolvedValues = values instanceof Function ? values(refValues.current) : values;
|
|
13856
|
+
const updatedValues = mergeWithPreviousValues ? { ...previousValues, ...resolvedValues } : resolvedValues;
|
|
13857
|
+
refValues.current = updatedValues;
|
|
13858
|
+
if (updateState) {
|
|
13859
|
+
setStateValues(updatedValues);
|
|
13860
|
+
if (mode === "uncontrolled") {
|
|
13861
|
+
refValues.current = updatedValues;
|
|
13862
|
+
}
|
|
13863
|
+
}
|
|
13864
|
+
onValuesChange?.(updatedValues, previousValues);
|
|
13865
|
+
subscribers?.filter(Boolean).forEach((subscriber) => subscriber({ updatedValues, previousValues }));
|
|
13866
|
+
},
|
|
13867
|
+
[onValuesChange]
|
|
13868
|
+
);
|
|
13869
|
+
const setFieldValue = React.useCallback(
|
|
13870
|
+
(payload) => {
|
|
13871
|
+
const currentValue = getPath(payload.path, refValues.current);
|
|
13872
|
+
const updatedValue = payload.value instanceof Function ? payload.value(currentValue) : payload.value;
|
|
13873
|
+
if (currentValue !== updatedValue) {
|
|
13874
|
+
const previousValues = refValues.current;
|
|
13875
|
+
const updatedValues = setPath(payload.path, updatedValue, refValues.current);
|
|
13876
|
+
setValues({ values: updatedValues, updateState: payload.updateState });
|
|
13877
|
+
payload.subscribers?.filter(Boolean).forEach(
|
|
13878
|
+
(subscriber) => subscriber({ path: payload.path, updatedValues, previousValues })
|
|
13879
|
+
);
|
|
13880
|
+
}
|
|
13881
|
+
},
|
|
13882
|
+
[setValues]
|
|
13883
|
+
);
|
|
13884
|
+
const setValuesSnapshot = React.useCallback((payload) => {
|
|
13885
|
+
valuesSnapshot.current = payload;
|
|
13886
|
+
}, []);
|
|
13887
|
+
const initialize = React.useCallback(
|
|
13888
|
+
(values, onInitialize) => {
|
|
13889
|
+
if (!initialized.current) {
|
|
13890
|
+
initialized.current = true;
|
|
13891
|
+
setValues({ values, updateState: mode === "controlled" });
|
|
13892
|
+
setValuesSnapshot(values);
|
|
13893
|
+
onInitialize();
|
|
13894
|
+
}
|
|
13895
|
+
},
|
|
13896
|
+
[setValues]
|
|
13897
|
+
);
|
|
13898
|
+
const resetValues = React.useCallback(() => {
|
|
13899
|
+
setValues({
|
|
13900
|
+
values: valuesSnapshot.current,
|
|
13901
|
+
updateState: true,
|
|
13902
|
+
mergeWithPreviousValues: false
|
|
13903
|
+
});
|
|
13904
|
+
}, [setValues]);
|
|
13905
|
+
const getValues = React.useCallback(() => refValues.current, []);
|
|
13906
|
+
const getValuesSnapshot = React.useCallback(() => valuesSnapshot.current, []);
|
|
13907
|
+
const resetField = React.useCallback(
|
|
13908
|
+
(path, subscribers) => {
|
|
13909
|
+
const snapshotValue = getPath(path, valuesSnapshot.current);
|
|
13910
|
+
if (typeof snapshotValue === "undefined") {
|
|
13911
|
+
return;
|
|
13912
|
+
}
|
|
13913
|
+
setFieldValue({
|
|
13914
|
+
path,
|
|
13915
|
+
value: snapshotValue,
|
|
13916
|
+
updateState: mode === "controlled",
|
|
13917
|
+
subscribers
|
|
13918
|
+
});
|
|
13919
|
+
},
|
|
13920
|
+
[setFieldValue, mode]
|
|
13921
|
+
);
|
|
13922
|
+
return {
|
|
13923
|
+
initialized,
|
|
13924
|
+
stateValues,
|
|
13925
|
+
refValues,
|
|
13926
|
+
valuesSnapshot,
|
|
13927
|
+
setValues,
|
|
13928
|
+
setFieldValue,
|
|
13929
|
+
resetValues,
|
|
13930
|
+
setValuesSnapshot,
|
|
13931
|
+
initialize,
|
|
13932
|
+
getValues,
|
|
13933
|
+
getValuesSnapshot,
|
|
13934
|
+
resetField
|
|
13935
|
+
};
|
|
13936
|
+
}
|
|
13937
|
+
|
|
13938
|
+
function useFormWatch({
|
|
13939
|
+
$status,
|
|
13940
|
+
cascadeUpdates
|
|
13941
|
+
}) {
|
|
13942
|
+
const subscribers = React.useRef(
|
|
13943
|
+
{}
|
|
13944
|
+
);
|
|
13945
|
+
const watch = React.useCallback((path, callback) => {
|
|
13946
|
+
React.useEffect(() => {
|
|
13947
|
+
subscribers.current[path] = subscribers.current[path] || [];
|
|
13948
|
+
subscribers.current[path].push(callback);
|
|
13949
|
+
return () => {
|
|
13950
|
+
subscribers.current[path] = subscribers.current[path].filter((cb) => cb !== callback);
|
|
13951
|
+
};
|
|
13952
|
+
}, [callback]);
|
|
13953
|
+
}, []);
|
|
13954
|
+
const getFieldSubscribers = React.useCallback((path) => {
|
|
13955
|
+
const result = subscribers.current[path]?.map(
|
|
13956
|
+
(callback) => (input) => callback({
|
|
13957
|
+
previousValue: getPath(path, input.previousValues),
|
|
13958
|
+
value: getPath(path, input.updatedValues),
|
|
13959
|
+
touched: $status.isTouched(path),
|
|
13960
|
+
dirty: $status.isDirty(path)
|
|
13961
|
+
})
|
|
13962
|
+
) ?? [];
|
|
13963
|
+
if (cascadeUpdates) {
|
|
13964
|
+
for (const subscriptionKey in subscribers.current) {
|
|
13965
|
+
if (subscriptionKey.startsWith(`${path}.`) || path.startsWith(`${subscriptionKey}.`)) {
|
|
13966
|
+
result.push(
|
|
13967
|
+
...subscribers.current[subscriptionKey].map(
|
|
13968
|
+
(cb) => (input) => cb({
|
|
13969
|
+
previousValue: getPath(subscriptionKey, input.previousValues),
|
|
13970
|
+
value: getPath(subscriptionKey, input.updatedValues),
|
|
13971
|
+
touched: $status.isTouched(subscriptionKey),
|
|
13972
|
+
dirty: $status.isDirty(subscriptionKey)
|
|
13973
|
+
})
|
|
13974
|
+
)
|
|
13975
|
+
);
|
|
13976
|
+
}
|
|
13977
|
+
}
|
|
13978
|
+
}
|
|
13979
|
+
return result;
|
|
13980
|
+
}, []);
|
|
13981
|
+
return {
|
|
13982
|
+
subscribers,
|
|
13983
|
+
watch,
|
|
13984
|
+
getFieldSubscribers
|
|
13985
|
+
};
|
|
13986
|
+
}
|
|
13987
|
+
|
|
13988
|
+
function getDataPath(formName, fieldPath) {
|
|
13989
|
+
return formName ? `${formName}-${fieldPath.toString()}` : fieldPath.toString();
|
|
13990
|
+
}
|
|
13991
|
+
|
|
13992
|
+
const formRootRule = Symbol("root-rule");
|
|
13993
|
+
function getValidationResults(errors) {
|
|
13994
|
+
const filteredErrors = filterErrors(errors);
|
|
13995
|
+
return { hasErrors: Object.keys(filteredErrors).length > 0, errors: filteredErrors };
|
|
13996
|
+
}
|
|
13997
|
+
function validateRulesRecord(rules, values, path = "", errors = {}) {
|
|
13998
|
+
if (typeof rules !== "object" || rules === null) {
|
|
13999
|
+
return errors;
|
|
14000
|
+
}
|
|
14001
|
+
return Object.keys(rules).reduce((acc, ruleKey) => {
|
|
14002
|
+
const rule = rules[ruleKey];
|
|
14003
|
+
const rulePath = `${path === "" ? "" : `${path}.`}${ruleKey}`;
|
|
14004
|
+
const value = getPath(rulePath, values);
|
|
14005
|
+
let arrayValidation = false;
|
|
14006
|
+
if (typeof rule === "function") {
|
|
14007
|
+
acc[rulePath] = rule(value, values, rulePath);
|
|
14008
|
+
}
|
|
14009
|
+
if (typeof rule === "object" && Array.isArray(value)) {
|
|
14010
|
+
arrayValidation = true;
|
|
14011
|
+
value.forEach(
|
|
14012
|
+
(_item, index) => validateRulesRecord(rule, values, `${rulePath}.${index}`, acc)
|
|
14013
|
+
);
|
|
14014
|
+
if (formRootRule in rule) {
|
|
14015
|
+
acc[rulePath] = rule[formRootRule](value, values, rulePath);
|
|
14016
|
+
}
|
|
14017
|
+
}
|
|
14018
|
+
if (typeof rule === "object" && typeof value === "object" && value !== null) {
|
|
14019
|
+
if (!arrayValidation) {
|
|
14020
|
+
validateRulesRecord(rule, values, rulePath, acc);
|
|
14021
|
+
}
|
|
14022
|
+
if (formRootRule in rule) {
|
|
14023
|
+
acc[rulePath] = rule[formRootRule](value, values, rulePath);
|
|
14024
|
+
}
|
|
14025
|
+
}
|
|
14026
|
+
return acc;
|
|
14027
|
+
}, errors);
|
|
14028
|
+
}
|
|
14029
|
+
function validateValues(validate, values) {
|
|
14030
|
+
if (typeof validate === "function") {
|
|
14031
|
+
return getValidationResults(validate(values));
|
|
14032
|
+
}
|
|
14033
|
+
return getValidationResults(validateRulesRecord(validate, values));
|
|
14034
|
+
}
|
|
14035
|
+
|
|
14036
|
+
function validateFieldValue(path, rules, values) {
|
|
14037
|
+
if (typeof path !== "string") {
|
|
14038
|
+
return { hasError: false, error: null };
|
|
14039
|
+
}
|
|
14040
|
+
const results = validateValues(rules, values);
|
|
14041
|
+
const pathInError = Object.keys(results.errors).find(
|
|
14042
|
+
(errorKey) => path.split(".").every((pathPart, i) => pathPart === errorKey.split(".")[i])
|
|
14043
|
+
);
|
|
14044
|
+
return { hasError: !!pathInError, error: pathInError ? results.errors[pathInError] : null };
|
|
14045
|
+
}
|
|
14046
|
+
|
|
14047
|
+
const FORM_INDEX = "__MANTINE_FORM_INDEX__";
|
|
14048
|
+
|
|
14049
|
+
function shouldValidateOnChange(path, validateInputOnChange) {
|
|
14050
|
+
if (!validateInputOnChange) {
|
|
14051
|
+
return false;
|
|
14052
|
+
}
|
|
14053
|
+
if (typeof validateInputOnChange === "boolean") {
|
|
14054
|
+
return validateInputOnChange;
|
|
14055
|
+
}
|
|
14056
|
+
if (Array.isArray(validateInputOnChange)) {
|
|
14057
|
+
return validateInputOnChange.includes(path.replace(/[.][0-9]+/g, `.${FORM_INDEX}`));
|
|
14058
|
+
}
|
|
14059
|
+
return false;
|
|
14060
|
+
}
|
|
14061
|
+
|
|
14062
|
+
function useForm({
|
|
14063
|
+
name,
|
|
14064
|
+
mode = "controlled",
|
|
14065
|
+
initialValues,
|
|
14066
|
+
initialErrors = {},
|
|
14067
|
+
initialDirty = {},
|
|
14068
|
+
initialTouched = {},
|
|
14069
|
+
clearInputErrorOnChange = true,
|
|
14070
|
+
validateInputOnChange = false,
|
|
14071
|
+
validateInputOnBlur = false,
|
|
14072
|
+
onValuesChange,
|
|
14073
|
+
transformValues = (values) => values,
|
|
14074
|
+
enhanceGetInputProps,
|
|
14075
|
+
validate: rules,
|
|
14076
|
+
onSubmitPreventDefault = "always",
|
|
14077
|
+
touchTrigger = "change",
|
|
14078
|
+
cascadeUpdates = false
|
|
14079
|
+
} = {}) {
|
|
14080
|
+
const $errors = useFormErrors(initialErrors);
|
|
14081
|
+
const $values = useFormValues({ initialValues, onValuesChange, mode });
|
|
14082
|
+
const $status = useFormStatus({ initialDirty, initialTouched, $values, mode });
|
|
14083
|
+
const $list = useFormList({ $values, $errors, $status });
|
|
14084
|
+
const $watch = useFormWatch({ $status, cascadeUpdates });
|
|
14085
|
+
const [formKey, setFormKey] = React.useState(0);
|
|
14086
|
+
const [fieldKeys, setFieldKeys] = React.useState({});
|
|
14087
|
+
const [submitting, setSubmitting] = React.useState(false);
|
|
14088
|
+
const reset = React.useCallback(() => {
|
|
14089
|
+
$values.resetValues();
|
|
14090
|
+
$errors.clearErrors();
|
|
14091
|
+
$status.resetDirty();
|
|
14092
|
+
$status.resetTouched();
|
|
14093
|
+
mode === "uncontrolled" && setFormKey((key2) => key2 + 1);
|
|
14094
|
+
}, []);
|
|
14095
|
+
const handleValuesChanges = React.useCallback(
|
|
14096
|
+
(previousValues) => {
|
|
14097
|
+
clearInputErrorOnChange && $errors.clearErrors();
|
|
14098
|
+
mode === "uncontrolled" && setFormKey((key2) => key2 + 1);
|
|
14099
|
+
Object.keys($watch.subscribers.current).forEach((path) => {
|
|
14100
|
+
const value = getPath(path, $values.refValues.current);
|
|
14101
|
+
const previousValue = getPath(path, previousValues);
|
|
14102
|
+
if (value !== previousValue) {
|
|
14103
|
+
$watch.getFieldSubscribers(path).forEach((cb) => cb({ previousValues, updatedValues: $values.refValues.current }));
|
|
14104
|
+
}
|
|
14105
|
+
});
|
|
14106
|
+
},
|
|
14107
|
+
[clearInputErrorOnChange]
|
|
14108
|
+
);
|
|
14109
|
+
const initialize = React.useCallback(
|
|
14110
|
+
(values) => {
|
|
14111
|
+
const previousValues = $values.refValues.current;
|
|
14112
|
+
$values.initialize(values, () => mode === "uncontrolled" && setFormKey((key2) => key2 + 1));
|
|
14113
|
+
handleValuesChanges(previousValues);
|
|
14114
|
+
},
|
|
14115
|
+
[handleValuesChanges]
|
|
14116
|
+
);
|
|
14117
|
+
const setFieldValue = React.useCallback(
|
|
14118
|
+
(path, value, options) => {
|
|
14119
|
+
const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);
|
|
14120
|
+
const resolvedValue = value instanceof Function ? value(getPath(path, $values.refValues.current)) : value;
|
|
14121
|
+
$status.setCalculatedFieldDirty(path, resolvedValue);
|
|
14122
|
+
touchTrigger === "change" && $status.setFieldTouched(path, true);
|
|
14123
|
+
!shouldValidate && clearInputErrorOnChange && $errors.clearFieldError(path);
|
|
14124
|
+
$values.setFieldValue({
|
|
14125
|
+
path,
|
|
14126
|
+
value,
|
|
14127
|
+
updateState: mode === "controlled",
|
|
14128
|
+
subscribers: [
|
|
14129
|
+
...$watch.getFieldSubscribers(path),
|
|
14130
|
+
shouldValidate ? (payload) => {
|
|
14131
|
+
const validationResults = validateFieldValue(path, rules, payload.updatedValues);
|
|
14132
|
+
validationResults.hasError ? $errors.setFieldError(path, validationResults.error) : $errors.clearFieldError(path);
|
|
14133
|
+
} : null,
|
|
14134
|
+
options?.forceUpdate !== false && mode !== "controlled" ? () => setFieldKeys((keys) => ({
|
|
14135
|
+
...keys,
|
|
14136
|
+
[path]: (keys[path] || 0) + 1
|
|
14137
|
+
})) : null
|
|
14138
|
+
]
|
|
14139
|
+
});
|
|
14140
|
+
},
|
|
14141
|
+
[onValuesChange, rules]
|
|
14142
|
+
);
|
|
14143
|
+
const setValues = React.useCallback(
|
|
14144
|
+
(values) => {
|
|
14145
|
+
const previousValues = $values.refValues.current;
|
|
14146
|
+
$values.setValues({ values, updateState: mode === "controlled" });
|
|
14147
|
+
handleValuesChanges(previousValues);
|
|
14148
|
+
},
|
|
14149
|
+
[onValuesChange, handleValuesChanges]
|
|
14150
|
+
);
|
|
14151
|
+
const validate = React.useCallback(() => {
|
|
14152
|
+
const results = validateValues(rules, $values.refValues.current);
|
|
14153
|
+
$errors.setErrors(results.errors);
|
|
14154
|
+
return results;
|
|
14155
|
+
}, [rules]);
|
|
14156
|
+
const validateField = React.useCallback(
|
|
14157
|
+
(path) => {
|
|
14158
|
+
const results = validateFieldValue(path, rules, $values.refValues.current);
|
|
14159
|
+
results.hasError ? $errors.setFieldError(path, results.error) : $errors.clearFieldError(path);
|
|
14160
|
+
return results;
|
|
14161
|
+
},
|
|
14162
|
+
[rules]
|
|
14163
|
+
);
|
|
14164
|
+
const getInputProps = (path, { type = "input", withError = true, withFocus = true, ...otherOptions } = {}) => {
|
|
14165
|
+
const onChange = getInputOnChange(
|
|
14166
|
+
(value) => setFieldValue(path, value, { forceUpdate: false })
|
|
14167
|
+
);
|
|
14168
|
+
const payload = { onChange, "data-path": getDataPath(name, path) };
|
|
14169
|
+
if (withError) {
|
|
14170
|
+
payload.error = $errors.errorsState[path];
|
|
14171
|
+
}
|
|
14172
|
+
if (type === "checkbox") {
|
|
14173
|
+
payload[mode === "controlled" ? "checked" : "defaultChecked"] = getPath(
|
|
14174
|
+
path,
|
|
14175
|
+
$values.refValues.current
|
|
14176
|
+
);
|
|
14177
|
+
} else {
|
|
14178
|
+
payload[mode === "controlled" ? "value" : "defaultValue"] = getPath(
|
|
14179
|
+
path,
|
|
14180
|
+
$values.refValues.current
|
|
14181
|
+
);
|
|
14182
|
+
}
|
|
14183
|
+
if (withFocus) {
|
|
14184
|
+
payload.onFocus = () => $status.setFieldTouched(path, true);
|
|
14185
|
+
payload.onBlur = () => {
|
|
14186
|
+
if (shouldValidateOnChange(path, validateInputOnBlur)) {
|
|
14187
|
+
const validationResults = validateFieldValue(path, rules, $values.refValues.current);
|
|
14188
|
+
validationResults.hasError ? $errors.setFieldError(path, validationResults.error) : $errors.clearFieldError(path);
|
|
14189
|
+
}
|
|
14190
|
+
};
|
|
14191
|
+
}
|
|
14192
|
+
return Object.assign(
|
|
14193
|
+
payload,
|
|
14194
|
+
enhanceGetInputProps?.({
|
|
14195
|
+
inputProps: payload,
|
|
14196
|
+
field: path,
|
|
14197
|
+
options: { type, withError, withFocus, ...otherOptions },
|
|
14198
|
+
form
|
|
14199
|
+
})
|
|
14200
|
+
);
|
|
14201
|
+
};
|
|
14202
|
+
const onSubmit = (handleSubmit, handleValidationFailure) => (event) => {
|
|
14203
|
+
if (onSubmitPreventDefault === "always") {
|
|
14204
|
+
event?.preventDefault();
|
|
14205
|
+
}
|
|
14206
|
+
const results = validate();
|
|
14207
|
+
if (results.hasErrors) {
|
|
14208
|
+
if (onSubmitPreventDefault === "validation-failed") {
|
|
14209
|
+
event?.preventDefault();
|
|
14210
|
+
}
|
|
14211
|
+
handleValidationFailure?.(results.errors, $values.refValues.current, event);
|
|
14212
|
+
} else {
|
|
14213
|
+
const submitResult = handleSubmit?.(
|
|
14214
|
+
transformValues($values.refValues.current),
|
|
14215
|
+
event
|
|
14216
|
+
);
|
|
14217
|
+
if (submitResult instanceof Promise) {
|
|
14218
|
+
setSubmitting(true);
|
|
14219
|
+
submitResult.finally(() => setSubmitting(false));
|
|
14220
|
+
}
|
|
14221
|
+
}
|
|
14222
|
+
};
|
|
14223
|
+
const getTransformedValues = (input) => transformValues(input || $values.refValues.current);
|
|
14224
|
+
const onReset = React.useCallback((event) => {
|
|
14225
|
+
event.preventDefault();
|
|
14226
|
+
reset();
|
|
14227
|
+
}, []);
|
|
14228
|
+
const isValid = React.useCallback(
|
|
14229
|
+
(path) => path ? !validateFieldValue(path, rules, $values.refValues.current).hasError : !validateValues(rules, $values.refValues.current).hasErrors,
|
|
14230
|
+
[rules]
|
|
14231
|
+
);
|
|
14232
|
+
const key = (path) => `${formKey}-${String(path)}-${fieldKeys[String(path)] || 0}`;
|
|
14233
|
+
const getInputNode = React.useCallback(
|
|
14234
|
+
(path) => document.querySelector(`[data-path="${getDataPath(name, path)}"]`),
|
|
14235
|
+
[]
|
|
14236
|
+
);
|
|
14237
|
+
const resetField = React.useCallback(
|
|
14238
|
+
(path) => {
|
|
14239
|
+
$values.resetField(path, [
|
|
14240
|
+
mode !== "controlled" ? () => setFieldKeys((keys) => ({
|
|
14241
|
+
...keys,
|
|
14242
|
+
[path]: (keys[path] || 0) + 1
|
|
14243
|
+
})) : null
|
|
14244
|
+
]);
|
|
14245
|
+
},
|
|
14246
|
+
[$values.resetField, mode, setFieldKeys]
|
|
14247
|
+
);
|
|
14248
|
+
const form = {
|
|
14249
|
+
watch: $watch.watch,
|
|
14250
|
+
initialized: $values.initialized.current,
|
|
14251
|
+
values: mode === "uncontrolled" ? $values.refValues.current : $values.stateValues,
|
|
14252
|
+
getValues: $values.getValues,
|
|
14253
|
+
getInitialValues: $values.getValuesSnapshot,
|
|
14254
|
+
setInitialValues: $values.setValuesSnapshot,
|
|
14255
|
+
resetField,
|
|
14256
|
+
initialize,
|
|
14257
|
+
setValues,
|
|
14258
|
+
setFieldValue,
|
|
14259
|
+
submitting,
|
|
14260
|
+
setSubmitting,
|
|
14261
|
+
errors: $errors.errorsState,
|
|
14262
|
+
setErrors: $errors.setErrors,
|
|
14263
|
+
setFieldError: $errors.setFieldError,
|
|
14264
|
+
clearFieldError: $errors.clearFieldError,
|
|
14265
|
+
clearErrors: $errors.clearErrors,
|
|
14266
|
+
resetDirty: $status.resetDirty,
|
|
14267
|
+
setTouched: $status.setTouched,
|
|
14268
|
+
setDirty: $status.setDirty,
|
|
14269
|
+
isTouched: $status.isTouched,
|
|
14270
|
+
resetTouched: $status.resetTouched,
|
|
14271
|
+
isDirty: $status.isDirty,
|
|
14272
|
+
getTouched: $status.getTouched,
|
|
14273
|
+
getDirty: $status.getDirty,
|
|
14274
|
+
reorderListItem: $list.reorderListItem,
|
|
14275
|
+
insertListItem: $list.insertListItem,
|
|
14276
|
+
removeListItem: $list.removeListItem,
|
|
14277
|
+
replaceListItem: $list.replaceListItem,
|
|
14278
|
+
reset,
|
|
14279
|
+
validate,
|
|
14280
|
+
validateField,
|
|
14281
|
+
getInputProps,
|
|
14282
|
+
onSubmit,
|
|
14283
|
+
onReset,
|
|
14284
|
+
isValid,
|
|
14285
|
+
getTransformedValues,
|
|
14286
|
+
key,
|
|
14287
|
+
getInputNode
|
|
14288
|
+
};
|
|
14289
|
+
useFormActions(name, form);
|
|
14290
|
+
return form;
|
|
14291
|
+
}
|
|
14292
|
+
|
|
14293
|
+
const _excluded$1 = ["fields", "isEditable", "layout", "hasSubmit", "hasReset"];
|
|
14294
|
+
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14295
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13250
14296
|
const SimpleForm = _ref => {
|
|
13251
14297
|
let {
|
|
13252
14298
|
fields,
|
|
13253
14299
|
isEditable = true,
|
|
13254
|
-
layout = []
|
|
13255
|
-
|
|
13256
|
-
|
|
14300
|
+
layout = [],
|
|
14301
|
+
hasSubmit,
|
|
14302
|
+
hasReset
|
|
14303
|
+
} = _ref,
|
|
14304
|
+
rest = _objectWithoutProperties(_ref, _excluded$1);
|
|
13257
14305
|
const components = {
|
|
13258
14306
|
Textarea: core.Textarea,
|
|
13259
14307
|
TextInput: core.TextInput,
|
|
13260
14308
|
PasswordInput: core.PasswordInput,
|
|
13261
14309
|
NumberInput: core.NumberInput
|
|
13262
14310
|
};
|
|
14311
|
+
const form = useForm({
|
|
14312
|
+
mode: "uncontrolled",
|
|
14313
|
+
initialValues: () => {
|
|
14314
|
+
const localInitialValues = {};
|
|
14315
|
+
fields.forEach((field, index) => {
|
|
14316
|
+
if (typeof field === "string") {
|
|
14317
|
+
const sanitizedField = santize(field);
|
|
14318
|
+
localInitialValues[sanitizedField.name] = "";
|
|
14319
|
+
}
|
|
14320
|
+
if (typeof field === "object" && Object.keys(components).includes(field.component)) {
|
|
14321
|
+
var _field$field;
|
|
14322
|
+
const sanitizedField = santize((_field$field = field.field) !== null && _field$field !== void 0 ? _field$field : "");
|
|
14323
|
+
localInitialValues[sanitizedField.name] = "";
|
|
14324
|
+
}
|
|
14325
|
+
});
|
|
14326
|
+
return _objectSpread$1(_objectSpread$1({}, localInitialValues), rest.initialValues);
|
|
14327
|
+
},
|
|
14328
|
+
validate: rest.formValidate
|
|
14329
|
+
});
|
|
13263
14330
|
const indexDiff = fields.length - layout.length;
|
|
13264
14331
|
layout.push(...Array(indexDiff).fill(12));
|
|
13265
14332
|
const inputProps = {
|
|
@@ -13270,31 +14337,50 @@ const SimpleForm = _ref => {
|
|
|
13270
14337
|
c: "adiba.5"
|
|
13271
14338
|
},
|
|
13272
14339
|
readOnly: !isEditable,
|
|
13273
|
-
variant: !isEditable ? "unstyled" : "default"
|
|
14340
|
+
variant: !isEditable ? "unstyled" : "default",
|
|
14341
|
+
required: true
|
|
13274
14342
|
};
|
|
13275
|
-
return /*#__PURE__*/React.createElement(
|
|
14343
|
+
return /*#__PURE__*/React.createElement("form", {
|
|
14344
|
+
onSubmit: form.onSubmit(values => {
|
|
14345
|
+
var _rest$onSubmit;
|
|
14346
|
+
return hasSubmit ? (_rest$onSubmit = rest.onSubmit) === null || _rest$onSubmit === void 0 ? void 0 : _rest$onSubmit.call(rest, values) : void 0;
|
|
14347
|
+
}),
|
|
14348
|
+
onReset: form.reset,
|
|
14349
|
+
style: {
|
|
14350
|
+
height: "100%"
|
|
14351
|
+
}
|
|
14352
|
+
}, /*#__PURE__*/React.createElement(core.Stack, {
|
|
14353
|
+
h: "100%"
|
|
14354
|
+
}, /*#__PURE__*/React.createElement(core.Grid, null, fields.map((field, index) => {
|
|
13276
14355
|
if (typeof field === "string") {
|
|
14356
|
+
const sanitizedField = santize(field);
|
|
13277
14357
|
return /*#__PURE__*/React.createElement(core.Grid.Col, {
|
|
13278
14358
|
key: index,
|
|
13279
14359
|
span: layout[index]
|
|
13280
|
-
}, /*#__PURE__*/React.createElement(core.TextInput, _extends({}, inputProps,
|
|
14360
|
+
}, /*#__PURE__*/React.createElement(core.TextInput, _extends({}, inputProps, sanitizedField, form.getInputProps(sanitizedField.name))));
|
|
13281
14361
|
}
|
|
13282
14362
|
if (typeof field === "function") {
|
|
13283
14363
|
return /*#__PURE__*/React.createElement(core.Grid.Col, {
|
|
13284
14364
|
key: index,
|
|
13285
14365
|
span: layout[index]
|
|
13286
|
-
}, field());
|
|
14366
|
+
}, field(form.getInputProps));
|
|
13287
14367
|
}
|
|
13288
|
-
if (
|
|
13289
|
-
var _field$
|
|
14368
|
+
if (Object.keys(components).includes(field.component)) {
|
|
14369
|
+
var _field$field2;
|
|
13290
14370
|
const Component = components[field.component];
|
|
14371
|
+
const sanitizedField = santize((_field$field2 = field.field) !== null && _field$field2 !== void 0 ? _field$field2 : "");
|
|
13291
14372
|
return /*#__PURE__*/React.createElement(core.Grid.Col, {
|
|
13292
14373
|
key: index,
|
|
13293
14374
|
span: layout[index]
|
|
13294
|
-
}, /*#__PURE__*/React.createElement(Component, _extends({}, field.field, inputProps,
|
|
14375
|
+
}, /*#__PURE__*/React.createElement(Component, _extends({}, field.field, inputProps, sanitizedField, form.getInputProps(sanitizedField.name))));
|
|
13295
14376
|
}
|
|
13296
14377
|
return null;
|
|
13297
|
-
}))
|
|
14378
|
+
})), /*#__PURE__*/React.createElement(core.Space, {
|
|
14379
|
+
flex: 1
|
|
14380
|
+
}), /*#__PURE__*/React.createElement(FormButtons, {
|
|
14381
|
+
hasSubmit,
|
|
14382
|
+
hasReset
|
|
14383
|
+
})));
|
|
13298
14384
|
};
|
|
13299
14385
|
const santize = field => {
|
|
13300
14386
|
var _ref2, _field$label, _field$placeholder, _field$name, _field$name$split$joi, _field$name2;
|
|
@@ -13312,6 +14398,130 @@ const santize = field => {
|
|
|
13312
14398
|
name: (_field$name$split$joi = (_field$name2 = field.name) === null || _field$name2 === void 0 ? void 0 : _field$name2.split(" ").join("_").toLowerCase()) !== null && _field$name$split$joi !== void 0 ? _field$name$split$joi : ""
|
|
13313
14399
|
};
|
|
13314
14400
|
};
|
|
14401
|
+
const FormButtons = _ref3 => {
|
|
14402
|
+
let {
|
|
14403
|
+
hasSubmit = false,
|
|
14404
|
+
hasReset = false
|
|
14405
|
+
} = _ref3;
|
|
14406
|
+
return /*#__PURE__*/React.createElement(core.Group, {
|
|
14407
|
+
justify: "flex-end",
|
|
14408
|
+
grow: true,
|
|
14409
|
+
gap: 10,
|
|
14410
|
+
w: "100%",
|
|
14411
|
+
display: hasSubmit || hasReset ? "flex" : "none"
|
|
14412
|
+
}, /*#__PURE__*/React.createElement(core.Button, {
|
|
14413
|
+
leftSection: /*#__PURE__*/React.createElement(Icons, {
|
|
14414
|
+
name: "CloseCircle",
|
|
14415
|
+
size: 16
|
|
14416
|
+
}),
|
|
14417
|
+
variant: "filled",
|
|
14418
|
+
color: "red",
|
|
14419
|
+
size: "lg",
|
|
14420
|
+
radius: "xl",
|
|
14421
|
+
miw: "25%",
|
|
14422
|
+
type: "reset",
|
|
14423
|
+
style: {
|
|
14424
|
+
display: hasReset ? "block" : "none"
|
|
14425
|
+
},
|
|
14426
|
+
flex: 1
|
|
14427
|
+
}, /*#__PURE__*/React.createElement(core.Text, {
|
|
14428
|
+
fw: 400,
|
|
14429
|
+
fz: "sm",
|
|
14430
|
+
c: "white"
|
|
14431
|
+
}, "Cancel")), /*#__PURE__*/React.createElement(core.Button, {
|
|
14432
|
+
leftSection: /*#__PURE__*/React.createElement(Icons, {
|
|
14433
|
+
name: "TickCircle",
|
|
14434
|
+
size: 16
|
|
14435
|
+
}),
|
|
14436
|
+
variant: "filled",
|
|
14437
|
+
color: "adiba.5",
|
|
14438
|
+
size: "lg",
|
|
14439
|
+
radius: "xl",
|
|
14440
|
+
miw: "25%",
|
|
14441
|
+
type: "submit",
|
|
14442
|
+
style: {
|
|
14443
|
+
display: hasSubmit ? "block" : "none"
|
|
14444
|
+
},
|
|
14445
|
+
flex: 1
|
|
14446
|
+
}, /*#__PURE__*/React.createElement(core.Text, {
|
|
14447
|
+
fw: 300,
|
|
14448
|
+
fz: "sm",
|
|
14449
|
+
c: "white"
|
|
14450
|
+
}, "Save")));
|
|
14451
|
+
};
|
|
14452
|
+
|
|
14453
|
+
const MaskedTilePanel = _ref => {
|
|
14454
|
+
let {
|
|
14455
|
+
label,
|
|
14456
|
+
value,
|
|
14457
|
+
icon,
|
|
14458
|
+
onMasked = () => true
|
|
14459
|
+
} = _ref;
|
|
14460
|
+
const [masked, toggle] = hooks.useToggle();
|
|
14461
|
+
const name = masked ? "Eye" : "EyeSlash";
|
|
14462
|
+
return /*#__PURE__*/React.createElement(core.Card, {
|
|
14463
|
+
p: "md",
|
|
14464
|
+
bg: "gray.0",
|
|
14465
|
+
style: {
|
|
14466
|
+
borderRadius: "10px"
|
|
14467
|
+
}
|
|
14468
|
+
}, /*#__PURE__*/React.createElement(core.Group, {
|
|
14469
|
+
justify: "space-between"
|
|
14470
|
+
}, /*#__PURE__*/React.createElement(core.Stack, {
|
|
14471
|
+
gap: 0,
|
|
14472
|
+
p: 0
|
|
14473
|
+
}, /*#__PURE__*/React.createElement(core.Text, {
|
|
14474
|
+
fz: "sm",
|
|
14475
|
+
fw: 300,
|
|
14476
|
+
p: 0,
|
|
14477
|
+
c: "gray.7"
|
|
14478
|
+
}, label), /*#__PURE__*/React.createElement(core.TextInput, {
|
|
14479
|
+
type: masked ? "password" : "text",
|
|
14480
|
+
fw: 300,
|
|
14481
|
+
p: 0,
|
|
14482
|
+
c: "adiba",
|
|
14483
|
+
value: value,
|
|
14484
|
+
variant: "unstyled",
|
|
14485
|
+
readOnly: true
|
|
14486
|
+
})), /*#__PURE__*/React.createElement(core.ActionIcon, {
|
|
14487
|
+
variant: "transparent",
|
|
14488
|
+
onClick: () => onMasked() ? toggle() : void 0
|
|
14489
|
+
}, icon && /*#__PURE__*/React.createElement(Icons, {
|
|
14490
|
+
size: 24,
|
|
14491
|
+
color: "gray",
|
|
14492
|
+
name: name
|
|
14493
|
+
}))));
|
|
14494
|
+
};
|
|
14495
|
+
const TilePanel = _ref2 => {
|
|
14496
|
+
let {
|
|
14497
|
+
label,
|
|
14498
|
+
value
|
|
14499
|
+
} = _ref2;
|
|
14500
|
+
return /*#__PURE__*/React.createElement(core.Card, {
|
|
14501
|
+
p: "md",
|
|
14502
|
+
bg: "gray.0",
|
|
14503
|
+
style: {
|
|
14504
|
+
borderRadius: "10px"
|
|
14505
|
+
}
|
|
14506
|
+
}, /*#__PURE__*/React.createElement(core.Group, {
|
|
14507
|
+
justify: "space-between"
|
|
14508
|
+
}, /*#__PURE__*/React.createElement(core.Stack, {
|
|
14509
|
+
gap: 0,
|
|
14510
|
+
p: 0
|
|
14511
|
+
}, /*#__PURE__*/React.createElement(core.Text, {
|
|
14512
|
+
fz: "sm",
|
|
14513
|
+
fw: 300,
|
|
14514
|
+
p: 0,
|
|
14515
|
+
c: "gray.7"
|
|
14516
|
+
}, label), /*#__PURE__*/React.createElement(core.TextInput, {
|
|
14517
|
+
fw: 300,
|
|
14518
|
+
p: 0,
|
|
14519
|
+
c: "adiba",
|
|
14520
|
+
value: value,
|
|
14521
|
+
variant: "unstyled",
|
|
14522
|
+
readOnly: true
|
|
14523
|
+
}))));
|
|
14524
|
+
};
|
|
13315
14525
|
|
|
13316
14526
|
var ConfirmAnimation = "data:null;base64,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";
|
|
13317
14527
|
|
|
@@ -13499,6 +14709,7 @@ exports.File = File;
|
|
|
13499
14709
|
exports.Icons = Icons;
|
|
13500
14710
|
exports.InfoModal = InfoModal;
|
|
13501
14711
|
exports.LabelPanel = LabelPanel;
|
|
14712
|
+
exports.MaskedTilePanel = MaskedTilePanel;
|
|
13502
14713
|
exports.PageTitle = PageTitle;
|
|
13503
14714
|
exports.PaymentMethod = PaymentMethod;
|
|
13504
14715
|
exports.PaymentMethodAdd = PaymentMethodAdd;
|
|
@@ -13514,6 +14725,7 @@ exports.SimpleText = SimpleText;
|
|
|
13514
14725
|
exports.StackedColumn = StackedColumn;
|
|
13515
14726
|
exports.SubscriptionPlans = SubscriptionPlans;
|
|
13516
14727
|
exports.SuccessModal = SuccessModal;
|
|
14728
|
+
exports.TilePanel = TilePanel;
|
|
13517
14729
|
exports.TitleWithIndex = TitleWithIndex;
|
|
13518
14730
|
exports.TitledPanel = TitledPanel;
|
|
13519
14731
|
exports.TwoFactorModal = TwoFactorModal;
|