@portnet/ui 6.0.1 → 6.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.
- package/CHANGELOG.md +85 -0
- package/dist/esm/index.js +18 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/v2/__tests__/FieldError.test.js +0 -1
- package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FileCard.test.js +0 -1
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js +265 -0
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +248 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +380 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +0 -1
- package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/esm/v2/__tests__/labels-merge.test.js +0 -1
- package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/esm/v2/components/DateTimePicker.js +37 -4
- package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
- package/dist/esm/v2/components/Field.js +63 -1
- package/dist/esm/v2/components/Field.js.map +1 -1
- package/dist/esm/v2/components/index.js +27 -0
- package/dist/esm/v2/components/index.js.map +1 -1
- package/dist/esm/v2/index.js +12 -1
- package/dist/esm/v2/index.js.map +1 -1
- package/dist/esm/v2/patterns/FavoriteColumn.js +14 -61
- package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCheckbox.js +140 -0
- package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCombobox.js +5 -2
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDatePicker.js +13 -47
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDateTimePicker.js +150 -0
- package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/esm/v2/patterns/FormikInput.js +5 -2
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
- package/dist/esm/v2/patterns/FormikRadioGroup.js +141 -0
- package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/esm/v2/patterns/FormikSelect.js +5 -2
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/esm/v2/patterns/FormikTextarea.js +5 -2
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +25 -8
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/esm/v2/patterns/RowFavoriteToggle.js +122 -0
- package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/esm/v2/patterns/_pickerSerialisation.js +74 -0
- package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/esm/v2/patterns/index.js +83 -0
- package/dist/esm/v2/patterns/index.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js +209 -0
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/index.js +5 -0
- package/dist/esm/v2/personalization/capabilities/index.js.map +1 -1
- package/dist/esm/v2/personalization/index.js +18 -0
- package/dist/esm/v2/personalization/index.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/v2/__tests__/FieldError.test.js +26 -30
- package/dist/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/v2/__tests__/FieldWidth.test.js +150 -0
- package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FileCard.test.js +25 -29
- package/dist/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/v2/__tests__/FormikCheckbox.test.js +268 -0
- package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js +247 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js +381 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/v2/__tests__/MobileRowCard.test.js +52 -56
- package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/v2/__tests__/labels-merge.test.js +20 -24
- package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
- package/dist/v2/components/DateTimePicker.js +37 -4
- package/dist/v2/components/DateTimePicker.js.map +1 -1
- package/dist/v2/components/Field.d.ts +59 -1
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +62 -2
- package/dist/v2/components/Field.js.map +1 -1
- package/dist/v2/components/index.d.ts +27 -0
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/components/index.js.map +1 -1
- package/dist/v2/index.d.ts.map +1 -1
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.d.ts +9 -9
- package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.js +14 -61
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
- package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
- package/dist/v2/patterns/FormikCheckbox.js +147 -0
- package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/v2/patterns/FormikCombobox.d.ts +7 -1
- package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCombobox.js +5 -2
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts +13 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +33 -66
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
- package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
- package/dist/v2/patterns/FormikDateTimePicker.js +158 -0
- package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/v2/patterns/FormikInput.d.ts +11 -1
- package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
- package/dist/v2/patterns/FormikInput.js +5 -2
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
- package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
- package/dist/v2/patterns/FormikRadioGroup.js +148 -0
- package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/v2/patterns/FormikSelect.d.ts +9 -1
- package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
- package/dist/v2/patterns/FormikSelect.js +5 -2
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.d.ts +9 -1
- package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js +5 -2
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +14 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +25 -8
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.d.ts +92 -0
- package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
- package/dist/v2/patterns/RowFavoriteToggle.js +127 -0
- package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
- package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
- package/dist/v2/patterns/_pickerSerialisation.js +81 -0
- package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/v2/patterns/index.d.ts +87 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js +34 -0
- package/dist/v2/patterns/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js +215 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/v2/personalization/capabilities/index.d.ts +6 -0
- package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/index.js +13 -0
- package/dist/v2/personalization/capabilities/index.js.map +1 -1
- package/dist/v2/personalization/index.d.ts +18 -0
- package/dist/v2/personalization/index.d.ts.map +1 -1
- package/dist/v2/personalization/index.js +13 -0
- package/dist/v2/personalization/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
10
|
+
var _formik = require("formik");
|
|
11
|
+
var _Field = _interopRequireDefault(require("../components/Field"));
|
|
12
|
+
var _Checkbox = require("../components/Checkbox");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
20
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
21
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
22
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
23
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
24
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
25
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
26
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
27
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
|
|
28
|
+
* FormikCheckbox — bridge between Formik state and v2.Field + v2.Checkbox,
|
|
29
|
+
* for a SINGLE BOOLEAN field.
|
|
30
|
+
*
|
|
31
|
+
* ── WHY THIS EXISTS ALONGSIDE FormikCheckboxGroup (gap G-A) ──────────
|
|
32
|
+
*
|
|
33
|
+
* `FormikCheckboxGroup` holds an ARRAY of selected values. That is the right
|
|
34
|
+
* model for "pick several from a list", and the wrong one for a lone flag:
|
|
35
|
+
*
|
|
36
|
+
* autreInfo.fabrication -> boolean
|
|
37
|
+
* objectDeclaration.premiereDeclaration -> boolean
|
|
38
|
+
*
|
|
39
|
+
* A host with boolean-shaped state cannot adopt the group bridge without
|
|
40
|
+
* changing what its payload sends, so every module ended up re-wiring
|
|
41
|
+
* `Checkbox` + `useField` by hand — the exact duplication R-2.1 forbids, and
|
|
42
|
+
* the one place where it hurts most: hand-rolled bridges lose the error
|
|
43
|
+
* rendering. Reported from refonte-frontend (lot 5), whose local masked/checked
|
|
44
|
+
* inputs displayed no validation message at all, so a required-field error was
|
|
45
|
+
* invisible to the user (R-4.1 MUST).
|
|
46
|
+
*
|
|
47
|
+
* Usage:
|
|
48
|
+
*
|
|
49
|
+
* import { FormikCheckbox } from "@portnet/ui/lib/v2";
|
|
50
|
+
*
|
|
51
|
+
* <FormikCheckbox
|
|
52
|
+
* name="autreInfo.fabrication"
|
|
53
|
+
* label="Fabrication"
|
|
54
|
+
* />
|
|
55
|
+
*
|
|
56
|
+
* <FormikCheckbox
|
|
57
|
+
* name="conditions"
|
|
58
|
+
* label="J'accepte les conditions"
|
|
59
|
+
* required
|
|
60
|
+
* hint="Obligatoire pour soumettre la demande"
|
|
61
|
+
* />
|
|
62
|
+
*
|
|
63
|
+
* ── WHY THE CHECKBOX IS WRAPPED IN A CheckboxGroup ──────────────────
|
|
64
|
+
*
|
|
65
|
+
* `Field` clones its child with `error` and `disabled` props, because several
|
|
66
|
+
* v2 inputs read them directly. `MuiCheckbox` spreads unknown props down to
|
|
67
|
+
* the native `<input>`, so a bare `Checkbox` inside `Field` would emit
|
|
68
|
+
* `error="false"` onto the DOM (React warning, invalid attribute).
|
|
69
|
+
* `CheckboxGroup` destructures its props explicitly and drops the rest, and it
|
|
70
|
+
* forwards the ARIA grouping attributes `Field` injects. Same composition as
|
|
71
|
+
* `FormikCheckboxGroup`, for the same reason.
|
|
72
|
+
*
|
|
73
|
+
* ── LABEL AND REQUIRED ──────────────────────────────────────────────
|
|
74
|
+
*
|
|
75
|
+
* The label belongs to the CHECKBOX (rendered by `FormControlLabel`, which
|
|
76
|
+
* names the input implicitly), not above the field: a lone checkbox with a
|
|
77
|
+
* field label AND a control label reads as two questions. `Field` therefore
|
|
78
|
+
* receives no label, and `required` is expressed twice where it counts —
|
|
79
|
+
* visually by the asterisk appended to the control label, and to assistive
|
|
80
|
+
* technology by `aria-required` on the input itself (`Field`'s own injection
|
|
81
|
+
* lands on the group, which does not forward it).
|
|
82
|
+
*
|
|
83
|
+
* Errors surface only once the field is touched, and toggling marks it touched
|
|
84
|
+
* — same semantics as `FormikCheckboxGroup`. A checkbox has no meaningful
|
|
85
|
+
* blur-before-change, so waiting for a blur would keep the message hidden.
|
|
86
|
+
*
|
|
87
|
+
* Charter §03 · R-I.2, R-I.3, R-4.1. Peer dependency: formik >= 2.x.
|
|
88
|
+
*/
|
|
89
|
+
var FormikCheckbox = function FormikCheckbox(_ref) {
|
|
90
|
+
var name = _ref.name,
|
|
91
|
+
label = _ref.label,
|
|
92
|
+
required = _ref.required,
|
|
93
|
+
disabled = _ref.disabled,
|
|
94
|
+
hint = _ref.hint,
|
|
95
|
+
inputProps = _ref.inputProps;
|
|
96
|
+
var _useField = (0, _formik.useField)(name),
|
|
97
|
+
_useField2 = _slicedToArray(_useField, 2),
|
|
98
|
+
field = _useField2[0],
|
|
99
|
+
meta = _useField2[1];
|
|
100
|
+
var _useFormikContext = (0, _formik.useFormikContext)(),
|
|
101
|
+
setFieldValue = _useFormikContext.setFieldValue,
|
|
102
|
+
setFieldTouched = _useFormikContext.setFieldTouched;
|
|
103
|
+
var hasError = Boolean(meta.touched && meta.error);
|
|
104
|
+
var handleChange = function handleChange(event) {
|
|
105
|
+
setFieldValue(name, event.target.checked);
|
|
106
|
+
setFieldTouched(name, true, false);
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/* `=== true` and not a truthy test: hosts seed these fields with `null`
|
|
110
|
+
* (a not-yet-answered flag), and `checked={null}` makes the input
|
|
111
|
+
* uncontrolled for one render. */
|
|
112
|
+
var checked = field.value === true;
|
|
113
|
+
var controlLabel = required ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
114
|
+
children: [label, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
|
|
115
|
+
component: "span",
|
|
116
|
+
"aria-hidden": "true",
|
|
117
|
+
sx: {
|
|
118
|
+
color: "var(--danger)",
|
|
119
|
+
fontWeight: "var(--fw-bold, 700)",
|
|
120
|
+
marginInlineStart: "var(--s-1)"
|
|
121
|
+
},
|
|
122
|
+
children: "*"
|
|
123
|
+
})]
|
|
124
|
+
}) : label;
|
|
125
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field["default"], _objectSpread(_objectSpread({
|
|
126
|
+
error: hasError ? meta.error : null,
|
|
127
|
+
hint: !hasError ? hint : undefined,
|
|
128
|
+
group: true
|
|
129
|
+
}, disabled !== undefined ? {
|
|
130
|
+
disabled: disabled
|
|
131
|
+
} : {}), {}, {
|
|
132
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.CheckboxGroup, {
|
|
133
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.Checkbox, {
|
|
134
|
+
name: name,
|
|
135
|
+
label: controlLabel,
|
|
136
|
+
checked: checked,
|
|
137
|
+
onChange: handleChange,
|
|
138
|
+
disabled: disabled,
|
|
139
|
+
inputProps: _objectSpread(_objectSpread({}, required ? {
|
|
140
|
+
"aria-required": "true"
|
|
141
|
+
} : {}), inputProps)
|
|
142
|
+
})
|
|
143
|
+
})
|
|
144
|
+
}));
|
|
145
|
+
};
|
|
146
|
+
var _default = exports["default"] = FormikCheckbox;
|
|
147
|
+
//# sourceMappingURL=FormikCheckbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormikCheckbox.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_formik","_Field","_Checkbox","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","FormikCheckbox","_ref","label","required","disabled","inputProps","_useField","useField","_useField2","field","meta","_useFormikContext","useFormikContext","setFieldValue","setFieldTouched","hasError","Boolean","touched","error","handleChange","event","checked","controlLabel","jsxs","Fragment","children","jsx","component","sx","color","fontWeight","marginInlineStart","group","CheckboxGroup","Checkbox","onChange","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormikCheckbox.tsx"],"sourcesContent":["/**\r\n * FormikCheckbox — bridge between Formik state and v2.Field + v2.Checkbox,\r\n * for a SINGLE BOOLEAN field.\r\n *\r\n * ── WHY THIS EXISTS ALONGSIDE FormikCheckboxGroup (gap G-A) ──────────\r\n *\r\n * `FormikCheckboxGroup` holds an ARRAY of selected values. That is the right\r\n * model for \"pick several from a list\", and the wrong one for a lone flag:\r\n *\r\n * autreInfo.fabrication -> boolean\r\n * objectDeclaration.premiereDeclaration -> boolean\r\n *\r\n * A host with boolean-shaped state cannot adopt the group bridge without\r\n * changing what its payload sends, so every module ended up re-wiring\r\n * `Checkbox` + `useField` by hand — the exact duplication R-2.1 forbids, and\r\n * the one place where it hurts most: hand-rolled bridges lose the error\r\n * rendering. Reported from refonte-frontend (lot 5), whose local masked/checked\r\n * inputs displayed no validation message at all, so a required-field error was\r\n * invisible to the user (R-4.1 MUST).\r\n *\r\n * Usage:\r\n *\r\n * import { FormikCheckbox } from \"@portnet/ui/lib/v2\";\r\n *\r\n * <FormikCheckbox\r\n * name=\"autreInfo.fabrication\"\r\n * label=\"Fabrication\"\r\n * />\r\n *\r\n * <FormikCheckbox\r\n * name=\"conditions\"\r\n * label=\"J'accepte les conditions\"\r\n * required\r\n * hint=\"Obligatoire pour soumettre la demande\"\r\n * />\r\n *\r\n * ── WHY THE CHECKBOX IS WRAPPED IN A CheckboxGroup ──────────────────\r\n *\r\n * `Field` clones its child with `error` and `disabled` props, because several\r\n * v2 inputs read them directly. `MuiCheckbox` spreads unknown props down to\r\n * the native `<input>`, so a bare `Checkbox` inside `Field` would emit\r\n * `error=\"false\"` onto the DOM (React warning, invalid attribute).\r\n * `CheckboxGroup` destructures its props explicitly and drops the rest, and it\r\n * forwards the ARIA grouping attributes `Field` injects. Same composition as\r\n * `FormikCheckboxGroup`, for the same reason.\r\n *\r\n * ── LABEL AND REQUIRED ──────────────────────────────────────────────\r\n *\r\n * The label belongs to the CHECKBOX (rendered by `FormControlLabel`, which\r\n * names the input implicitly), not above the field: a lone checkbox with a\r\n * field label AND a control label reads as two questions. `Field` therefore\r\n * receives no label, and `required` is expressed twice where it counts —\r\n * visually by the asterisk appended to the control label, and to assistive\r\n * technology by `aria-required` on the input itself (`Field`'s own injection\r\n * lands on the group, which does not forward it).\r\n *\r\n * Errors surface only once the field is touched, and toggling marks it touched\r\n * — same semantics as `FormikCheckboxGroup`. A checkbox has no meaningful\r\n * blur-before-change, so waiting for a blur would keep the message hidden.\r\n *\r\n * Charter §03 · R-I.2, R-I.3, R-4.1. Peer dependency: formik >= 2.x.\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport { useField, useFormikContext } from \"formik\";\r\nimport Field from \"../components/Field\";\r\nimport { Checkbox, CheckboxGroup } from \"../components/Checkbox\";\r\n\r\nexport interface FormikCheckboxProps {\r\n name: string;\r\n /** Label rendered next to the checkbox — it names the control. */\r\n label?: React.ReactNode | undefined;\r\n /** Adds the asterisk on the label and `aria-required` on the input. */\r\n required?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n hint?: React.ReactNode | undefined;\r\n /** Native `<input>` attributes, routed to the checkbox input (v9 slot). */\r\n inputProps?: React.InputHTMLAttributes<HTMLInputElement> | undefined;\r\n}\r\n\r\nconst FormikCheckbox = ({\r\n name,\r\n label,\r\n required,\r\n disabled,\r\n hint,\r\n inputProps,\r\n}: FormikCheckboxProps) => {\r\n const [field, meta] = useField<boolean>(name);\r\n const { setFieldValue, setFieldTouched } = useFormikContext();\r\n const hasError = Boolean(meta.touched && meta.error);\r\n\r\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n setFieldValue(name, event.target.checked);\r\n setFieldTouched(name, true, false);\r\n };\r\n\r\n /* `=== true` and not a truthy test: hosts seed these fields with `null`\r\n * (a not-yet-answered flag), and `checked={null}` makes the input\r\n * uncontrolled for one render. */\r\n const checked = field.value === true;\r\n\r\n const controlLabel = required ? (\r\n <>\r\n {label}\r\n <Box\r\n component=\"span\"\r\n aria-hidden=\"true\"\r\n sx={{\r\n color: \"var(--danger)\",\r\n fontWeight: \"var(--fw-bold, 700)\",\r\n marginInlineStart: \"var(--s-1)\",\r\n }}\r\n >\r\n *\r\n </Box>\r\n </>\r\n ) : (\r\n label\r\n );\r\n\r\n return (\r\n <Field\r\n error={hasError ? meta.error : null}\r\n hint={!hasError ? hint : undefined}\r\n group\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n >\r\n <CheckboxGroup>\r\n <Checkbox\r\n name={name}\r\n label={controlLabel}\r\n checked={checked}\r\n onChange={handleChange}\r\n disabled={disabled}\r\n inputProps={{\r\n ...(required ? { \"aria-required\": \"true\" } : {}),\r\n ...inputProps,\r\n }}\r\n />\r\n </CheckboxGroup>\r\n </Field>\r\n );\r\n};\r\n\r\nexport default FormikCheckbox;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* the helper line under each Combobox row.
|
|
19
19
|
*/
|
|
20
20
|
import type { ReactNode } from "react";
|
|
21
|
+
import type { FieldWidth } from "../components/Field";
|
|
21
22
|
import type { ComboboxProps, ComboboxOptionValue } from "../components/Combobox";
|
|
22
23
|
export interface FormikComboboxProps<TOption = unknown> extends Omit<ComboboxProps, "value" | "onChange" | "options" | "loading" | "disabled" | "getOptionLabel"> {
|
|
23
24
|
name: string;
|
|
@@ -36,8 +37,13 @@ export interface FormikComboboxProps<TOption = unknown> extends Omit<ComboboxPro
|
|
|
36
37
|
* the legacy `descriptionField` prop on AppFormikSelect.
|
|
37
38
|
*/
|
|
38
39
|
descriptionField?: string | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Gabarit de largeur semantique (G-H). Le standard range les « complex
|
|
42
|
+
* search auto-completes » en `l` : c'est le cas le plus courant ici.
|
|
43
|
+
*/
|
|
44
|
+
width?: FieldWidth | undefined;
|
|
39
45
|
onSelectionChange?: ((raw: TOption | null) => void) | undefined;
|
|
40
46
|
}
|
|
41
|
-
declare function FormikCombobox<TOption = unknown>({ name, label, required, options, loading, disabled, htmlFor, hint, getOptionLabel, getOptionValue, descriptionField, onSelectionChange, ...rest }: FormikComboboxProps<TOption>): import("react").JSX.Element;
|
|
47
|
+
declare function FormikCombobox<TOption = unknown>({ name, label, required, options, loading, disabled, htmlFor, hint, getOptionLabel, getOptionValue, descriptionField, width, onSelectionChange, ...rest }: FormikComboboxProps<TOption>): import("react").JSX.Element;
|
|
42
48
|
export default FormikCombobox;
|
|
43
49
|
//# sourceMappingURL=FormikCombobox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormikCombobox.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikCombobox.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EACV,aAAa,EAEb,mBAAmB,EAEpB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,mBAAmB,CAAC,OAAO,GAAG,OAAO,CACpD,SAAQ,IAAI,CACV,aAAa,EACb,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAC7E;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3D,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACrE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,iBAAiB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACjE;AAED,iBAAS,cAAc,CAAC,OAAO,GAAG,OAAO,EAAE,EACzC,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAY,EACZ,OAAO,EACP,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,GAAG,IAAI,EACR,EAAE,mBAAmB,CAAC,OAAO,CAAC,+
|
|
1
|
+
{"version":3,"file":"FormikCombobox.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikCombobox.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EACV,aAAa,EAEb,mBAAmB,EAEpB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,mBAAmB,CAAC,OAAO,GAAG,OAAO,CACpD,SAAQ,IAAI,CACV,aAAa,EACb,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAC7E;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3D,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACrE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,iBAAiB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACjE;AAED,iBAAS,cAAc,CAAC,OAAO,GAAG,OAAO,EAAE,EACzC,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAY,EACZ,OAAO,EACP,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,iBAAiB,EACjB,GAAG,IAAI,EACR,EAAE,mBAAmB,CAAC,OAAO,CAAC,+BAmE9B;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -8,7 +8,7 @@ var _formik = require("formik");
|
|
|
8
8
|
var _Field = _interopRequireDefault(require("../components/Field"));
|
|
9
9
|
var _Combobox = _interopRequireDefault(require("../components/Combobox"));
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
-
var _excluded = ["name", "label", "required", "options", "loading", "disabled", "htmlFor", "hint", "getOptionLabel", "getOptionValue", "descriptionField", "onSelectionChange"];
|
|
11
|
+
var _excluded = ["name", "label", "required", "options", "loading", "disabled", "htmlFor", "hint", "getOptionLabel", "getOptionValue", "descriptionField", "width", "onSelectionChange"];
|
|
12
12
|
/**
|
|
13
13
|
* FormikCombobox — bridge between Formik state and v2.Field +
|
|
14
14
|
* v2.Combobox.
|
|
@@ -57,6 +57,7 @@ function FormikCombobox(_ref) {
|
|
|
57
57
|
getOptionLabel = _ref.getOptionLabel,
|
|
58
58
|
getOptionValue = _ref.getOptionValue,
|
|
59
59
|
descriptionField = _ref.descriptionField,
|
|
60
|
+
width = _ref.width,
|
|
60
61
|
onSelectionChange = _ref.onSelectionChange,
|
|
61
62
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
62
63
|
var _useField = (0, _formik.useField)(name),
|
|
@@ -98,7 +99,7 @@ function FormikCombobox(_ref) {
|
|
|
98
99
|
onSelectionChange(picked);
|
|
99
100
|
}
|
|
100
101
|
};
|
|
101
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field["default"], _objectSpread(_objectSpread(_objectSpread({
|
|
102
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field["default"], _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
102
103
|
label: label,
|
|
103
104
|
error: hasError ? meta.error : null,
|
|
104
105
|
hint: !hasError ? hint : undefined,
|
|
@@ -107,6 +108,8 @@ function FormikCombobox(_ref) {
|
|
|
107
108
|
required: required
|
|
108
109
|
} : {}), disabled !== undefined ? {
|
|
109
110
|
disabled: disabled
|
|
111
|
+
} : {}), width !== undefined ? {
|
|
112
|
+
width: width
|
|
110
113
|
} : {}), {}, {
|
|
111
114
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Combobox["default"], _objectSpread(_objectSpread({
|
|
112
115
|
value: (_field$value = field.value) !== null && _field$value !== void 0 ? _field$value : null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormikCombobox.js","names":["_formik","require","_Field","_interopRequireDefault","_Combobox","_jsxRuntime","_excluded","obj","__esModule","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","_typeof","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","iterator","constructor","prototype","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","name","Array","from","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","FormikCombobox","_ref","_field$value","label","required","_ref$options","options","loading","disabled","htmlFor","getOptionLabel","getOptionValue","descriptionField","onSelectionChange","rest","_useField","useField","_useField2","field","meta","_useFormikContext","useFormikContext","setFieldValue","setFieldTouched","hasError","Boolean","touched","error","v2Options","map","opt","_ref2","_ref3","rec","rawLabel","safeLabel","helper","__raw","handleChange","_raw","_v2Options$find","picked","find","jsx","children","onChange","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormikCombobox.tsx"],"sourcesContent":["/**\r\n * FormikCombobox — bridge between Formik state and v2.Field +\r\n * v2.Combobox.\r\n *\r\n * Maps caller-supplied raw options to v2.Combobox's {value, label,\r\n * helper} shape and exposes onSelectionChange(rawOption) for\r\n * consumers that need cross-field side effects on pick.\r\n *\r\n * Charter R-Sel.1 → R-Sel.4. Peer dependency: formik >= 2.x.\r\n *\r\n * Hardening notes:\r\n * - B7: defensive String() cast on the resolved label so a\r\n * consumer-supplied getOptionLabel that returns a React node\r\n * never crashes Autocomplete with the cryptic \"Objects are\r\n * not valid as a React child\" error.\r\n * - B10: `descriptionField` alias mirrors the legacy\r\n * AppFormikSelect API — surfaces option[descriptionField] as\r\n * the helper line under each Combobox row.\r\n */\r\n\r\nimport type { ReactNode } from \"react\";\r\nimport { useField, useFormikContext } from \"formik\";\r\nimport Field from \"../components/Field\";\r\nimport Combobox from \"../components/Combobox\";\r\nimport type {\r\n ComboboxProps,\r\n ComboboxOption,\r\n ComboboxOptionValue,\r\n ComboboxValue,\r\n} from \"../components/Combobox\";\r\n\r\nexport interface FormikComboboxProps<TOption = unknown>\r\n extends Omit<\r\n ComboboxProps,\r\n \"value\" | \"onChange\" | \"options\" | \"loading\" | \"disabled\" | \"getOptionLabel\"\r\n > {\r\n name: string;\r\n label?: ReactNode | undefined;\r\n required?: boolean | undefined;\r\n options?: readonly TOption[] | undefined;\r\n loading?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n htmlFor?: string | undefined;\r\n hint?: ReactNode | undefined;\r\n getOptionLabel?: ((opt: TOption) => ReactNode) | undefined;\r\n getOptionValue?: ((opt: TOption) => ComboboxOptionValue) | undefined;\r\n /**\r\n * Key on each raw option whose value should appear as a helper\r\n * line beneath the main label in the dropdown. Equivalent to\r\n * the legacy `descriptionField` prop on AppFormikSelect.\r\n */\r\n descriptionField?: string | undefined;\r\n onSelectionChange?: ((raw: TOption | null) => void) | undefined;\r\n}\r\n\r\nfunction FormikCombobox<TOption = unknown>({\r\n name,\r\n label,\r\n required,\r\n options = [],\r\n loading,\r\n disabled,\r\n htmlFor,\r\n hint,\r\n getOptionLabel,\r\n getOptionValue,\r\n descriptionField,\r\n onSelectionChange,\r\n ...rest\r\n}: FormikComboboxProps<TOption>) {\r\n const [field, meta] = useField(name);\r\n const { setFieldValue, setFieldTouched } = useFormikContext();\r\n const hasError = Boolean(meta.touched && meta.error);\r\n\r\n const v2Options = options.map((opt) => {\r\n if (opt == null || typeof opt !== \"object\") return opt;\r\n const rec = opt as Record<string, unknown>;\r\n const rawLabel =\r\n typeof getOptionLabel === \"function\" ? getOptionLabel(opt) : rec[\"label\"];\r\n // B7: harden against getOptionLabel returning a React node.\r\n // v2.Combobox feeds the label back through its internal\r\n // labelOf when computing the displayed value, and that path\r\n // assumes string. Always coerce defensively.\r\n const safeLabel =\r\n typeof rawLabel === \"string\" || rawLabel == null\r\n ? rawLabel\r\n : String(rawLabel);\r\n // B10: descriptionField alias → helper. Falls back to the\r\n // canonical `helper`/`summary` fields if neither is set.\r\n const helper =\r\n ((descriptionField && rec[descriptionField]) ?? rec[\"helper\"] ?? rec[\"summary\"]) as ReactNode;\r\n return {\r\n value: typeof getOptionValue === \"function\" ? getOptionValue(opt) : opt,\r\n label: safeLabel,\r\n helper,\r\n __raw: opt,\r\n };\r\n });\r\n\r\n const handleChange = (next: ComboboxValue): void => {\r\n setFieldValue(name, next);\r\n setFieldTouched(name, true, false);\r\n if (typeof onSelectionChange === \"function\") {\r\n const picked =\r\n (\r\n v2Options.find(\r\n (o) =>\r\n o != null &&\r\n typeof o === \"object\" &&\r\n \"value\" in o &&\r\n (o as { value?: unknown }).value === next\r\n ) as { __raw?: unknown } | undefined\r\n )?.__raw ?? null;\r\n onSelectionChange(picked as TOption | null);\r\n }\r\n };\r\n\r\n return (\r\n <Field\r\n label={label}\r\n error={hasError ? meta.error : null}\r\n hint={!hasError ? hint : undefined}\r\n htmlFor={htmlFor || name}\r\n {...(required !== undefined ? { required } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n >\r\n <Combobox\r\n value={field.value ?? null}\r\n options={v2Options as Array<string | ComboboxOption>}\r\n onChange={handleChange}\r\n {...rest}\r\n {...(loading !== undefined ? { loading } : {})}\r\n />\r\n </Field>\r\n );\r\n}\r\n\r\nexport default FormikCombobox;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormikCombobox.js","names":["_formik","require","_Field","_interopRequireDefault","_Combobox","_jsxRuntime","_excluded","obj","__esModule","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","_typeof","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","iterator","constructor","prototype","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","name","Array","from","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","FormikCombobox","_ref","_field$value","label","required","_ref$options","options","loading","disabled","htmlFor","getOptionLabel","getOptionValue","descriptionField","width","onSelectionChange","rest","_useField","useField","_useField2","field","meta","_useFormikContext","useFormikContext","setFieldValue","setFieldTouched","hasError","Boolean","touched","error","v2Options","map","opt","_ref2","_ref3","rec","rawLabel","safeLabel","helper","__raw","handleChange","_raw","_v2Options$find","picked","find","jsx","children","onChange","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormikCombobox.tsx"],"sourcesContent":["/**\r\n * FormikCombobox — bridge between Formik state and v2.Field +\r\n * v2.Combobox.\r\n *\r\n * Maps caller-supplied raw options to v2.Combobox's {value, label,\r\n * helper} shape and exposes onSelectionChange(rawOption) for\r\n * consumers that need cross-field side effects on pick.\r\n *\r\n * Charter R-Sel.1 → R-Sel.4. Peer dependency: formik >= 2.x.\r\n *\r\n * Hardening notes:\r\n * - B7: defensive String() cast on the resolved label so a\r\n * consumer-supplied getOptionLabel that returns a React node\r\n * never crashes Autocomplete with the cryptic \"Objects are\r\n * not valid as a React child\" error.\r\n * - B10: `descriptionField` alias mirrors the legacy\r\n * AppFormikSelect API — surfaces option[descriptionField] as\r\n * the helper line under each Combobox row.\r\n */\r\n\r\nimport type { ReactNode } from \"react\";\r\nimport { useField, useFormikContext } from \"formik\";\r\nimport Field from \"../components/Field\";\r\nimport Combobox from \"../components/Combobox\";\r\nimport type { FieldWidth } from \"../components/Field\";\r\nimport type {\r\n ComboboxProps,\r\n ComboboxOption,\r\n ComboboxOptionValue,\r\n ComboboxValue,\r\n} from \"../components/Combobox\";\r\n\r\nexport interface FormikComboboxProps<TOption = unknown>\r\n extends Omit<\r\n ComboboxProps,\r\n \"value\" | \"onChange\" | \"options\" | \"loading\" | \"disabled\" | \"getOptionLabel\"\r\n > {\r\n name: string;\r\n label?: ReactNode | undefined;\r\n required?: boolean | undefined;\r\n options?: readonly TOption[] | undefined;\r\n loading?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n htmlFor?: string | undefined;\r\n hint?: ReactNode | undefined;\r\n getOptionLabel?: ((opt: TOption) => ReactNode) | undefined;\r\n getOptionValue?: ((opt: TOption) => ComboboxOptionValue) | undefined;\r\n /**\r\n * Key on each raw option whose value should appear as a helper\r\n * line beneath the main label in the dropdown. Equivalent to\r\n * the legacy `descriptionField` prop on AppFormikSelect.\r\n */\r\n descriptionField?: string | undefined;\r\n /**\r\n * Gabarit de largeur semantique (G-H). Le standard range les « complex\r\n * search auto-completes » en `l` : c'est le cas le plus courant ici.\r\n */\r\n width?: FieldWidth | undefined;\r\n onSelectionChange?: ((raw: TOption | null) => void) | undefined;\r\n}\r\n\r\nfunction FormikCombobox<TOption = unknown>({\r\n name,\r\n label,\r\n required,\r\n options = [],\r\n loading,\r\n disabled,\r\n htmlFor,\r\n hint,\r\n getOptionLabel,\r\n getOptionValue,\r\n descriptionField,\r\n width,\r\n onSelectionChange,\r\n ...rest\r\n}: FormikComboboxProps<TOption>) {\r\n const [field, meta] = useField(name);\r\n const { setFieldValue, setFieldTouched } = useFormikContext();\r\n const hasError = Boolean(meta.touched && meta.error);\r\n\r\n const v2Options = options.map((opt) => {\r\n if (opt == null || typeof opt !== \"object\") return opt;\r\n const rec = opt as Record<string, unknown>;\r\n const rawLabel =\r\n typeof getOptionLabel === \"function\" ? getOptionLabel(opt) : rec[\"label\"];\r\n // B7: harden against getOptionLabel returning a React node.\r\n // v2.Combobox feeds the label back through its internal\r\n // labelOf when computing the displayed value, and that path\r\n // assumes string. Always coerce defensively.\r\n const safeLabel =\r\n typeof rawLabel === \"string\" || rawLabel == null\r\n ? rawLabel\r\n : String(rawLabel);\r\n // B10: descriptionField alias → helper. Falls back to the\r\n // canonical `helper`/`summary` fields if neither is set.\r\n const helper =\r\n ((descriptionField && rec[descriptionField]) ?? rec[\"helper\"] ?? rec[\"summary\"]) as ReactNode;\r\n return {\r\n value: typeof getOptionValue === \"function\" ? getOptionValue(opt) : opt,\r\n label: safeLabel,\r\n helper,\r\n __raw: opt,\r\n };\r\n });\r\n\r\n const handleChange = (next: ComboboxValue): void => {\r\n setFieldValue(name, next);\r\n setFieldTouched(name, true, false);\r\n if (typeof onSelectionChange === \"function\") {\r\n const picked =\r\n (\r\n v2Options.find(\r\n (o) =>\r\n o != null &&\r\n typeof o === \"object\" &&\r\n \"value\" in o &&\r\n (o as { value?: unknown }).value === next\r\n ) as { __raw?: unknown } | undefined\r\n )?.__raw ?? null;\r\n onSelectionChange(picked as TOption | null);\r\n }\r\n };\r\n\r\n return (\r\n <Field\r\n label={label}\r\n error={hasError ? meta.error : null}\r\n hint={!hasError ? hint : undefined}\r\n htmlFor={htmlFor || name}\r\n {...(required !== undefined ? { required } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n {...(width !== undefined ? { width } : {})}\r\n >\r\n <Combobox\r\n value={field.value ?? null}\r\n options={v2Options as Array<string | ComboboxOption>}\r\n onChange={handleChange}\r\n {...rest}\r\n {...(loading !== undefined ? { loading } : {})}\r\n />\r\n </Field>\r\n );\r\n}\r\n\r\nexport default FormikCombobox;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -48,6 +48,12 @@
|
|
|
48
48
|
* objects, so they have no serialisation step and no equivalent asymmetry;
|
|
49
49
|
* _pickerShared carries only Date<->Moment converters, not string parsing.
|
|
50
50
|
*
|
|
51
|
+
* UPDATE (gap G-E): `FormikDateTimePicker` now exists too, and the two bridges
|
|
52
|
+
* SHARE `coerceToDate` / `serialiseDate` via `./_pickerSerialisation`. Keeping
|
|
53
|
+
* a private copy in each would have re-created the very asymmetry S-03
|
|
54
|
+
* describes, in a form even harder to spot: two bridges that look alike, that
|
|
55
|
+
* nobody compares, and that each look correct on their own.
|
|
56
|
+
*
|
|
51
57
|
* Modal / Drawer usage (MUI X v9):
|
|
52
58
|
* When rendered inside a v2.Drawer or a MUI Modal, the DatePicker
|
|
53
59
|
* calendar popup may render behind the modal surface (both default
|
|
@@ -65,6 +71,7 @@
|
|
|
65
71
|
* Charter R-I.*.
|
|
66
72
|
*/
|
|
67
73
|
import * as React from "react";
|
|
74
|
+
import type { FieldWidth } from "../components/Field";
|
|
68
75
|
import type { DatePickerProps } from "../components/DatePicker";
|
|
69
76
|
export interface FormikDatePickerProps extends Omit<DatePickerProps, "value" | "onChange" | "disabled" | "error" | "label" | "readOnly"> {
|
|
70
77
|
name: string;
|
|
@@ -109,7 +116,12 @@ export interface FormikDatePickerProps extends Omit<DatePickerProps, "value" | "
|
|
|
109
116
|
* read as 31/12/2026.
|
|
110
117
|
*/
|
|
111
118
|
readOnlyFormat?: string | undefined;
|
|
119
|
+
/**
|
|
120
|
+
* Gabarit de largeur semantique (G-H). Le standard range explicitement les
|
|
121
|
+
* dates en `s` (6 a 15 caracteres). Ne s'applique pas en mode `readOnly`.
|
|
122
|
+
*/
|
|
123
|
+
width?: FieldWidth | undefined;
|
|
112
124
|
}
|
|
113
|
-
declare const FormikDatePicker: ({ name, label, required, disabled, readOnly, readOnlyFormat, htmlFor, hint, outputFormat, ...rest }: FormikDatePickerProps) => React.JSX.Element;
|
|
125
|
+
declare const FormikDatePicker: ({ name, label, required, disabled, readOnly, readOnlyFormat, htmlFor, hint, outputFormat, width, ...rest }: FormikDatePickerProps) => React.JSX.Element;
|
|
114
126
|
export default FormikDatePicker;
|
|
115
127
|
//# sourceMappingURL=FormikDatePicker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormikDatePicker.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikDatePicker.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"FormikDatePicker.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikDatePicker.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,WAAW,qBACf,SAAQ,IAAI,CACV,eAAe,EACf,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CACnE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CAChC;AAED,QAAA,MAAM,gBAAgB,GAAI,4GAYvB,qBAAqB,sBA+CvB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
@@ -10,25 +11,10 @@ var _formik = require("formik");
|
|
|
10
11
|
var _Field = _interopRequireDefault(require("../components/Field"));
|
|
11
12
|
var _DatePicker = _interopRequireDefault(require("../components/DatePicker"));
|
|
12
13
|
var _FormikDisplay = _interopRequireDefault(require("../components/FormikDisplay"));
|
|
14
|
+
var _pickerSerialisation = require("./_pickerSerialisation");
|
|
13
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
-
var _excluded = ["name", "label", "required", "disabled", "readOnly", "readOnlyFormat", "htmlFor", "hint", "outputFormat"];
|
|
15
|
-
|
|
16
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
20
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
21
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
22
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
23
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
24
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
25
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
26
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
27
|
-
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
28
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
29
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
30
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
31
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /**
|
|
16
|
+
var _excluded = ["name", "label", "required", "disabled", "readOnly", "readOnlyFormat", "htmlFor", "hint", "outputFormat", "width"];
|
|
17
|
+
/**
|
|
32
18
|
* FormikDatePicker — bridge between Formik state and v2.Field +
|
|
33
19
|
* v2.DatePicker.
|
|
34
20
|
*
|
|
@@ -78,6 +64,12 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
78
64
|
* objects, so they have no serialisation step and no equivalent asymmetry;
|
|
79
65
|
* _pickerShared carries only Date<->Moment converters, not string parsing.
|
|
80
66
|
*
|
|
67
|
+
* UPDATE (gap G-E): `FormikDateTimePicker` now exists too, and the two bridges
|
|
68
|
+
* SHARE `coerceToDate` / `serialiseDate` via `./_pickerSerialisation`. Keeping
|
|
69
|
+
* a private copy in each would have re-created the very asymmetry S-03
|
|
70
|
+
* describes, in a form even harder to spot: two bridges that look alike, that
|
|
71
|
+
* nobody compares, and that each look correct on their own.
|
|
72
|
+
*
|
|
81
73
|
* Modal / Drawer usage (MUI X v9):
|
|
82
74
|
* When rendered inside a v2.Drawer or a MUI Modal, the DatePicker
|
|
83
75
|
* calendar popup may render behind the modal surface (both default
|
|
@@ -94,50 +86,22 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
94
86
|
*
|
|
95
87
|
* Charter R-I.*.
|
|
96
88
|
*/
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
var
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
* that does not match yields null rather than moment's best guess.
|
|
114
|
-
*
|
|
115
|
-
* Guarded on `typeof raw === "string"` so a numeric timestamp keeps the
|
|
116
|
-
* `new Date(number)` path — moment(number, format) is meaningless. "iso" is
|
|
117
|
-
* excluded: it is not a moment token, and `new Date(isoString)` is already
|
|
118
|
-
* correct. */
|
|
119
|
-
if (typeof raw === "string" && outputFormat !== undefined && outputFormat !== "iso") {
|
|
120
|
-
var parsed = (0, _moment["default"])(raw, outputFormat, true);
|
|
121
|
-
return parsed.isValid() ? parsed.toDate() : null;
|
|
122
|
-
}
|
|
123
|
-
var d = new Date(raw);
|
|
124
|
-
return isNaN(d.getTime()) ? null : d;
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Serialise a Date to the requested output format.
|
|
129
|
-
* undefined → return the Date as-is (default — backward-compat)
|
|
130
|
-
* "iso" → Date.toISOString()
|
|
131
|
-
* any string → moment(date).format(outputFormat)
|
|
132
|
-
*/
|
|
133
|
-
function serialiseDate(date, outputFormat) {
|
|
134
|
-
if (!date || !(date instanceof Date) || isNaN(date.getTime())) {
|
|
135
|
-
return outputFormat ? "" : null;
|
|
136
|
-
}
|
|
137
|
-
if (!outputFormat) return date;
|
|
138
|
-
if (outputFormat === "iso") return date.toISOString();
|
|
139
|
-
return (0, _moment["default"])(date).format(outputFormat);
|
|
140
|
-
}
|
|
89
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
90
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
91
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
92
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
93
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
94
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
95
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
96
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
97
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
98
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
99
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
100
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
101
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
102
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
103
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
104
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
141
105
|
var FormikDatePicker = function FormikDatePicker(_ref) {
|
|
142
106
|
var name = _ref.name,
|
|
143
107
|
label = _ref.label,
|
|
@@ -149,6 +113,7 @@ var FormikDatePicker = function FormikDatePicker(_ref) {
|
|
|
149
113
|
htmlFor = _ref.htmlFor,
|
|
150
114
|
hint = _ref.hint,
|
|
151
115
|
outputFormat = _ref.outputFormat,
|
|
116
|
+
width = _ref.width,
|
|
152
117
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
153
118
|
var _useField = (0, _formik.useField)(name),
|
|
154
119
|
_useField2 = _slicedToArray(_useField, 2),
|
|
@@ -175,12 +140,12 @@ var FormikDatePicker = function FormikDatePicker(_ref) {
|
|
|
175
140
|
hint: hint
|
|
176
141
|
} : {}), {}, {
|
|
177
142
|
format: function format(raw) {
|
|
178
|
-
var parsed = coerceToDate(raw, outputFormat);
|
|
143
|
+
var parsed = (0, _pickerSerialisation.coerceToDate)(raw, outputFormat);
|
|
179
144
|
return parsed ? (0, _moment["default"])(parsed).format(readOnlyFormat) : "\u2014";
|
|
180
145
|
}
|
|
181
146
|
}));
|
|
182
147
|
}
|
|
183
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field["default"], _objectSpread(_objectSpread(_objectSpread({
|
|
148
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field["default"], _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
184
149
|
label: label,
|
|
185
150
|
error: hasError ? meta.error : null,
|
|
186
151
|
hint: !hasError ? hint : undefined,
|
|
@@ -189,11 +154,13 @@ var FormikDatePicker = function FormikDatePicker(_ref) {
|
|
|
189
154
|
required: required
|
|
190
155
|
} : {}), disabled !== undefined ? {
|
|
191
156
|
disabled: disabled
|
|
157
|
+
} : {}), width !== undefined ? {
|
|
158
|
+
width: width
|
|
192
159
|
} : {}), {}, {
|
|
193
160
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DatePicker["default"], _objectSpread({
|
|
194
|
-
value: coerceToDate(field.value, outputFormat),
|
|
161
|
+
value: (0, _pickerSerialisation.coerceToDate)(field.value, outputFormat),
|
|
195
162
|
onChange: function onChange(next) {
|
|
196
|
-
setFieldValue(name, serialiseDate(next, outputFormat));
|
|
163
|
+
setFieldValue(name, (0, _pickerSerialisation.serialiseDate)(next, outputFormat));
|
|
197
164
|
setFieldTouched(name, true, false);
|
|
198
165
|
}
|
|
199
166
|
}, rest))
|