arengibook 1.1.2-main β†’ 1.1.3-main

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 (2) hide show
  1. package/dist/index.js +86 -27
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -36993,12 +36993,16 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
36993
36993
  _useState0 = _slicedToArray$c(_useState9, 2),
36994
36994
  inputText = _useState0[0];
36995
36995
  _useState0[1];
36996
-
36997
- // πŸ”Ή Lazy loading
36998
36996
  var _useState1 = useState(false),
36999
36997
  _useState10 = _slicedToArray$c(_useState1, 2),
37000
- loading = _useState10[0],
37001
- setLoading = _useState10[1];
36998
+ showRequiredError = _useState10[0],
36999
+ setShowRequiredError = _useState10[1];
37000
+
37001
+ // πŸ”Ή Lazy loading
37002
+ var _useState11 = useState(false),
37003
+ _useState12 = _slicedToArray$c(_useState11, 2),
37004
+ loading = _useState12[0],
37005
+ setLoading = _useState12[1];
37002
37006
  var loadLazyTimeout = useRef();
37003
37007
  useRef(1);
37004
37008
  useRef('');
@@ -37032,11 +37036,15 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
37032
37036
  style: styleLabel
37033
37037
  }, option === null || option === void 0 ? void 0 : option[optionLabel])));
37034
37038
  };
37039
+ var isInvalidEffective = invalid || showRequiredError;
37035
37040
  var style = {
37036
- border: invalid ? '1px solid red' : '1px solid #ccc',
37041
+ border: isInvalidEffective ? '1px solid red' : '1px solid #ccc',
37037
37042
  width: '100%',
37038
37043
  minHeight: '45px'
37039
37044
  };
37045
+ useEffect(function () {
37046
+ if (optionSelected) setShowRequiredError(false);
37047
+ }, [optionSelected]);
37040
37048
  useEffect(function () {
37041
37049
  setOptionSelected(objValue ? objValue === null || objValue === void 0 ? void 0 : objValue[optionValue] : value !== null && value !== void 0 ? value : null);
37042
37050
  var loadInitialOptions = /*#__PURE__*/function () {
@@ -37250,7 +37258,7 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
37250
37258
  return /*#__PURE__*/React__default.createElement("div", {
37251
37259
  ref: dropdownRef,
37252
37260
  className: "flex flex-col gap-1",
37253
- onClick: invalid || disabled ? null : function () {
37261
+ onClick: isInvalidEffective || disabled ? null : function () {
37254
37262
  return setIsEditing(editable);
37255
37263
  }
37256
37264
  }, /*#__PURE__*/React__default.createElement(Dropdown$1, {
@@ -37298,13 +37306,20 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
37298
37306
  required: true,
37299
37307
  value: "",
37300
37308
  onChange: function onChange() {},
37309
+ onInvalid: function onInvalid(e) {
37310
+ e.preventDefault();
37311
+ setShowRequiredError(true);
37312
+ },
37301
37313
  style: {
37302
37314
  opacity: 0,
37303
37315
  height: 0,
37304
- position: 'absolute',
37316
+ padding: 0,
37317
+ margin: 0,
37318
+ border: 'none',
37319
+ display: 'block',
37305
37320
  pointerEvents: 'none'
37306
37321
  }
37307
- }), invalid && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("small", {
37322
+ }), isInvalidEffective && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("small", {
37308
37323
  style: {
37309
37324
  color: 'red',
37310
37325
  fontStyle: 'italic'
@@ -37459,12 +37474,16 @@ var Dropdown = function Dropdown(props) {
37459
37474
  _useState10 = _slicedToArray$c(_useState1, 2),
37460
37475
  sortOrder = _useState10[0],
37461
37476
  setSortOrder = _useState10[1];
37477
+ var _useState11 = useState(false),
37478
+ _useState12 = _slicedToArray$c(_useState11, 2),
37479
+ showRequiredError = _useState12[0],
37480
+ setShowRequiredError = _useState12[1];
37462
37481
 
37463
37482
  // --- Derived values ---
37464
37483
  var hasSelection = options.some(function (opt) {
37465
37484
  return (opt === null || opt === void 0 ? void 0 : opt[optionValue]) === optionSelected;
37466
37485
  });
37467
- var isError = Boolean(invalid || status === 'error');
37486
+ var isError = Boolean(invalid || status === 'error' || showRequiredError);
37468
37487
  var isInvalidEffective = Boolean(isError && !hasSelection);
37469
37488
  var effectiveOptions = loading ? [] : options;
37470
37489
  var mergedClassName = "flex flex-col gap-1 ".concat(attr["class"] || '').trim();
@@ -37478,6 +37497,9 @@ var Dropdown = function Dropdown(props) {
37478
37497
  var emptyMessage = loading ? 'Chargement…' : 'Aucune option disponible';
37479
37498
 
37480
37499
  // --- Effects ---
37500
+ useEffect(function () {
37501
+ if (optionSelected) setShowRequiredError(false);
37502
+ }, [optionSelected]);
37481
37503
  useEffect(function () {
37482
37504
  setOptionSelected(objValue ? objValue === null || objValue === void 0 ? void 0 : objValue[optionValue] : value !== null && value !== void 0 ? value : null);
37483
37505
  }, [value, objValue, optionValue]);
@@ -38135,10 +38157,17 @@ var Dropdown = function Dropdown(props) {
38135
38157
  required: true,
38136
38158
  value: "",
38137
38159
  onChange: function onChange() {},
38160
+ onInvalid: function onInvalid(e) {
38161
+ e.preventDefault();
38162
+ setShowRequiredError(true);
38163
+ },
38138
38164
  style: {
38139
38165
  opacity: 0,
38140
38166
  height: 0,
38141
- position: 'absolute',
38167
+ padding: 0,
38168
+ margin: 0,
38169
+ border: 'none',
38170
+ display: 'block',
38142
38171
  pointerEvents: 'none'
38143
38172
  }
38144
38173
  }), isInvalidEffective && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("small", {
@@ -40960,6 +40989,11 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
40960
40989
  _useState8 = _slicedToArray$c(_useState7, 2);
40961
40990
  _useState8[0];
40962
40991
  var setHovered = _useState8[1];
40992
+ var _useState9 = useState(false),
40993
+ _useState0 = _slicedToArray$c(_useState9, 2),
40994
+ showRequiredError = _useState0[0],
40995
+ setShowRequiredError = _useState0[1];
40996
+ var hasSelection = Array.isArray(selectedOptions) && selectedOptions.length > 0;
40963
40997
  var fetchOptionsFromUrl = /*#__PURE__*/function () {
40964
40998
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
40965
40999
  var search,
@@ -41049,6 +41083,9 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
41049
41083
  return [];
41050
41084
  }
41051
41085
  };
41086
+ useEffect(function () {
41087
+ if (hasSelection) setShowRequiredError(false);
41088
+ }, [hasSelection]);
41052
41089
  useEffect(function () {
41053
41090
  var _numValue;
41054
41091
  setSelectedOptions(numObjValue && Array.isArray(numObjValue) && numObjValue.length ? numObjValue.map(function (opt) {
@@ -41139,8 +41176,9 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
41139
41176
  var luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
41140
41177
  return luminance > 0.18 ? '#000000' : '#FFFFFF';
41141
41178
  };
41179
+ var isInvalidEffective = invalid || showRequiredError && !hasSelection;
41142
41180
  var style = {
41143
- border: invalid ? '1px solid red' : '1px solid #ccc',
41181
+ border: isInvalidEffective ? '1px solid red' : '1px solid #ccc',
41144
41182
  width: '100%'
41145
41183
  };
41146
41184
  var optionTemplate = function optionTemplate(option) {
@@ -41415,19 +41453,26 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
41415
41453
  "data-name": nameAttr,
41416
41454
  value: id
41417
41455
  });
41418
- }), required && !(Array.isArray(selectedOptions) && selectedOptions.length > 0) && /*#__PURE__*/React__default.createElement("input", {
41456
+ }), required && !hasSelection && /*#__PURE__*/React__default.createElement("input", {
41419
41457
  tabIndex: -1,
41420
41458
  "aria-hidden": "true",
41421
41459
  required: true,
41422
41460
  value: "",
41423
41461
  onChange: function onChange() {},
41462
+ onInvalid: function onInvalid(e) {
41463
+ e.preventDefault();
41464
+ setShowRequiredError(true);
41465
+ },
41424
41466
  style: {
41425
41467
  opacity: 0,
41426
41468
  height: 0,
41427
- position: 'absolute',
41469
+ padding: 0,
41470
+ margin: 0,
41471
+ border: 'none',
41472
+ display: 'block',
41428
41473
  pointerEvents: 'none'
41429
41474
  }
41430
- })), invalid && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("small", {
41475
+ })), isInvalidEffective && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("small", {
41431
41476
  style: {
41432
41477
  color: 'red',
41433
41478
  fontStyle: 'italic'
@@ -41568,23 +41613,27 @@ var MultiSelect = function MultiSelect(props) {
41568
41613
  _useState6 = _slicedToArray$c(_useState5, 2),
41569
41614
  displayValue = _useState6[0],
41570
41615
  setDisplayValue = _useState6[1];
41571
- var isError = Boolean(invalid || status === 'error');
41616
+ var _useState7 = useState(false),
41617
+ _useState8 = _slicedToArray$c(_useState7, 2),
41618
+ showRequiredError = _useState8[0],
41619
+ setShowRequiredError = _useState8[1];
41620
+ var isError = Boolean(invalid || status === 'error' || showRequiredError);
41572
41621
  var hasSelection = Array.isArray(selectedOptions) && selectedOptions.length > 0;
41573
41622
  var isInvalidEffective = Boolean(isError && !hasSelection);
41574
- var _useState7 = useState(0),
41575
- _useState8 = _slicedToArray$c(_useState7, 2),
41576
- tooltipKey = _useState8[0],
41577
- setTooltipKey = _useState8[1];
41623
+ var _useState9 = useState(0),
41624
+ _useState0 = _slicedToArray$c(_useState9, 2),
41625
+ tooltipKey = _useState0[0],
41626
+ setTooltipKey = _useState0[1];
41578
41627
  var multiSelectRef = useRef(null);
41579
41628
  var containerRef = useRef(null);
41580
- var _useState9 = useState(null),
41581
- _useState0 = _slicedToArray$c(_useState9, 2),
41582
- sortOrder = _useState0[0],
41583
- setSortOrder = _useState0[1];
41584
- var _useState1 = useState([]),
41629
+ var _useState1 = useState(null),
41585
41630
  _useState10 = _slicedToArray$c(_useState1, 2),
41586
- collapsedGroups = _useState10[0],
41587
- setCollapsedGroups = _useState10[1];
41631
+ sortOrder = _useState10[0],
41632
+ setSortOrder = _useState10[1];
41633
+ var _useState11 = useState([]),
41634
+ _useState12 = _slicedToArray$c(_useState11, 2),
41635
+ collapsedGroups = _useState12[0],
41636
+ setCollapsedGroups = _useState12[1];
41588
41637
 
41589
41638
  // ────────────────────────────────────────────────────────────
41590
41639
  // FLATOPTIONS β€” Options aplaties (tableau plat)
@@ -41610,6 +41659,9 @@ var MultiSelect = function MultiSelect(props) {
41610
41659
  return (_group = group[optionGroupChildren || 'items']) !== null && _group !== void 0 ? _group : [];
41611
41660
  });
41612
41661
  }, [options, isGroupedOption, optionGroupChildren]);
41662
+ useEffect(function () {
41663
+ if (hasSelection) setShowRequiredError(false);
41664
+ }, [hasSelection]);
41613
41665
  useEffect(function () {
41614
41666
  var next = objValue ? _toConsumableArray$a(objValue.map(function (opt) {
41615
41667
  return opt[optionValue];
@@ -42609,10 +42661,17 @@ var MultiSelect = function MultiSelect(props) {
42609
42661
  required: true,
42610
42662
  value: "",
42611
42663
  onChange: function onChange() {},
42664
+ onInvalid: function onInvalid(e) {
42665
+ e.preventDefault();
42666
+ setShowRequiredError(true);
42667
+ },
42612
42668
  style: {
42613
42669
  opacity: 0,
42614
42670
  height: 0,
42615
- position: 'absolute',
42671
+ padding: 0,
42672
+ margin: 0,
42673
+ border: 'none',
42674
+ display: 'block',
42616
42675
  pointerEvents: 'none'
42617
42676
  }
42618
42677
  })), isInvalidEffective && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("small", {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "arengibook",
3
3
  "private": false,
4
- "version": "1.1.2-main",
4
+ "version": "1.1.3-main",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "exports": {