@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.
Files changed (158) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/dist/esm/index.js +18 -0
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/v2/__tests__/FieldError.test.js +0 -1
  5. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
  6. package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
  7. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
  8. package/dist/esm/v2/__tests__/FileCard.test.js +0 -1
  9. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
  10. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +265 -0
  11. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  12. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +248 -0
  13. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  14. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +380 -0
  15. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  16. package/dist/esm/v2/__tests__/MobileRowCard.test.js +0 -1
  17. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
  18. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  19. package/dist/esm/v2/__tests__/labels-merge.test.js +0 -1
  20. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
  21. package/dist/esm/v2/components/DateTimePicker.js +37 -4
  22. package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
  23. package/dist/esm/v2/components/Field.js +63 -1
  24. package/dist/esm/v2/components/Field.js.map +1 -1
  25. package/dist/esm/v2/components/index.js +27 -0
  26. package/dist/esm/v2/components/index.js.map +1 -1
  27. package/dist/esm/v2/index.js +12 -1
  28. package/dist/esm/v2/index.js.map +1 -1
  29. package/dist/esm/v2/patterns/FavoriteColumn.js +14 -61
  30. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
  31. package/dist/esm/v2/patterns/FormikCheckbox.js +140 -0
  32. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
  33. package/dist/esm/v2/patterns/FormikCombobox.js +5 -2
  34. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
  35. package/dist/esm/v2/patterns/FormikDatePicker.js +13 -47
  36. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
  37. package/dist/esm/v2/patterns/FormikDateTimePicker.js +150 -0
  38. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
  39. package/dist/esm/v2/patterns/FormikInput.js +5 -2
  40. package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
  41. package/dist/esm/v2/patterns/FormikRadioGroup.js +141 -0
  42. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
  43. package/dist/esm/v2/patterns/FormikSelect.js +5 -2
  44. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
  45. package/dist/esm/v2/patterns/FormikTextarea.js +5 -2
  46. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
  47. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +25 -8
  48. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  49. package/dist/esm/v2/patterns/RowFavoriteToggle.js +122 -0
  50. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
  51. package/dist/esm/v2/patterns/_pickerSerialisation.js +74 -0
  52. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
  53. package/dist/esm/v2/patterns/index.js +83 -0
  54. package/dist/esm/v2/patterns/index.js.map +1 -1
  55. package/dist/esm/v2/personalization/capabilities/gridPreferences.js +209 -0
  56. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  57. package/dist/esm/v2/personalization/capabilities/index.js +5 -0
  58. package/dist/esm/v2/personalization/capabilities/index.js.map +1 -1
  59. package/dist/esm/v2/personalization/index.js +18 -0
  60. package/dist/esm/v2/personalization/index.js.map +1 -1
  61. package/dist/index.d.ts +2 -0
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +14 -0
  64. package/dist/index.js.map +1 -1
  65. package/dist/v2/__tests__/FieldError.test.js +26 -30
  66. package/dist/v2/__tests__/FieldError.test.js.map +1 -1
  67. package/dist/v2/__tests__/FieldWidth.test.js +150 -0
  68. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
  69. package/dist/v2/__tests__/FileCard.test.js +25 -29
  70. package/dist/v2/__tests__/FileCard.test.js.map +1 -1
  71. package/dist/v2/__tests__/FormikCheckbox.test.js +268 -0
  72. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  73. package/dist/v2/__tests__/FormikDateTimePicker.test.js +247 -0
  74. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  75. package/dist/v2/__tests__/FormikRadioGroup.test.js +381 -0
  76. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  77. package/dist/v2/__tests__/MobileRowCard.test.js +52 -56
  78. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  79. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  80. package/dist/v2/__tests__/labels-merge.test.js +20 -24
  81. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  82. package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
  83. package/dist/v2/components/DateTimePicker.js +37 -4
  84. package/dist/v2/components/DateTimePicker.js.map +1 -1
  85. package/dist/v2/components/Field.d.ts +59 -1
  86. package/dist/v2/components/Field.d.ts.map +1 -1
  87. package/dist/v2/components/Field.js +62 -2
  88. package/dist/v2/components/Field.js.map +1 -1
  89. package/dist/v2/components/index.d.ts +27 -0
  90. package/dist/v2/components/index.d.ts.map +1 -1
  91. package/dist/v2/components/index.js.map +1 -1
  92. package/dist/v2/index.d.ts.map +1 -1
  93. package/dist/v2/index.js.map +1 -1
  94. package/dist/v2/patterns/FavoriteColumn.d.ts +9 -9
  95. package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
  96. package/dist/v2/patterns/FavoriteColumn.js +14 -61
  97. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  98. package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
  99. package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
  100. package/dist/v2/patterns/FormikCheckbox.js +147 -0
  101. package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
  102. package/dist/v2/patterns/FormikCombobox.d.ts +7 -1
  103. package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
  104. package/dist/v2/patterns/FormikCombobox.js +5 -2
  105. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  106. package/dist/v2/patterns/FormikDatePicker.d.ts +13 -1
  107. package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
  108. package/dist/v2/patterns/FormikDatePicker.js +33 -66
  109. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  110. package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
  111. package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
  112. package/dist/v2/patterns/FormikDateTimePicker.js +158 -0
  113. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
  114. package/dist/v2/patterns/FormikInput.d.ts +11 -1
  115. package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
  116. package/dist/v2/patterns/FormikInput.js +5 -2
  117. package/dist/v2/patterns/FormikInput.js.map +1 -1
  118. package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
  119. package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
  120. package/dist/v2/patterns/FormikRadioGroup.js +148 -0
  121. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
  122. package/dist/v2/patterns/FormikSelect.d.ts +9 -1
  123. package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
  124. package/dist/v2/patterns/FormikSelect.js +5 -2
  125. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  126. package/dist/v2/patterns/FormikTextarea.d.ts +9 -1
  127. package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
  128. package/dist/v2/patterns/FormikTextarea.js +5 -2
  129. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  130. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +14 -1
  131. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
  132. package/dist/v2/patterns/KeyboardShortcutsHelp.js +25 -8
  133. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  134. package/dist/v2/patterns/RowFavoriteToggle.d.ts +92 -0
  135. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
  136. package/dist/v2/patterns/RowFavoriteToggle.js +127 -0
  137. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
  138. package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
  139. package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
  140. package/dist/v2/patterns/_pickerSerialisation.js +81 -0
  141. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
  142. package/dist/v2/patterns/index.d.ts +87 -0
  143. package/dist/v2/patterns/index.d.ts.map +1 -1
  144. package/dist/v2/patterns/index.js +34 -0
  145. package/dist/v2/patterns/index.js.map +1 -1
  146. package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
  147. package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
  148. package/dist/v2/personalization/capabilities/gridPreferences.js +215 -0
  149. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  150. package/dist/v2/personalization/capabilities/index.d.ts +6 -0
  151. package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
  152. package/dist/v2/personalization/capabilities/index.js +13 -0
  153. package/dist/v2/personalization/capabilities/index.js.map +1 -1
  154. package/dist/v2/personalization/index.d.ts +18 -0
  155. package/dist/v2/personalization/index.d.ts.map +1 -1
  156. package/dist/v2/personalization/index.js +13 -0
  157. package/dist/v2/personalization/index.js.map +1 -1
  158. package/package.json +1 -1
@@ -0,0 +1,265 @@
1
+ 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); }
2
+ var _excluded = ["initialValue", "required", "onValues"];
3
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
4
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
5
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
6
+ 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; }
7
+ 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; }
8
+ 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; }
9
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
+ 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); }
11
+ 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; }
12
+ 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; }
13
+ import "@testing-library/jest-dom";
14
+ import * as React from "react";
15
+ import { render, screen } from "@testing-library/react";
16
+ import userEvent from "@testing-library/user-event";
17
+ import { Formik, Form } from "formik";
18
+ import FormikCheckbox from "../patterns/FormikCheckbox";
19
+
20
+ /**
21
+ * FormikCheckbox — contract tests (gap G-A).
22
+ *
23
+ * WHY THIS FILE EXISTS
24
+ * --------------------
25
+ * §10.3 R-G.6 MUST. But the contracts worth pinning here are the ones a
26
+ * screenshot cannot see, and each of them is a real defect this bridge was
27
+ * created to stop repeating:
28
+ *
29
+ * 1. THE VALUE SHAPE. This component exists because `FormikCheckboxGroup`
30
+ * writes an ARRAY. If a refactor ever routed this bridge through the group,
31
+ * hosts would start sending `["on"]` where their payload declares a
32
+ * boolean — visually identical, and wrong all the way to the database.
33
+ *
34
+ * 2. TOUCHED-ON-CHANGE. A checkbox has no meaningful blur-before-change, so
35
+ * if the field is only marked touched on blur, a required-checkbox error
36
+ * stays invisible however many times the user clicks. That is exactly the
37
+ * defect reported from refonte-frontend, where a hand-rolled bridge
38
+ * rendered no message at all.
39
+ *
40
+ * 3. `aria-required` LANDS ON THE INPUT. `Field` injects it onto its child,
41
+ * which here is the CheckboxGroup — a `role="group"` div that does not
42
+ * forward it. Assert the input, not the group.
43
+ *
44
+ * 4. NO `error` ATTRIBUTE ON THE DOM. `Field` clones its child with
45
+ * `error`/`disabled` for the v2 inputs that read them directly. A bare
46
+ * `Checkbox` would spread `error` down to the native input; the
47
+ * CheckboxGroup wrapper is what absorbs it. Drop the wrapper and React
48
+ * starts warning while every pixel stays identical.
49
+ *
50
+ * NOT COVERED — deliberately: the asterisk colour and the grey error panel are
51
+ * CSS variables, which jsdom does not resolve. Those belong to the story.
52
+ */
53
+
54
+ /** Minimal host: a Formik form exposing its values for assertion. */
55
+ import { jsx as _jsx } from "react/jsx-runtime";
56
+ function Hote(_ref) {
57
+ var initialValue = _ref.initialValue,
58
+ required = _ref.required,
59
+ onValues = _ref.onValues,
60
+ props = _objectWithoutProperties(_ref, _excluded);
61
+ return /*#__PURE__*/_jsx(Formik, {
62
+ initialValues: {
63
+ flag: initialValue
64
+ },
65
+ validate: function validate(values) {
66
+ return required && values.flag !== true ? {
67
+ flag: "Cochez cette case pour continuer."
68
+ } : {};
69
+ },
70
+ onSubmit: function onSubmit() {
71
+ return undefined;
72
+ },
73
+ children: function children(_ref2) {
74
+ var values = _ref2.values;
75
+ onValues === null || onValues === void 0 ? void 0 : onValues(values);
76
+ return /*#__PURE__*/_jsx(Form, {
77
+ children: /*#__PURE__*/_jsx(FormikCheckbox, _objectSpread(_objectSpread({
78
+ name: "flag",
79
+ label: "Premi\xE8re d\xE9claration"
80
+ }, required !== undefined ? {
81
+ required: required
82
+ } : {}), props))
83
+ });
84
+ }
85
+ });
86
+ }
87
+ describe("FormikCheckbox — the value stays a BOOLEAN", function () {
88
+ test("toggling writes `true`, untoggling writes `false` — never an array", /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
89
+ var vues;
90
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
91
+ while (1) {
92
+ switch (_context.prev = _context.next) {
93
+ case 0:
94
+ vues = [];
95
+ render(/*#__PURE__*/_jsx(Hote, {
96
+ initialValue: false,
97
+ onValues: function onValues(v) {
98
+ return vues.push(v.flag);
99
+ }
100
+ }));
101
+ _context.next = 4;
102
+ return userEvent.click(screen.getByRole("checkbox"));
103
+ case 4:
104
+ expect(vues.at(-1)).toBe(true);
105
+ _context.next = 7;
106
+ return userEvent.click(screen.getByRole("checkbox"));
107
+ case 7:
108
+ expect(vues.at(-1)).toBe(false);
109
+
110
+ /* The point of the assertion: not one intermediate value was an array. */
111
+ expect(vues.some(function (v) {
112
+ return Array.isArray(v);
113
+ })).toBe(false);
114
+ case 9:
115
+ case "end":
116
+ return _context.stop();
117
+ }
118
+ }
119
+ }, _callee);
120
+ })));
121
+ test("a `null` seed renders a CONTROLLED, unchecked input", function () {
122
+ /* Hosts seed these flags with `null` (« not answered yet »). Passing that
123
+ * straight to `checked` makes React treat the input as uncontrolled for one
124
+ * render, then warn and lose the first click. */
125
+ var avertissements = [];
126
+ var spy = jest.spyOn(console, "error").mockImplementation(function () {
127
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
128
+ args[_key] = arguments[_key];
129
+ }
130
+ avertissements.push(args);
131
+ });
132
+ render(/*#__PURE__*/_jsx(Hote, {
133
+ initialValue: null
134
+ }));
135
+ expect(screen.getByRole("checkbox")).not.toBeChecked();
136
+ expect(avertissements.some(function (a) {
137
+ return String(a[0]).includes("uncontrolled");
138
+ })).toBe(false);
139
+ spy.mockRestore();
140
+ });
141
+ });
142
+ describe("FormikCheckbox — the error is reachable without a blur", function () {
143
+ test("clicking marks the field touched, so the message appears", /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
144
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
145
+ while (1) {
146
+ switch (_context2.prev = _context2.next) {
147
+ case 0:
148
+ render(/*#__PURE__*/_jsx(Hote, {
149
+ initialValue: false,
150
+ required: true
151
+ }));
152
+
153
+ /* Untouched: no message, however invalid the value is. */
154
+ expect(screen.queryByRole("alert")).not.toBeInTheDocument();
155
+
156
+ /* Check then uncheck — the field is now touched AND invalid. */
157
+ _context2.next = 4;
158
+ return userEvent.click(screen.getByRole("checkbox"));
159
+ case 4:
160
+ _context2.next = 6;
161
+ return userEvent.click(screen.getByRole("checkbox"));
162
+ case 6:
163
+ expect(screen.getByRole("alert")).toHaveTextContent("Cochez cette case pour continuer.");
164
+ case 7:
165
+ case "end":
166
+ return _context2.stop();
167
+ }
168
+ }
169
+ }, _callee2);
170
+ })));
171
+ test("the message becomes the group's accessible description", /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
172
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
173
+ while (1) {
174
+ switch (_context3.prev = _context3.next) {
175
+ case 0:
176
+ render(/*#__PURE__*/_jsx(Hote, {
177
+ initialValue: false,
178
+ required: true
179
+ }));
180
+ _context3.next = 3;
181
+ return userEvent.click(screen.getByRole("checkbox"));
182
+ case 3:
183
+ _context3.next = 5;
184
+ return userEvent.click(screen.getByRole("checkbox"));
185
+ case 5:
186
+ expect(screen.getByRole("group")).toHaveAccessibleDescription("Cochez cette case pour continuer.");
187
+ case 6:
188
+ case "end":
189
+ return _context3.stop();
190
+ }
191
+ }
192
+ }, _callee3);
193
+ })));
194
+ test("the hint shows while valid and is suppressed by the error", /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
195
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
196
+ while (1) {
197
+ switch (_context4.prev = _context4.next) {
198
+ case 0:
199
+ render(/*#__PURE__*/_jsx(Hote, {
200
+ initialValue: false,
201
+ required: true,
202
+ hint: "Obligatoire pour soumettre la demande"
203
+ }));
204
+ expect(screen.getByText("Obligatoire pour soumettre la demande")).toBeInTheDocument();
205
+ _context4.next = 4;
206
+ return userEvent.click(screen.getByRole("checkbox"));
207
+ case 4:
208
+ _context4.next = 6;
209
+ return userEvent.click(screen.getByRole("checkbox"));
210
+ case 6:
211
+ expect(screen.queryByText("Obligatoire pour soumettre la demande")).not.toBeInTheDocument();
212
+ case 7:
213
+ case "end":
214
+ return _context4.stop();
215
+ }
216
+ }
217
+ }, _callee4);
218
+ })));
219
+ });
220
+ describe("FormikCheckbox — ARIA and DOM hygiene", function () {
221
+ test("`required` puts aria-required on the INPUT, not on the group", function () {
222
+ /* Field's own injection lands on the CheckboxGroup, which is a role=group
223
+ * div and does not forward it — hence the explicit inputProps route. */
224
+ render(/*#__PURE__*/_jsx(Hote, {
225
+ initialValue: false,
226
+ required: true
227
+ }));
228
+ expect(screen.getByRole("checkbox")).toHaveAttribute("aria-required", "true");
229
+ });
230
+ test("the label names the checkbox", function () {
231
+ render(/*#__PURE__*/_jsx(Hote, {
232
+ initialValue: false
233
+ }));
234
+ expect(screen.getByRole("checkbox", {
235
+ name: /Première déclaration/
236
+ })).toBeInTheDocument();
237
+ });
238
+ test("no `error` attribute leaks onto the native input", /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
239
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
240
+ while (1) {
241
+ switch (_context5.prev = _context5.next) {
242
+ case 0:
243
+ /* The CheckboxGroup wrapper is what absorbs Field's `error` clone. Without
244
+ * it React warns and the DOM carries an invalid attribute — with no visual
245
+ * tell whatsoever. */
246
+ render(/*#__PURE__*/_jsx(Hote, {
247
+ initialValue: false,
248
+ required: true
249
+ }));
250
+ _context5.next = 3;
251
+ return userEvent.click(screen.getByRole("checkbox"));
252
+ case 3:
253
+ _context5.next = 5;
254
+ return userEvent.click(screen.getByRole("checkbox"));
255
+ case 5:
256
+ expect(screen.getByRole("checkbox")).not.toHaveAttribute("error");
257
+ case 6:
258
+ case "end":
259
+ return _context5.stop();
260
+ }
261
+ }
262
+ }, _callee5);
263
+ })));
264
+ });
265
+ //# sourceMappingURL=FormikCheckbox.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormikCheckbox.test.js","names":["_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","_catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","target","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","String","input","hint","prim","toPrimitive","res","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","React","render","screen","userEvent","Formik","Form","FormikCheckbox","jsx","_jsx","Hote","_ref","initialValue","required","onValues","props","_excluded","initialValues","flag","validate","onSubmit","children","_ref2","label","describe","test","_callee","vues","_callee$","_context","v","click","getByRole","expect","at","toBe","some","Array","isArray","avertissements","spy","jest","spyOn","console","mockImplementation","_len","_key","not","toBeChecked","a","includes","mockRestore","_callee2","_callee2$","_context2","queryByRole","toBeInTheDocument","toHaveTextContent","_callee3","_callee3$","_context3","toHaveAccessibleDescription","_callee4","_callee4$","_context4","getByText","queryByText","toHaveAttribute","_callee5","_callee5$","_context5"],"sources":["../../../../src/lib/v2/__tests__/FormikCheckbox.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport * as React from \"react\";\r\nimport { render, screen } from \"@testing-library/react\";\r\nimport userEvent from \"@testing-library/user-event\";\r\nimport { Formik, Form } from \"formik\";\r\nimport FormikCheckbox from \"../patterns/FormikCheckbox\";\r\n\r\n/**\r\n * FormikCheckbox — contract tests (gap G-A).\r\n *\r\n * WHY THIS FILE EXISTS\r\n * --------------------\r\n * §10.3 R-G.6 MUST. But the contracts worth pinning here are the ones a\r\n * screenshot cannot see, and each of them is a real defect this bridge was\r\n * created to stop repeating:\r\n *\r\n * 1. THE VALUE SHAPE. This component exists because `FormikCheckboxGroup`\r\n * writes an ARRAY. If a refactor ever routed this bridge through the group,\r\n * hosts would start sending `[\"on\"]` where their payload declares a\r\n * boolean — visually identical, and wrong all the way to the database.\r\n *\r\n * 2. TOUCHED-ON-CHANGE. A checkbox has no meaningful blur-before-change, so\r\n * if the field is only marked touched on blur, a required-checkbox error\r\n * stays invisible however many times the user clicks. That is exactly the\r\n * defect reported from refonte-frontend, where a hand-rolled bridge\r\n * rendered no message at all.\r\n *\r\n * 3. `aria-required` LANDS ON THE INPUT. `Field` injects it onto its child,\r\n * which here is the CheckboxGroup — a `role=\"group\"` div that does not\r\n * forward it. Assert the input, not the group.\r\n *\r\n * 4. NO `error` ATTRIBUTE ON THE DOM. `Field` clones its child with\r\n * `error`/`disabled` for the v2 inputs that read them directly. A bare\r\n * `Checkbox` would spread `error` down to the native input; the\r\n * CheckboxGroup wrapper is what absorbs it. Drop the wrapper and React\r\n * starts warning while every pixel stays identical.\r\n *\r\n * NOT COVERED — deliberately: the asterisk colour and the grey error panel are\r\n * CSS variables, which jsdom does not resolve. Those belong to the story.\r\n */\r\n\r\n/** Minimal host: a Formik form exposing its values for assertion. */\r\nfunction Hote({\r\n initialValue,\r\n required,\r\n onValues,\r\n ...props\r\n}: {\r\n initialValue: boolean | null;\r\n required?: boolean;\r\n onValues?: (values: { flag: unknown }) => void;\r\n label?: React.ReactNode;\r\n hint?: React.ReactNode;\r\n}) {\r\n return (\r\n <Formik\r\n initialValues={{ flag: initialValue }}\r\n validate={(values) =>\r\n required && values.flag !== true\r\n ? { flag: \"Cochez cette case pour continuer.\" }\r\n : {}\r\n }\r\n onSubmit={() => undefined}\r\n >\r\n {({ values }) => {\r\n onValues?.(values);\r\n return (\r\n <Form>\r\n <FormikCheckbox\r\n name=\"flag\"\r\n label=\"Première déclaration\"\r\n {...(required !== undefined ? { required } : {})}\r\n {...props}\r\n />\r\n </Form>\r\n );\r\n }}\r\n </Formik>\r\n );\r\n}\r\n\r\ndescribe(\"FormikCheckbox — the value stays a BOOLEAN\", () => {\r\n test(\"toggling writes `true`, untoggling writes `false` — never an array\", async () => {\r\n const vues: unknown[] = [];\r\n render(\r\n <Hote initialValue={false} onValues={(v) => vues.push(v.flag)} />\r\n );\r\n\r\n await userEvent.click(screen.getByRole(\"checkbox\"));\r\n expect(vues.at(-1)).toBe(true);\r\n\r\n await userEvent.click(screen.getByRole(\"checkbox\"));\r\n expect(vues.at(-1)).toBe(false);\r\n\r\n /* The point of the assertion: not one intermediate value was an array. */\r\n expect(vues.some((v) => Array.isArray(v))).toBe(false);\r\n });\r\n\r\n test(\"a `null` seed renders a CONTROLLED, unchecked input\", () => {\r\n /* Hosts seed these flags with `null` (« not answered yet »). Passing that\r\n * straight to `checked` makes React treat the input as uncontrolled for one\r\n * render, then warn and lose the first click. */\r\n const avertissements: unknown[][] = [];\r\n const spy = jest\r\n .spyOn(console, \"error\")\r\n .mockImplementation((...args: unknown[]) => {\r\n avertissements.push(args);\r\n });\r\n\r\n render(<Hote initialValue={null} />);\r\n\r\n expect(screen.getByRole(\"checkbox\")).not.toBeChecked();\r\n expect(\r\n avertissements.some((a) => String(a[0]).includes(\"uncontrolled\"))\r\n ).toBe(false);\r\n\r\n spy.mockRestore();\r\n });\r\n});\r\n\r\ndescribe(\"FormikCheckbox — the error is reachable without a blur\", () => {\r\n test(\"clicking marks the field touched, so the message appears\", async () => {\r\n render(<Hote initialValue={false} required />);\r\n\r\n /* Untouched: no message, however invalid the value is. */\r\n expect(screen.queryByRole(\"alert\")).not.toBeInTheDocument();\r\n\r\n /* Check then uncheck — the field is now touched AND invalid. */\r\n await userEvent.click(screen.getByRole(\"checkbox\"));\r\n await userEvent.click(screen.getByRole(\"checkbox\"));\r\n\r\n expect(screen.getByRole(\"alert\")).toHaveTextContent(\r\n \"Cochez cette case pour continuer.\"\r\n );\r\n });\r\n\r\n test(\"the message becomes the group's accessible description\", async () => {\r\n render(<Hote initialValue={false} required />);\r\n await userEvent.click(screen.getByRole(\"checkbox\"));\r\n await userEvent.click(screen.getByRole(\"checkbox\"));\r\n\r\n expect(screen.getByRole(\"group\")).toHaveAccessibleDescription(\r\n \"Cochez cette case pour continuer.\"\r\n );\r\n });\r\n\r\n test(\"the hint shows while valid and is suppressed by the error\", async () => {\r\n render(\r\n <Hote\r\n initialValue={false}\r\n required\r\n hint=\"Obligatoire pour soumettre la demande\"\r\n />\r\n );\r\n\r\n expect(\r\n screen.getByText(\"Obligatoire pour soumettre la demande\")\r\n ).toBeInTheDocument();\r\n\r\n await userEvent.click(screen.getByRole(\"checkbox\"));\r\n await userEvent.click(screen.getByRole(\"checkbox\"));\r\n\r\n expect(\r\n screen.queryByText(\"Obligatoire pour soumettre la demande\")\r\n ).not.toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"FormikCheckbox — ARIA and DOM hygiene\", () => {\r\n test(\"`required` puts aria-required on the INPUT, not on the group\", () => {\r\n /* Field's own injection lands on the CheckboxGroup, which is a role=group\r\n * div and does not forward it — hence the explicit inputProps route. */\r\n render(<Hote initialValue={false} required />);\r\n\r\n expect(screen.getByRole(\"checkbox\")).toHaveAttribute(\r\n \"aria-required\",\r\n \"true\"\r\n );\r\n });\r\n\r\n test(\"the label names the checkbox\", () => {\r\n render(<Hote initialValue={false} />);\r\n expect(\r\n screen.getByRole(\"checkbox\", { name: /Première déclaration/ })\r\n ).toBeInTheDocument();\r\n });\r\n\r\n test(\"no `error` attribute leaks onto the native input\", async () => {\r\n /* The CheckboxGroup wrapper is what absorbs Field's `error` clone. Without\r\n * it React warns and the DOM carries an invalid attribute — with no visual\r\n * tell whatsoever. */\r\n render(<Hote initialValue={false} required />);\r\n await userEvent.click(screen.getByRole(\"checkbox\"));\r\n await userEvent.click(screen.getByRole(\"checkbox\"));\r\n\r\n expect(screen.getByRole(\"checkbox\")).not.toHaveAttribute(\"error\");\r\n });\r\n});\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,248 @@
1
+ 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); }
2
+ 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; }
3
+ 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; }
4
+ 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; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
+ 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); }
7
+ import "@testing-library/jest-dom";
8
+ import { render, screen } from "@testing-library/react";
9
+ import { Formik, Form } from "formik";
10
+ import FormikDateTimePicker from "../patterns/FormikDateTimePicker";
11
+ import FormikDatePicker from "../patterns/FormikDatePicker";
12
+ import { DATETIME_FORMAT_CHARTER } from "../components/DateTimePicker";
13
+
14
+ /**
15
+ * FormikDateTimePicker — contract tests (gap G-E).
16
+ *
17
+ * WHY THIS FILE EXISTS
18
+ * --------------------
19
+ * §10.3 R-G.6 MUST. Every case below pins a contract that a screenshot cannot
20
+ * see, and each corresponds to a defect this bridge exists to stop:
21
+ *
22
+ * 1. THE TIME SURVIVES. The whole reason the gap was opened: routed through
23
+ * the date-only bridge, a visit scheduled at 14:30 would have been stored
24
+ * at 00:00 — silently, with no error, and only the agent showing up at the
25
+ * wrong hour would notice. The date-only sibling is asserted side by side,
26
+ * so the reason TWO bridges exist stays legible.
27
+ *
28
+ * 2. THE ROUND-TRIP IS SYMMETRIC (S-03). A value written with a non-ISO
29
+ * format must be READ BACK with that same format. The sibling once wrote
30
+ * through moment and read through `new Date()`, which turned "31-12-2026"
31
+ * into Invalid Date and "05-03-2026" into 3 May. The write path worked, so
32
+ * the damage only appeared on RE-POPULATE — an edit flow, the path a smoke
33
+ * test never exercises. One module shipped it for seven batches under a
34
+ * clean strict typecheck.
35
+ *
36
+ * 3. A MALFORMED STORED VALUE YIELDS EMPTY, NOT A PLAUSIBLE WRONG DATE.
37
+ * Strict parsing. A missing date is recoverable; a date quietly off by two
38
+ * months is not.
39
+ *
40
+ * ── HOW THESE ASSERTIONS READ THE FIELD (and why not by role "textbox") ──
41
+ *
42
+ * MUI X v9 renders no textbox. The field is a `role="group"` containing one
43
+ * `role="spinbutton"` PER SECTION (Year, Month, Day, Hours, Minutes), each
44
+ * carrying `aria-valuenow`; the input that holds the formatted string is
45
+ * `aria-hidden`. So the assertions read the sections.
46
+ *
47
+ * That is not a workaround, it is the better probe: `aria-valuenow` is the
48
+ * PARSED value, independent of any display format. A test reading the
49
+ * formatted text would pass or fail on locale and format changes that have
50
+ * nothing to do with the contract under test. Reading the sections also makes
51
+ * the date-only comparison exact — the sibling renders no Hours section at
52
+ * all, rather than rendering one that happens to read 00.
53
+ *
54
+ * NOT COVERED — deliberately: opening the picker popup and clicking a day.
55
+ * MUI X renders its calendar in a portal with its own interaction model; the
56
+ * value plumbing is what belongs to this bridge. The visual side belongs to
57
+ * the story.
58
+ */
59
+
60
+ /** Valeur analysee d'une section du champ (Year, Month, Day, Hours, Minutes). */
61
+ import { jsx as _jsx } from "react/jsx-runtime";
62
+ function sectionValeur(nom) {
63
+ return screen.getByRole("spinbutton", {
64
+ name: nom
65
+ }).getAttribute("aria-valuenow");
66
+ }
67
+
68
+ /** Vrai quand la section est vide (aucune date rendue). */
69
+ function sectionVide(nom) {
70
+ return screen.getByRole("spinbutton", {
71
+ name: nom
72
+ }).getAttribute("aria-valuetext") === "Empty";
73
+ }
74
+ function HoteLecture(_ref) {
75
+ var valeurInitiale = _ref.valeurInitiale,
76
+ outputFormat = _ref.outputFormat,
77
+ readOnly = _ref.readOnly;
78
+ return /*#__PURE__*/_jsx(Formik, {
79
+ initialValues: {
80
+ dateVisite: valeurInitiale
81
+ },
82
+ onSubmit: function onSubmit() {
83
+ return undefined;
84
+ },
85
+ children: /*#__PURE__*/_jsx(Form, {
86
+ children: /*#__PURE__*/_jsx(FormikDateTimePicker, _objectSpread(_objectSpread({
87
+ name: "dateVisite",
88
+ label: "Date de la visite"
89
+ }, outputFormat !== undefined ? {
90
+ outputFormat: outputFormat
91
+ } : {}), readOnly !== undefined ? {
92
+ readOnly: readOnly
93
+ } : {}))
94
+ })
95
+ });
96
+ }
97
+ describe("FormikDateTimePicker — the time survives", function () {
98
+ test("an hour stored in Formik reaches the field's time sections", function () {
99
+ render(/*#__PURE__*/_jsx(HoteLecture, {
100
+ valeurInitiale: new Date(2026, 4, 31, 14, 30)
101
+ }));
102
+ expect(sectionValeur("Hours")).toBe("14");
103
+ expect(sectionValeur("Minutes")).toBe("30");
104
+ /* La date, elle, est intacte : 31 mai 2026. */
105
+ expect(sectionValeur("Day")).toBe("31");
106
+ expect(sectionValeur("Month")).toBe("5");
107
+ });
108
+ test("the date-only sibling has NO time section — which is why G-E exists", function () {
109
+ render(/*#__PURE__*/_jsx(Formik, {
110
+ initialValues: {
111
+ dateVisite: new Date(2026, 4, 31, 14, 30)
112
+ },
113
+ onSubmit: function onSubmit() {
114
+ return undefined;
115
+ },
116
+ children: /*#__PURE__*/_jsx(Form, {
117
+ children: /*#__PURE__*/_jsx(FormikDatePicker, {
118
+ name: "dateVisite",
119
+ label: "Date de la visite"
120
+ })
121
+ })
122
+ }));
123
+
124
+ /* Pas de section « Hours » du tout : l'heure n'est pas affichee a 00, elle
125
+ * est absente du champ — donc perdue des que la valeur est reserialisee. */
126
+ expect(screen.queryByRole("spinbutton", {
127
+ name: "Hours"
128
+ })).not.toBeInTheDocument();
129
+ expect(screen.getByRole("spinbutton", {
130
+ name: "Day"
131
+ })).toBeInTheDocument();
132
+ });
133
+ });
134
+ describe("FormikDateTimePicker — the round-trip is symmetric (S-03)", function () {
135
+ test("a value written in the charter format is read back with it", function () {
136
+ render(/*#__PURE__*/_jsx(HoteLecture, {
137
+ valeurInitiale: "2026-12-31 14:30",
138
+ outputFormat: DATETIME_FORMAT_CHARTER
139
+ }));
140
+ expect(sectionValeur("Day")).toBe("31");
141
+ expect(sectionValeur("Month")).toBe("12");
142
+ expect(sectionValeur("Hours")).toBe("14");
143
+ expect(sectionValeur("Minutes")).toBe("30");
144
+ });
145
+ test("a day-first stored value is NOT misread as month-first", function () {
146
+ /* `new Date("05-03-2026 09:15")` lit MM-DD en V8 : le 3 mai au lieu du
147
+ * 5 mars. Avec le format declare, moment lit bien le 5 mars. C'est
148
+ * exactement le cas que S-03 decrit. */
149
+ render(/*#__PURE__*/_jsx(HoteLecture, {
150
+ valeurInitiale: "05-03-2026 09:15",
151
+ outputFormat: "DD-MM-YYYY HH:mm"
152
+ }));
153
+ expect(sectionValeur("Month")).toBe("3");
154
+ expect(sectionValeur("Day")).toBe("5");
155
+ expect(sectionValeur("Hours")).toBe("9");
156
+ expect(sectionValeur("Minutes")).toBe("15");
157
+ });
158
+ test("a malformed stored value renders EMPTY, not a guess", function () {
159
+ render(/*#__PURE__*/_jsx(HoteLecture, {
160
+ valeurInitiale: "pas-une-date",
161
+ outputFormat: DATETIME_FORMAT_CHARTER
162
+ }));
163
+ expect(sectionVide("Year")).toBe(true);
164
+ expect(sectionVide("Day")).toBe(true);
165
+ expect(sectionVide("Hours")).toBe(true);
166
+ });
167
+ test("`null` renders empty and does not warn about an uncontrolled input", function () {
168
+ var avertissements = [];
169
+ var spy = jest.spyOn(console, "error").mockImplementation(function () {
170
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
171
+ args[_key] = arguments[_key];
172
+ }
173
+ avertissements.push(args);
174
+ });
175
+ render(/*#__PURE__*/_jsx(HoteLecture, {
176
+ valeurInitiale: null
177
+ }));
178
+ expect(sectionVide("Year")).toBe(true);
179
+ expect(avertissements.some(function (a) {
180
+ return String(a[0]).includes("uncontrolled");
181
+ })).toBe(false);
182
+ spy.mockRestore();
183
+ });
184
+ });
185
+ describe("FormikDateTimePicker — read-only mode", function () {
186
+ test("`readOnly` renders display TEXT, not a picker", function () {
187
+ /* Section Read Only Mode : « Inputs are forbidden in read-only mode. » */
188
+ render(/*#__PURE__*/_jsx(HoteLecture, {
189
+ valeurInitiale: new Date(2026, 11, 31, 14, 30),
190
+ readOnly: true
191
+ }));
192
+ expect(screen.queryByRole("spinbutton", {
193
+ name: "Year"
194
+ })).not.toBeInTheDocument();
195
+ expect(screen.getByText(/31\/12\/2026 14:30/)).toBeInTheDocument();
196
+ });
197
+ test("an empty value in read-only mode shows the dash, not a blank panel", function () {
198
+ render(/*#__PURE__*/_jsx(HoteLecture, {
199
+ valeurInitiale: null,
200
+ readOnly: true
201
+ }));
202
+ expect(screen.getByText("—")).toBeInTheDocument();
203
+ });
204
+ });
205
+ describe("FormikDateTimePicker — labelling", function () {
206
+ test("the visible label is wired to the field id produced by Field", function () {
207
+ render(/*#__PURE__*/_jsx(HoteLecture, {
208
+ valeurInitiale: null
209
+ }));
210
+
211
+ /* Une premiere version verifiait aussi, par `document.getElementById`, que
212
+ * l'element porteur de cet id existe. Deux raisons de l'avoir retiree :
213
+ * `testing-library/no-node-access` l'interdit a juste titre, et surtout
214
+ * l'assertion visait a cote. L'element existe bel et bien — c'est l'input
215
+ * porteur de valeur — mais MUI X v9 le marque `aria-hidden`, donc son
216
+ * existence ne prouve RIEN sur ce qui compte. Voir la note ci-dessous. */
217
+ expect(screen.getByText("Date de la visite")).toHaveAttribute("for", "dateVisite");
218
+ });
219
+
220
+ /**
221
+ * CE QUI N'EST PAS ASSERTE ICI, ET POURQUOI — defaut ouvert (G-F, reporte)
222
+ *
223
+ * Le champ n'a PAS de nom accessible, et ce n'est pas le seul degat : les
224
+ * QUATRE attributs d'association poses par `Field` sont inertes.
225
+ *
226
+ * `DateTimePicker` intercepte bien `id`, `aria-describedby`, `aria-invalid`
227
+ * et `aria-required` et les route sur l'`<input>` porteur de valeur (c'est le
228
+ * correctif DP-1, ecrit exprès) — mais MUI X v9 marque cet input
229
+ * `aria-hidden="true"`. Le champ visible est un `role="group"` de
230
+ * `role="spinbutton"` par section. Donc : l'etiquette ne nomme rien
231
+ * (R-I.1), l'indication et le message d'erreur ne sont jamais annonces
232
+ * (R-I.3, R-4.1), et un champ requis ne se declare pas requis (R-I.2).
233
+ *
234
+ * DEUX TENTATIVES ONT ECHOUE, notees pour ne pas etre refaites :
235
+ * 1. router les attributs par `slotProps.textField.InputProps` — accepte
236
+ * par les types, n'atterrit nulle part ;
237
+ * 2. passer le pont en mode `group` de `Field` — `Field` emet bien
238
+ * `aria-labelledby`, mais rien ne le porte jusqu'au groupe, ET le mode
239
+ * `group` supprime le `<label for>` : on perd le clic-sur-libellé sans
240
+ * rien gagner.
241
+ *
242
+ * Figer l'etat actuel par une assertion « le nom est vide » en ferait un
243
+ * comportement attendu, ce qu'il n'est pas. Le correctif demande le vrai
244
+ * point d'ancrage v9 de `PickersInputBase`, et il touche `DatePicker` ET
245
+ * `DateTimePicker` — donc tous les champs de date du portefeuille. Batch 10.
246
+ */
247
+ });
248
+ //# sourceMappingURL=FormikDateTimePicker.test.js.map