box-ui-elements 25.1.0-beta.2 → 25.1.0-beta.3
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/dist/explorer.js +1 -1
- package/dist/openwith.js +1 -1
- package/dist/picker.js +1 -1
- package/dist/preview.js +1 -1
- package/dist/sharing.js +1 -1
- package/dist/sidebar.js +1 -1
- package/dist/uploader.js +1 -1
- package/es/constants.js +1 -1
- package/es/features/security-cloud-game/DragCloud.js +3 -0
- package/es/features/security-cloud-game/DragCloud.js.flow +17 -2
- package/es/features/security-cloud-game/DragCloud.js.map +1 -1
- package/package.json +3 -3
- package/src/features/security-cloud-game/DragCloud.js +17 -2
package/es/constants.js
CHANGED
|
@@ -236,7 +236,7 @@ export const CLIENT_NAME_CONTENT_SIDEBAR = 'ContentSidebar';
|
|
|
236
236
|
export const CLIENT_NAME_CONTENT_UPLOADER = 'ContentUploader';
|
|
237
237
|
export const CLIENT_NAME_FILE_PICKER = 'FilePicker';
|
|
238
238
|
export const CLIENT_NAME_FOLDER_PICKER = 'FolderPicker';
|
|
239
|
-
export const CLIENT_VERSION = '25.1.0-beta.
|
|
239
|
+
export const CLIENT_VERSION = '25.1.0-beta.3';
|
|
240
240
|
|
|
241
241
|
/* ---------------------- Statuses -------------------------- */
|
|
242
242
|
export const STATUS_PENDING = 'pending';
|
|
@@ -46,6 +46,7 @@ const DragCloud = ({
|
|
|
46
46
|
updateLiveText,
|
|
47
47
|
updatePosition
|
|
48
48
|
}) => {
|
|
49
|
+
const nodeRef = React.useRef({});
|
|
49
50
|
const [isMoving, setIsMoving] = useState(false);
|
|
50
51
|
const dragCloudClasses = classNames('bdl-DragCloud', {
|
|
51
52
|
'is-moving': isMoving
|
|
@@ -156,12 +157,14 @@ const DragCloud = ({
|
|
|
156
157
|
trailing: true
|
|
157
158
|
});
|
|
158
159
|
return /*#__PURE__*/React.createElement(Draggable, {
|
|
160
|
+
nodeRef: nodeRef,
|
|
159
161
|
bounds: "parent",
|
|
160
162
|
disabled: disabled,
|
|
161
163
|
onDrag: onDrag,
|
|
162
164
|
onStop: onDrop,
|
|
163
165
|
position: position
|
|
164
166
|
}, /*#__PURE__*/React.createElement("div", {
|
|
167
|
+
ref: nodeRef,
|
|
165
168
|
className: dragCloudClasses,
|
|
166
169
|
onBlur: onBlur,
|
|
167
170
|
onKeyDown: onKeyDown,
|
|
@@ -33,6 +33,7 @@ const DragCloud = ({
|
|
|
33
33
|
updateLiveText,
|
|
34
34
|
updatePosition,
|
|
35
35
|
}) => {
|
|
36
|
+
const nodeRef = React.useRef({});
|
|
36
37
|
const [isMoving, setIsMoving] = useState(false);
|
|
37
38
|
|
|
38
39
|
const dragCloudClasses = classNames('bdl-DragCloud', {
|
|
@@ -137,8 +138,22 @@ const DragCloud = ({
|
|
|
137
138
|
const onDrag = throttle((e, { x, y }) => updatePosition({ x, y }), 100, { leading: true, trailing: true });
|
|
138
139
|
|
|
139
140
|
return (
|
|
140
|
-
<Draggable
|
|
141
|
-
|
|
141
|
+
<Draggable
|
|
142
|
+
nodeRef={nodeRef}
|
|
143
|
+
bounds="parent"
|
|
144
|
+
disabled={disabled}
|
|
145
|
+
onDrag={onDrag}
|
|
146
|
+
onStop={onDrop}
|
|
147
|
+
position={position}
|
|
148
|
+
>
|
|
149
|
+
<div
|
|
150
|
+
ref={nodeRef}
|
|
151
|
+
className={dragCloudClasses}
|
|
152
|
+
onBlur={onBlur}
|
|
153
|
+
onKeyDown={onKeyDown}
|
|
154
|
+
role="button"
|
|
155
|
+
tabIndex={0}
|
|
156
|
+
>
|
|
142
157
|
<IconCloud
|
|
143
158
|
filter={{ id: 'drop-shadow', definition: <DropShadowFilter /> }}
|
|
144
159
|
height={cloudSize}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragCloud.js","names":["PropTypes","React","useState","injectIntl","classNames","throttle","Draggable","IconCloud","messages","getGridPosition","DropShadowFilter","createElement","id","in","stdDeviation","dx","dy","result","floodColor","floodOpacity","in2","operator","DragCloud","cloudSize","disabled","gameBoardSize","height","width","gridTrackSize","intl","formatMessage","onDrop","position","updateLiveText","updatePosition","isMoving","setIsMoving","dragCloudClasses","moveLeft","newX","x","_objectSpread","Math","max","reachLeftEdge","moveRight","maxX","min","reachRightEdge","moveUp","newY","y","reachTopEdge","moveDown","maxY","reachBottomEdge","handleSpacebar","cloudStatusText","cloudDropped","cloudGrabbed","currentPositionText","currentPosition","onKeyDown","event","preventDefault","stopPropagation","key","onBlur","onDrag","e","leading","trailing","bounds","onStop","className","role","tabIndex","filter","definition","title","cloudObject","displayName","propTypes","number","bool","objectOf","any","isRequired","func","DragCloudBase"],"sources":["../../../src/features/security-cloud-game/DragCloud.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { injectIntl } from 'react-intl';\nimport classNames from 'classnames';\nimport throttle from 'lodash/throttle';\nimport Draggable from 'react-draggable';\n\nimport IconCloud from '../../icons/general/IconCloud';\nimport messages from './messages';\nimport { getGridPosition } from './utils';\n\nconst DropShadowFilter = () => (\n <filter id=\"drop-shadow\">\n <feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"2\" />\n <feOffset dx=\"2\" dy=\"2\" result=\"offsetblur\" />\n <feFlood floodColor=\"black\" floodOpacity=\"0.3\" />\n <feComposite in2=\"offsetblur\" operator=\"in\" />\n <feMerge>\n <feMergeNode />\n <feMergeNode in=\"SourceGraphic\" />\n </feMerge>\n </filter>\n);\n\nconst DragCloud = ({\n cloudSize,\n disabled,\n gameBoardSize: { height, width },\n gridTrackSize,\n intl: { formatMessage },\n onDrop,\n position,\n updateLiveText,\n updatePosition,\n}) => {\n const [isMoving, setIsMoving] = useState(false);\n\n const dragCloudClasses = classNames('bdl-DragCloud', {\n 'is-moving': isMoving,\n });\n\n const moveLeft = () => {\n const newX = position.x - gridTrackSize;\n updatePosition({ ...position, x: Math.max(newX, 0) }, true);\n if (newX < 0) {\n updateLiveText(formatMessage(messages.reachLeftEdge));\n }\n };\n\n const moveRight = () => {\n const maxX = width - cloudSize;\n const newX = position.x + gridTrackSize;\n updatePosition({ ...position, x: Math.min(newX, maxX) }, true);\n if (newX > maxX) {\n updateLiveText(formatMessage(messages.reachRightEdge));\n }\n };\n\n const moveUp = () => {\n const newY = position.y - gridTrackSize;\n updatePosition({ ...position, y: Math.max(newY, 0) }, true);\n if (newY < 0) {\n updateLiveText(formatMessage(messages.reachTopEdge));\n }\n };\n\n const moveDown = () => {\n const maxY = height - cloudSize;\n const newY = position.y + gridTrackSize;\n updatePosition({ ...position, y: Math.min(newY, maxY) }, true);\n if (newY > maxY) {\n updateLiveText(formatMessage(messages.reachBottomEdge));\n }\n };\n\n const handleSpacebar = () => {\n const cloudStatusText = formatMessage(isMoving ? messages.cloudDropped : messages.cloudGrabbed);\n const currentPositionText = formatMessage(messages.currentPosition, getGridPosition(position, gridTrackSize));\n updateLiveText(`${cloudStatusText} ${currentPositionText}`, true);\n\n if (isMoving) {\n onDrop();\n }\n\n setIsMoving(!isMoving);\n };\n\n /**\n * DragCloud keyboard event handler. Supports Up/Down/Left/Right arrow keys and Spacebar\n * @param {KeyboardEvent} event - The drag event\n * @returns {void}\n */\n const onKeyDown = event => {\n if (disabled) {\n return;\n }\n\n if (isMoving) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (event.key === ' ') {\n handleSpacebar();\n } else if (isMoving) {\n switch (event.key) {\n case 'ArrowUp':\n moveUp();\n break;\n case 'ArrowDown':\n moveDown();\n break;\n case 'ArrowLeft':\n moveLeft();\n break;\n case 'ArrowRight':\n moveRight();\n break;\n default:\n break;\n }\n }\n };\n\n /**\n * Reset isMoving state when DragCloud loses focus\n * @returns {void}\n */\n const onBlur = () => setIsMoving(false);\n\n /**\n * DragCloud drag event handler. Updates current position.\n * @param {MouseEvent} e - The drag event\n * @param {object} { x, y } - Object which contains x and y coordinate of the drag event.\n * @returns {void}\n */\n const onDrag = throttle((e, { x, y }) => updatePosition({ x, y }), 100, { leading: true, trailing: true });\n\n return (\n <Draggable bounds=\"parent\" disabled={disabled} onDrag={onDrag} onStop={onDrop} position={position}>\n <div className={dragCloudClasses} onBlur={onBlur} onKeyDown={onKeyDown} role=\"button\" tabIndex={0}>\n <IconCloud\n filter={{ id: 'drop-shadow', definition: <DropShadowFilter /> }}\n height={cloudSize}\n title={formatMessage(messages.cloudObject)}\n width={cloudSize}\n />\n </div>\n </Draggable>\n );\n};\n\nDragCloud.displayName = 'DragCloud';\n\nDragCloud.propTypes = {\n cloudSize: PropTypes.number,\n disabled: PropTypes.bool,\n gameBoardSize: PropTypes.objectOf(PropTypes.number),\n gridTrackSize: PropTypes.number,\n intl: PropTypes.any,\n position: PropTypes.objectOf(PropTypes.number).isRequired,\n onDrop: PropTypes.func,\n updateLiveText: PropTypes.func,\n updatePosition: PropTypes.func,\n};\n\n// Actual export\nexport { DragCloud as DragCloudBase };\nexport default injectIntl(DragCloud);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DragCloud.js","names":["PropTypes","React","useState","injectIntl","classNames","throttle","Draggable","IconCloud","messages","getGridPosition","DropShadowFilter","createElement","id","in","stdDeviation","dx","dy","result","floodColor","floodOpacity","in2","operator","DragCloud","cloudSize","disabled","gameBoardSize","height","width","gridTrackSize","intl","formatMessage","onDrop","position","updateLiveText","updatePosition","nodeRef","useRef","isMoving","setIsMoving","dragCloudClasses","moveLeft","newX","x","_objectSpread","Math","max","reachLeftEdge","moveRight","maxX","min","reachRightEdge","moveUp","newY","y","reachTopEdge","moveDown","maxY","reachBottomEdge","handleSpacebar","cloudStatusText","cloudDropped","cloudGrabbed","currentPositionText","currentPosition","onKeyDown","event","preventDefault","stopPropagation","key","onBlur","onDrag","e","leading","trailing","bounds","onStop","ref","className","role","tabIndex","filter","definition","title","cloudObject","displayName","propTypes","number","bool","objectOf","any","isRequired","func","DragCloudBase"],"sources":["../../../src/features/security-cloud-game/DragCloud.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { injectIntl } from 'react-intl';\nimport classNames from 'classnames';\nimport throttle from 'lodash/throttle';\nimport Draggable from 'react-draggable';\n\nimport IconCloud from '../../icons/general/IconCloud';\nimport messages from './messages';\nimport { getGridPosition } from './utils';\n\nconst DropShadowFilter = () => (\n <filter id=\"drop-shadow\">\n <feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"2\" />\n <feOffset dx=\"2\" dy=\"2\" result=\"offsetblur\" />\n <feFlood floodColor=\"black\" floodOpacity=\"0.3\" />\n <feComposite in2=\"offsetblur\" operator=\"in\" />\n <feMerge>\n <feMergeNode />\n <feMergeNode in=\"SourceGraphic\" />\n </feMerge>\n </filter>\n);\n\nconst DragCloud = ({\n cloudSize,\n disabled,\n gameBoardSize: { height, width },\n gridTrackSize,\n intl: { formatMessage },\n onDrop,\n position,\n updateLiveText,\n updatePosition,\n}) => {\n const nodeRef = React.useRef({});\n const [isMoving, setIsMoving] = useState(false);\n\n const dragCloudClasses = classNames('bdl-DragCloud', {\n 'is-moving': isMoving,\n });\n\n const moveLeft = () => {\n const newX = position.x - gridTrackSize;\n updatePosition({ ...position, x: Math.max(newX, 0) }, true);\n if (newX < 0) {\n updateLiveText(formatMessage(messages.reachLeftEdge));\n }\n };\n\n const moveRight = () => {\n const maxX = width - cloudSize;\n const newX = position.x + gridTrackSize;\n updatePosition({ ...position, x: Math.min(newX, maxX) }, true);\n if (newX > maxX) {\n updateLiveText(formatMessage(messages.reachRightEdge));\n }\n };\n\n const moveUp = () => {\n const newY = position.y - gridTrackSize;\n updatePosition({ ...position, y: Math.max(newY, 0) }, true);\n if (newY < 0) {\n updateLiveText(formatMessage(messages.reachTopEdge));\n }\n };\n\n const moveDown = () => {\n const maxY = height - cloudSize;\n const newY = position.y + gridTrackSize;\n updatePosition({ ...position, y: Math.min(newY, maxY) }, true);\n if (newY > maxY) {\n updateLiveText(formatMessage(messages.reachBottomEdge));\n }\n };\n\n const handleSpacebar = () => {\n const cloudStatusText = formatMessage(isMoving ? messages.cloudDropped : messages.cloudGrabbed);\n const currentPositionText = formatMessage(messages.currentPosition, getGridPosition(position, gridTrackSize));\n updateLiveText(`${cloudStatusText} ${currentPositionText}`, true);\n\n if (isMoving) {\n onDrop();\n }\n\n setIsMoving(!isMoving);\n };\n\n /**\n * DragCloud keyboard event handler. Supports Up/Down/Left/Right arrow keys and Spacebar\n * @param {KeyboardEvent} event - The drag event\n * @returns {void}\n */\n const onKeyDown = event => {\n if (disabled) {\n return;\n }\n\n if (isMoving) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (event.key === ' ') {\n handleSpacebar();\n } else if (isMoving) {\n switch (event.key) {\n case 'ArrowUp':\n moveUp();\n break;\n case 'ArrowDown':\n moveDown();\n break;\n case 'ArrowLeft':\n moveLeft();\n break;\n case 'ArrowRight':\n moveRight();\n break;\n default:\n break;\n }\n }\n };\n\n /**\n * Reset isMoving state when DragCloud loses focus\n * @returns {void}\n */\n const onBlur = () => setIsMoving(false);\n\n /**\n * DragCloud drag event handler. Updates current position.\n * @param {MouseEvent} e - The drag event\n * @param {object} { x, y } - Object which contains x and y coordinate of the drag event.\n * @returns {void}\n */\n const onDrag = throttle((e, { x, y }) => updatePosition({ x, y }), 100, { leading: true, trailing: true });\n\n return (\n <Draggable\n nodeRef={nodeRef}\n bounds=\"parent\"\n disabled={disabled}\n onDrag={onDrag}\n onStop={onDrop}\n position={position}\n >\n <div\n ref={nodeRef}\n className={dragCloudClasses}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n role=\"button\"\n tabIndex={0}\n >\n <IconCloud\n filter={{ id: 'drop-shadow', definition: <DropShadowFilter /> }}\n height={cloudSize}\n title={formatMessage(messages.cloudObject)}\n width={cloudSize}\n />\n </div>\n </Draggable>\n );\n};\n\nDragCloud.displayName = 'DragCloud';\n\nDragCloud.propTypes = {\n cloudSize: PropTypes.number,\n disabled: PropTypes.bool,\n gameBoardSize: PropTypes.objectOf(PropTypes.number),\n gridTrackSize: PropTypes.number,\n intl: PropTypes.any,\n position: PropTypes.objectOf(PropTypes.number).isRequired,\n onDrop: PropTypes.func,\n updateLiveText: PropTypes.func,\n updatePosition: PropTypes.func,\n};\n\n// Actual export\nexport { DragCloud as DragCloudBase };\nexport default injectIntl(DragCloud);\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "box-ui-elements",
|
|
3
|
-
"version": "25.1.0-beta.
|
|
3
|
+
"version": "25.1.0-beta.3",
|
|
4
4
|
"description": "Box UI Elements",
|
|
5
5
|
"author": "Box (https://www.box.com/)",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -260,7 +260,7 @@
|
|
|
260
260
|
"react-docgen-typescript": "^1.16.1",
|
|
261
261
|
"react-docgen-typescript-loader": "^3.6.0",
|
|
262
262
|
"react-dom": "^18.3.1",
|
|
263
|
-
"react-draggable": "^4.
|
|
263
|
+
"react-draggable": "^4.5.0",
|
|
264
264
|
"react-immutable-proptypes": "^2.1.0",
|
|
265
265
|
"react-intl": "^6.6.8",
|
|
266
266
|
"react-measure": "^2.3.0",
|
|
@@ -341,7 +341,7 @@
|
|
|
341
341
|
"react-aria-components": "^1.10.1",
|
|
342
342
|
"react-beautiful-dnd": "^13.1.1",
|
|
343
343
|
"react-dom": "^17.0.1 || ^18.0.0",
|
|
344
|
-
"react-draggable": "^4.
|
|
344
|
+
"react-draggable": "^4.5.0",
|
|
345
345
|
"react-immutable-proptypes": "^2.1.0",
|
|
346
346
|
"react-intl": ">=2.9.0",
|
|
347
347
|
"react-measure": "^2.3.0",
|
|
@@ -33,6 +33,7 @@ const DragCloud = ({
|
|
|
33
33
|
updateLiveText,
|
|
34
34
|
updatePosition,
|
|
35
35
|
}) => {
|
|
36
|
+
const nodeRef = React.useRef({});
|
|
36
37
|
const [isMoving, setIsMoving] = useState(false);
|
|
37
38
|
|
|
38
39
|
const dragCloudClasses = classNames('bdl-DragCloud', {
|
|
@@ -137,8 +138,22 @@ const DragCloud = ({
|
|
|
137
138
|
const onDrag = throttle((e, { x, y }) => updatePosition({ x, y }), 100, { leading: true, trailing: true });
|
|
138
139
|
|
|
139
140
|
return (
|
|
140
|
-
<Draggable
|
|
141
|
-
|
|
141
|
+
<Draggable
|
|
142
|
+
nodeRef={nodeRef}
|
|
143
|
+
bounds="parent"
|
|
144
|
+
disabled={disabled}
|
|
145
|
+
onDrag={onDrag}
|
|
146
|
+
onStop={onDrop}
|
|
147
|
+
position={position}
|
|
148
|
+
>
|
|
149
|
+
<div
|
|
150
|
+
ref={nodeRef}
|
|
151
|
+
className={dragCloudClasses}
|
|
152
|
+
onBlur={onBlur}
|
|
153
|
+
onKeyDown={onKeyDown}
|
|
154
|
+
role="button"
|
|
155
|
+
tabIndex={0}
|
|
156
|
+
>
|
|
142
157
|
<IconCloud
|
|
143
158
|
filter={{ id: 'drop-shadow', definition: <DropShadowFilter /> }}
|
|
144
159
|
height={cloudSize}
|