@carbon/ibm-products 1.8.0 → 1.11.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.
Files changed (111) hide show
  1. package/css/index-full-carbon.css +270 -5656
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +6 -6
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +58 -3432
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +3 -3
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +238 -3922
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +6 -6
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +238 -3923
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +6 -6
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AddSelect/AddSelect.js +147 -53
  18. package/es/components/AddSelect/AddSelectBreadcrumbs.js +4 -4
  19. package/es/components/AddSelect/AddSelectColumn.js +195 -0
  20. package/es/components/AddSelect/AddSelectList.js +67 -8
  21. package/es/components/AddSelect/AddSelectSidebar.js +8 -15
  22. package/es/components/AddSelect/add-select-utils.js +64 -0
  23. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -1
  24. package/es/components/ButtonMenu/ButtonMenu.js +1 -1
  25. package/es/components/DataSpreadsheet/DataSpreadsheet.js +505 -167
  26. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +244 -17
  27. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +74 -8
  28. package/es/components/DataSpreadsheet/hooks/useMoveActiveCell.js +27 -0
  29. package/es/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +28 -0
  30. package/es/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +41 -0
  31. package/es/components/DataSpreadsheet/utils/checkActiveHeaderCell.js +34 -0
  32. package/es/components/DataSpreadsheet/utils/createActiveCellFn.js +58 -0
  33. package/es/components/DataSpreadsheet/utils/createCellSelectionArea.js +49 -0
  34. package/es/components/DataSpreadsheet/{generateData.js → utils/generateData.js} +6 -0
  35. package/es/components/DataSpreadsheet/{getCellSize.js → utils/getCellSize.js} +0 -0
  36. package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +46 -0
  37. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +82 -0
  38. package/es/components/DataSpreadsheet/utils/removeCellSelections.js +30 -0
  39. package/es/components/InlineEdit/InlineEdit.js +80 -39
  40. package/es/components/OptionsTile/OptionsTile.js +31 -21
  41. package/es/components/OptionsTile/index.js +1 -1
  42. package/es/components/PageHeader/PageHeader.js +26 -15
  43. package/es/components/PageHeader/PageHeaderTitle.js +2 -1
  44. package/es/components/PageHeader/PageHeaderUtils.js +24 -29
  45. package/es/components/TagSet/TagSet.js +12 -3
  46. package/es/components/UserProfileImage/UserProfileImage.js +2 -1
  47. package/es/global/js/utils/DisplayBox.js +31 -0
  48. package/es/global/js/utils/deepCloneObject.js +26 -0
  49. package/lib/components/AddSelect/AddSelect.js +150 -54
  50. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +2 -3
  51. package/lib/components/AddSelect/AddSelectColumn.js +219 -0
  52. package/lib/components/AddSelect/AddSelectList.js +65 -8
  53. package/lib/components/AddSelect/AddSelectSidebar.js +14 -15
  54. package/lib/components/AddSelect/add-select-utils.js +78 -0
  55. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -1
  56. package/lib/components/ButtonMenu/ButtonMenu.js +1 -1
  57. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +514 -170
  58. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +251 -18
  59. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +82 -9
  60. package/lib/components/DataSpreadsheet/hooks/useMoveActiveCell.js +37 -0
  61. package/lib/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +39 -0
  62. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +52 -0
  63. package/lib/components/DataSpreadsheet/utils/checkActiveHeaderCell.js +45 -0
  64. package/lib/components/DataSpreadsheet/{createActiveCellFn.js → utils/createActiveCellFn.js} +22 -9
  65. package/lib/components/DataSpreadsheet/utils/createCellSelectionArea.js +60 -0
  66. package/lib/components/DataSpreadsheet/{generateData.js → utils/generateData.js} +6 -0
  67. package/lib/components/DataSpreadsheet/{getCellSize.js → utils/getCellSize.js} +0 -0
  68. package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +59 -0
  69. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +92 -0
  70. package/lib/components/DataSpreadsheet/utils/removeCellSelections.js +41 -0
  71. package/lib/components/InlineEdit/InlineEdit.js +82 -40
  72. package/lib/components/OptionsTile/OptionsTile.js +30 -20
  73. package/lib/components/PageHeader/PageHeader.js +25 -15
  74. package/lib/components/PageHeader/PageHeaderTitle.js +2 -1
  75. package/lib/components/PageHeader/PageHeaderUtils.js +24 -29
  76. package/lib/components/TagSet/TagSet.js +13 -3
  77. package/lib/components/UserProfileImage/UserProfileImage.js +2 -1
  78. package/lib/global/js/utils/DisplayBox.js +46 -0
  79. package/lib/global/js/utils/deepCloneObject.js +37 -0
  80. package/package.json +17 -17
  81. package/scss/components/ActionBar/_storybook-styles.scss +8 -0
  82. package/scss/components/ActionSet/_storybook-styles.scss +1 -3
  83. package/scss/components/AddSelect/_add-select.scss +99 -14
  84. package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +7 -3
  85. package/scss/components/BreadcrumbWithOverflow/_storybook-styles.scss +8 -0
  86. package/scss/components/ButtonSetWithOverflow/_storybook-styles.scss +8 -0
  87. package/scss/components/CreateInfluencer/_create-influencer.scss +2 -0
  88. package/scss/components/CreateModal/_create-modal.scss +1 -0
  89. package/scss/components/CreateSidePanel/_create-side-panel.scss +1 -1
  90. package/scss/components/CreateSidePanel/_storybook-styles.scss +1 -1
  91. package/scss/components/CreateTearsheet/_create-tearsheet.scss +1 -0
  92. package/scss/components/CreateTearsheetNarrow/_create-tearsheet-narrow.scss +1 -0
  93. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +42 -6
  94. package/scss/components/EditSidePanel/_edit-side-panel.scss +9 -0
  95. package/scss/components/EditSidePanel/_storybook-styles.scss +1 -1
  96. package/scss/components/InlineEdit/_inline-edit.scss +53 -43
  97. package/scss/components/InlineEdit/_storybook-styles.scss +2 -0
  98. package/scss/components/LoadingBar/_loading-bar.scss +13 -0
  99. package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -0
  100. package/scss/components/OptionsTile/_index.scss +1 -1
  101. package/scss/components/OptionsTile/_options-tile.scss +17 -17
  102. package/scss/components/OptionsTile/_storybook-styles.scss +4 -4
  103. package/scss/components/PageHeader/_page-header.scss +5 -2
  104. package/scss/components/SidePanel/_side-panel.scss +19 -12
  105. package/scss/components/StatusIcon/_status-icon.scss +1 -0
  106. package/scss/components/TagSet/_storybook-styles.scss +8 -0
  107. package/scss/components/Tearsheet/_tearsheet.scss +1 -2
  108. package/scss/components/UserProfileImage/_user-profile-image.scss +9 -0
  109. package/scss/components/WebTerminal/_web-terminal.scss +2 -0
  110. package/scss/global/styles/_display-box.scss +62 -0
  111. package/es/components/DataSpreadsheet/createActiveCellFn.js +0 -45
@@ -26,6 +26,7 @@
26
26
  // stylelint-disable-next-line carbon/layout-token-use
27
27
  transform: translateY(-38.5rem); // the height of the notification panel
28
28
  }
29
+
29
30
  100% {
30
31
  opacity: 1;
31
32
  transform: translateY(0);
@@ -37,6 +38,7 @@
37
38
  opacity: 1;
38
39
  transform: translateY(0);
39
40
  }
41
+
40
42
  100% {
41
43
  opacity: 0;
42
44
  // stylelint-disable-next-line carbon/layout-token-use
@@ -204,6 +206,7 @@
204
206
  padding: 0;
205
207
  color: $text-01;
206
208
  opacity: 0;
209
+
207
210
  &:hover,
208
211
  &:focus {
209
212
  opacity: 1;
@@ -1,5 +1,5 @@
1
1
  //
2
- // Copyright IBM Corp. 2021, 2021
2
+ // Copyright IBM Corp. 2021, 2022
3
3
  //
4
4
  // This source code is licensed under the Apache-2.0 license found in the
5
5
  // LICENSE file in the root directory of this source tree.
@@ -1,5 +1,5 @@
1
1
  //
2
- // Copyright IBM Corp. 2021, 2021
2
+ // Copyright IBM Corp. 2021, 2022
3
3
  //
4
4
  // This source code is licensed under the Apache-2.0 license found in the
5
5
  // LICENSE file in the root directory of this source tree.
@@ -12,6 +12,10 @@
12
12
  // Other Carbon settings.
13
13
  @import 'carbon-components/scss/globals/scss/helper-mixins';
14
14
 
15
+ // PageHeader uses the following Carbon components:
16
+ // Toggle
17
+ @import 'carbon-components/scss/components/toggle/toggle';
18
+
15
19
  // Define all component styles in a mixin which is then exported using
16
20
  // the Carbon import-once mechanism.
17
21
  @mixin options-tile {
@@ -44,7 +48,7 @@
44
48
  box-sizing: border-box;
45
49
  align-items: center;
46
50
  padding-right: $spacing-05;
47
- grid-template-columns: 3rem 1fr 1rem;
51
+ grid-template-columns: 3rem 1fr 2rem; // chevron container, heading, toggle width
48
52
  }
49
53
 
50
54
  .#{$block-class}__header {
@@ -53,6 +57,10 @@
53
57
  transition: background-color $duration--fast-01 motion(entrance, productive);
54
58
  }
55
59
 
60
+ .#{$block-class}__header::-webkit-details-marker {
61
+ display: none;
62
+ }
63
+
56
64
  .#{$block-class}__header:hover {
57
65
  background-color: $hover-ui;
58
66
  }
@@ -61,11 +69,11 @@
61
69
  @include focus-outline('outline');
62
70
  }
63
71
 
64
- .#{$block-class}__title {
72
+ .#{$block-class}__heading {
65
73
  grid-column: 2;
66
74
  }
67
75
 
68
- .#{$block-class}__heading {
76
+ .#{$block-class}__title {
69
77
  @include carbon--type-style('productive-heading-01');
70
78
 
71
79
  color: $text-01;
@@ -88,7 +96,7 @@
88
96
  .#{$block-class}__summary--warn,
89
97
  .#{$block-class}__summary--locked {
90
98
  column-gap: $spacing-02;
91
- grid-template-columns: 1rem 1fr;
99
+ grid-template-columns: 1rem 1fr; // icon, text
92
100
  }
93
101
 
94
102
  .#{$block-class}__summary--invalid {
@@ -110,11 +118,15 @@
110
118
  .#{$block-class}__summary-text {
111
119
  overflow: hidden;
112
120
  height: max-content;
121
+ // spacing-05 + toggle width
122
+ // stylelint-disable-next-line carbon/layout-token-use
123
+ padding-right: calc(#{$spacing-05} + 2rem);
113
124
  text-overflow: ellipsis;
114
125
  white-space: nowrap;
115
126
  }
116
127
 
117
128
  .#{$block-class}__chevron {
129
+ display: block;
118
130
  justify-self: center;
119
131
  transition: transform $duration--fast-02 motion(standard, productive);
120
132
  }
@@ -195,18 +207,6 @@
195
207
  margin-top: $spacing-01;
196
208
  }
197
209
 
198
- .#{$block-class}--lg .#{$block-class}__summary-text {
199
- // spacing-05 + toggle width
200
- // stylelint-disable-next-line carbon/layout-token-use
201
- padding-right: calc(#{$spacing-05} + 1rem);
202
- }
203
-
204
- .#{$block-class}--xl .#{$block-class}__summary-text {
205
- // spacing-05 + toggle width
206
- // stylelint-disable-next-line carbon/layout-token-use
207
- padding-right: calc(#{$spacing-05} + 2rem);
208
- }
209
-
210
210
  @media (prefers-reduced-motion: reduce) {
211
211
  .#{$block-class}__summary,
212
212
  .#{$block-class}__chevron {
@@ -1,5 +1,5 @@
1
1
  //
2
- // Copyright IBM Corp. 2021, 2021
2
+ // Copyright IBM Corp. 2021, 2022
3
3
  //
4
4
  // This source code is licensed under the Apache-2.0 license found in the
5
5
  // LICENSE file in the root directory of this source tree.
@@ -10,9 +10,9 @@
10
10
  $block-class: #{$pkg-prefix}--options-tile;
11
11
 
12
12
  .#{$block-class} {
13
- width: 70vw;
14
- min-width: 32rem;
15
- max-width: 64rem;
13
+ width: 80vw;
14
+ min-width: 16rem;
15
+ max-width: 48rem;
16
16
  }
17
17
 
18
18
  .#{$block-class}__content p {
@@ -41,6 +41,7 @@ $right-section-alt-width: 100% - $left-section-alt-width;
41
41
  from {
42
42
  background-color: var(--from-color);
43
43
  }
44
+
44
45
  to {
45
46
  background-color: var(--to-color);
46
47
  }
@@ -50,6 +51,7 @@ $right-section-alt-width: 100% - $left-section-alt-width;
50
51
  background-color: var(--from-color);
51
52
  box-shadow: 0 1px 0 var(--from-color);
52
53
  }
54
+
53
55
  to {
54
56
  background-color: var(--to-color);
55
57
  box-shadow: 0 1px 0 var(--to-color-shadow);
@@ -207,8 +209,8 @@ $right-section-alt-width: 100% - $left-section-alt-width;
207
209
  .#{$block-class}__breadcrumb-row--has-breadcrumbs
208
210
  .#{$block-class}__action-bar-column {
209
211
  // back button displayed only
210
- max-width: $left-section-alt-width;
211
- flex: 0 1 $left-section-alt-width;
212
+ max-width: $right-section-alt-width;
213
+ flex: 0 1 $right-section-alt-width;
212
214
 
213
215
  @include carbon--breakpoint(md) {
214
216
  max-width: $right-section-std-width;
@@ -251,6 +253,7 @@ $right-section-alt-width: 100% - $left-section-alt-width;
251
253
  }
252
254
 
253
255
  .#{$block-class}__breadcrumb-column {
256
+ overflow: hidden; /* required for ellipsis in title, title not visible in breadcrumb with back arrow */
254
257
  max-width: 100%;
255
258
  flex: 0 0 100%;
256
259
 
@@ -31,6 +31,7 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
31
31
  // stylelint-disable-next-line carbon/layout-token-use
32
32
  transform: translateX(#{$size}); // the size width of the side panel
33
33
  }
34
+
34
35
  100% {
35
36
  opacity: 1;
36
37
  transform: translateX(0);
@@ -45,6 +46,7 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
45
46
  // stylelint-disable-next-line carbon/layout-token-use
46
47
  transform: translateX(-#{$size}); // the size width of the side panel
47
48
  }
49
+
48
50
  100% {
49
51
  opacity: 1;
50
52
  transform: translateX(0);
@@ -56,8 +58,8 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
56
58
  $placement: 'right',
57
59
  $size: map-get($side-panel-sizes, md)
58
60
  ) {
59
- min-width: $size;
60
- max-width: $size;
61
+ width: $size;
62
+ max-width: 100%;
61
63
  @if $placement == right {
62
64
  @include sidePanelEntranceRight($size);
63
65
  } @else {
@@ -66,8 +68,8 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
66
68
  }
67
69
 
68
70
  @mixin setPanelSize($size: map-get($side-panel-sizes, md)) {
69
- min-width: $size;
70
- max-width: $size;
71
+ width: $size;
72
+ max-width: 100%;
71
73
  }
72
74
 
73
75
  @mixin setDividerStyles() {
@@ -95,6 +97,7 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
95
97
  opacity: 1;
96
98
  transform: translateX(0);
97
99
  }
100
+
98
101
  100% {
99
102
  opacity: 0;
100
103
  // stylelint-disable-next-line carbon/layout-token-use
@@ -107,6 +110,7 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
107
110
  opacity: 1;
108
111
  transform: translateX(0);
109
112
  }
113
+
110
114
  100% {
111
115
  opacity: 0;
112
116
  // stylelint-disable-next-line carbon/layout-token-use
@@ -183,6 +187,7 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
183
187
  );
184
188
  padding: $spacing-05 $spacing-05 $spacing-03 $spacing-05;
185
189
  background-color: $ui-01;
190
+
186
191
  &::before {
187
192
  @include setDividerStyles();
188
193
  }
@@ -442,14 +447,14 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
442
447
  }
443
448
 
444
449
  // form fields should receive correct background color
445
- .#{$block-class}__container .bx--text-input,
446
- .#{$block-class}__container .bx--text-area,
447
- .#{$block-class}__container .bx--search-input,
448
- .#{$block-class}__container .bx--select-input,
449
- .#{$block-class}__container .bx--dropdown,
450
- .#{$block-class}__container .bx--dropdown-list,
451
- .#{$block-class}__container .bx--number input[type='number'],
452
- .#{$block-class}__container .bx--date-picker__input {
450
+ .#{$block-class}__container .#{$carbon-prefix}--text-input,
451
+ .#{$block-class}__container .#{$carbon-prefix}--text-area,
452
+ .#{$block-class}__container .#{$carbon-prefix}--search-input,
453
+ .#{$block-class}__container .#{$carbon-prefix}--select-input,
454
+ .#{$block-class}__container .#{$carbon-prefix}--dropdown,
455
+ .#{$block-class}__container .#{$carbon-prefix}--dropdown-list,
456
+ .#{$block-class}__container .#{$carbon-prefix}--number input[type='number'],
457
+ .#{$block-class}__container .#{$carbon-prefix}--date-picker__input {
453
458
  background-color: $field-02;
454
459
  }
455
460
 
@@ -457,6 +462,7 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
457
462
  0% {
458
463
  opacity: 0;
459
464
  }
465
+
460
466
  100% {
461
467
  opacity: 1;
462
468
  }
@@ -466,6 +472,7 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
466
472
  0% {
467
473
  opacity: 1;
468
474
  }
475
+
469
476
  100% {
470
477
  opacity: 0;
471
478
  }
@@ -82,6 +82,7 @@ $block-class: #{$pkg-prefix}--status-icon;
82
82
  0% {
83
83
  transform: scaleY(-1) rotate(360deg);
84
84
  }
85
+
85
86
  100% {
86
87
  transform: scaleY(-1) rotate(0deg);
87
88
  }
@@ -0,0 +1,8 @@
1
+ //
2
+ // Copyright IBM Corp. 2022, 2022
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ @import '../../global/styles/display-box';
@@ -152,8 +152,7 @@
152
152
  }
153
153
 
154
154
  &.#{$block-class}--wide .#{$block-class}__header--with-close-icon {
155
- padding-right: $spacing-05;
156
- margin-right: $spacing-09;
155
+ padding-right: $spacing-10;
157
156
  }
158
157
 
159
158
  .#{$block-class}__header-content {
@@ -66,6 +66,15 @@ $theme-keys: map-keys($themes);
66
66
  }
67
67
  }
68
68
 
69
+ .#{$carbon-prefix}--tooltip__trigger.#{$block-class}__tooltip {
70
+ &:hover,
71
+ &:focus {
72
+ svg {
73
+ fill: $ui-01;
74
+ }
75
+ }
76
+ }
77
+
69
78
  .#{$block-class} {
70
79
  display: flex;
71
80
  flex-direction: column;
@@ -10,6 +10,7 @@ $block-class: #{$pkg-prefix}--web-terminal;
10
10
  // stylelint-disable-next-line carbon/layout-token-use
11
11
  transform: translateX(#{$web-terminal-width});
12
12
  }
13
+
13
14
  100% {
14
15
  opacity: 1;
15
16
  transform: translateX(0);
@@ -21,6 +22,7 @@ $block-class: #{$pkg-prefix}--web-terminal;
21
22
  opacity: 1;
22
23
  transform: translateX(0);
23
24
  }
25
+
24
26
  100% {
25
27
  opacity: 0;
26
28
  // stylelint-disable-next-line carbon/layout-token-use
@@ -0,0 +1,62 @@
1
+ //
2
+ // Copyright IBM Corp. 2022, 2022
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+ @import '../../global/styles/project-settings';
8
+
9
+ $block-class: 'ccs-sb--display-box';
10
+
11
+ $indicator-width: $spacing-02;
12
+ $indicator-height: $spacing-04;
13
+
14
+ /**
15
+ Adds a box indicating the extent of the available space to the displayed component
16
+ */
17
+ .#{$block-class} {
18
+ position: relative;
19
+ display: inline-block;
20
+ padding-top: $spacing-05; // space for the indicators
21
+ color: $text-05;
22
+ }
23
+
24
+ .#{$block-class}__indicator {
25
+ position: absolute;
26
+ top: 0;
27
+ width: 100%;
28
+ border-bottom: 1px solid $text-05;
29
+ white-space: nowrap;
30
+ @include carbon--type-style('helper-text-01');
31
+ }
32
+
33
+ .#{$block-class}__message {
34
+ position: absolute;
35
+ bottom: $spacing-02;
36
+ }
37
+
38
+ .sb-main-centered .#{$block-class}__message {
39
+ left: 50%;
40
+ min-width: 100vh;
41
+ text-align: center;
42
+ transform: translateX(-50%);
43
+ }
44
+
45
+ .#{$block-class}__indicator--left,
46
+ .#{$block-class}__indicator--right {
47
+ position: absolute;
48
+ bottom: calc(-1 * $indicator-height);
49
+ width: 0;
50
+ height: 0;
51
+ border-top: $indicator-height solid $text-05;
52
+ border-right: $indicator-width solid transparent;
53
+ border-left: $indicator-width solid transparent;
54
+ }
55
+
56
+ .#{$block-class}__indicator--left {
57
+ left: calc(-1 * $indicator-width);
58
+ }
59
+
60
+ .#{$block-class}__indicator--right {
61
+ right: calc(-1 * $indicator-width);
62
+ }
@@ -1,45 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2022, 2022
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- import { px } from '@carbon/layout';
8
- import { pkg } from '../../settings';
9
- export var createActiveCellFn = function createActiveCellFn(_ref) {
10
- var placementElement = _ref.placementElement,
11
- coords = _ref.coords,
12
- _ref$addToHeader = _ref.addToHeader,
13
- addToHeader = _ref$addToHeader === void 0 ? false : _ref$addToHeader,
14
- contextRef = _ref.contextRef,
15
- _ref$blockClass = _ref.blockClass,
16
- blockClass = _ref$blockClass === void 0 ? "".concat(pkg.prefix, "--data-spreadsheet") : _ref$blockClass,
17
- onActiveCellChange = _ref.onActiveCellChange,
18
- activeCellValue = _ref.activeCellValue;
19
-
20
- if (!coords) {
21
- return;
22
- } // If the active cell is in the column header row (very first), we need to append this element
23
- // to `.${blockClass}__header--container`, otherwise it should be appended to `.${blockClass}__listContainer` firstElementChild
24
-
25
-
26
- var activeElementContainer = addToHeader ? contextRef === null || contextRef === void 0 ? void 0 : contextRef.current.querySelector(".".concat(blockClass, "__header--container")) : contextRef === null || contextRef === void 0 ? void 0 : contextRef.current.querySelector(".".concat(blockClass, "__list--container")).firstElementChild;
27
- var relativePosition = {
28
- top: placementElement.getBoundingClientRect().top - activeElementContainer.getBoundingClientRect().top,
29
- left: placementElement.getBoundingClientRect().left - activeElementContainer.getBoundingClientRect().left
30
- };
31
- var activeCellButton = (contextRef === null || contextRef === void 0 ? void 0 : contextRef.current.querySelector(".".concat(blockClass, "__active-cell--highlight"))) || document.createElement('button');
32
- activeCellButton.classList.add("".concat(blockClass, "__active-cell--highlight"), "".concat(blockClass, "--interactive-cell-element"));
33
- activeCellButton.style.width = px(placementElement === null || placementElement === void 0 ? void 0 : placementElement.offsetWidth);
34
- activeCellButton.style.height = px(placementElement === null || placementElement === void 0 ? void 0 : placementElement.offsetHeight);
35
- activeCellButton.style.left = px(relativePosition.left);
36
- activeCellButton.style.top = px(relativePosition.top);
37
- activeCellButton.setAttribute('data-active-row-index', typeof (coords === null || coords === void 0 ? void 0 : coords.row) === 'number' ? coords.row : 'header');
38
- activeCellButton.setAttribute('data-active-column-index', typeof (coords === null || coords === void 0 ? void 0 : coords.column) === 'number' ? coords.column : 'header');
39
- activeElementContainer.appendChild(activeCellButton);
40
- activeCellButton.focus();
41
-
42
- if (typeof (coords === null || coords === void 0 ? void 0 : coords.column) === 'number' && typeof (coords === null || coords === void 0 ? void 0 : coords.row) === 'number') {
43
- onActiveCellChange(activeCellValue);
44
- }
45
- };