arengibook 3.1.52-itemWithTooltip → 3.1.53-itemWithTooltip

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 +98 -163
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -37114,7 +37114,7 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
37114
37114
  _ref$enableItemToolti = _ref.enableItemTooltip,
37115
37115
  enableItemTooltip = _ref$enableItemToolti === void 0 ? false : _ref$enableItemToolti,
37116
37116
  _ref$tooltipWidth = _ref.tooltipWidth,
37117
- tooltipWidth = _ref$tooltipWidth === void 0 ? '220px' : _ref$tooltipWidth,
37117
+ tooltipWidth = _ref$tooltipWidth === void 0 ? '250px' : _ref$tooltipWidth,
37118
37118
  _ref$enableItemLink = _ref.enableItemLink,
37119
37119
  enableItemLink = _ref$enableItemLink === void 0 ? false : _ref$enableItemLink,
37120
37120
  _ref$openOnHover = _ref.openOnHover,
@@ -37165,9 +37165,9 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
37165
37165
  // 'panelBottom' : tooltip sous le panel d'options
37166
37166
  // 'panelTop' : tooltip au-dessus du panel d'options
37167
37167
  var _useState13 = useState('right'),
37168
- _useState14 = _slicedToArray$d(_useState13, 2),
37169
- tooltipMode = _useState14[0],
37170
- setTooltipMode = _useState14[1];
37168
+ _useState14 = _slicedToArray$d(_useState13, 2);
37169
+ _useState14[0];
37170
+ var setTooltipMode = _useState14[1];
37171
37171
  var _useState15 = useState(null),
37172
37172
  _useState16 = _slicedToArray$d(_useState15, 2),
37173
37173
  sortOrder = _useState16[0],
@@ -37233,51 +37233,35 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
37233
37233
  };
37234
37234
  }, [enableItemTooltip]);
37235
37235
 
37236
- // --- Détection de la place autour du composant / panel ---
37236
+ // --- Repositionnement fin du tooltip ---
37237
+ // Le mode est recalculé à chaque survol pour rester à jour en intégration.
37237
37238
  useEffect(function () {
37238
37239
  if (!enableItemTooltip) return undefined;
37240
+ var hoveredRow = null;
37239
37241
  var computeMode = function computeMode() {
37240
37242
  var container = dropdownRef.current;
37241
- if (!container) return;
37243
+ if (!container) return 'right';
37242
37244
  var cRect = container.getBoundingClientRect();
37243
37245
  var tooltipPxWidth = parseInt(String(tooltipWidth), 10) || 220;
37244
37246
  var spaceRight = window.innerWidth - cRect.right;
37245
- if (spaceRight >= tooltipPxWidth + 40) {
37246
- setTooltipMode('right');
37247
- return;
37248
- }
37247
+ if (spaceRight >= tooltipPxWidth + 40) return 'right';
37249
37248
  var panel = document.querySelector('.p-dropdown-panel.p-component');
37250
37249
  var anchor = panel || container;
37251
37250
  var aRect = anchor.getBoundingClientRect();
37252
37251
  var estimateHeight = 120;
37253
37252
  var spaceBottom = window.innerHeight - aRect.bottom;
37254
37253
  var spaceTop = aRect.top;
37255
- if (spaceBottom >= estimateHeight + 16) {
37256
- setTooltipMode('panelBottom');
37257
- } else if (spaceTop >= estimateHeight + 16) {
37258
- setTooltipMode('panelTop');
37259
- } else {
37260
- setTooltipMode('panelBottom');
37261
- }
37254
+ if (spaceBottom >= estimateHeight + 16) return 'panelBottom';
37255
+ if (spaceTop >= estimateHeight + 16) return 'panelTop';
37256
+ return 'panelBottom';
37262
37257
  };
37263
- computeMode();
37264
- window.addEventListener('resize', computeMode);
37265
- window.addEventListener('scroll', computeMode, true);
37266
- return function () {
37267
- window.removeEventListener('resize', computeMode);
37268
- window.removeEventListener('scroll', computeMode, true);
37269
- };
37270
- }, [enableItemTooltip, tooltipWidth]);
37271
-
37272
- // --- Repositionnement fin du tooltip ---
37273
- useEffect(function () {
37274
- if (!enableItemTooltip) return undefined;
37275
- var hoveredRow = null;
37276
37258
  var reposition = function reposition() {
37277
37259
  var tooltipEl = document.querySelector('.p-tooltip.p-component');
37278
37260
  if (!tooltipEl) return;
37261
+ var mode = computeMode();
37262
+ setTooltipMode(mode);
37279
37263
  var arrowEl = tooltipEl.querySelector('.p-tooltip-arrow');
37280
- if (tooltipMode === 'right') {
37264
+ if (mode === 'right') {
37281
37265
  var _hoveredRow;
37282
37266
  var iconEl = (_hoveredRow = hoveredRow) === null || _hoveredRow === void 0 ? void 0 : _hoveredRow.querySelector('.dropdown-item-info-icon');
37283
37267
  if (!iconEl) return;
@@ -37295,7 +37279,7 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
37295
37279
  if (!panel) return;
37296
37280
  var pRect = panel.getBoundingClientRect();
37297
37281
  var _tt = tooltipEl.getBoundingClientRect();
37298
- if (tooltipMode === 'panelBottom') {
37282
+ if (mode === 'panelBottom') {
37299
37283
  tooltipEl.style.top = "".concat(pRect.bottom + 8 + window.scrollY, "px");
37300
37284
  } else {
37301
37285
  tooltipEl.style.top = "".concat(pRect.top - _tt.height - 8 + window.scrollY, "px");
@@ -37319,7 +37303,7 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
37319
37303
  return function () {
37320
37304
  return document.removeEventListener('mouseover', trackHover);
37321
37305
  };
37322
- }, [enableItemTooltip, tooltipMode]);
37306
+ }, [enableItemTooltip, tooltipWidth]);
37323
37307
  var optionTemplate = function optionTemplate(option) {
37324
37308
  var _ref2 = selectMetaConfig || {},
37325
37309
  labelStyle = _ref2.labelStyle,
@@ -38033,9 +38017,10 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
38033
38017
  pt: {
38034
38018
  text: {
38035
38019
  style: {
38036
- width: tooltipWidth,
38020
+ width: 'auto',
38037
38021
  maxWidth: tooltipWidth,
38038
- whiteSpace: 'normal'
38022
+ whiteSpace: 'normal',
38023
+ wordBreak: 'break-word'
38039
38024
  }
38040
38025
  }
38041
38026
  }
@@ -38231,7 +38216,7 @@ var Dropdown = function Dropdown(props) {
38231
38216
  _props$enableItemTool = props.enableItemTooltip,
38232
38217
  enableItemTooltip = _props$enableItemTool === void 0 ? false : _props$enableItemTool,
38233
38218
  _props$tooltipWidth = props.tooltipWidth,
38234
- tooltipWidth = _props$tooltipWidth === void 0 ? '220px' : _props$tooltipWidth,
38219
+ tooltipWidth = _props$tooltipWidth === void 0 ? '250px' : _props$tooltipWidth,
38235
38220
  _props$enableItemLink = props.enableItemLink,
38236
38221
  enableItemLink = _props$enableItemLink === void 0 ? false : _props$enableItemLink,
38237
38222
  _props$openOnHover = props.openOnHover,
@@ -38288,9 +38273,9 @@ var Dropdown = function Dropdown(props) {
38288
38273
  // 'panelBottom' : sous le panel d'options (si pas assez de place à droite)
38289
38274
  // 'panelTop' : au-dessus du panel d'options (si pas assez de place en bas non plus)
38290
38275
  var _useState1 = useState('right'),
38291
- _useState10 = _slicedToArray$d(_useState1, 2),
38292
- tooltipMode = _useState10[0],
38293
- setTooltipMode = _useState10[1];
38276
+ _useState10 = _slicedToArray$d(_useState1, 2);
38277
+ _useState10[0];
38278
+ var setTooltipMode = _useState10[1];
38294
38279
  var _useState11 = useState(null),
38295
38280
  _useState12 = _slicedToArray$d(_useState11, 2),
38296
38281
  sortOrder = _useState12[0],
@@ -38429,68 +38414,37 @@ var Dropdown = function Dropdown(props) {
38429
38414
  };
38430
38415
  }, [enableItemTooltip]);
38431
38416
 
38432
- // --- Détection de la place autour du composant / panel ---
38433
- // Priorité 1 : à droite du picto i (mode 'right')
38434
- // Priorité 2 : sous le panel d'options (mode 'panelBottom')
38435
- // Priorité 3 : au-dessus du panel d'options (mode 'panelTop')
38417
+ // --- Repositionnement fin du tooltip ---
38418
+ // La détection du mode ('right' / 'panelBottom' / 'panelTop') est refaite
38419
+ // à chaque survol : la mesure reste à jour en intégration réelle même si
38420
+ // le layout a changé après le montage (scroll ancêtre, resize parent…).
38436
38421
  useEffect(function () {
38437
38422
  if (!enableItemTooltip) return undefined;
38423
+ var hoveredRow = null;
38438
38424
  var computeMode = function computeMode() {
38439
38425
  var container = containerRef.current;
38440
- if (!container) return;
38426
+ if (!container) return 'right';
38441
38427
  var cRect = container.getBoundingClientRect();
38442
38428
  var tooltipPxWidth = parseInt(String(tooltipWidth), 10) || 220;
38443
38429
  var spaceRight = window.innerWidth - cRect.right;
38444
- if (spaceRight >= tooltipPxWidth + 40) {
38445
- setTooltipMode('right');
38446
- return;
38447
- }
38430
+ if (spaceRight >= tooltipPxWidth + 40) return 'right';
38448
38431
  var panel = document.querySelector('.p-dropdown-panel.p-component');
38449
38432
  var anchor = panel || container;
38450
38433
  var aRect = anchor.getBoundingClientRect();
38451
- var estimateHeight = 120; // hauteur approximative du tooltip
38434
+ var estimateHeight = 120;
38452
38435
  var spaceBottom = window.innerHeight - aRect.bottom;
38453
38436
  var spaceTop = aRect.top;
38454
- if (spaceBottom >= estimateHeight + 16) {
38455
- setTooltipMode('panelBottom');
38456
- } else if (spaceTop >= estimateHeight + 16) {
38457
- setTooltipMode('panelTop');
38458
- } else {
38459
- setTooltipMode('panelBottom');
38460
- }
38461
- };
38462
- computeMode();
38463
- window.addEventListener('resize', computeMode);
38464
- window.addEventListener('scroll', computeMode, true);
38465
- return function () {
38466
- window.removeEventListener('resize', computeMode);
38467
- window.removeEventListener('scroll', computeMode, true);
38468
- };
38469
- }, [enableItemTooltip, isDropdownOpen, tooltipWidth]);
38470
-
38471
- // --- Repositionnement fin du tooltip ---
38472
- // Mode 'right' : la flèche du tooltip pointe précisément sur le picto i.
38473
- // Modes 'panelBottom' / 'panelTop' : tooltip ancré sous / au-dessus du panel
38474
- // (une seule position pour tous les items ; flèche masquée).
38475
- useEffect(function () {
38476
- if (!enableItemTooltip) return undefined;
38477
- var hoveredRow = null;
38478
- var trackHover = function trackHover(e) {
38479
- var _e$target, _e$target$closest;
38480
- var row = (_e$target = e.target) === null || _e$target === void 0 || (_e$target$closest = _e$target.closest) === null || _e$target$closest === void 0 ? void 0 : _e$target$closest.call(_e$target, '.dropdown-tooltip-item, .dropdown-tooltip-trigger');
38481
- if (row) {
38482
- hoveredRow = row;
38483
- requestAnimationFrame(reposition);
38484
- requestAnimationFrame(function () {
38485
- return requestAnimationFrame(reposition);
38486
- });
38487
- }
38437
+ if (spaceBottom >= estimateHeight + 16) return 'panelBottom';
38438
+ if (spaceTop >= estimateHeight + 16) return 'panelTop';
38439
+ return 'panelBottom';
38488
38440
  };
38489
38441
  var reposition = function reposition() {
38490
38442
  var tooltipEl = document.querySelector('.p-tooltip.p-component');
38491
38443
  if (!tooltipEl) return;
38444
+ var mode = computeMode();
38445
+ setTooltipMode(mode);
38492
38446
  var arrowEl = tooltipEl.querySelector('.p-tooltip-arrow');
38493
- if (tooltipMode === 'right') {
38447
+ if (mode === 'right') {
38494
38448
  var _hoveredRow;
38495
38449
  var iconEl = (_hoveredRow = hoveredRow) === null || _hoveredRow === void 0 ? void 0 : _hoveredRow.querySelector('.dropdown-item-info-icon');
38496
38450
  if (!iconEl) return;
@@ -38508,7 +38462,7 @@ var Dropdown = function Dropdown(props) {
38508
38462
  if (!panel) return;
38509
38463
  var pRect = panel.getBoundingClientRect();
38510
38464
  var _tt = tooltipEl.getBoundingClientRect();
38511
- if (tooltipMode === 'panelBottom') {
38465
+ if (mode === 'panelBottom') {
38512
38466
  tooltipEl.style.top = "".concat(pRect.bottom + 8 + window.scrollY, "px");
38513
38467
  } else {
38514
38468
  tooltipEl.style.top = "".concat(pRect.top - _tt.height - 8 + window.scrollY, "px");
@@ -38517,11 +38471,22 @@ var Dropdown = function Dropdown(props) {
38517
38471
  if (arrowEl) arrowEl.style.display = 'none';
38518
38472
  }
38519
38473
  };
38474
+ var trackHover = function trackHover(e) {
38475
+ var _e$target, _e$target$closest;
38476
+ var row = (_e$target = e.target) === null || _e$target === void 0 || (_e$target$closest = _e$target.closest) === null || _e$target$closest === void 0 ? void 0 : _e$target$closest.call(_e$target, '.dropdown-tooltip-item, .dropdown-tooltip-trigger');
38477
+ if (row) {
38478
+ hoveredRow = row;
38479
+ requestAnimationFrame(reposition);
38480
+ requestAnimationFrame(function () {
38481
+ return requestAnimationFrame(reposition);
38482
+ });
38483
+ }
38484
+ };
38520
38485
  document.addEventListener('mouseover', trackHover);
38521
38486
  return function () {
38522
38487
  return document.removeEventListener('mouseover', trackHover);
38523
38488
  };
38524
- }, [enableItemTooltip, tooltipMode]);
38489
+ }, [enableItemTooltip, tooltipWidth]);
38525
38490
 
38526
38491
  // --- Event handlers ---
38527
38492
  var handleShow = function handleShow() {
@@ -39062,9 +39027,10 @@ var Dropdown = function Dropdown(props) {
39062
39027
  pt: {
39063
39028
  text: {
39064
39029
  style: {
39065
- width: tooltipWidth,
39030
+ width: 'auto',
39066
39031
  maxWidth: tooltipWidth,
39067
- whiteSpace: 'normal'
39032
+ whiteSpace: 'normal',
39033
+ wordBreak: 'break-word'
39068
39034
  }
39069
39035
  }
39070
39036
  }
@@ -42010,7 +41976,7 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
42010
41976
  _ref$enableItemToolti = _ref.enableItemTooltip,
42011
41977
  enableItemTooltip = _ref$enableItemToolti === void 0 ? false : _ref$enableItemToolti,
42012
41978
  _ref$tooltipWidth = _ref.tooltipWidth,
42013
- tooltipWidth = _ref$tooltipWidth === void 0 ? '220px' : _ref$tooltipWidth,
41979
+ tooltipWidth = _ref$tooltipWidth === void 0 ? '250px' : _ref$tooltipWidth,
42014
41980
  _ref$enableItemLink = _ref.enableItemLink,
42015
41981
  enableItemLink = _ref$enableItemLink === void 0 ? false : _ref$enableItemLink,
42016
41982
  _ref$enableSecondaryL = _ref.enableSecondaryLabel,
@@ -42086,9 +42052,9 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
42086
42052
  // 'panelBottom' : tooltip sous le panel d'options
42087
42053
  // 'panelTop' : tooltip au-dessus du panel d'options
42088
42054
  var _useState9 = useState('right'),
42089
- _useState0 = _slicedToArray$d(_useState9, 2),
42090
- tooltipMode = _useState0[0],
42091
- setTooltipMode = _useState0[1];
42055
+ _useState0 = _slicedToArray$d(_useState9, 2);
42056
+ _useState0[0];
42057
+ var setTooltipMode = _useState0[1];
42092
42058
  var _useState1 = useState(null),
42093
42059
  _useState10 = _slicedToArray$d(_useState1, 2),
42094
42060
  sortOrder = _useState10[0],
@@ -42445,51 +42411,36 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
42445
42411
  };
42446
42412
  }, [enableItemTooltip]);
42447
42413
 
42448
- // --- Détection de la place autour du composant / panel ---
42414
+ // --- Repositionnement fin du tooltip ---
42415
+ // Le mode est recalculé à chaque survol pour rester à jour même après
42416
+ // intégration dans une page dynamique (scroll ancêtre, resize parent…).
42449
42417
  useEffect(function () {
42450
42418
  if (!enableItemTooltip) return undefined;
42419
+ var hoveredRow = null;
42451
42420
  var computeMode = function computeMode() {
42452
42421
  var container = containerRef.current;
42453
- if (!container) return;
42422
+ if (!container) return 'right';
42454
42423
  var cRect = container.getBoundingClientRect();
42455
42424
  var tooltipPxWidth = parseInt(String(tooltipWidth), 10) || 220;
42456
42425
  var spaceRight = window.innerWidth - cRect.right;
42457
- if (spaceRight >= tooltipPxWidth + 40) {
42458
- setTooltipMode('right');
42459
- return;
42460
- }
42426
+ if (spaceRight >= tooltipPxWidth + 40) return 'right';
42461
42427
  var panel = document.querySelector('.p-multiselect-panel.p-component');
42462
42428
  var anchor = panel || container;
42463
42429
  var aRect = anchor.getBoundingClientRect();
42464
42430
  var estimateHeight = 120;
42465
42431
  var spaceBottom = window.innerHeight - aRect.bottom;
42466
42432
  var spaceTop = aRect.top;
42467
- if (spaceBottom >= estimateHeight + 16) {
42468
- setTooltipMode('panelBottom');
42469
- } else if (spaceTop >= estimateHeight + 16) {
42470
- setTooltipMode('panelTop');
42471
- } else {
42472
- setTooltipMode('panelBottom');
42473
- }
42433
+ if (spaceBottom >= estimateHeight + 16) return 'panelBottom';
42434
+ if (spaceTop >= estimateHeight + 16) return 'panelTop';
42435
+ return 'panelBottom';
42474
42436
  };
42475
- computeMode();
42476
- window.addEventListener('resize', computeMode);
42477
- window.addEventListener('scroll', computeMode, true);
42478
- return function () {
42479
- window.removeEventListener('resize', computeMode);
42480
- window.removeEventListener('scroll', computeMode, true);
42481
- };
42482
- }, [enableItemTooltip, tooltipWidth]);
42483
-
42484
- // --- Repositionnement fin du tooltip ---
42485
- useEffect(function () {
42486
- if (!enableItemTooltip) return undefined;
42487
- var hoveredRow = null;
42488
42437
  var reposition = function reposition() {
42489
42438
  var tooltipEl = document.querySelector('.p-tooltip.p-component');
42490
42439
  if (!tooltipEl) return;
42440
+ var mode = computeMode();
42441
+ setTooltipMode(mode);
42491
42442
  var arrowEl = tooltipEl.querySelector('.p-tooltip-arrow');
42492
- if (tooltipMode === 'right') {
42443
+ if (mode === 'right') {
42493
42444
  var _hoveredRow;
42494
42445
  var iconEl = (_hoveredRow = hoveredRow) === null || _hoveredRow === void 0 ? void 0 : _hoveredRow.querySelector('.multiselect-item-info-icon');
42495
42446
  if (!iconEl) return;
@@ -42507,7 +42458,7 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
42507
42458
  if (!panel) return;
42508
42459
  var pRect = panel.getBoundingClientRect();
42509
42460
  var _tt = tooltipEl.getBoundingClientRect();
42510
- if (tooltipMode === 'panelBottom') {
42461
+ if (mode === 'panelBottom') {
42511
42462
  tooltipEl.style.top = "".concat(pRect.bottom + 8 + window.scrollY, "px");
42512
42463
  } else {
42513
42464
  tooltipEl.style.top = "".concat(pRect.top - _tt.height - 8 + window.scrollY, "px");
@@ -42531,7 +42482,7 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
42531
42482
  return function () {
42532
42483
  return document.removeEventListener('mouseover', trackHover);
42533
42484
  };
42534
- }, [enableItemTooltip, tooltipMode]);
42485
+ }, [enableItemTooltip, tooltipWidth]);
42535
42486
  var inverseColor = function inverseColor(hexColor) {
42536
42487
  if (!hexColor || !hexColor.startsWith('#')) return '#000000';
42537
42488
  var hex = hexColor;
@@ -43215,9 +43166,10 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
43215
43166
  pt: {
43216
43167
  text: {
43217
43168
  style: {
43218
- width: tooltipWidth,
43169
+ width: 'auto',
43219
43170
  maxWidth: tooltipWidth,
43220
- whiteSpace: 'normal'
43171
+ whiteSpace: 'normal',
43172
+ wordBreak: 'break-word'
43221
43173
  }
43222
43174
  }
43223
43175
  }
@@ -43561,7 +43513,7 @@ var MultiSelect = function MultiSelect(props) {
43561
43513
  _props$enableItemTool = props.enableItemTooltip,
43562
43514
  enableItemTooltip = _props$enableItemTool === void 0 ? false : _props$enableItemTool,
43563
43515
  _props$tooltipWidth = props.tooltipWidth,
43564
- tooltipWidth = _props$tooltipWidth === void 0 ? '220px' : _props$tooltipWidth,
43516
+ tooltipWidth = _props$tooltipWidth === void 0 ? '250px' : _props$tooltipWidth,
43565
43517
  _props$enableItemLink = props.enableItemLink,
43566
43518
  enableItemLink = _props$enableItemLink === void 0 ? false : _props$enableItemLink,
43567
43519
  _props$openOnHover = props.openOnHover,
@@ -43619,9 +43571,9 @@ var MultiSelect = function MultiSelect(props) {
43619
43571
  // 'panelBottom' : tooltip sous le panel d'options
43620
43572
  // 'panelTop' : tooltip au-dessus du panel d'options
43621
43573
  var _useState1 = useState('right'),
43622
- _useState10 = _slicedToArray$d(_useState1, 2),
43623
- tooltipMode = _useState10[0],
43624
- setTooltipMode = _useState10[1];
43574
+ _useState10 = _slicedToArray$d(_useState1, 2);
43575
+ _useState10[0];
43576
+ var setTooltipMode = _useState10[1];
43625
43577
  var multiSelectRef = useRef(null);
43626
43578
  var containerRef = useRef(null);
43627
43579
  var didMountRef = useRef(false);
@@ -44077,56 +44029,38 @@ var MultiSelect = function MultiSelect(props) {
44077
44029
  };
44078
44030
  }, [enableItemTooltip]);
44079
44031
 
44080
- // --- Détection de la place autour du composant / panel ---
44081
- // Priorité 1 : à droite du picto i (mode 'right')
44082
- // Priorité 2 : sous le panel d'options (mode 'panelBottom')
44083
- // Priorité 3 : au-dessus du panel d'options (mode 'panelTop')
44032
+ // --- Repositionnement fin du tooltip ---
44033
+ // La détection du mode ('right' / 'panelBottom' / 'panelTop') est refaite à
44034
+ // chaque survol : ainsi la mesure de position est toujours à jour même si
44035
+ // le layout a changé après le montage (intégration dans une page réelle,
44036
+ // scroll d'un ancêtre, resize du parent, etc.).
44084
44037
  useEffect(function () {
44085
44038
  if (!enableItemTooltip) return undefined;
44039
+ var hoveredRow = null;
44086
44040
  var computeMode = function computeMode() {
44087
44041
  var container = containerRef.current;
44088
- if (!container) return;
44042
+ if (!container) return 'right';
44089
44043
  var cRect = container.getBoundingClientRect();
44090
44044
  var tooltipPxWidth = parseInt(String(tooltipWidth), 10) || 220;
44091
44045
  var spaceRight = window.innerWidth - cRect.right;
44092
- if (spaceRight >= tooltipPxWidth + 40) {
44093
- setTooltipMode('right');
44094
- return;
44095
- }
44046
+ if (spaceRight >= tooltipPxWidth + 40) return 'right';
44096
44047
  var panel = document.querySelector('.p-multiselect-panel.p-component');
44097
44048
  var anchor = panel || container;
44098
44049
  var aRect = anchor.getBoundingClientRect();
44099
44050
  var estimateHeight = 120;
44100
44051
  var spaceBottom = window.innerHeight - aRect.bottom;
44101
44052
  var spaceTop = aRect.top;
44102
- if (spaceBottom >= estimateHeight + 16) {
44103
- setTooltipMode('panelBottom');
44104
- } else if (spaceTop >= estimateHeight + 16) {
44105
- setTooltipMode('panelTop');
44106
- } else {
44107
- setTooltipMode('panelBottom');
44108
- }
44109
- };
44110
- computeMode();
44111
- window.addEventListener('resize', computeMode);
44112
- window.addEventListener('scroll', computeMode, true);
44113
- return function () {
44114
- window.removeEventListener('resize', computeMode);
44115
- window.removeEventListener('scroll', computeMode, true);
44053
+ if (spaceBottom >= estimateHeight + 16) return 'panelBottom';
44054
+ if (spaceTop >= estimateHeight + 16) return 'panelTop';
44055
+ return 'panelBottom';
44116
44056
  };
44117
- }, [enableItemTooltip, tooltipWidth]);
44118
-
44119
- // --- Repositionnement fin du tooltip ---
44120
- // Mode 'right' : la flèche pointe précisément sur le picto i survolé.
44121
- // Modes 'panelBottom' / 'panelTop' : tooltip unique ancré sous / au-dessus du panel.
44122
- useEffect(function () {
44123
- if (!enableItemTooltip) return undefined;
44124
- var hoveredRow = null;
44125
44057
  var reposition = function reposition() {
44126
44058
  var tooltipEl = document.querySelector('.p-tooltip.p-component');
44127
44059
  if (!tooltipEl) return;
44060
+ var mode = computeMode();
44061
+ setTooltipMode(mode);
44128
44062
  var arrowEl = tooltipEl.querySelector('.p-tooltip-arrow');
44129
- if (tooltipMode === 'right') {
44063
+ if (mode === 'right') {
44130
44064
  var _hoveredRow;
44131
44065
  var iconEl = (_hoveredRow = hoveredRow) === null || _hoveredRow === void 0 ? void 0 : _hoveredRow.querySelector('.multiselect-item-info-icon');
44132
44066
  if (!iconEl) return;
@@ -44144,7 +44078,7 @@ var MultiSelect = function MultiSelect(props) {
44144
44078
  if (!panel) return;
44145
44079
  var pRect = panel.getBoundingClientRect();
44146
44080
  var _tt = tooltipEl.getBoundingClientRect();
44147
- if (tooltipMode === 'panelBottom') {
44081
+ if (mode === 'panelBottom') {
44148
44082
  tooltipEl.style.top = "".concat(pRect.bottom + 8 + window.scrollY, "px");
44149
44083
  } else {
44150
44084
  tooltipEl.style.top = "".concat(pRect.top - _tt.height - 8 + window.scrollY, "px");
@@ -44168,7 +44102,7 @@ var MultiSelect = function MultiSelect(props) {
44168
44102
  return function () {
44169
44103
  return document.removeEventListener('mouseover', trackHover);
44170
44104
  };
44171
- }, [enableItemTooltip, tooltipMode]);
44105
+ }, [enableItemTooltip, tooltipWidth]);
44172
44106
  var handleChange = function handleChange(e) {
44173
44107
  if (disabled || effectiveReadOnly) return;
44174
44108
  var ids = Array.isArray(e.value) ? e.value : [e.value];
@@ -44632,9 +44566,10 @@ var MultiSelect = function MultiSelect(props) {
44632
44566
  pt: {
44633
44567
  text: {
44634
44568
  style: {
44635
- width: tooltipWidth,
44569
+ width: 'auto',
44636
44570
  maxWidth: tooltipWidth,
44637
- whiteSpace: 'normal'
44571
+ whiteSpace: 'normal',
44572
+ wordBreak: 'break-word'
44638
44573
  }
44639
44574
  }
44640
44575
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "arengibook",
3
3
  "private": false,
4
- "version": "3.1.52-itemWithTooltip",
4
+ "version": "3.1.53-itemWithTooltip",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "exports": {