@nebula.js/stardust 4.13.0 → 4.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/core/esm/dev.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- * @nebula.js/stardust v4.13.0
2
+ * @nebula.js/stardust v4.14.0
3
3
  * Copyright (c) 2024 QlikTech International AB
4
4
  * Released under the MIT license.
5
5
  */
@@ -952,6 +952,26 @@ var CurrentSelections_Of = {
952
952
  "zh-TW": "{0}/ {1}"
953
953
  }
954
954
  };
955
+ var Listbox_Cyclic = {
956
+ id: "Listbox.Cyclic",
957
+ locale: {
958
+ "de-DE": "Zyklische Dimension",
959
+ "en-US": "Cyclic dimension",
960
+ "es-ES": "Dimensión cíclica",
961
+ "fr-FR": "Dimension cyclique",
962
+ "it-IT": "Dimensione ciclica",
963
+ "ja-JP": "サイクリック軸",
964
+ "ko-KR": "순환 차원",
965
+ "nl-NL": "Cyclische dimensie",
966
+ "pl-PL": "Wymiar cykliczny",
967
+ "pt-BR": "Dimensão cíclica",
968
+ "ru-RU": "Циклическое измерение",
969
+ "sv-SE": "Cyklisk dimension",
970
+ "tr-TR": "Döngüsel boyut",
971
+ "zh-CN": "循环维度",
972
+ "zh-TW": "循環維度"
973
+ }
974
+ };
955
975
  var Listbox_Dismiss = {
956
976
  id: "Listbox.Dismiss",
957
977
  locale: {
@@ -1956,6 +1976,7 @@ var all = {
1956
1976
  Cancel: Cancel$1,
1957
1977
  CurrentSelections_All: CurrentSelections_All,
1958
1978
  CurrentSelections_Of: CurrentSelections_Of,
1979
+ Listbox_Cyclic: Listbox_Cyclic,
1959
1980
  Listbox_Dismiss: Listbox_Dismiss,
1960
1981
  Listbox_DrillDown: Listbox_DrillDown,
1961
1982
  Listbox_ItemsOverflow: Listbox_ItemsOverflow,
@@ -5362,7 +5383,7 @@ var deepmerge = /*#__PURE__*/Object.freeze({
5362
5383
  isPlainObject: isPlainObject
5363
5384
  });
5364
5385
 
5365
- const _excluded$g = ["values", "unit", "step"];
5386
+ const _excluded$h = ["values", "unit", "step"];
5366
5387
  const sortBreakpointsValues = values => {
5367
5388
  const breakpointsAsArray = Object.keys(values).map(key => ({
5368
5389
  key,
@@ -5396,7 +5417,7 @@ function createBreakpoints(breakpoints) {
5396
5417
  unit = 'px',
5397
5418
  step = 5
5398
5419
  } = breakpoints,
5399
- other = _objectWithoutPropertiesLoose(breakpoints, _excluded$g);
5420
+ other = _objectWithoutPropertiesLoose(breakpoints, _excluded$h);
5400
5421
  const sortedValues = sortBreakpointsValues(values);
5401
5422
  const keys = Object.keys(sortedValues);
5402
5423
  function up(key) {
@@ -6461,7 +6482,7 @@ function applyStyles(key, styles) {
6461
6482
  return {};
6462
6483
  }
6463
6484
 
6464
- const _excluded$f = ["breakpoints", "palette", "spacing", "shape"];
6485
+ const _excluded$g = ["breakpoints", "palette", "spacing", "shape"];
6465
6486
  function createTheme$2(options = {}, ...args) {
6466
6487
  const {
6467
6488
  breakpoints: breakpointsInput = {},
@@ -6469,7 +6490,7 @@ function createTheme$2(options = {}, ...args) {
6469
6490
  spacing: spacingInput,
6470
6491
  shape: shapeInput = {}
6471
6492
  } = options,
6472
- other = _objectWithoutPropertiesLoose(options, _excluded$f);
6493
+ other = _objectWithoutPropertiesLoose(options, _excluded$g);
6473
6494
  const breakpoints = createBreakpoints(breakpointsInput);
6474
6495
  const spacing = createSpacing(spacingInput);
6475
6496
  let muiTheme = deepmerge$1({
@@ -6515,7 +6536,7 @@ function useTheme$3(defaultTheme = systemDefaultTheme$1) {
6515
6536
  return useTheme$4(defaultTheme);
6516
6537
  }
6517
6538
 
6518
- const _excluded$e = ["sx"];
6539
+ const _excluded$f = ["sx"];
6519
6540
  const splitProps = props => {
6520
6541
  var _props$theme$unstable, _props$theme;
6521
6542
  const result = {
@@ -6536,7 +6557,7 @@ function extendSxProp(props) {
6536
6557
  const {
6537
6558
  sx: inSx
6538
6559
  } = props,
6539
- other = _objectWithoutPropertiesLoose(props, _excluded$e);
6560
+ other = _objectWithoutPropertiesLoose(props, _excluded$f);
6540
6561
  const {
6541
6562
  systemProps,
6542
6563
  otherProps
@@ -6971,11 +6992,11 @@ function useForkRef(...refs) {
6971
6992
 
6972
6993
  class Timeout {
6973
6994
  constructor() {
6974
- this.currentId = 0;
6995
+ this.currentId = null;
6975
6996
  this.clear = () => {
6976
- if (this.currentId !== 0) {
6997
+ if (this.currentId !== null) {
6977
6998
  clearTimeout(this.currentId);
6978
- this.currentId = 0;
6999
+ this.currentId = null;
6979
7000
  }
6980
7001
  };
6981
7002
  this.disposeEffect = () => {
@@ -6991,7 +7012,7 @@ class Timeout {
6991
7012
  start(delay, fn) {
6992
7013
  this.clear();
6993
7014
  this.currentId = setTimeout(() => {
6994
- this.currentId = 0;
7015
+ this.currentId = null;
6995
7016
  fn();
6996
7017
  }, delay);
6997
7018
  }
@@ -7214,6 +7235,18 @@ function ThemeProvider$2(props) {
7214
7235
  });
7215
7236
  }
7216
7237
 
7238
+ const _excluded$e = ["value"];
7239
+ const RtlContext = /*#__PURE__*/React.createContext();
7240
+ function RtlProvider(_ref) {
7241
+ let {
7242
+ value
7243
+ } = _ref,
7244
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$e);
7245
+ return /*#__PURE__*/jsxRuntimeExports.jsx(RtlContext.Provider, _extends$4({
7246
+ value: value != null ? value : true
7247
+ }, props));
7248
+ }
7249
+
7217
7250
  const EMPTY_THEME = {};
7218
7251
  function useThemeScoping(themeId, upperTheme, localTheme, isPrivate = false) {
7219
7252
  return React.useMemo(() => {
@@ -7253,11 +7286,15 @@ function ThemeProvider$1(props) {
7253
7286
  const upperPrivateTheme = useTheme$2() || EMPTY_THEME;
7254
7287
  const engineTheme = useThemeScoping(themeId, upperTheme, localTheme);
7255
7288
  const privateTheme = useThemeScoping(themeId, upperPrivateTheme, localTheme, true);
7289
+ const rtlValue = engineTheme.direction === 'rtl';
7256
7290
  return /*#__PURE__*/jsxRuntimeExports.jsx(ThemeProvider$2, {
7257
7291
  theme: privateTheme,
7258
7292
  children: /*#__PURE__*/jsxRuntimeExports.jsx(ThemeContext$2.Provider, {
7259
7293
  value: engineTheme,
7260
- children: children
7294
+ children: /*#__PURE__*/jsxRuntimeExports.jsx(RtlProvider, {
7295
+ value: rtlValue,
7296
+ children: children
7297
+ })
7261
7298
  })
7262
7299
  });
7263
7300
  }
@@ -8717,7 +8754,7 @@ function _assertThisInitialized(self) {
8717
8754
  return self;
8718
8755
  }
8719
8756
 
8720
- const buttonClasses = generateUtilityClasses('MuiButton', ['root', 'text', 'textInherit', 'textPrimary', 'textSecondary', 'textSuccess', 'textError', 'textInfo', 'textWarning', 'outlined', 'outlinedInherit', 'outlinedPrimary', 'outlinedSecondary', 'outlinedSuccess', 'outlinedError', 'outlinedInfo', 'outlinedWarning', 'contained', 'containedInherit', 'containedPrimary', 'containedSecondary', 'containedSuccess', 'containedError', 'containedInfo', 'containedWarning', 'disableElevation', 'focusVisible', 'disabled', 'colorInherit', 'textSizeSmall', 'textSizeMedium', 'textSizeLarge', 'outlinedSizeSmall', 'outlinedSizeMedium', 'outlinedSizeLarge', 'containedSizeSmall', 'containedSizeMedium', 'containedSizeLarge', 'sizeMedium', 'sizeSmall', 'sizeLarge', 'fullWidth', 'startIcon', 'endIcon', 'iconSizeSmall', 'iconSizeMedium', 'iconSizeLarge']);
8757
+ const buttonClasses = generateUtilityClasses('MuiButton', ['root', 'text', 'textInherit', 'textPrimary', 'textSecondary', 'textSuccess', 'textError', 'textInfo', 'textWarning', 'outlined', 'outlinedInherit', 'outlinedPrimary', 'outlinedSecondary', 'outlinedSuccess', 'outlinedError', 'outlinedInfo', 'outlinedWarning', 'contained', 'containedInherit', 'containedPrimary', 'containedSecondary', 'containedSuccess', 'containedError', 'containedInfo', 'containedWarning', 'disableElevation', 'focusVisible', 'disabled', 'colorInherit', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorError', 'colorInfo', 'colorWarning', 'textSizeSmall', 'textSizeMedium', 'textSizeLarge', 'outlinedSizeSmall', 'outlinedSizeMedium', 'outlinedSizeLarge', 'containedSizeSmall', 'containedSizeMedium', 'containedSizeLarge', 'sizeMedium', 'sizeSmall', 'sizeLarge', 'fullWidth', 'startIcon', 'endIcon', 'icon', 'iconSizeSmall', 'iconSizeMedium', 'iconSizeLarge']);
8721
8758
  var buttonClasses$1 = buttonClasses;
8722
8759
 
8723
8760
  var base = {
@@ -9057,7 +9094,7 @@ function create$3(definition) {
9057
9094
  return cache[key];
9058
9095
  }
9059
9096
 
9060
- const NEBULA_VERSION_HASH = "3ebc" ;
9097
+ const NEBULA_VERSION_HASH = "3232" ;
9061
9098
  ClassNameGenerator.configure(componentName => {
9062
9099
  return "njs-".concat(NEBULA_VERSION_HASH, "-").concat(componentName.replace('Mui', ''));
9063
9100
  });
@@ -9317,7 +9354,7 @@ function boot(_ref2) {
9317
9354
  const appRef = React__default.createRef();
9318
9355
  const element = document.createElement('div');
9319
9356
  element.style.display = 'none';
9320
- element.setAttribute('data-nebulajs-version', "4.13.0" );
9357
+ element.setAttribute('data-nebulajs-version', "4.14.0" );
9321
9358
  element.setAttribute('data-app-id', app.id);
9322
9359
  document.body.appendChild(element);
9323
9360
  if (context) {
@@ -10482,31 +10519,52 @@ const excludedOrAlternative = _ref => {
10482
10519
  } = _ref;
10483
10520
  return (isAlternative(cell) || isExcluded(cell)) && checkboxes;
10484
10521
  };
10485
- const getValueStateClasses = _ref2 => {
10522
+ function getSelectionStateClass(_ref2) {
10523
+ let {
10524
+ cell,
10525
+ showGray
10526
+ } = _ref2;
10527
+ let selectionStateClass;
10528
+ switch (cell.qState) {
10529
+ case 'XS':
10530
+ selectionStateClass = showGray ? rowColClasses.XS : rowColClasses.S;
10531
+ break;
10532
+ case 'S':
10533
+ case 'L':
10534
+ selectionStateClass = rowColClasses.S;
10535
+ break;
10536
+ case 'A':
10537
+ selectionStateClass = showGray ? rowColClasses.A : false;
10538
+ break;
10539
+ case 'X':
10540
+ case 'XL':
10541
+ selectionStateClass = showGray ? rowColClasses.X : false;
10542
+ break;
10543
+ default:
10544
+ selectionStateClass = false;
10545
+ }
10546
+ return selectionStateClass;
10547
+ }
10548
+ const getValueStateClasses = _ref3 => {
10486
10549
  let {
10487
10550
  column,
10488
10551
  histogram,
10489
- checkboxes,
10490
10552
  cell,
10491
10553
  showGray
10492
- } = _ref2;
10554
+ } = _ref3;
10555
+ if (!cell) {
10556
+ return [];
10557
+ }
10493
10558
  const clazzArr = [column ? rowColClasses.column : rowColClasses.row];
10494
10559
  if (!histogram) {
10495
10560
  clazzArr.push(rowColClasses.rowBorderBottom);
10496
10561
  }
10497
- if (!cell) {
10498
- return [];
10499
- }
10500
- if (!checkboxes) {
10501
- if (cell.qState === 'XS') {
10502
- clazzArr.push(showGray ? rowColClasses.XS : rowColClasses.S);
10503
- } else if (cell.qState === 'S' || cell.qState === 'L') {
10504
- clazzArr.push(rowColClasses.S);
10505
- } else if (showGray && isAlternative(cell)) {
10506
- clazzArr.push(rowColClasses.A);
10507
- } else if (showGray && isExcluded(cell)) {
10508
- clazzArr.push(rowColClasses.X);
10509
- }
10562
+ const selectionStateClass = getSelectionStateClass({
10563
+ cell,
10564
+ showGray
10565
+ });
10566
+ if (selectionStateClass) {
10567
+ clazzArr.push(selectionStateClass);
10510
10568
  }
10511
10569
  return clazzArr;
10512
10570
  };
@@ -10573,15 +10631,27 @@ const getMaxFreqWidth = _ref2 => {
10573
10631
  }
10574
10632
  return sizes.freqMaxWidth;
10575
10633
  };
10576
- const getSelectedStyle = _ref3 => {
10634
+ const getRowSelectionStyle = _ref3 => {
10577
10635
  let {
10578
10636
  theme,
10637
+ checkboxes,
10579
10638
  styles,
10580
- selectedState
10639
+ selectionState
10581
10640
  } = _ref3;
10641
+ if (checkboxes) {
10642
+ if (selectionState === 'selected') {
10643
+ return {
10644
+ ["& .".concat(rowColClasses.labelText)]: {
10645
+ // Override labels (value and frequency count) color when selected.
10646
+ color: styles.selections.selected
10647
+ }
10648
+ };
10649
+ }
10650
+ return {};
10651
+ }
10582
10652
  const selectionStyles = styles.selections;
10583
- const backgroundColor = selectionStyles[selectedState];
10584
- const contrastTextColor = selectionStyles["".concat(selectedState, "Contrast")];
10653
+ const backgroundColor = selectionStyles[selectionState];
10654
+ const contrastTextColor = selectionStyles["".concat(selectionState, "Contrast")];
10585
10655
  return {
10586
10656
  background: backgroundColor,
10587
10657
  color: contrastTextColor,
@@ -10627,16 +10697,29 @@ const RowColRoot = styled('div', {
10627
10697
  } = _ref4;
10628
10698
  const _styles$content = styles.content,
10629
10699
  contentFontStyles = _objectWithoutProperties(_styles$content, _excluded$6);
10630
- const selectStyle = getSelectedStyle({
10700
+ const rowSelectionStyle = getRowSelectionStyle({
10631
10701
  theme,
10632
10702
  styles,
10633
- selectedState: 'selected'
10703
+ checkboxes,
10704
+ selectionState: 'selected'
10634
10705
  });
10635
- const excludedSelectStyle = getSelectedStyle({
10706
+ const rowExcludedStyle = getRowSelectionStyle({
10636
10707
  theme,
10637
10708
  styles,
10638
- selectedState: 'excluded'
10709
+ checkboxes,
10710
+ selectionState: 'excluded'
10639
10711
  });
10712
+ const barDefaultFilledStyle = {
10713
+ height: '100%',
10714
+ transition: 'width 0.2s',
10715
+ border: "".concat(barBorderWidthPx, "px solid"),
10716
+ borderColor: '#D9D9D9',
10717
+ // overridden by selected color (classes.S),
10718
+ backgroundColor: '#FAFAFA'
10719
+ };
10720
+ const barSelectedFilledStyle = {
10721
+ opacity: '30%'
10722
+ };
10640
10723
  return {
10641
10724
  '&:focus': {
10642
10725
  boxShadow: "inset 0 0 0 2px ".concat(theme.palette.custom.focusBorder, " !important")
@@ -10718,26 +10801,33 @@ const RowColRoot = styled('div', {
10718
10801
  color: contentFontStyles.color
10719
10802
  },
10720
10803
  // Selection styles (S=Selected, XS=ExcludedSelected, A=Alternative, X=Excluded).
10721
- ["& .".concat(rowColClasses.S)]: _objectSpread2(_objectSpread2({}, selectStyle), {}, {
10804
+ ["& .".concat(rowColClasses.S)]: _objectSpread2(_objectSpread2({}, rowSelectionStyle), {}, {
10722
10805
  border: isGridMode ? 'none' : undefined
10723
10806
  }),
10724
- ["& .".concat(rowColClasses.XS)]: _objectSpread2(_objectSpread2({}, getSelectedStyle({
10807
+ ["& .".concat(rowColClasses.XS)]: _objectSpread2(_objectSpread2({}, getRowSelectionStyle({
10725
10808
  theme,
10726
10809
  styles,
10727
- selectedState: 'selectedExcluded'
10810
+ checkboxes,
10811
+ selectionState: 'selectedExcluded'
10728
10812
  })), {}, {
10729
10813
  border: isGridMode ? 'none' : undefined
10730
10814
  }),
10731
- ["& .".concat(rowColClasses.A)]: _objectSpread2(_objectSpread2({}, getSelectedStyle({
10815
+ ["& .".concat(rowColClasses.A)]: _objectSpread2(_objectSpread2({}, getRowSelectionStyle({
10732
10816
  theme,
10733
10817
  styles,
10734
- selectedState: 'alternative'
10818
+ checkboxes,
10819
+ selectionState: 'alternative'
10735
10820
  })), {}, {
10736
10821
  border: isGridMode ? 'none' : undefined
10737
10822
  }),
10738
- ["& .".concat(rowColClasses.X)]: _objectSpread2(_objectSpread2({}, excludedSelectStyle), {}, {
10823
+ ["& .".concat(rowColClasses.X)]: _objectSpread2(_objectSpread2({}, rowExcludedStyle), {}, {
10739
10824
  border: isGridMode ? 'none' : undefined
10740
10825
  }),
10826
+ ["& .".concat(rowColClasses.X, ", & .").concat(rowColClasses.XS)]: {
10827
+ // Override the selected color for bar-filled, when the value is selected and excluded.
10828
+ border: isGridMode ? 'none' : undefined,
10829
+ ["& .".concat(rowColClasses.barSelected, " .bar-filled")]: _objectSpread2({}, barDefaultFilledStyle)
10830
+ },
10741
10831
  ["& .".concat(rowColClasses.frequencyCount)]: _objectSpread2(_objectSpread2({
10742
10832
  zIndex: 3,
10743
10833
  justifyContent: 'flex-end'
@@ -10773,33 +10863,23 @@ const RowColRoot = styled('div', {
10773
10863
  width: "calc(100% - ".concat(barPadPx * 2, "px)"),
10774
10864
  display: 'flex',
10775
10865
  alignItems: 'center',
10776
- '& .bar-filled': {
10777
- border: "".concat(barBorderWidthPx, "px solid"),
10778
- borderColor: '#D9D9D9',
10779
- transition: 'width 0.2s',
10780
- backgroundColor: '#FAFAFA',
10781
- height: '100%'
10782
- }
10866
+ '& .bar-filled': _objectSpread2({}, barDefaultFilledStyle)
10783
10867
  },
10784
10868
  ["& .".concat(rowColClasses.barSelected)]: {
10785
- '& .bar-filled': {
10786
- opacity: '30%',
10787
- background: theme.palette.background.lighter
10788
- }
10869
+ '& .bar-filled': _objectSpread2({}, barSelectedFilledStyle)
10789
10870
  },
10790
10871
  ["& .".concat(rowColClasses.barWithCheckbox)]: {
10791
10872
  left: direction === 'rtl' ? barPadPx : barWithCheckboxLeftPadPx,
10792
10873
  width: "calc(100% - ".concat(barWithCheckboxLeftPadPx + barPadPx, "px)")
10793
10874
  },
10794
10875
  ["& .".concat(rowColClasses.barSelectedWithCheckbox)]: {
10795
- '& .bar-filled': {
10796
- opacity: '30%',
10797
- background: selectStyle.background || '#BFE5D0',
10798
- borderColor: selectStyle.background || '#BFE5D0'
10799
- }
10876
+ '& .bar-filled': _objectSpread2(_objectSpread2({}, barSelectedFilledStyle), {}, {
10877
+ backgroundColor: styles.selections.selected || '#BFE5D0',
10878
+ borderColor: styles.selections.selected
10879
+ })
10800
10880
  },
10801
10881
  ["& .".concat(rowColClasses.excludedTextWithCheckbox)]: {
10802
- color: '#828282',
10882
+ color: styles.content.color,
10803
10883
  fontStyle: 'italic'
10804
10884
  }
10805
10885
  };
@@ -11762,10 +11842,9 @@ function RowColumn(_ref) {
11762
11842
  const classArr = useMemo$1(() => getValueStateClasses({
11763
11843
  column,
11764
11844
  histogram,
11765
- checkboxes,
11766
11845
  cell,
11767
11846
  showGray
11768
- }), [cell === null || cell === void 0 ? void 0 : cell.qState, histogram, dense, checkboxes]);
11847
+ }), [cell === null || cell === void 0 ? void 0 : cell.qState, histogram, dense]);
11769
11848
  const preventContextMenu = useCallback(event => {
11770
11849
  event.preventDefault();
11771
11850
  }, [checkboxes]);
@@ -15436,8 +15515,10 @@ const search = props => _objectSpread2(_objectSpread2({}, props), {}, {
15436
15515
  });
15437
15516
  var SearchIcon = (props => SvgIcon$1(search(props)));
15438
15517
 
15518
+ const MAX_SEARCH_LENGTH = 64000;
15439
15519
  const TREE_PATH = '/qListObjectDef';
15440
15520
  const WILDCARD = '**';
15521
+ const limitSearchLength = val => val === null || val === void 0 ? void 0 : val.substring(0, MAX_SEARCH_LENGTH);
15441
15522
  const StyledOutlinedInput = styled(OutlinedInput, {
15442
15523
  shouldForwardProp: p => !['styles', 'dense', 'isRtl'].includes(p)
15443
15524
  })(_ref => {
@@ -15546,11 +15627,12 @@ function ListBoxSearch(_ref2) {
15546
15627
  setStoreValue('inputText', value);
15547
15628
  }, [value]);
15548
15629
  const onChange = async e => {
15549
- setValue(e.target.value);
15550
- if (!e.target.value.length) {
15630
+ const searchValue = limitSearchLength(e.target.value);
15631
+ setValue(searchValue);
15632
+ if (!searchValue.length) {
15551
15633
  return abortSearch();
15552
15634
  }
15553
- return model.searchListObjectFor(TREE_PATH, e.target.value);
15635
+ return model.searchListObjectFor(TREE_PATH, searchValue);
15554
15636
  };
15555
15637
  const handleFocus = () => {
15556
15638
  if (wildCardSearch) {
@@ -15567,11 +15649,12 @@ function ListBoxSearch(_ref2) {
15567
15649
  };
15568
15650
  const performSearch = async () => {
15569
15651
  let response;
15570
- const success = await model.searchListObjectFor(TREE_PATH, value);
15652
+ const searchValue = limitSearchLength(value);
15653
+ const success = await model.searchListObjectFor(TREE_PATH, searchValue);
15571
15654
  if (selectionState.selectDisabled()) {
15572
15655
  return success;
15573
15656
  }
15574
- if (success && value.length && hasHits()) {
15657
+ if (success && searchValue.length && hasHits()) {
15575
15658
  response = model.acceptListObjectSearch(TREE_PATH, true);
15576
15659
  // eslint-disable-next-line no-param-reassign
15577
15660
  selections.selectionsMade = true;
@@ -19354,6 +19437,7 @@ class AutoSizer extends Component {
19354
19437
  defaultWidth,
19355
19438
  disableHeight = false,
19356
19439
  disableWidth = false,
19440
+ doNotBailOutOnEmptyChildren = false,
19357
19441
  nonce,
19358
19442
  onResize,
19359
19443
  style = {},
@@ -19394,6 +19478,9 @@ class AutoSizer extends Component {
19394
19478
  childParams.width = width;
19395
19479
  childParams.scaledWidth = scaledWidth;
19396
19480
  }
19481
+ if (doNotBailOutOnEmptyChildren) {
19482
+ bailoutOnChildren = false;
19483
+ }
19397
19484
  return createElement(tagName, {
19398
19485
  ref: this._setRef,
19399
19486
  style: {
@@ -19675,16 +19762,6 @@ function getContainerPadding(_ref) {
19675
19762
  return containerPadding;
19676
19763
  }
19677
19764
 
19678
- const drillDown = props => _objectSpread2(_objectSpread2({}, props), {}, {
19679
- shapes: [{
19680
- type: 'path',
19681
- attrs: {
19682
- d: 'M15.9993744,3 L15.9993744,5 L4.99937445,5 L4.99937445,3 L15.9993744,3 Z M8.99937445,7 L15.9993744,7 L15.9993744,9 L8.99937445,9 L8.99937445,7 Z M11.9993744,11 L15.9993744,11 L15.9993744,13 L11.9993744,13 L11.9993744,11 Z M2.2,11 L7,11 L7,9.00369263 C7,8.89323568 7.08954305,8.80369263 7.2,8.80369263 C7.2549016,8.80369263 7.30738916,8.82626165 7.34515712,8.86610844 L10.1852182,11.8624926 C10.2583124,11.93961 10.258346,12.0604218 10.1852948,12.13758 L7.34523376,15.1373102 C7.2692928,15.2175206 7.14270711,15.2209817 7.06249671,15.1450407 C7.02260076,15.1072683 7,15.0547472 7,14.9998069 L7,12.9043747 C4.79351111,12.9043747 2.8018683,12.9266213 1.02507156,12.9711145 L1.02507252,12.9711526 C0.472939773,12.9849787 0.014139487,12.5485949 0.000313396522,11.9964622 C0.000104473692,11.988119 -1.32268838e-12,11.9797736 -1.3231638e-12,11.9714278 L-1.83320026e-12,3 L2,3 L2,10.8 C2,10.9104569 2.08954305,11 2.2,11 Z'
19683
- }
19684
- }]
19685
- });
19686
- var DrillDownIcon = (props => SvgIcon$1(drillDown(props)));
19687
-
19688
19765
  function showToolbarDetached(_ref) {
19689
19766
  var _titleRef$current$cli, _titleRef$current, _titleRef$current2, _titleRef$current3;
19690
19767
  let {
@@ -19840,6 +19917,112 @@ function UnlockCoverButton(_ref4) {
19840
19917
  return component;
19841
19918
  }
19842
19919
 
19920
+ const cyclic = props => _objectSpread2(_objectSpread2({}, props), {}, {
19921
+ shapes: [{
19922
+ type: 'path',
19923
+ attrs: {
19924
+ d: 'M 6 2 h 10 V 1 H 6 Z m 5 5 h 5 V 6 h -5 Z m 5 5 h -5 v -1 h 5 Z M 5 10 h 1 v 2.663 a 3.5 3.5 0 1 0 -2.922 0.036 l -0.406 0.914 A 4.501 4.501 0 1 1 7.329 13 H 9 v 1 H 5 Z'
19925
+ }
19926
+ }]
19927
+ });
19928
+ var CyclicIcon = (props => SvgIcon$1(cyclic(props)));
19929
+
19930
+ const drillDown = props => _objectSpread2(_objectSpread2({}, props), {}, {
19931
+ shapes: [{
19932
+ type: 'path',
19933
+ attrs: {
19934
+ d: 'M7 4h9v1H7zm2 4h7v1H9zm2 4h5v1h-5zM1 4v3.526a3.5 3.5 0 0 0 3.5 3.5h2.31L5.22 9.402l.715-.7L8.7 11.527 5.935 14.35l-.714-.7 1.59-1.624H4.5a4.5 4.5 0 0 1-4.5-4.5V4z'
19935
+ }
19936
+ }]
19937
+ });
19938
+ var DrillDownIcon = (props => SvgIcon$1(drillDown(props)));
19939
+
19940
+ const reload = props => _objectSpread2(_objectSpread2({}, props), {}, {
19941
+ shapes: [{
19942
+ type: 'path',
19943
+ attrs: {
19944
+ d: 'M1 8a7 7 0 1 1 10 6.326V11h-1v5h5v-1h-3.124A8 8 0 1 0 8 16v-1a7 7 0 0 1-7-7Z'
19945
+ }
19946
+ }]
19947
+ });
19948
+ var ReloadIcon = (props => SvgIcon$1(reload(props)));
19949
+
19950
+ const dimensionTypes = {
19951
+ single: 'N',
19952
+ drillDown: 'H',
19953
+ cyclic: 'C'
19954
+ };
19955
+ const createDimensionIconData = (dimInfo, app) => {
19956
+ switch (dimInfo.qGrouping) {
19957
+ case dimensionTypes.drillDown:
19958
+ return {
19959
+ icon: DrillDownIcon,
19960
+ tooltip: 'Listbox.DrillDown',
19961
+ onClick: undefined
19962
+ };
19963
+ case dimensionTypes.cyclic:
19964
+ return {
19965
+ icon: app ? ReloadIcon : CyclicIcon,
19966
+ tooltip: 'Listbox.Cyclic',
19967
+ onClick: app ? () => {
19968
+ app.getDimension(dimInfo.qLibraryId).then(dimensionModel => {
19969
+ if (!dimensionModel.stepCycle) {
19970
+ // eslint-disable-next-line no-console
19971
+ console.log("engine api spec version doesn't have support for function stepCycle");
19972
+ return;
19973
+ }
19974
+ dimensionModel.stepCycle(1);
19975
+ }).catch(() => null);
19976
+ } : undefined
19977
+ };
19978
+ default:
19979
+ return undefined;
19980
+ }
19981
+ };
19982
+ var iconUtils = {
19983
+ createDimensionIconData
19984
+ };
19985
+
19986
+ const StyledButton = styled$3(Button)(() => ({
19987
+ borderRadius: 4,
19988
+ width: 24,
19989
+ height: 24,
19990
+ minWidth: 22,
19991
+ padding: 0
19992
+ }));
19993
+ function DimensionIcon(_ref) {
19994
+ let {
19995
+ iconData,
19996
+ translator,
19997
+ iconStyle
19998
+ } = _ref;
19999
+ if (!iconData) return undefined;
20000
+ const {
20001
+ icon,
20002
+ tooltip,
20003
+ onClick
20004
+ } = iconData;
20005
+ const Icon = icon;
20006
+ const title = translator.get(tooltip);
20007
+ const isButton = onClick;
20008
+ return isButton ? /*#__PURE__*/React__default.createElement(StyledButton, {
20009
+ variant: "outlined",
20010
+ onClick: onClick,
20011
+ tabIndex: -1,
20012
+ title: title,
20013
+ size: "large",
20014
+ disableRipple: true
20015
+ }, /*#__PURE__*/React__default.createElement(Icon, {
20016
+ style: iconStyle
20017
+ })) : /*#__PURE__*/React__default.createElement(Icon, {
20018
+ title: title,
20019
+ size: "large",
20020
+ style: _objectSpread2(_objectSpread2({}, iconStyle), {}, {
20021
+ padding: "".concat(ICON_PADDING, "px")
20022
+ })
20023
+ });
20024
+ }
20025
+
19843
20026
  // ms that needs to pass before the lock button can be toggled again
19844
20027
  const lockTimeFrameMs = 500;
19845
20028
  let lastTime = 0;
@@ -19874,7 +20057,7 @@ function getToggleLock(_ref) {
19874
20057
  };
19875
20058
  }
19876
20059
  function ListBoxHeader(_ref2) {
19877
- var _layout$qListObject, _layout$qListObject3;
20060
+ var _layout$qListObject, _layout$qListObject3, _layout$qListObject4;
19878
20061
  let {
19879
20062
  layout,
19880
20063
  translator,
@@ -19882,7 +20065,6 @@ function ListBoxHeader(_ref2) {
19882
20065
  isRtl,
19883
20066
  showLock,
19884
20067
  showSearchIcon,
19885
- isDrillDown,
19886
20068
  constraints,
19887
20069
  onShowSearch,
19888
20070
  classes,
@@ -19896,7 +20078,8 @@ function ListBoxHeader(_ref2) {
19896
20078
  isDirectQuery,
19897
20079
  selections,
19898
20080
  keyboard,
19899
- autoConfirm
20081
+ autoConfirm,
20082
+ app
19900
20083
  } = _ref2;
19901
20084
  const [isToolbarDetached, setIsToolbarDetached] = useState$1(showDetachedToolbarOnly);
19902
20085
  const [isLocked, setLocked] = useState$1(layout === null || layout === void 0 || (_layout$qListObject = layout.qListObject) === null || _layout$qListObject === void 0 || (_layout$qListObject = _layout$qListObject.qDimensionInfo) === null || _layout$qListObject === void 0 ? void 0 : _layout$qListObject.qLocked);
@@ -19906,15 +20089,16 @@ function ListBoxHeader(_ref2) {
19906
20089
  setLocked(layout === null || layout === void 0 || (_layout$qListObject2 = layout.qListObject) === null || _layout$qListObject2 === void 0 || (_layout$qListObject2 = _layout$qListObject2.qDimensionInfo) === null || _layout$qListObject2 === void 0 ? void 0 : _layout$qListObject2.qLocked);
19907
20090
  }, [layout === null || layout === void 0 || (_layout$qListObject3 = layout.qListObject) === null || _layout$qListObject3 === void 0 || (_layout$qListObject3 = _layout$qListObject3.qDimensionInfo) === null || _layout$qListObject3 === void 0 ? void 0 : _layout$qListObject3.qLocked]);
19908
20091
  const titleRef = useRef(null);
20092
+ const iconData = iconUtils.createDimensionIconData(layout === null || layout === void 0 || (_layout$qListObject4 = layout.qListObject) === null || _layout$qListObject4 === void 0 ? void 0 : _layout$qListObject4.qDimensionInfo, app);
19909
20093
  const showUnlock = showLock && isLocked;
19910
20094
  const showLockIcon = !showLock && isLocked; // shows instead of the cover button when field/dim is locked.
19911
- const showLeftIcon = showSearchIcon || showLockIcon || isDrillDown; // the left-most icon outside of the actions/selections toolbar.
20095
+ const showLeftIcon = showSearchIcon || showLockIcon || iconData; // the left-most icon outside of the actions/selections toolbar.
19912
20096
 
19913
20097
  const paddingLeft = CELL_PADDING_LEFT - (showLeftIcon ? ICON_PADDING : 0);
19914
20098
  const paddingRight = isRtl ? CELL_PADDING_LEFT - (showLeftIcon ? ICON_PADDING : 0) : HEADER_PADDING_RIGHT;
19915
20099
 
19916
20100
  // Calculate explicit width for icons container. Search and lock cannot exist combined.
19917
- const iconsWidth = (showSearchIcon ? BUTTON_ICON_WIDTH : 0) + (showLockIcon ? BUTTON_ICON_WIDTH : 0) + (isDrillDown ? BUTTON_ICON_WIDTH : 0);
20101
+ const iconsWidth = (showSearchIcon ? BUTTON_ICON_WIDTH : 0) + (showLockIcon ? BUTTON_ICON_WIDTH : 0) + (iconData ? BUTTON_ICON_WIDTH : 0);
19918
20102
  const toggleLock = getToggleLock({
19919
20103
  isLocked,
19920
20104
  setLocked,
@@ -20013,12 +20197,10 @@ function ListBoxHeader(_ref2) {
20013
20197
  alignItems: "center",
20014
20198
  width: iconsWidth,
20015
20199
  className: "header-action-container"
20016
- }, lockedIconComp || showSearchIcon && searchIconComp, isDrillDown && /*#__PURE__*/React__default.createElement(DrillDownIcon, {
20017
- tabIndex: -1,
20018
- title: translator.get('Listbox.DrillDown'),
20019
- style: _objectSpread2(_objectSpread2({}, iconStyle), {}, {
20020
- padding: "".concat(ICON_PADDING, "px")
20021
- })
20200
+ }, lockedIconComp || showSearchIcon && searchIconComp, /*#__PURE__*/React__default.createElement(DimensionIcon, {
20201
+ iconData: iconData,
20202
+ iconStyle: iconStyle,
20203
+ translator: translator
20022
20204
  })), /*#__PURE__*/React__default.createElement(Grid, {
20023
20205
  item: true,
20024
20206
  xs: true,
@@ -20088,7 +20270,7 @@ const isModal = _ref2 => {
20088
20270
  return (_app$isInModalSelecti = (_app$isInModalSelecti2 = app.isInModalSelection) === null || _app$isInModalSelecti2 === void 0 ? void 0 : _app$isInModalSelecti2.call(app)) !== null && _app$isInModalSelecti !== void 0 ? _app$isInModalSelecti : appSelections.isInModal();
20089
20271
  };
20090
20272
  function ListBoxInline(_ref3) {
20091
- var _layout$qListObject, _layout$qListObject2, _layout$title, _layoutOptions$dense, _containerRef$current;
20273
+ var _layout$qListObject, _layout$title, _layoutOptions$dense, _containerRef$current;
20092
20274
  let {
20093
20275
  options,
20094
20276
  layout
@@ -20254,7 +20436,6 @@ function ListBoxInline(_ref3) {
20254
20436
  } = layout !== null && layout !== void 0 ? layout : {};
20255
20437
  const isLocked = layout === null || layout === void 0 || (_layout$qListObject = layout.qListObject) === null || _layout$qListObject === void 0 || (_layout$qListObject = _layout$qListObject.qDimensionInfo) === null || _layout$qListObject === void 0 ? void 0 : _layout$qListObject.qLocked;
20256
20438
  const showSearchIcon = searchEnabled !== false && search === 'toggle' && !isLocked;
20257
- const isDrillDown = (layout === null || layout === void 0 || (_layout$qListObject2 = layout.qListObject) === null || _layout$qListObject2 === void 0 || (_layout$qListObject2 = _layout$qListObject2.qDimensionInfo) === null || _layout$qListObject2 === void 0 ? void 0 : _layout$qListObject2.qGrouping) === 'H';
20258
20439
  const canShowTitle = (layout === null || layout === void 0 || (_layout$title = layout.title) === null || _layout$title === void 0 ? void 0 : _layout$title.length) && (layout === null || layout === void 0 ? void 0 : layout.showTitle) !== false;
20259
20440
  const showDetachedToolbarOnly = toolbar && !canShowTitle && !isPopover;
20260
20441
  const showAttachedToolbar = toolbar && canShowTitle || isPopover;
@@ -20292,8 +20473,8 @@ function ListBoxInline(_ref3) {
20292
20473
  }
20293
20474
  const listBoxMinHeight = showAttachedToolbar ? DENSE_ROW_HEIGHT + SCROLL_BAR_WIDTH : 0;
20294
20475
  const listBoxHeader = /*#__PURE__*/React__default.createElement(ListBoxHeader, {
20476
+ app: app,
20295
20477
  showSearchIcon: showSearchIcon,
20296
- isDrillDown: isDrillDown,
20297
20478
  onShowSearch: handleShowSearch,
20298
20479
  isPopover: isPopover,
20299
20480
  showToolbar: showToolbar,
@@ -28990,7 +29171,10 @@ const DEFAULT_CONFIG = {
28990
29171
  themes: [],
28991
29172
  anything: {},
28992
29173
  flags: {
28993
- KPI_REACTCOLORPICKER: true
29174
+ KPI_REACTCOLORPICKER: true,
29175
+ IM_1869_HIDE_DIM_MEA_LINE: true,
29176
+ IM_1579_HIDE_DIM_MEA: true,
29177
+ CLIENT_IM_3365: true
28994
29178
  },
28995
29179
  snapshot: DEFAULT_SNAPSHOT_CONFIG
28996
29180
  };