intergalactic 15.71.0 → 15.72.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/CHANGELOG.md +49 -0
- package/card/lib/cjs/Card.js +8 -8
- package/card/lib/es6/Card.js +8 -8
- package/checkbox/lib/cjs/Checkbox.js +18 -18
- package/checkbox/lib/es6/Checkbox.js +18 -18
- package/components.json +29 -29
- package/d3-chart/lib/cjs/Area.js +11 -11
- package/d3-chart/lib/cjs/Axis.js +14 -14
- package/d3-chart/lib/cjs/Bar.js +10 -10
- package/d3-chart/lib/cjs/Bubble.js +12 -12
- package/d3-chart/lib/cjs/Donut.js +9 -9
- package/d3-chart/lib/cjs/Dots.js +8 -8
- package/d3-chart/lib/cjs/HorizontalBar.js +10 -10
- package/d3-chart/lib/cjs/Hover.js +3 -3
- package/d3-chart/lib/cjs/Line.js +9 -9
- package/d3-chart/lib/cjs/Plot.js +3 -3
- package/d3-chart/lib/cjs/Radar.js +19 -19
- package/d3-chart/lib/cjs/RadialTree.js +11 -11
- package/d3-chart/lib/cjs/ReferenceLine.js +9 -9
- package/d3-chart/lib/cjs/ScatterPlot.js +9 -9
- package/d3-chart/lib/cjs/Tooltip.js +9 -9
- package/d3-chart/lib/cjs/Venn.js +9 -9
- package/d3-chart/lib/cjs/a11y/PlotA11yModule.js +2 -2
- package/d3-chart/lib/cjs/a11y/PlotA11yView.js +2 -2
- package/d3-chart/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
- package/d3-chart/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +17 -17
- package/d3-chart/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +6 -6
- package/d3-chart/lib/es6/Area.js +11 -11
- package/d3-chart/lib/es6/Axis.js +14 -14
- package/d3-chart/lib/es6/Bar.js +10 -10
- package/d3-chart/lib/es6/Bubble.js +12 -12
- package/d3-chart/lib/es6/Donut.js +9 -9
- package/d3-chart/lib/es6/Dots.js +8 -8
- package/d3-chart/lib/es6/HorizontalBar.js +10 -10
- package/d3-chart/lib/es6/Hover.js +3 -3
- package/d3-chart/lib/es6/Line.js +9 -9
- package/d3-chart/lib/es6/Plot.js +3 -3
- package/d3-chart/lib/es6/Radar.js +19 -19
- package/d3-chart/lib/es6/RadialTree.js +11 -11
- package/d3-chart/lib/es6/ReferenceLine.js +9 -9
- package/d3-chart/lib/es6/ScatterPlot.js +9 -9
- package/d3-chart/lib/es6/Tooltip.js +9 -9
- package/d3-chart/lib/es6/Venn.js +9 -9
- package/d3-chart/lib/es6/a11y/PlotA11yModule.js +2 -2
- package/d3-chart/lib/es6/a11y/PlotA11yView.js +2 -2
- package/d3-chart/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
- package/d3-chart/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +17 -17
- package/d3-chart/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +6 -6
- package/data-table/Head.d.ts +0 -1
- package/data-table/lib/cjs/Body.js +13 -24
- package/data-table/lib/cjs/Body.js.map +1 -1
- package/data-table/lib/cjs/DataTable.js +35 -41
- package/data-table/lib/cjs/DataTable.js.map +1 -1
- package/data-table/lib/cjs/Head.js +7 -21
- package/data-table/lib/cjs/Head.js.map +1 -1
- package/data-table/lib/cjs/style/data-table.shadow.css +0 -18
- package/data-table/lib/es6/Body.js +13 -25
- package/data-table/lib/es6/Body.js.map +1 -1
- package/data-table/lib/es6/DataTable.js +35 -41
- package/data-table/lib/es6/DataTable.js.map +1 -1
- package/data-table/lib/es6/Head.js +7 -22
- package/data-table/lib/es6/Head.js.map +1 -1
- package/data-table/lib/es6/style/data-table.shadow.css +0 -18
- package/data-table/lib/types/Head.d.ts +0 -1
- package/date-picker/lib/cjs/components/Calendar.js +21 -21
- package/date-picker/lib/cjs/components/DateRangeComparatorAbstract.js +26 -26
- package/date-picker/lib/cjs/components/InputTrigger.js +26 -26
- package/date-picker/lib/cjs/components/PickerAbstract.js +26 -26
- package/date-picker/lib/cjs/components/RangePickerAbstract.js +26 -26
- package/date-picker/lib/es6/components/Calendar.js +21 -21
- package/date-picker/lib/es6/components/DateRangeComparatorAbstract.js +26 -26
- package/date-picker/lib/es6/components/InputTrigger.js +26 -26
- package/date-picker/lib/es6/components/PickerAbstract.js +26 -26
- package/date-picker/lib/es6/components/RangePickerAbstract.js +26 -26
- package/drag-and-drop/lib/cjs/DragAndDrop.js +12 -12
- package/drag-and-drop/lib/es6/DragAndDrop.js +12 -12
- package/dropdown/lib/cjs/Dropdown.js +2 -2
- package/dropdown/lib/es6/Dropdown.js +2 -2
- package/dropdown-menu/lib/cjs/DropdownMenu.js +16 -16
- package/dropdown-menu/lib/cjs/DropdownMenu.js.map +1 -1
- package/dropdown-menu/lib/cjs/styleScrollArea.js +6 -6
- package/dropdown-menu/lib/es6/DropdownMenu.js +16 -16
- package/dropdown-menu/lib/es6/DropdownMenu.js.map +1 -1
- package/dropdown-menu/lib/es6/styleScrollArea.js +6 -6
- package/ellipsis/lib/cjs/Ellipsis.js +10 -10
- package/ellipsis/lib/es6/Ellipsis.js +10 -10
- package/errors/lib/cjs/Error.js +9 -9
- package/errors/lib/es6/Error.js +9 -9
- package/feature-popover/lib/cjs/FeaturePopover.js +10 -10
- package/feature-popover/lib/es6/FeaturePopover.js +10 -10
- package/feedback-form/lib/cjs/FeedbackForm.js +9 -8
- package/feedback-form/lib/cjs/FeedbackForm.js.map +1 -1
- package/feedback-form/lib/es6/FeedbackForm.js +9 -8
- package/feedback-form/lib/es6/FeedbackForm.js.map +1 -1
- package/fullscreen-modal/lib/cjs/FullscreenModal.js +13 -13
- package/fullscreen-modal/lib/es6/FullscreenModal.js +13 -13
- package/inline-input/index.d.ts +1 -1
- package/inline-input/lib/cjs/InlineInput.js +18 -18
- package/inline-input/lib/cjs/index.d.js.map +1 -1
- package/inline-input/lib/es6/InlineInput.js +18 -18
- package/inline-input/lib/es6/index.d.js.map +1 -1
- package/inline-input/lib/types/index.d.ts +1 -1
- package/input-tags/lib/cjs/InputTags.js +13 -12
- package/input-tags/lib/cjs/InputTags.js.map +1 -1
- package/input-tags/lib/es6/InputTags.js +13 -12
- package/input-tags/lib/es6/InputTags.js.map +1 -1
- package/link/lib/cjs/Link.js +12 -12
- package/link/lib/es6/Link.js +12 -12
- package/modal/lib/cjs/Modal.js +9 -9
- package/modal/lib/es6/Modal.js +9 -9
- package/notice-bubble/lib/cjs/NoticeBubble.js +13 -14
- package/notice-bubble/lib/cjs/NoticeBubble.js.map +1 -1
- package/notice-bubble/lib/cjs/style/notice-bubble.shadow.css +8 -4
- package/notice-bubble/lib/es6/NoticeBubble.js +13 -14
- package/notice-bubble/lib/es6/NoticeBubble.js.map +1 -1
- package/notice-bubble/lib/es6/style/notice-bubble.shadow.css +8 -4
- package/package.json +3 -3
- package/pagination/lib/cjs/Pagination.js +11 -11
- package/pagination/lib/cjs/Pagination.js.map +1 -1
- package/pagination/lib/es6/Pagination.js +11 -11
- package/pagination/lib/es6/Pagination.js.map +1 -1
- package/popper/index.d.ts +2 -0
- package/popper/lib/cjs/Popper.js +6 -6
- package/popper/lib/cjs/index.d.js.map +1 -1
- package/popper/lib/cjs/style/popper.shadow.css +2 -1
- package/popper/lib/es6/Popper.js +6 -6
- package/popper/lib/es6/index.d.js.map +1 -1
- package/popper/lib/es6/style/popper.shadow.css +2 -1
- package/popper/lib/types/index.d.ts +2 -0
- package/radio/lib/cjs/Radio.js +16 -16
- package/radio/lib/es6/Radio.js +16 -16
- package/scroll-area/index.d.ts +5 -0
- package/scroll-area/lib/cjs/ScrollArea.js +79 -48
- package/scroll-area/lib/cjs/ScrollArea.js.map +1 -1
- package/scroll-area/lib/cjs/ScrollBar.js +51 -6
- package/scroll-area/lib/cjs/ScrollBar.js.map +1 -1
- package/scroll-area/lib/cjs/index.d.js.map +1 -1
- package/scroll-area/lib/cjs/style/scroll-area.shadow.css +17 -2
- package/scroll-area/lib/cjs/style/scroll-bar.shadow.css +2 -3
- package/scroll-area/lib/es6/ScrollArea.js +79 -48
- package/scroll-area/lib/es6/ScrollArea.js.map +1 -1
- package/scroll-area/lib/es6/ScrollBar.js +51 -6
- package/scroll-area/lib/es6/ScrollBar.js.map +1 -1
- package/scroll-area/lib/es6/index.d.js.map +1 -1
- package/scroll-area/lib/es6/style/scroll-area.shadow.css +17 -2
- package/scroll-area/lib/es6/style/scroll-bar.shadow.css +2 -3
- package/scroll-area/lib/types/index.d.ts +5 -0
- package/select/lib/cjs/InputSearch.js +6 -6
- package/select/lib/cjs/Select.js +48 -36
- package/select/lib/cjs/Select.js.map +1 -1
- package/select/lib/cjs/style/select.shadow.css +21 -17
- package/select/lib/es6/InputSearch.js +6 -6
- package/select/lib/es6/Select.js +49 -36
- package/select/lib/es6/Select.js.map +1 -1
- package/select/lib/es6/style/select.shadow.css +21 -17
- package/side-panel/lib/cjs/SidePanel.js +15 -15
- package/side-panel/lib/es6/SidePanel.js +15 -15
- package/time-picker/lib/cjs/TimePicker.js +12 -12
- package/time-picker/lib/es6/TimePicker.js +12 -12
- package/tooltip/lib/cjs/Tooltip.js +19 -22
- package/tooltip/lib/cjs/Tooltip.js.map +1 -1
- package/tooltip/lib/es6/Tooltip.js +19 -22
- package/tooltip/lib/es6/Tooltip.js.map +1 -1
- package/typography/lib/cjs/Blockquote.js +4 -4
- package/typography/lib/cjs/Hint.js +7 -7
- package/typography/lib/cjs/List.js +7 -6
- package/typography/lib/cjs/List.js.map +1 -1
- package/typography/lib/cjs/Text.js +34 -34
- package/typography/lib/es6/Blockquote.js +4 -4
- package/typography/lib/es6/Hint.js +7 -7
- package/typography/lib/es6/List.js +7 -6
- package/typography/lib/es6/List.js.map +1 -1
- package/typography/lib/es6/Text.js +34 -34
- package/widget-empty/lib/cjs/WidgetEmpty.js +6 -6
- package/widget-empty/lib/cjs/WidgetEmpty.js.map +1 -1
- package/widget-empty/lib/cjs/style/widget-empty.shadow.css +5 -3
- package/widget-empty/lib/es6/WidgetEmpty.js +6 -6
- package/widget-empty/lib/es6/WidgetEmpty.js.map +1 -1
- package/widget-empty/lib/es6/style/widget-empty.shadow.css +5 -3
- package/wizard/lib/cjs/Wizard.js +11 -11
- package/wizard/lib/es6/Wizard.js +11 -11
- package/data-table/lib/cjs/style/scroll-area.shadow.css +0 -7
- package/data-table/lib/es6/style/scroll-area.shadow.css +0 -7
@@ -7,16 +7,15 @@ SScrollBar[orientation='vertical'] {
|
|
7
7
|
top: var(--intergalactic-spacing-1x, 4px);
|
8
8
|
right: 0;
|
9
9
|
width: 8px;
|
10
|
-
height: calc(100% - var(--intergalactic-spacing-2x, 8px));
|
10
|
+
height: calc(100% - var(--offsetSum) - var(--intergalactic-spacing-2x, 8px));
|
11
11
|
justify-content: center;
|
12
12
|
}
|
13
13
|
|
14
14
|
SScrollBar[orientation='horizontal'] {
|
15
15
|
bottom: 0;
|
16
|
-
left: var(--intergalactic-spacing-1x, 4px);
|
17
16
|
height: 12px;
|
18
|
-
width: calc(100% - var(--intergalactic-spacing-2x, 8px));
|
19
17
|
align-items: center;
|
18
|
+
width: calc(100% - var(--offsetSum) - var(--intergalactic-spacing-2x, 8px));
|
20
19
|
}
|
21
20
|
|
22
21
|
SSlider {
|
@@ -24,15 +24,23 @@ import keyboardFocusEnhance from 'intergalactic/utils/lib/enhances/keyboardFocus
|
|
24
24
|
import uniqueIDEnhancement from 'intergalactic/utils/lib/uniqueID';
|
25
25
|
import canUseDOM from 'intergalactic/utils/lib/canUseDOM';
|
26
26
|
/*__reshadow-styles__:"./style/scroll-area.shadow.css"*/
|
27
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
28
|
-
"__SScrollArea": "
|
29
|
-
"
|
30
|
-
"
|
31
|
-
"
|
32
|
-
"
|
33
|
-
"
|
34
|
-
"
|
35
|
-
"
|
27
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SScrollArea_59oue_gg_{position:relative;width:100%;height:100%}.___SShadowHorizontal_59oue_gg_:after,.___SShadowHorizontal_59oue_gg_:before,.___SShadowVertical_59oue_gg_:after,.___SShadowVertical_59oue_gg_:before{content:\"\";position:absolute;pointer-events:none}.___SShadowHorizontal_59oue_gg_:after,.___SShadowHorizontal_59oue_gg_:before{top:0;display:block;width:5px;height:100%}.___SShadowHorizontal_59oue_gg_._position_median_59oue_gg_:before{left:0;background:var(--intergalactic-scroll-area-shadow-left,\n linear-gradient(to right, rgba(25, 27, 35, 0.1) 20.55%, rgba(255, 255, 255, 0.0001) 100%))}.___SShadowHorizontal_59oue_gg_._position_median_59oue_gg_:after{right:0;background:var(--intergalactic-scroll-area-shadow-right,\n linear-gradient(to left, rgba(25, 27, 35, 0.1) 20.55%, rgba(255, 255, 255, 0.0001) 100%))}.___SShadowHorizontal_59oue_gg_._position_start_59oue_gg_:before{left:0;background:var(--intergalactic-scroll-area-shadow-left,\n linear-gradient(to right, rgba(25, 27, 35, 0.1) 20.55%, rgba(255, 255, 255, 0.0001) 100%))}.___SShadowHorizontal_59oue_gg_._position_end_59oue_gg_:after{right:0;background:var(--intergalactic-scroll-area-shadow-right,\n linear-gradient(to left, rgba(25, 27, 35, 0.1) 20.55%, rgba(255, 255, 255, 0.0001) 100%))}.___SShadowHorizontal_59oue_gg_.__leftOffset_59oue_gg_:before{left:var(--leftOffset_59oue)}.___SShadowHorizontal_59oue_gg_.__rightOffset_59oue_gg_:after{right:var(--rightOffset_59oue)}.___SShadowVertical_59oue_gg_:after,.___SShadowVertical_59oue_gg_:before{left:0;display:block;width:100%;height:5px}.___SShadowVertical_59oue_gg_._position_median_59oue_gg_:before{top:0;background:var(--intergalactic-scroll-area-shadow-top,\n linear-gradient(to bottom, rgba(25, 27, 35, 0.1) 20.55%, rgba(255, 255, 255, 0.0001) 100%))}.___SShadowVertical_59oue_gg_._position_median_59oue_gg_:after{bottom:0;background:var(--intergalactic-scroll-area-shadow-bottom,\n linear-gradient(to top, rgba(25, 27, 35, 0.1) 20.55%, rgba(255, 255, 255, 0.0001) 100%))}.___SShadowVertical_59oue_gg_._position_start_59oue_gg_:before{top:0;background:var(--intergalactic-scroll-area-shadow-top,\n linear-gradient(to bottom, rgba(25, 27, 35, 0.1) 20.55%, rgba(255, 255, 255, 0.0001) 100%))}.___SShadowVertical_59oue_gg_._position_end_59oue_gg_:after{bottom:0;background:var(--intergalactic-scroll-area-shadow-bottom,\n linear-gradient(to top, rgba(25, 27, 35, 0.1) 20.55%, rgba(255, 255, 255, 0.0001) 100%))}.___SShadowVertical_59oue_gg_.__topOffset_59oue_gg_:before{top:var(--topOffset_59oue)}.___SShadowVertical_59oue_gg_.__bottomOffset_59oue_gg_:after{bottom:var(--bottomOffset_59oue)}.___SContainer_59oue_gg_{display:block;width:100%;height:100%;box-sizing:content-box;overflow:auto;-webkit-overflow-scrolling:touch;outline:0;scrollbar-width:none;-ms-overflow-style:none}.___SContainer_59oue_gg_::-webkit-scrollbar{display:none}.___SContainer_59oue_gg_.__keyboardFocused_59oue_gg_:focus::after{position:absolute;display:block;content:\"\";top:0;right:0;bottom:0;left:0;box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));pointer-events:none;z-index:2}" /*__inner_css_end__*/, "59oue_gg_") /*__reshadow_css_end__*/, {
|
28
|
+
"__SScrollArea": "___SScrollArea_59oue_gg_",
|
29
|
+
"__SShadowHorizontal": "___SShadowHorizontal_59oue_gg_",
|
30
|
+
"_leftOffset": "__leftOffset_59oue_gg_",
|
31
|
+
"--leftOffset": "--leftOffset_59oue",
|
32
|
+
"_rightOffset": "__rightOffset_59oue_gg_",
|
33
|
+
"--rightOffset": "--rightOffset_59oue",
|
34
|
+
"__SShadowVertical": "___SShadowVertical_59oue_gg_",
|
35
|
+
"_topOffset": "__topOffset_59oue_gg_",
|
36
|
+
"--topOffset": "--topOffset_59oue",
|
37
|
+
"_bottomOffset": "__bottomOffset_59oue_gg_",
|
38
|
+
"--bottomOffset": "--bottomOffset_59oue",
|
39
|
+
"__SContainer": "___SContainer_59oue_gg_",
|
40
|
+
"_keyboardFocused": "__keyboardFocused_59oue_gg_",
|
41
|
+
"_position_median": "_position_median_59oue_gg_",
|
42
|
+
"_position_start": "_position_start_59oue_gg_",
|
43
|
+
"_position_end": "_position_end_59oue_gg_"
|
36
44
|
});
|
37
45
|
var eventCalculate = undefined;
|
38
46
|
if (typeof window !== 'undefined') {
|
@@ -91,16 +99,27 @@ var ScrollAreaRoot = /*#__PURE__*/function (_Component) {
|
|
91
99
|
});
|
92
100
|
_defineProperty(_assertThisInitialized(_this), "handleFocusIn", function (e) {
|
93
101
|
setTimeout(function () {
|
94
|
-
|
95
|
-
|
96
|
-
|
102
|
+
var _this$asProps = _this.asProps,
|
103
|
+
keyboardFocused = _this$asProps.keyboardFocused,
|
104
|
+
leftOffset = _this$asProps.leftOffset,
|
105
|
+
rightOffset = _this$asProps.rightOffset,
|
106
|
+
topOffset = _this$asProps.topOffset,
|
107
|
+
bottomOffset = _this$asProps.bottomOffset;
|
108
|
+
if (_this.$container && typeof _this.$container.scrollTo === 'function') {
|
109
|
+
var viewPort = _this.$container.getBoundingClientRect();
|
97
110
|
var element = e.target.getBoundingClientRect();
|
111
|
+
var offset = {
|
112
|
+
top: topOffset !== null && topOffset !== void 0 ? topOffset : 0,
|
113
|
+
left: leftOffset !== null && leftOffset !== void 0 ? leftOffset : 0,
|
114
|
+
right: rightOffset !== null && rightOffset !== void 0 ? rightOffset : 0,
|
115
|
+
bottom: bottomOffset !== null && bottomOffset !== void 0 ? bottomOffset : 0
|
116
|
+
};
|
98
117
|
if (viewPort) {
|
99
|
-
var outOfViewport = element.top >= viewPort.bottom || element.bottom <= viewPort.top || element.left >= viewPort.right || element.right <= viewPort.left;
|
100
|
-
if (outOfViewport &&
|
101
|
-
|
102
|
-
|
103
|
-
|
118
|
+
var outOfViewport = Math.floor(element.top) >= viewPort.bottom - offset.bottom || Math.floor(element.bottom) <= viewPort.top + offset.top || Math.floor(element.left) >= viewPort.right - offset.right || Math.floor(element.right) <= viewPort.left + offset.left;
|
119
|
+
if (outOfViewport && keyboardFocused) {
|
120
|
+
_this.$container.scrollTo({
|
121
|
+
top: element.top + _this.$container.scrollTop - offset.top - viewPort.top,
|
122
|
+
left: element.left + _this.$container.scrollLeft - offset.left - viewPort.left
|
104
123
|
});
|
105
124
|
}
|
106
125
|
}
|
@@ -127,13 +146,13 @@ var ScrollAreaRoot = /*#__PURE__*/function (_Component) {
|
|
127
146
|
});
|
128
147
|
_defineProperty(_assertThisInitialized(_this), "setShadowContainer", function () {
|
129
148
|
if (!_this.asProps.shadow || !_this.$container || !_this.$wrapper) return;
|
130
|
-
var _this$$
|
131
|
-
scrollWidth = _this$$
|
132
|
-
clientWidth = _this$$
|
133
|
-
scrollHeight = _this$$
|
134
|
-
clientHeight = _this$$
|
135
|
-
scrollLeft = _this$$
|
136
|
-
scrollTop = _this$$
|
149
|
+
var _this$$container = _this.$container,
|
150
|
+
scrollWidth = _this$$container.scrollWidth,
|
151
|
+
clientWidth = _this$$container.clientWidth,
|
152
|
+
scrollHeight = _this$$container.scrollHeight,
|
153
|
+
clientHeight = _this$$container.clientHeight,
|
154
|
+
scrollLeft = _this$$container.scrollLeft,
|
155
|
+
scrollTop = _this$$container.scrollTop;
|
137
156
|
var maxScrollRight = scrollWidth - clientWidth;
|
138
157
|
var maxScrollBottom = scrollHeight - clientHeight;
|
139
158
|
_this.toggleShadow(scrollLeft, maxScrollRight, 'shadowHorizontal');
|
@@ -164,9 +183,9 @@ var ScrollAreaRoot = /*#__PURE__*/function (_Component) {
|
|
164
183
|
height: ''
|
165
184
|
};
|
166
185
|
if (!this.$container || !this.$wrapper) return size;
|
167
|
-
var _this$$
|
168
|
-
scrollWidth = _this$$
|
169
|
-
scrollHeight = _this$$
|
186
|
+
var _this$$container2 = this.$container,
|
187
|
+
scrollWidth = _this$$container2.scrollWidth,
|
188
|
+
scrollHeight = _this$$container2.scrollHeight;
|
170
189
|
var style = window.getComputedStyle(this.$wrapper);
|
171
190
|
var maxWidth = Number.parseInt(style.getPropertyValue('max-width'));
|
172
191
|
var maxHeight = Number.parseInt(style.getPropertyValue('max-height'));
|
@@ -189,11 +208,11 @@ var ScrollAreaRoot = /*#__PURE__*/function (_Component) {
|
|
189
208
|
}, {
|
190
209
|
key: "getContainerProps",
|
191
210
|
value: function getContainerProps() {
|
192
|
-
var _this$
|
193
|
-
container = _this$
|
194
|
-
inner = _this$
|
195
|
-
onScroll = _this$
|
196
|
-
uid = _this$
|
211
|
+
var _this$asProps2 = this.asProps,
|
212
|
+
container = _this$asProps2.container,
|
213
|
+
inner = _this$asProps2.inner,
|
214
|
+
onScroll = _this$asProps2.onScroll,
|
215
|
+
uid = _this$asProps2.uid;
|
197
216
|
return {
|
198
217
|
id: "igc-".concat(uid, "-scroll-container"),
|
199
218
|
ref: container,
|
@@ -204,16 +223,20 @@ var ScrollAreaRoot = /*#__PURE__*/function (_Component) {
|
|
204
223
|
}, {
|
205
224
|
key: "getBarProps",
|
206
225
|
value: function getBarProps() {
|
207
|
-
var _this$
|
208
|
-
container = _this$
|
209
|
-
orientation = _this$
|
210
|
-
uid = _this$
|
226
|
+
var _this$asProps3 = this.asProps,
|
227
|
+
container = _this$asProps3.container,
|
228
|
+
orientation = _this$asProps3.orientation,
|
229
|
+
uid = _this$asProps3.uid,
|
230
|
+
leftOffset = _this$asProps3.leftOffset,
|
231
|
+
rightOffset = _this$asProps3.rightOffset;
|
211
232
|
return {
|
212
233
|
container: container,
|
213
234
|
orientation: orientation,
|
214
235
|
uid: uid,
|
215
236
|
horizontalBarRef: this.horizontalBarRef,
|
216
|
-
verticalBarRef: this.verticalBarRef
|
237
|
+
verticalBarRef: this.verticalBarRef,
|
238
|
+
leftOffset: leftOffset,
|
239
|
+
rightOffset: rightOffset
|
217
240
|
};
|
218
241
|
}
|
219
242
|
}, {
|
@@ -252,12 +275,16 @@ var ScrollAreaRoot = /*#__PURE__*/function (_Component) {
|
|
252
275
|
var SScrollArea = Box;
|
253
276
|
var SShadowVertical = BoxWithoutPosition;
|
254
277
|
var SShadowHorizontal = BoxWithoutPosition;
|
255
|
-
var _this$
|
256
|
-
Children = _this$
|
257
|
-
styles = _this$
|
258
|
-
orientation = _this$
|
259
|
-
tabIndex = _this$
|
260
|
-
forcedAdvancedMode = _this$
|
278
|
+
var _this$asProps4 = this.asProps,
|
279
|
+
Children = _this$asProps4.Children,
|
280
|
+
styles = _this$asProps4.styles,
|
281
|
+
orientation = _this$asProps4.orientation,
|
282
|
+
tabIndex = _this$asProps4.tabIndex,
|
283
|
+
forcedAdvancedMode = _this$asProps4.forcedAdvancedMode,
|
284
|
+
leftOffset = _this$asProps4.leftOffset,
|
285
|
+
rightOffset = _this$asProps4.rightOffset,
|
286
|
+
topOffset = _this$asProps4.topOffset,
|
287
|
+
bottomOffset = _this$asProps4.bottomOffset;
|
261
288
|
var _this$state = this.state,
|
262
289
|
shadowVertical = _this$state.shadowVertical,
|
263
290
|
shadowHorizontal = _this$state.shadowHorizontal;
|
@@ -266,16 +293,20 @@ var ScrollAreaRoot = /*#__PURE__*/function (_Component) {
|
|
266
293
|
"ref": this.refWrapper,
|
267
294
|
"onScroll": this.handleScroll,
|
268
295
|
"__excludeProps": ['tabIndex']
|
269
|
-
}, _ref))),
|
270
|
-
"position": shadowVertical
|
271
|
-
})), shadowHorizontal && /*#__PURE__*/React.createElement(SShadowHorizontal, _ref3.cn("SShadowHorizontal", {
|
272
|
-
"position": shadowHorizontal
|
273
|
-
})), advancedMode ? /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {})) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ScrollArea.Container, {
|
296
|
+
}, _ref))), advancedMode ? /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {})) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ScrollArea.Container, {
|
274
297
|
tabIndex: tabIndex
|
275
298
|
}, /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {}))), (orientation === undefined || orientation === 'horizontal') && /*#__PURE__*/React.createElement(ScrollArea.Bar, {
|
276
299
|
orientation: "horizontal"
|
277
300
|
}), (orientation === undefined || orientation === 'vertical') && /*#__PURE__*/React.createElement(ScrollArea.Bar, {
|
278
301
|
orientation: "vertical"
|
302
|
+
})), shadowVertical && /*#__PURE__*/React.createElement(SShadowVertical, _ref3.cn("SShadowVertical", {
|
303
|
+
"position": shadowVertical,
|
304
|
+
"topOffset": topOffset ? "".concat(topOffset, "px") : undefined,
|
305
|
+
"bottomOffset": bottomOffset ? "".concat(bottomOffset, "px") : undefined
|
306
|
+
})), shadowHorizontal && /*#__PURE__*/React.createElement(SShadowHorizontal, _ref3.cn("SShadowHorizontal", {
|
307
|
+
"position": shadowHorizontal,
|
308
|
+
"leftOffset": leftOffset ? "".concat(leftOffset, "px") : undefined,
|
309
|
+
"rightOffset": rightOffset ? "".concat(rightOffset, "px") : undefined
|
279
310
|
})));
|
280
311
|
}
|
281
312
|
}]);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ScrollArea.js","names":["React","findDOMNode","createComponent","Component","sstyled","Root","Box","trottle","getNodeByRef","isAdvanceMode","callAllEventHandlers","BarRoot","setAreaValue","keyboardFocusEnhance","uniqueIDEnhancement","canUseDOM","style","_sstyled","insert","eventCalculate","undefined","window","Event","BoxWithoutPosition","forwardRef","_ref5","ref","position","props","_objectWithoutProperties","_excluded","createElement","_extends","ScrollAreaRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","createRef","shadowHorizontal","shadowVertical","node","$wrapper","$container","_this$calculateSizeCo","calculateSizeContainer","height","width","dispatchEvent","setShadowContainer","horizontalBarRef","current","verticalBarRef","updateBarsAria","e","_e$target","target","isEqualNode","scrollTop","scrollLeft","setTimeout","scrollIntoView","_this$$container","viewPort","getBoundingClientRect","element","outOfViewport","top","bottom","left","right","asProps","keyboardFocused","block","inline","scroll","maxScroll","orientation","roundedScroll","Math","round","roundedMaxScroll","shadow","setState","_this$$container2","scrollWidth","clientWidth","scrollHeight","clientHeight","maxScrollRight","maxScrollBottom","toggleShadow","observer","ResizeObserver","onResize","calculate","_createClass","key","get","container","inner","value","size","_this$$container3","getComputedStyle","maxWidth","Number","parseInt","getPropertyValue","maxHeight","concat","getContainerProps","_this$asProps","onScroll","uid","id","$refInner","handleScrollContainer","getBarProps","_this$asProps2","componentDidMount","_this$$inner","$inner","_this$observer","observe","_this$observer2","addEventListener","handleFocusIn","componentDidUpdate","componentWillUnmount","_this$observer3","_this$$inner2","disconnect","removeEventListener","render","_ref","_ref3","SScrollArea","SShadowVertical","SShadowHorizontal","_this$asProps3","Children","styles","tabIndex","forcedAdvancedMode","_this$state","state","advancedMode","ScrollArea","Container","displayName","Bar","cn","_objectSpread","_assignProps","refWrapper","handleScroll","Fragment","ContainerRoot","_ref2","arguments[0]","_ref4","SContainer","_assignProps2","enhance"],"sources":["../../src/ScrollArea.jsx"],"sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\n\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport trottle from '@semcore/utils/lib/rafTrottle';\nimport { getNodeByRef } from '@semcore/utils/lib/ref';\nimport { isAdvanceMode } from '@semcore/utils/lib/findComponent';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport BarRoot, { setAreaValue } from './ScrollBar';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\n\nimport style from './style/scroll-area.shadow.css';\n\nlet eventCalculate = undefined;\nif (typeof window !== 'undefined') {\n eventCalculate = new Event('calculate');\n}\n\nconst BoxWithoutPosition = React.forwardRef(({ position, ...props }, ref) => (\n <Box ref={ref} {...props} />\n));\n\nclass ScrollAreaRoot extends Component {\n static displayName = 'ScrollArea';\n\n static style = style;\n static enhance = [uniqueIDEnhancement(), keyboardFocusEnhance()];\n\n static defaultProps = () => ({\n container: React.createRef(),\n inner: React.createRef(),\n tabIndex: 0,\n });\n\n $wrapper = null;\n observer = null;\n horizontalBarRef = React.createRef();\n verticalBarRef = React.createRef();\n\n get $container() {\n return getNodeByRef(this.asProps.container);\n }\n\n get $inner() {\n return getNodeByRef(this.asProps.inner);\n }\n\n state = {\n shadowHorizontal: false,\n shadowVertical: false,\n };\n\n constructor(props) {\n super(props);\n\n if (canUseDOM()) {\n this.observer = new ResizeObserver(callAllEventHandlers(props.onResize, this.calculate));\n }\n }\n\n refWrapper = (node) => {\n this.$wrapper = findDOMNode(node);\n };\n\n // for max height/width\n calculateSizeContainer() {\n const size = { width: '', height: '' };\n if (!this.$container || !this.$wrapper) return size;\n const { scrollWidth, scrollHeight } = this.$container;\n const style = window.getComputedStyle(this.$wrapper);\n const maxWidth = Number.parseInt(style.getPropertyValue('max-width'));\n const maxHeight = Number.parseInt(style.getPropertyValue('max-height'));\n\n if (maxWidth) {\n if (scrollWidth > maxWidth) {\n size.width = `${maxWidth}px`;\n } else {\n size.width = '100%';\n }\n }\n\n if (maxHeight) {\n if (scrollHeight > maxHeight) {\n size.height = `${maxHeight}px`;\n } else {\n size.height = '100%';\n }\n }\n\n return size;\n }\n\n calculate = trottle(() => {\n if (!this.$container) return;\n\n const { height, width } = this.calculateSizeContainer();\n if (height) this.$container.style.height = height;\n if (width) this.$container.style.width = width;\n this.$container.dispatchEvent(eventCalculate);\n this.setShadowContainer();\n });\n\n updateBarsAria = trottle(() => {\n setAreaValue(this.$container, this.horizontalBarRef.current, this.verticalBarRef.current);\n });\n\n handleScrollContainer = trottle(() => {\n if (!this.$container) return;\n this.setShadowContainer();\n this.updateBarsAria();\n });\n\n // FIX Chrome bug, when focus state on hide control\n handleScroll = (e) => {\n if (e.target?.isEqualNode(this.$wrapper)) {\n e.target.scrollTop = 0;\n e.target.scrollLeft = 0;\n }\n };\n\n handleFocusIn = (e) => {\n setTimeout(() => {\n if (typeof e.target.scrollIntoView === 'function') {\n const viewPort = this.$container?.getBoundingClientRect();\n const element = e.target.getBoundingClientRect();\n\n if (viewPort) {\n const outOfViewport =\n element.top >= viewPort.bottom ||\n element.bottom <= viewPort.top ||\n element.left >= viewPort.right ||\n element.right <= viewPort.left;\n\n if (outOfViewport && this.asProps.keyboardFocused) {\n e.target.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n }\n }\n }\n }, 0);\n };\n\n toggleShadow = (scroll, maxScroll, orientation) => {\n const roundedScroll = Math.round(scroll);\n const roundedMaxScroll = Math.round(maxScroll);\n let shadow = '';\n // not scroll\n if (roundedMaxScroll <= 0) {\n // start scroll\n } else if (roundedScroll <= 0) {\n shadow = 'end';\n // end scroll\n } else if (roundedScroll >= roundedMaxScroll) {\n shadow = 'start';\n // median scroll\n } else if (roundedScroll > 0) {\n shadow = 'median';\n }\n this.setState({\n [orientation]: shadow,\n });\n };\n\n setShadowContainer = () => {\n if (!this.asProps.shadow || !this.$container || !this.$wrapper) return;\n\n const { scrollWidth, clientWidth, scrollHeight, clientHeight, scrollLeft, scrollTop } =\n this.$container;\n const maxScrollRight = scrollWidth - clientWidth;\n const maxScrollBottom = scrollHeight - clientHeight;\n\n this.toggleShadow(scrollLeft, maxScrollRight, 'shadowHorizontal');\n this.toggleShadow(scrollTop, maxScrollBottom, 'shadowVertical');\n };\n\n getContainerProps() {\n const { container, inner, onScroll, uid } = this.asProps;\n return {\n id: `igc-${uid}-scroll-container`,\n ref: container,\n $refInner: inner,\n onScroll: callAllEventHandlers(onScroll, this.handleScrollContainer),\n };\n }\n\n getBarProps() {\n const { container, orientation, uid } = this.asProps;\n return {\n container,\n orientation,\n uid,\n horizontalBarRef: this.horizontalBarRef,\n verticalBarRef: this.verticalBarRef,\n };\n }\n\n componentDidMount() {\n this.calculate();\n this.updateBarsAria();\n if (this.$inner) {\n this.observer?.observe(this.$inner);\n }\n if (this.$container) {\n this.observer?.observe(this.$container);\n }\n\n this.$inner?.addEventListener('focusin', this.handleFocusIn);\n }\n\n componentDidUpdate() {\n this.calculate();\n }\n\n componentWillUnmount() {\n this.observer?.disconnect();\n this.$inner?.removeEventListener('focusin', this.handleFocusIn);\n }\n\n render() {\n const SScrollArea = Root;\n const SShadowVertical = BoxWithoutPosition;\n const SShadowHorizontal = BoxWithoutPosition;\n const { Children, styles, orientation, tabIndex, forcedAdvancedMode } = this.asProps;\n const { shadowVertical, shadowHorizontal } = this.state;\n\n const advancedMode =\n forcedAdvancedMode ||\n isAdvanceMode(Children, [ScrollArea.Container.displayName, ScrollArea.Bar.displayName]);\n\n return sstyled(styles)(\n <SScrollArea\n render={Box}\n ref={this.refWrapper}\n onScroll={this.handleScroll}\n __excludeProps={['tabIndex']}\n >\n {shadowVertical && <SShadowVertical position={shadowVertical} />}\n {shadowHorizontal && <SShadowHorizontal position={shadowHorizontal} />}\n {advancedMode ? (\n <Children />\n ) : (\n <>\n <ScrollArea.Container tabIndex={tabIndex}>\n <Children />\n </ScrollArea.Container>\n {(orientation === undefined || orientation === 'horizontal') && (\n <ScrollArea.Bar orientation='horizontal' />\n )}\n {(orientation === undefined || orientation === 'vertical') && (\n <ScrollArea.Bar orientation='vertical' />\n )}\n </>\n )}\n </SScrollArea>,\n );\n }\n}\n\nfunction ContainerRoot(props) {\n const SContainer = Root;\n const { Children, styles, $refInner } = props;\n return sstyled(styles)(\n <SContainer render={Box} tabIndex={0}>\n <div ref={$refInner}>\n <Children />\n </div>\n </SContainer>,\n );\n}\n\nContainerRoot.enhance = [keyboardFocusEnhance()];\n\nconst ScrollArea = createComponent(ScrollAreaRoot, {\n Container: ContainerRoot,\n Bar: BarRoot,\n});\n\n// TODO: remove named ScrollArea export\nexport { eventCalculate, ScrollArea };\nexport default ScrollArea;\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ScrollArea.js","names":["React","findDOMNode","createComponent","Component","sstyled","Root","Box","trottle","getNodeByRef","isAdvanceMode","callAllEventHandlers","BarRoot","setAreaValue","keyboardFocusEnhance","uniqueIDEnhancement","canUseDOM","style","_sstyled","insert","eventCalculate","undefined","window","Event","BoxWithoutPosition","forwardRef","_ref5","ref","position","props","_objectWithoutProperties","_excluded","createElement","_extends","ScrollAreaRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","createRef","shadowHorizontal","shadowVertical","node","$wrapper","$container","_this$calculateSizeCo","calculateSizeContainer","height","width","dispatchEvent","setShadowContainer","horizontalBarRef","current","verticalBarRef","updateBarsAria","e","_e$target","target","isEqualNode","scrollTop","scrollLeft","setTimeout","_this$asProps","asProps","keyboardFocused","leftOffset","rightOffset","topOffset","bottomOffset","scrollTo","viewPort","getBoundingClientRect","element","offset","top","left","right","bottom","outOfViewport","Math","floor","scroll","maxScroll","orientation","roundedScroll","round","roundedMaxScroll","shadow","setState","_this$$container","scrollWidth","clientWidth","scrollHeight","clientHeight","maxScrollRight","maxScrollBottom","toggleShadow","observer","ResizeObserver","onResize","calculate","_createClass","key","get","container","inner","value","size","_this$$container2","getComputedStyle","maxWidth","Number","parseInt","getPropertyValue","maxHeight","concat","getContainerProps","_this$asProps2","onScroll","uid","id","$refInner","handleScrollContainer","getBarProps","_this$asProps3","componentDidMount","_this$$inner","$inner","_this$observer","observe","_this$observer2","addEventListener","handleFocusIn","componentDidUpdate","componentWillUnmount","_this$observer3","_this$$inner2","disconnect","removeEventListener","render","_ref","_ref3","SScrollArea","SShadowVertical","SShadowHorizontal","_this$asProps4","Children","styles","tabIndex","forcedAdvancedMode","_this$state","state","advancedMode","ScrollArea","Container","displayName","Bar","cn","_objectSpread","_assignProps","refWrapper","handleScroll","Fragment","ContainerRoot","_ref2","arguments[0]","_ref4","SContainer","_assignProps2","enhance"],"sources":["../../src/ScrollArea.jsx"],"sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\n\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport trottle from '@semcore/utils/lib/rafTrottle';\nimport { getNodeByRef } from '@semcore/utils/lib/ref';\nimport { isAdvanceMode } from '@semcore/utils/lib/findComponent';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport BarRoot, { setAreaValue } from './ScrollBar';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\n\nimport style from './style/scroll-area.shadow.css';\n\nlet eventCalculate = undefined;\nif (typeof window !== 'undefined') {\n eventCalculate = new Event('calculate');\n}\n\nconst BoxWithoutPosition = React.forwardRef(({ position, ...props }, ref) => (\n <Box ref={ref} {...props} />\n));\n\nclass ScrollAreaRoot extends Component {\n static displayName = 'ScrollArea';\n\n static style = style;\n static enhance = [uniqueIDEnhancement(), keyboardFocusEnhance()];\n\n static defaultProps = () => ({\n container: React.createRef(),\n inner: React.createRef(),\n tabIndex: 0,\n });\n\n $wrapper = null;\n observer = null;\n horizontalBarRef = React.createRef();\n verticalBarRef = React.createRef();\n\n get $container() {\n return getNodeByRef(this.asProps.container);\n }\n\n get $inner() {\n return getNodeByRef(this.asProps.inner);\n }\n\n state = {\n shadowHorizontal: false,\n shadowVertical: false,\n };\n\n constructor(props) {\n super(props);\n\n if (canUseDOM()) {\n this.observer = new ResizeObserver(callAllEventHandlers(props.onResize, this.calculate));\n }\n }\n\n refWrapper = (node) => {\n this.$wrapper = findDOMNode(node);\n };\n\n // for max height/width\n calculateSizeContainer() {\n const size = { width: '', height: '' };\n if (!this.$container || !this.$wrapper) return size;\n const { scrollWidth, scrollHeight } = this.$container;\n const style = window.getComputedStyle(this.$wrapper);\n const maxWidth = Number.parseInt(style.getPropertyValue('max-width'));\n const maxHeight = Number.parseInt(style.getPropertyValue('max-height'));\n\n if (maxWidth) {\n if (scrollWidth > maxWidth) {\n size.width = `${maxWidth}px`;\n } else {\n size.width = '100%';\n }\n }\n\n if (maxHeight) {\n if (scrollHeight > maxHeight) {\n size.height = `${maxHeight}px`;\n } else {\n size.height = '100%';\n }\n }\n\n return size;\n }\n\n calculate = trottle(() => {\n if (!this.$container) return;\n\n const { height, width } = this.calculateSizeContainer();\n if (height) this.$container.style.height = height;\n if (width) this.$container.style.width = width;\n this.$container.dispatchEvent(eventCalculate);\n this.setShadowContainer();\n });\n\n updateBarsAria = trottle(() => {\n setAreaValue(this.$container, this.horizontalBarRef.current, this.verticalBarRef.current);\n });\n\n handleScrollContainer = trottle(() => {\n if (!this.$container) return;\n this.setShadowContainer();\n this.updateBarsAria();\n });\n\n // FIX Chrome bug, when focus state on hide control\n handleScroll = (e) => {\n if (e.target?.isEqualNode(this.$wrapper)) {\n e.target.scrollTop = 0;\n e.target.scrollLeft = 0;\n }\n };\n\n handleFocusIn = (e) => {\n setTimeout(() => {\n const { keyboardFocused, leftOffset, rightOffset, topOffset, bottomOffset } = this.asProps;\n\n if (this.$container && typeof this.$container.scrollTo === 'function') {\n const viewPort = this.$container.getBoundingClientRect();\n const element = e.target.getBoundingClientRect();\n\n const offset = {\n top: topOffset ?? 0,\n left: leftOffset ?? 0,\n right: rightOffset ?? 0,\n bottom: bottomOffset ?? 0,\n };\n\n if (viewPort) {\n const outOfViewport =\n Math.floor(element.top) >= viewPort.bottom - offset.bottom ||\n Math.floor(element.bottom) <= viewPort.top + offset.top ||\n Math.floor(element.left) >= viewPort.right - offset.right ||\n Math.floor(element.right) <= viewPort.left + offset.left;\n\n if (outOfViewport && keyboardFocused) {\n this.$container.scrollTo({\n top: element.top + this.$container.scrollTop - offset.top - viewPort.top,\n left: element.left + this.$container.scrollLeft - offset.left - viewPort.left,\n });\n }\n }\n }\n }, 0);\n };\n\n toggleShadow = (scroll, maxScroll, orientation) => {\n const roundedScroll = Math.round(scroll);\n const roundedMaxScroll = Math.round(maxScroll);\n let shadow = '';\n // not scroll\n if (roundedMaxScroll <= 0) {\n // start scroll\n } else if (roundedScroll <= 0) {\n shadow = 'end';\n // end scroll\n } else if (roundedScroll >= roundedMaxScroll) {\n shadow = 'start';\n // median scroll\n } else if (roundedScroll > 0) {\n shadow = 'median';\n }\n this.setState({\n [orientation]: shadow,\n });\n };\n\n setShadowContainer = () => {\n if (!this.asProps.shadow || !this.$container || !this.$wrapper) return;\n\n const { scrollWidth, clientWidth, scrollHeight, clientHeight, scrollLeft, scrollTop } =\n this.$container;\n const maxScrollRight = scrollWidth - clientWidth;\n const maxScrollBottom = scrollHeight - clientHeight;\n\n this.toggleShadow(scrollLeft, maxScrollRight, 'shadowHorizontal');\n this.toggleShadow(scrollTop, maxScrollBottom, 'shadowVertical');\n };\n\n getContainerProps() {\n const { container, inner, onScroll, uid } = this.asProps;\n return {\n id: `igc-${uid}-scroll-container`,\n ref: container,\n $refInner: inner,\n onScroll: callAllEventHandlers(onScroll, this.handleScrollContainer),\n };\n }\n\n getBarProps() {\n const { container, orientation, uid, leftOffset, rightOffset } = this.asProps;\n\n return {\n container,\n orientation,\n uid,\n horizontalBarRef: this.horizontalBarRef,\n verticalBarRef: this.verticalBarRef,\n leftOffset,\n rightOffset,\n };\n }\n\n componentDidMount() {\n this.calculate();\n this.updateBarsAria();\n if (this.$inner) {\n this.observer?.observe(this.$inner);\n }\n if (this.$container) {\n this.observer?.observe(this.$container);\n }\n\n this.$inner?.addEventListener('focusin', this.handleFocusIn);\n }\n\n componentDidUpdate() {\n this.calculate();\n }\n\n componentWillUnmount() {\n this.observer?.disconnect();\n this.$inner?.removeEventListener('focusin', this.handleFocusIn);\n }\n\n render() {\n const SScrollArea = Root;\n const SShadowVertical = BoxWithoutPosition;\n const SShadowHorizontal = BoxWithoutPosition;\n const {\n Children,\n styles,\n orientation,\n tabIndex,\n forcedAdvancedMode,\n leftOffset,\n rightOffset,\n topOffset,\n bottomOffset,\n } = this.asProps;\n const { shadowVertical, shadowHorizontal } = this.state;\n\n const advancedMode =\n forcedAdvancedMode ||\n isAdvanceMode(Children, [ScrollArea.Container.displayName, ScrollArea.Bar.displayName]);\n\n return sstyled(styles)(\n <SScrollArea\n render={Box}\n ref={this.refWrapper}\n onScroll={this.handleScroll}\n __excludeProps={['tabIndex']}\n >\n {advancedMode ? (\n <Children />\n ) : (\n <>\n <ScrollArea.Container tabIndex={tabIndex}>\n <Children />\n </ScrollArea.Container>\n {(orientation === undefined || orientation === 'horizontal') && (\n <ScrollArea.Bar orientation='horizontal' />\n )}\n {(orientation === undefined || orientation === 'vertical') && (\n <ScrollArea.Bar orientation='vertical' />\n )}\n </>\n )}\n {shadowVertical && (\n <SShadowVertical\n position={shadowVertical}\n topOffset={topOffset ? `${topOffset}px` : undefined}\n bottomOffset={bottomOffset ? `${bottomOffset}px` : undefined}\n />\n )}\n {shadowHorizontal && (\n <SShadowHorizontal\n position={shadowHorizontal}\n leftOffset={leftOffset ? `${leftOffset}px` : undefined}\n rightOffset={rightOffset ? `${rightOffset}px` : undefined}\n />\n )}\n </SScrollArea>,\n );\n }\n}\n\nfunction ContainerRoot(props) {\n const SContainer = Root;\n const { Children, styles, $refInner } = props;\n return sstyled(styles)(\n <SContainer render={Box} tabIndex={0}>\n <div ref={$refInner}>\n <Children />\n </div>\n </SContainer>,\n );\n}\n\nContainerRoot.enhance = [keyboardFocusEnhance()];\n\nconst ScrollArea = createComponent(ScrollAreaRoot, {\n Container: ContainerRoot,\n Bar: BarRoot,\n});\n\n// TODO: remove named ScrollArea export\nexport { eventCalculate, ScrollArea };\nexport default ScrollArea;\n"],"mappings":"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"}
|
@@ -15,11 +15,12 @@ import createComponent, { Component, sstyled, Root } from 'intergalactic/core';
|
|
15
15
|
import { Box } from 'intergalactic/flex-box';
|
16
16
|
import { getNodeByRef } from 'intergalactic/utils/lib/ref';
|
17
17
|
/*__reshadow-styles__:"./style/scroll-bar.shadow.css"*/
|
18
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
19
|
-
"__SScrollBar": "
|
20
|
-
"_orientation_vertical": "
|
21
|
-
"
|
22
|
-
"
|
18
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SScrollBar_aslq8_gg_{position:absolute;display:flex}.___SScrollBar_aslq8_gg_._orientation_vertical_aslq8_gg_{top:var(--intergalactic-spacing-1x, 4px);right:0;width:8px;height:calc(100% - var(--offsetSum_aslq8) - var(--intergalactic-spacing-2x, 8px));justify-content:center}.___SScrollBar_aslq8_gg_._orientation_horizontal_aslq8_gg_{bottom:0;height:12px;align-items:center;width:calc(100% - var(--offsetSum_aslq8) - var(--intergalactic-spacing-2x, 8px))}.___SSlider_aslq8_gg_{cursor:pointer;width:6px;height:6px;border-radius:4px;background-color:var(--intergalactic-scroll-bar-background, rgba(25, 27, 35, 0.3))}" /*__inner_css_end__*/, "aslq8_gg_") /*__reshadow_css_end__*/, {
|
19
|
+
"__SScrollBar": "___SScrollBar_aslq8_gg_",
|
20
|
+
"_orientation_vertical": "_orientation_vertical_aslq8_gg_",
|
21
|
+
"--offsetSum": "--offsetSum_aslq8",
|
22
|
+
"_orientation_horizontal": "_orientation_horizontal_aslq8_gg_",
|
23
|
+
"__SSlider": "___SSlider_aslq8_gg_"
|
23
24
|
});
|
24
25
|
export var DEFAULT_SLIDER_SIZE = 50;
|
25
26
|
|
@@ -341,12 +342,56 @@ var ScrollBarRoot = /*#__PURE__*/function (_Component) {
|
|
341
342
|
var SScrollBar = Box;
|
342
343
|
var _this$asProps2 = this.asProps,
|
343
344
|
styles = _this$asProps2.styles,
|
344
|
-
uid = _this$asProps2.uid
|
345
|
+
uid = _this$asProps2.uid,
|
346
|
+
position = _this$asProps2.position,
|
347
|
+
container = _this$asProps2.container,
|
348
|
+
orientation = _this$asProps2.orientation;
|
345
349
|
var visibleScroll = this.state.visibleScroll;
|
350
|
+
var _this$asProps3 = this.asProps,
|
351
|
+
leftOffset = _this$asProps3.leftOffset,
|
352
|
+
rightOffset = _this$asProps3.rightOffset,
|
353
|
+
topOffset = _this$asProps3.topOffset,
|
354
|
+
bottomOffset = _this$asProps3.bottomOffset;
|
346
355
|
if (!visibleScroll) {
|
347
356
|
return null;
|
348
357
|
}
|
358
|
+
var offsetSum = 0;
|
359
|
+
if (orientation === 'horizontal') {
|
360
|
+
if (leftOffset) offsetSum += leftOffset;
|
361
|
+
if (rightOffset) offsetSum += rightOffset;
|
362
|
+
if (position === 'sticky' && container.current) {
|
363
|
+
var _container$current$ge = container.current.getBoundingClientRect(),
|
364
|
+
left = _container$current$ge.left,
|
365
|
+
right = _container$current$ge.right;
|
366
|
+
if (leftOffset) {
|
367
|
+
leftOffset += left;
|
368
|
+
}
|
369
|
+
if (rightOffset) {
|
370
|
+
rightOffset += right;
|
371
|
+
}
|
372
|
+
}
|
373
|
+
}
|
374
|
+
if (orientation === 'vertical') {
|
375
|
+
if (topOffset) offsetSum += topOffset;
|
376
|
+
if (bottomOffset) offsetSum += bottomOffset;
|
377
|
+
if (position === 'sticky' && container.current) {
|
378
|
+
var _container$current$ge2 = container.current.getBoundingClientRect(),
|
379
|
+
top = _container$current$ge2.top,
|
380
|
+
bottom = _container$current$ge2.bottom;
|
381
|
+
if (topOffset) {
|
382
|
+
topOffset += top;
|
383
|
+
}
|
384
|
+
if (bottomOffset) {
|
385
|
+
bottomOffset += bottom;
|
386
|
+
}
|
387
|
+
}
|
388
|
+
}
|
349
389
|
return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SScrollBar, _ref3.cn("SScrollBar", _objectSpread({}, _assignProps({
|
390
|
+
"left": orientation === 'horizontal' && leftOffset ? "".concat(leftOffset, "px") : undefined,
|
391
|
+
"right": orientation === 'horizontal' && rightOffset ? "".concat(rightOffset, "px") : undefined,
|
392
|
+
"top": orientation === 'vertical' && topOffset ? "".concat(topOffset, "px") : undefined,
|
393
|
+
"bottom": orientation === 'vertical' && bottomOffset ? "".concat(bottomOffset, "px") : undefined,
|
394
|
+
"offsetSum": "".concat(offsetSum, "px"),
|
350
395
|
"role": 'scrollbar',
|
351
396
|
"ref": this.refBar,
|
352
397
|
"aria-valuemin": 0,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ScrollBar.js","names":["React","findDOMNode","createComponent","Component","sstyled","Root","Box","getNodeByRef","style","_sstyled","insert","DEFAULT_SLIDER_SIZE","setAriaValues","$container","$horizontalBar","$verticalBar","scrollWidth","clientWidth","scrollHeight","clientHeight","scrollLeft","scrollTop","maxScrollRight","maxScrollBottom","setAttribute","Math","floor","ScrollBarRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","width","height","x","y","left","top","pageX","pageY","visibleScroll","node","domNode","$bar","orientation","getOrientation","_this$asProps","asProps","horizontalBarRef","verticalBarRef","current","$slider","calculateVisibleScroll","setState","sliderStyle","calculateSliderStyle","kefBar","calculateKefBar","kefScroll","calculateKefScroll","handleScroll","_this$$container","transform","e","preventDefault","_this$_scroll","_scroll","_this$kefScroll","calculateScrollByDiff","_mouse","document","removeEventListener","handleMouseMoveDocument","handleMouseUpDocument","handleSelectStartDocument","stopPropagation","_this$$container2","addEventListener","_window","window","pageXOffset","pageYOffset","_this$$bar$getBoundin","getBoundingClientRect","calculateScrollByClick","_createClass","key","get","container","value","_this$calculateOrient","calculateOrientation","_this$calculateOrient2","_slicedToArray","horizontal","vertical","_this$$container3","_this$$bar","clientWidthBar","clientHeightBar","_this$sliderStyle","_this$$bar2","_this$sliderStyle2","_this$$bar3","_this$$container4","calculateDimensions","visibleSize","totalSize","ratio","min","round","max","position","windowOffset","mouseOffset","barPage","scroll","oldMouseOffset","oldScroll","offsetMouse","_this$$container5","undefined","_this$calculateOrient3","_this$calculateOrient4","subscribe","$node","calculate","unsubscribe","getSliderProps","ref","refSlider","onMouseDown","handleMouseDownSlider","componentDidMount","componentWillUnmount","render","_ref","_ref3","SScrollBar","_this$asProps2","styles","uid","state","createElement","cn","_objectSpread","_assignProps","refBar","handleMouseDownBar","createRef","children","ScrollBar","Slider","props","_ref2","arguments[0]","_ref4","SSlider","_assignProps2","onDragStart","setAreaValue"],"sources":["../../src/ScrollBar.jsx"],"sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport { getNodeByRef } from '@semcore/utils/lib/ref';\n\nimport style from './style/scroll-bar.shadow.css';\n\nexport const DEFAULT_SLIDER_SIZE = 50;\n\n// updating DOM directly to avoid react dom rerendering and reconciliation\nconst setAriaValues = ($container, $horizontalBar, $verticalBar) => {\n if (!$container || !($horizontalBar || $verticalBar)) return;\n const { scrollWidth, clientWidth, scrollHeight, clientHeight, scrollLeft, scrollTop } =\n $container;\n const maxScrollRight = scrollWidth - clientWidth;\n const maxScrollBottom = scrollHeight - clientHeight;\n if ($horizontalBar) {\n $horizontalBar.setAttribute('aria-valuenow', Math.floor(scrollLeft));\n $horizontalBar.setAttribute('aria-valuemax', maxScrollRight);\n }\n if ($verticalBar) {\n $verticalBar.setAttribute('aria-valuenow', Math.floor(scrollTop));\n $verticalBar.setAttribute('aria-valuemax', maxScrollBottom);\n }\n};\n\nclass ScrollBarRoot extends Component {\n static displayName = 'Bar';\n\n static style = style;\n\n static defaultProps = () => {\n return {\n container: React.createRef(),\n children: <ScrollBar.Slider />,\n };\n };\n\n $bar = null;\n $slider = null;\n\n sliderStyle = { width: DEFAULT_SLIDER_SIZE, height: DEFAULT_SLIDER_SIZE };\n\n kefScroll = { x: 0, y: 0 };\n kefBar = { x: 0, y: 0 };\n\n _scroll = { left: 0, top: 0 };\n _mouse = { pageX: 0, pageY: 0 };\n\n state = {\n visibleScroll: false,\n };\n\n get $container() {\n return getNodeByRef(this.asProps.container);\n }\n\n refBar = (node) => {\n const domNode = findDOMNode(node);\n this.$bar = domNode;\n const orientation = this.getOrientation();\n const { horizontalBarRef, verticalBarRef } = this.asProps;\n if (orientation === 'horizontal' && horizontalBarRef) horizontalBarRef.current = domNode;\n if (orientation === 'vertical' && verticalBarRef) verticalBarRef.current = domNode;\n\n setAriaValues(this.$container, horizontalBarRef?.current, verticalBarRef?.current);\n };\n\n refSlider = (node) => {\n this.$slider = findDOMNode(node);\n };\n\n calculateVisibleScroll() {\n const orientation = this.getOrientation();\n const [horizontal, vertical] = this.calculateOrientation();\n\n if (horizontal && orientation === 'horizontal') {\n return true;\n } else if (vertical && orientation === 'vertical') {\n return true;\n }\n\n return false;\n }\n\n calculateKefScroll() {\n const { clientWidth, clientHeight, scrollWidth, scrollHeight } = this.$container;\n const { clientWidth: clientWidthBar, clientHeight: clientHeightBar } = this.$bar;\n const { width, height } = this.sliderStyle;\n return {\n x: (clientWidthBar - width) / (scrollWidth - clientWidth),\n y: (clientHeightBar - height) / (scrollHeight - clientHeight),\n };\n }\n\n calculateKefBar() {\n const { clientWidth, clientHeight } = this.$bar;\n const { width, height } = this.sliderStyle;\n return {\n x: (clientWidth - width) / clientWidth,\n y: (clientHeight - height) / clientHeight,\n };\n }\n\n calculateSliderStyle() {\n const { clientWidth, clientHeight } = this.$bar;\n const { scrollWidth, scrollHeight } = this.$container;\n\n const calculateDimensions = (visibleSize, totalSize) => {\n const ratio = Math.min(visibleSize / totalSize, 1); // percentage of visible area\n return Math.round(visibleSize * ratio);\n };\n\n return {\n width: Math.max(calculateDimensions(clientWidth, scrollWidth), DEFAULT_SLIDER_SIZE),\n height: Math.max(calculateDimensions(clientHeight, scrollHeight), DEFAULT_SLIDER_SIZE),\n };\n }\n\n calculateScrollByClick(position, windowOffset, mouseOffset, kefBar, kefScroll) {\n // bar coordinates relative to the page\n const barPage = position + windowOffset;\n\n // click coordinates - bar coordinates * proportion\n const scroll = (mouseOffset - barPage) * kefBar;\n\n return scroll / kefScroll;\n }\n\n calculateScrollByDiff(mouseOffset, oldMouseOffset, oldScroll, kefScroll) {\n // mouse offset (new coordinates - old coordinates)\n const offsetMouse = mouseOffset - oldMouseOffset;\n\n // old scroll position * scroll ratio + offset\n const scroll = oldScroll * kefScroll + offsetMouse;\n\n return scroll / kefScroll;\n }\n\n calculateOrientation() {\n if (!this.$container) return [false, false];\n const { scrollWidth, scrollHeight, clientWidth, clientHeight } = this.$container;\n return [scrollWidth > clientWidth, scrollHeight > clientHeight];\n }\n\n calculate = () => {\n if (!this.$container) return;\n\n const visibleScroll = this.calculateVisibleScroll();\n\n this.setState({ visibleScroll }, () => {\n if (!this.$container || !this.$bar || !this.$slider) return;\n const orientation = this.getOrientation();\n\n this.sliderStyle = this.calculateSliderStyle();\n this.kefBar = this.calculateKefBar();\n this.kefScroll = this.calculateKefScroll();\n\n if (orientation === 'horizontal') {\n this.$slider.style.width = `${this.sliderStyle.width}px`;\n } else if (orientation === 'vertical') {\n this.$slider.style.height = `${this.sliderStyle.height}px`;\n }\n this.handleScroll();\n });\n };\n\n handleScroll = () => {\n if (!this.$container || !this.$slider) return;\n\n const { scrollTop, scrollLeft } = this.$container;\n const orientation = this.getOrientation();\n\n if (orientation === 'horizontal') {\n this.$slider.style.transform = `translateX(${scrollLeft * this.kefScroll.x}px)`;\n } else if (orientation === 'vertical') {\n this.$slider.style.transform = `translateY(${scrollTop * this.kefScroll.y}px)`;\n }\n };\n\n getOrientation() {\n if (this.asProps.orientation !== undefined) return this.asProps.orientation;\n const [horizontal, vertical] = this.calculateOrientation();\n if (vertical) return 'vertical';\n if (horizontal) return 'horizontal';\n }\n\n handleSelectStartDocument = (e) => e.preventDefault();\n\n handleMouseMoveDocument = (e) => {\n const { pageX, pageY } = e;\n const { left, top } = this._scroll;\n const { x, y } = this.kefScroll;\n const orientation = this.getOrientation();\n\n if (orientation === 'horizontal') {\n this.$container.scrollLeft = this.calculateScrollByDiff(pageX, this._mouse.pageX, left, x);\n } else if (orientation === 'vertical') {\n this.$container.scrollTop = this.calculateScrollByDiff(pageY, this._mouse.pageY, top, y);\n }\n };\n\n handleMouseUpDocument = () => {\n document.removeEventListener('mousemove', this.handleMouseMoveDocument, true);\n document.removeEventListener('mouseup', this.handleMouseUpDocument, true);\n document.removeEventListener('selectstart', this.handleSelectStartDocument, true);\n };\n\n handleMouseDownSlider = (e) => {\n // canceling the emergence of a real scroll\n e.stopPropagation();\n // save mouse coordinates (relative to the page)\n this._mouse = { pageX: e.pageX, pageY: e.pageY };\n // save the scroll of the container\n // TODO: what happens if the content increases while we scroll?\n const { scrollLeft, scrollTop } = this.$container;\n this._scroll = { left: scrollLeft, top: scrollTop };\n\n document.addEventListener('mousemove', this.handleMouseMoveDocument, true);\n document.addEventListener('mouseup', this.handleMouseUpDocument, true);\n document.addEventListener('selectstart', this.handleSelectStartDocument, true);\n };\n\n handleMouseDownBar = (e) => {\n // cancellation of the ascent as in a real scroll\n e.stopPropagation();\n\n const { pageX, pageY } = e;\n const { pageXOffset, pageYOffset } = window;\n const { left, top } = this.$bar.getBoundingClientRect();\n const orientation = this.getOrientation();\n\n if (orientation === 'horizontal') {\n this.$container.scrollLeft = this.calculateScrollByClick(\n left,\n pageXOffset,\n pageX,\n this.kefBar.x,\n this.kefScroll.x,\n );\n } else if (orientation === 'vertical') {\n this.$container.scrollTop = this.calculateScrollByClick(\n top,\n pageYOffset,\n pageY,\n this.kefBar.y,\n this.kefScroll.y,\n );\n }\n };\n\n subscribe($node) {\n if (!$node) return;\n $node.addEventListener('scroll', this.handleScroll);\n $node.addEventListener('calculate', this.calculate);\n }\n\n unsubscribe($node) {\n if (!$node) return;\n $node.removeEventListener('scroll', this.handleScroll);\n $node.removeEventListener('calculate', this.calculate);\n }\n\n getSliderProps() {\n return {\n ref: this.refSlider,\n onMouseDown: this.handleMouseDownSlider,\n };\n }\n\n componentDidMount() {\n this.subscribe(this.$container);\n }\n\n componentWillUnmount() {\n this.unsubscribe(this.$container);\n }\n\n render() {\n const SScrollBar = Root;\n const { styles, uid } = this.asProps;\n const { visibleScroll } = this.state;\n\n if (!visibleScroll) {\n return null;\n }\n\n return sstyled(styles)(\n <SScrollBar\n render={Box}\n role='scrollbar'\n ref={this.refBar}\n aria-valuemin={0}\n aria-controls={`igc-${uid}-scroll-container`}\n aria-orientation={this.getOrientation()}\n onMouseDown={this.handleMouseDownBar}\n orientation={this.getOrientation()}\n />,\n );\n }\n}\n\nfunction Slider(props) {\n const { styles } = props;\n const SSlider = Root;\n\n return sstyled(styles)(<SSlider render={Box} onDragStart={() => false} />);\n}\n\nconst ScrollBar = createComponent(ScrollBarRoot, {\n Slider,\n});\n\nexport { setAriaValues as setAreaValue };\nexport default ScrollBar;\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ScrollBar.js","names":["React","findDOMNode","createComponent","Component","sstyled","Root","Box","getNodeByRef","style","_sstyled","insert","DEFAULT_SLIDER_SIZE","setAriaValues","$container","$horizontalBar","$verticalBar","scrollWidth","clientWidth","scrollHeight","clientHeight","scrollLeft","scrollTop","maxScrollRight","maxScrollBottom","setAttribute","Math","floor","ScrollBarRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","width","height","x","y","left","top","pageX","pageY","visibleScroll","node","domNode","$bar","orientation","getOrientation","_this$asProps","asProps","horizontalBarRef","verticalBarRef","current","$slider","calculateVisibleScroll","setState","sliderStyle","calculateSliderStyle","kefBar","calculateKefBar","kefScroll","calculateKefScroll","handleScroll","_this$$container","transform","e","preventDefault","_this$_scroll","_scroll","_this$kefScroll","calculateScrollByDiff","_mouse","document","removeEventListener","handleMouseMoveDocument","handleMouseUpDocument","handleSelectStartDocument","stopPropagation","_this$$container2","addEventListener","_window","window","pageXOffset","pageYOffset","_this$$bar$getBoundin","getBoundingClientRect","calculateScrollByClick","_createClass","key","get","container","value","_this$calculateOrient","calculateOrientation","_this$calculateOrient2","_slicedToArray","horizontal","vertical","_this$$container3","_this$$bar","clientWidthBar","clientHeightBar","_this$sliderStyle","_this$$bar2","_this$sliderStyle2","_this$$bar3","_this$$container4","calculateDimensions","visibleSize","totalSize","ratio","min","round","max","position","windowOffset","mouseOffset","barPage","scroll","oldMouseOffset","oldScroll","offsetMouse","_this$$container5","undefined","_this$calculateOrient3","_this$calculateOrient4","subscribe","$node","calculate","unsubscribe","getSliderProps","ref","refSlider","onMouseDown","handleMouseDownSlider","componentDidMount","componentWillUnmount","render","_ref","_ref3","SScrollBar","_this$asProps2","styles","uid","state","_this$asProps3","leftOffset","rightOffset","topOffset","bottomOffset","offsetSum","_container$current$ge","right","_container$current$ge2","bottom","createElement","cn","_objectSpread","_assignProps","refBar","handleMouseDownBar","createRef","children","ScrollBar","Slider","props","_ref2","arguments[0]","_ref4","SSlider","_assignProps2","onDragStart","setAreaValue"],"sources":["../../src/ScrollBar.jsx"],"sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport { getNodeByRef } from '@semcore/utils/lib/ref';\n\nimport style from './style/scroll-bar.shadow.css';\n\nexport const DEFAULT_SLIDER_SIZE = 50;\n\n// updating DOM directly to avoid react dom rerendering and reconciliation\nconst setAriaValues = ($container, $horizontalBar, $verticalBar) => {\n if (!$container || !($horizontalBar || $verticalBar)) return;\n const { scrollWidth, clientWidth, scrollHeight, clientHeight, scrollLeft, scrollTop } =\n $container;\n const maxScrollRight = scrollWidth - clientWidth;\n const maxScrollBottom = scrollHeight - clientHeight;\n if ($horizontalBar) {\n $horizontalBar.setAttribute('aria-valuenow', Math.floor(scrollLeft));\n $horizontalBar.setAttribute('aria-valuemax', maxScrollRight);\n }\n if ($verticalBar) {\n $verticalBar.setAttribute('aria-valuenow', Math.floor(scrollTop));\n $verticalBar.setAttribute('aria-valuemax', maxScrollBottom);\n }\n};\n\nclass ScrollBarRoot extends Component {\n static displayName = 'Bar';\n\n static style = style;\n\n static defaultProps = () => {\n return {\n container: React.createRef(),\n children: <ScrollBar.Slider />,\n };\n };\n\n $bar = null;\n $slider = null;\n\n sliderStyle = { width: DEFAULT_SLIDER_SIZE, height: DEFAULT_SLIDER_SIZE };\n\n kefScroll = { x: 0, y: 0 };\n kefBar = { x: 0, y: 0 };\n\n _scroll = { left: 0, top: 0 };\n _mouse = { pageX: 0, pageY: 0 };\n\n state = {\n visibleScroll: false,\n };\n\n get $container() {\n return getNodeByRef(this.asProps.container);\n }\n\n refBar = (node) => {\n const domNode = findDOMNode(node);\n this.$bar = domNode;\n const orientation = this.getOrientation();\n const { horizontalBarRef, verticalBarRef } = this.asProps;\n if (orientation === 'horizontal' && horizontalBarRef) horizontalBarRef.current = domNode;\n if (orientation === 'vertical' && verticalBarRef) verticalBarRef.current = domNode;\n\n setAriaValues(this.$container, horizontalBarRef?.current, verticalBarRef?.current);\n };\n\n refSlider = (node) => {\n this.$slider = findDOMNode(node);\n };\n\n calculateVisibleScroll() {\n const orientation = this.getOrientation();\n const [horizontal, vertical] = this.calculateOrientation();\n\n if (horizontal && orientation === 'horizontal') {\n return true;\n } else if (vertical && orientation === 'vertical') {\n return true;\n }\n\n return false;\n }\n\n calculateKefScroll() {\n const { clientWidth, clientHeight, scrollWidth, scrollHeight } = this.$container;\n const { clientWidth: clientWidthBar, clientHeight: clientHeightBar } = this.$bar;\n const { width, height } = this.sliderStyle;\n return {\n x: (clientWidthBar - width) / (scrollWidth - clientWidth),\n y: (clientHeightBar - height) / (scrollHeight - clientHeight),\n };\n }\n\n calculateKefBar() {\n const { clientWidth, clientHeight } = this.$bar;\n const { width, height } = this.sliderStyle;\n return {\n x: (clientWidth - width) / clientWidth,\n y: (clientHeight - height) / clientHeight,\n };\n }\n\n calculateSliderStyle() {\n const { clientWidth, clientHeight } = this.$bar;\n const { scrollWidth, scrollHeight } = this.$container;\n\n const calculateDimensions = (visibleSize, totalSize) => {\n const ratio = Math.min(visibleSize / totalSize, 1); // percentage of visible area\n return Math.round(visibleSize * ratio);\n };\n\n return {\n width: Math.max(calculateDimensions(clientWidth, scrollWidth), DEFAULT_SLIDER_SIZE),\n height: Math.max(calculateDimensions(clientHeight, scrollHeight), DEFAULT_SLIDER_SIZE),\n };\n }\n\n calculateScrollByClick(position, windowOffset, mouseOffset, kefBar, kefScroll) {\n // bar coordinates relative to the page\n const barPage = position + windowOffset;\n\n // click coordinates - bar coordinates * proportion\n const scroll = (mouseOffset - barPage) * kefBar;\n\n return scroll / kefScroll;\n }\n\n calculateScrollByDiff(mouseOffset, oldMouseOffset, oldScroll, kefScroll) {\n // mouse offset (new coordinates - old coordinates)\n const offsetMouse = mouseOffset - oldMouseOffset;\n\n // old scroll position * scroll ratio + offset\n const scroll = oldScroll * kefScroll + offsetMouse;\n\n return scroll / kefScroll;\n }\n\n calculateOrientation() {\n if (!this.$container) return [false, false];\n const { scrollWidth, scrollHeight, clientWidth, clientHeight } = this.$container;\n return [scrollWidth > clientWidth, scrollHeight > clientHeight];\n }\n\n calculate = () => {\n if (!this.$container) return;\n\n const visibleScroll = this.calculateVisibleScroll();\n\n this.setState({ visibleScroll }, () => {\n if (!this.$container || !this.$bar || !this.$slider) return;\n const orientation = this.getOrientation();\n\n this.sliderStyle = this.calculateSliderStyle();\n this.kefBar = this.calculateKefBar();\n this.kefScroll = this.calculateKefScroll();\n\n if (orientation === 'horizontal') {\n this.$slider.style.width = `${this.sliderStyle.width}px`;\n } else if (orientation === 'vertical') {\n this.$slider.style.height = `${this.sliderStyle.height}px`;\n }\n this.handleScroll();\n });\n };\n\n handleScroll = () => {\n if (!this.$container || !this.$slider) return;\n\n const { scrollTop, scrollLeft } = this.$container;\n const orientation = this.getOrientation();\n\n if (orientation === 'horizontal') {\n this.$slider.style.transform = `translateX(${scrollLeft * this.kefScroll.x}px)`;\n } else if (orientation === 'vertical') {\n this.$slider.style.transform = `translateY(${scrollTop * this.kefScroll.y}px)`;\n }\n };\n\n getOrientation() {\n if (this.asProps.orientation !== undefined) return this.asProps.orientation;\n const [horizontal, vertical] = this.calculateOrientation();\n if (vertical) return 'vertical';\n if (horizontal) return 'horizontal';\n }\n\n handleSelectStartDocument = (e) => e.preventDefault();\n\n handleMouseMoveDocument = (e) => {\n const { pageX, pageY } = e;\n const { left, top } = this._scroll;\n const { x, y } = this.kefScroll;\n const orientation = this.getOrientation();\n\n if (orientation === 'horizontal') {\n this.$container.scrollLeft = this.calculateScrollByDiff(pageX, this._mouse.pageX, left, x);\n } else if (orientation === 'vertical') {\n this.$container.scrollTop = this.calculateScrollByDiff(pageY, this._mouse.pageY, top, y);\n }\n };\n\n handleMouseUpDocument = () => {\n document.removeEventListener('mousemove', this.handleMouseMoveDocument, true);\n document.removeEventListener('mouseup', this.handleMouseUpDocument, true);\n document.removeEventListener('selectstart', this.handleSelectStartDocument, true);\n };\n\n handleMouseDownSlider = (e) => {\n // canceling the emergence of a real scroll\n e.stopPropagation();\n // save mouse coordinates (relative to the page)\n this._mouse = { pageX: e.pageX, pageY: e.pageY };\n // save the scroll of the container\n // TODO: what happens if the content increases while we scroll?\n const { scrollLeft, scrollTop } = this.$container;\n this._scroll = { left: scrollLeft, top: scrollTop };\n\n document.addEventListener('mousemove', this.handleMouseMoveDocument, true);\n document.addEventListener('mouseup', this.handleMouseUpDocument, true);\n document.addEventListener('selectstart', this.handleSelectStartDocument, true);\n };\n\n handleMouseDownBar = (e) => {\n // cancellation of the ascent as in a real scroll\n e.stopPropagation();\n\n const { pageX, pageY } = e;\n const { pageXOffset, pageYOffset } = window;\n const { left, top } = this.$bar.getBoundingClientRect();\n const orientation = this.getOrientation();\n\n if (orientation === 'horizontal') {\n this.$container.scrollLeft = this.calculateScrollByClick(\n left,\n pageXOffset,\n pageX,\n this.kefBar.x,\n this.kefScroll.x,\n );\n } else if (orientation === 'vertical') {\n this.$container.scrollTop = this.calculateScrollByClick(\n top,\n pageYOffset,\n pageY,\n this.kefBar.y,\n this.kefScroll.y,\n );\n }\n };\n\n subscribe($node) {\n if (!$node) return;\n $node.addEventListener('scroll', this.handleScroll);\n $node.addEventListener('calculate', this.calculate);\n }\n\n unsubscribe($node) {\n if (!$node) return;\n $node.removeEventListener('scroll', this.handleScroll);\n $node.removeEventListener('calculate', this.calculate);\n }\n\n getSliderProps() {\n return {\n ref: this.refSlider,\n onMouseDown: this.handleMouseDownSlider,\n };\n }\n\n componentDidMount() {\n this.subscribe(this.$container);\n }\n\n componentWillUnmount() {\n this.unsubscribe(this.$container);\n }\n\n render() {\n const SScrollBar = Root;\n const { styles, uid, position, container, orientation } = this.asProps;\n const { visibleScroll } = this.state;\n\n let { leftOffset, rightOffset, topOffset, bottomOffset } = this.asProps;\n\n if (!visibleScroll) {\n return null;\n }\n\n let offsetSum = 0;\n\n if (orientation === 'horizontal') {\n if (leftOffset) offsetSum += leftOffset;\n if (rightOffset) offsetSum += rightOffset;\n\n if (position === 'sticky' && container.current) {\n const { left, right } = container.current.getBoundingClientRect();\n\n if (leftOffset) {\n leftOffset += left;\n }\n\n if (rightOffset) {\n rightOffset += right;\n }\n }\n }\n\n if (orientation === 'vertical') {\n if (topOffset) offsetSum += topOffset;\n if (bottomOffset) offsetSum += bottomOffset;\n\n if (position === 'sticky' && container.current) {\n const { top, bottom } = container.current.getBoundingClientRect();\n\n if (topOffset) {\n topOffset += top;\n }\n\n if (bottomOffset) {\n bottomOffset += bottom;\n }\n }\n }\n\n return sstyled(styles)(\n <SScrollBar\n render={Box}\n left={orientation === 'horizontal' && leftOffset ? `${leftOffset}px` : undefined}\n right={orientation === 'horizontal' && rightOffset ? `${rightOffset}px` : undefined}\n top={orientation === 'vertical' && topOffset ? `${topOffset}px` : undefined}\n bottom={orientation === 'vertical' && bottomOffset ? `${bottomOffset}px` : undefined}\n offsetSum={`${offsetSum}px`}\n role='scrollbar'\n ref={this.refBar}\n aria-valuemin={0}\n aria-controls={`igc-${uid}-scroll-container`}\n aria-orientation={this.getOrientation()}\n onMouseDown={this.handleMouseDownBar}\n orientation={this.getOrientation()}\n />,\n );\n }\n}\n\nfunction Slider(props) {\n const { styles } = props;\n const SSlider = Root;\n\n return sstyled(styles)(<SSlider render={Box} onDragStart={() => false} />);\n}\n\nconst ScrollBar = createComponent(ScrollBarRoot, {\n Slider,\n});\n\nexport { setAriaValues as setAreaValue };\nexport default ScrollBar;\n"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { NodeByRef } from '@semcore/utils/lib/ref';\n\n/** @deprecated */\nexport interface IScrollAreaProps extends ScrollAreaProps, UnknownProperties {}\nexport type ScrollAreaProps = BoxProps & {\n /** Shadow display on container */\n shadow?: boolean;\n /** Scroll direction */\n orientation?: 'horizontal' | 'vertical';\n /** Link to the dom element, which will be a container with overflow */\n container?: NodeByRef;\n /** Link to the dom element that will be stretched along with the content */\n inner?: NodeByRef;\n /** Callback executed when container change size */\n onResize?: ResizeObserverCallback;\n /** Called every time user scrolls area */\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /** Tab index that is being bypassed to the scroll container. */\n tabIndex?: number | null;\n};\n\n/** @deprecated */\nexport interface IScrollAreaContext extends ScrollAreaContext, UnknownProperties {}\nexport type ScrollAreaContext = ScrollAreaProps & {\n getContainerProps: PropGetterFn;\n getBarProps: PropGetterFn;\n};\n\n/** @deprecated */\nexport interface IScrollBarProps extends ScrollBarProps, UnknownProperties {}\nexport type ScrollBarProps = BoxProps & {\n /** The direction of the scroll that can be calculated automatically */\n orientation?: 'horizontal' | 'vertical';\n /** Link to the dom element, which will be a container with overflow */\n container?: NodeByRef;\n};\n\n/** @deprecated */\nexport interface IScrollBarContext extends ScrollBarContext, UnknownProperties {}\nexport type ScrollBarContext = ScrollBarProps & {\n getSliderProps: PropGetterFn;\n};\n\ndeclare const ScrollBar: Intergalactic.Component<'div', ScrollBarProps, ScrollBarContext> & {\n Slider: typeof Box;\n};\n\ndeclare const ScrollArea: Intergalactic.Component<'div', ScrollAreaProps, ScrollAreaContext> & {\n Container: typeof Box;\n Bar: typeof ScrollBar;\n};\n\ndeclare const eventCalculate: any;\n\nexport { eventCalculate };\nexport default ScrollArea;\n"],"mappings":""}
|
1
|
+
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { NodeByRef } from '@semcore/utils/lib/ref';\n\n/** @deprecated */\nexport interface IScrollAreaProps extends ScrollAreaProps, UnknownProperties {}\nexport type ScrollAreaProps = BoxProps & {\n /** Shadow display on container */\n shadow?: boolean;\n /** Scroll direction */\n orientation?: 'horizontal' | 'vertical';\n /** Link to the dom element, which will be a container with overflow */\n container?: NodeByRef;\n /** Link to the dom element that will be stretched along with the content */\n inner?: NodeByRef;\n /** Callback executed when container change size */\n onResize?: ResizeObserverCallback;\n /** Called every time user scrolls area */\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /** Tab index that is being bypassed to the scroll container. */\n tabIndex?: number | null;\n\n topOffset?: number;\n rightOffset?: number;\n bottomOffset?: number;\n leftOffset?: number;\n};\n\n/** @deprecated */\nexport interface IScrollAreaContext extends ScrollAreaContext, UnknownProperties {}\nexport type ScrollAreaContext = ScrollAreaProps & {\n getContainerProps: PropGetterFn;\n getBarProps: PropGetterFn;\n};\n\n/** @deprecated */\nexport interface IScrollBarProps extends ScrollBarProps, UnknownProperties {}\nexport type ScrollBarProps = BoxProps & {\n /** The direction of the scroll that can be calculated automatically */\n orientation?: 'horizontal' | 'vertical';\n /** Link to the dom element, which will be a container with overflow */\n container?: NodeByRef;\n};\n\n/** @deprecated */\nexport interface IScrollBarContext extends ScrollBarContext, UnknownProperties {}\nexport type ScrollBarContext = ScrollBarProps & {\n getSliderProps: PropGetterFn;\n};\n\ndeclare const ScrollBar: Intergalactic.Component<'div', ScrollBarProps, ScrollBarContext> & {\n Slider: typeof Box;\n};\n\ndeclare const ScrollArea: Intergalactic.Component<'div', ScrollAreaProps, ScrollAreaContext> & {\n Container: typeof Box;\n Bar: typeof ScrollBar;\n};\n\ndeclare const eventCalculate: any;\n\nexport { eventCalculate };\nexport default ScrollArea;\n"],"mappings":""}
|
@@ -13,7 +13,6 @@ SShadowVertical {
|
|
13
13
|
position: absolute;
|
14
14
|
display: none;
|
15
15
|
pointer-events: none;
|
16
|
-
z-index: 1;
|
17
16
|
}
|
18
17
|
}
|
19
18
|
|
@@ -58,6 +57,14 @@ SShadowHorizontal[position='end'] {
|
|
58
57
|
}
|
59
58
|
}
|
60
59
|
|
60
|
+
SShadowHorizontal[leftOffset]:before {
|
61
|
+
left: var(--leftOffset);
|
62
|
+
}
|
63
|
+
|
64
|
+
SShadowHorizontal[rightOffset]:after {
|
65
|
+
right: var(--rightOffset);
|
66
|
+
}
|
67
|
+
|
61
68
|
SShadowVertical {
|
62
69
|
|
63
70
|
&:before,
|
@@ -99,6 +106,14 @@ SShadowVertical[position='end'] {
|
|
99
106
|
}
|
100
107
|
}
|
101
108
|
|
109
|
+
SShadowVertical[topOffset]:before {
|
110
|
+
top: var(--topOffset);
|
111
|
+
}
|
112
|
+
|
113
|
+
SShadowVertical[bottomOffset]:after {
|
114
|
+
bottom: var(--bottomOffset);
|
115
|
+
}
|
116
|
+
|
102
117
|
SContainer {
|
103
118
|
display: block;
|
104
119
|
width: 100%;
|
@@ -127,4 +142,4 @@ SContainer[keyboardFocused]:focus::after {
|
|
127
142
|
box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
|
128
143
|
pointer-events: none;
|
129
144
|
z-index: 2;
|
130
|
-
}
|
145
|
+
}
|