test-jsonforms-react-spectrum-renderers
Version:
React Spectrum Renderer Set for JSONForms
63 lines • 4.27 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var react_spectrum_1 = require("@adobe/react-spectrum");
var ArrowUp_1 = tslib_1.__importDefault(require("@spectrum-icons/workflow/ArrowUp"));
var ArrowDown_1 = tslib_1.__importDefault(require("@spectrum-icons/workflow/ArrowDown"));
var utils_1 = require("../utils");
function SortButtons(_a) {
var data = _a.data, index = _a.index, path = _a.path, removeItems = _a.removeItems, uischema = _a.uischema;
var _b, _c;
var moveItUp = function (index) {
var indexOfFittingSchemaOriginal = utils_1.indexOfFittingSchemaObject[path + "." + index];
var indexOfFittingSchemaNew = utils_1.indexOfFittingSchemaObject[path + "." + (index - 1)];
utils_1.indexOfFittingSchemaObject[path + "." + index] = indexOfFittingSchemaNew;
utils_1.indexOfFittingSchemaObject[path + "." + (index - 1)] = indexOfFittingSchemaOriginal;
//removeItems is only used to update the data, change to a better solution in the future
removeItems(path, [999999999])();
};
var moveDnD = function (curIndex, tarRow) {
utils_1.moveFromTo(data, curIndex, tarRow);
if (curIndex - tarRow > 0) {
removeItems(path, [curIndex + 1])();
}
else {
removeItems(path, [curIndex])();
}
if (curIndex - tarRow === 1 || curIndex - tarRow === -2) {
var indexOfFittingSchemaOriginal = utils_1.indexOfFittingSchemaObject[path + "." + curIndex];
var indexOfFittingSchemaNew = utils_1.indexOfFittingSchemaObject[path + "." + (curIndex - 1)];
utils_1.indexOfFittingSchemaObject[path + "." + curIndex] = indexOfFittingSchemaNew;
utils_1.indexOfFittingSchemaObject[path + "." + (curIndex - 1)] = indexOfFittingSchemaOriginal;
}
if (curIndex > 9999999) {
moveItUp(curIndex);
moveItDown(curIndex);
}
return data;
};
var moveItDown = function (index) {
var indexOfFittingSchemaOriginal = utils_1.indexOfFittingSchemaObject[path + "." + index];
var indexOfFittingSchemaNew = utils_1.indexOfFittingSchemaObject[path + "." + (index + 1)];
utils_1.indexOfFittingSchemaObject[path + "." + index] = indexOfFittingSchemaNew;
utils_1.indexOfFittingSchemaObject[path + "." + (index + 1)] = indexOfFittingSchemaOriginal;
//removeItems is only used to update the data, change to a better solution in the future
removeItems(path, [data.length])();
};
return (react_1.default.createElement(react_spectrum_1.Flex, { direction: ((_b = uischema.options) === null || _b === void 0 ? void 0 : _b.sortButtonDirection) === 'Horizontal'
? 'row'
: 'column', marginTop: ((_c = uischema.options) === null || _c === void 0 ? void 0 : _c.sortButtonDirection) === 'Horizontal'
? 'size-225'
: 'size-0' },
react_1.default.createElement(react_spectrum_1.TooltipTrigger, null,
react_1.default.createElement(react_spectrum_1.ActionButton, { isQuiet: true, onPress: function () { return moveDnD(index, index - 1); }, "aria-label": "move-item-" + path + "." + index + "-up", marginX: 'size-10', isDisabled: index === 0 },
react_1.default.createElement(ArrowUp_1.default, { "aria-label": 'ArrowUp' })),
react_1.default.createElement(react_spectrum_1.Tooltip, null, "Move upwards")),
react_1.default.createElement(react_spectrum_1.TooltipTrigger, null,
react_1.default.createElement(react_spectrum_1.ActionButton, { isQuiet: true, onPress: function () { return moveDnD(index, index + 2); }, "aria-label": "move-item-" + path + "." + index + "-down", marginX: 'size-10', isDisabled: index === utils_1.indexOfFittingSchemaObject[path + "itemQuantity"] - 1 },
react_1.default.createElement(ArrowDown_1.default, { "aria-label": 'ArrowDown' })),
react_1.default.createElement(react_spectrum_1.Tooltip, null, "Move downwards"))));
}
exports.default = SortButtons;
//# sourceMappingURL=SortButtons.js.map