react-planner-viewer
Version:
react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode
65 lines (53 loc) • 7.95 kB
JavaScript
export function browserDownload(json) {
var fileOutputLink = document.createElement('a');
var filename = "output" + Date.now() + ".json";
filename = window.prompt("Insert output filename", filename);
if (!filename) return;
var output = JSON.stringify(json);
var data = new Blob([output], { type: 'text/plain' });
var url = window.URL.createObjectURL(data);
fileOutputLink.setAttribute('download', filename);
fileOutputLink.href = url;
fileOutputLink.style.display = 'none';
document.body.appendChild(fileOutputLink);
fileOutputLink.click();
document.body.removeChild(fileOutputLink);
}
export function browserUpload() {
return new Promise(function (resolve, reject) {
var fileInput = document.createElement('input');
fileInput.type = "file";
fileInput.addEventListener('change', function (event) {
var file = event.target.files[0];
var reader = new FileReader();
reader.addEventListener('load', function (fileEvent) {
var loadedData = fileEvent.target.result;
resolve(loadedData);
});
reader.readAsText(file);
});
fileInput.click();
});
}
export function browserImageUpload() {
return new Promise(function (resolve, reject) {
var fileInput = document.createElement('input');
fileInput.type = "file";
fileInput.addEventListener('change', function (event) {
var file = event.target.files[0];
var reader = new FileReader();
reader.addEventListener('load', function (fileEvent) {
var loadedData = fileEvent.target.result;
var fileInput = document.createElement('input');
var image = new Image();
image.onload = function () {
resolve({ data: loadedData, width: image.width, height: image.height });
};
image.src = loadedData;
});
reader.readAsDataURL(file);
});
fileInput.click();
});
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9icm93c2VyLmpzIl0sIm5hbWVzIjpbImJyb3dzZXJEb3dubG9hZCIsImpzb24iLCJmaWxlT3V0cHV0TGluayIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImZpbGVuYW1lIiwiRGF0ZSIsIm5vdyIsIndpbmRvdyIsInByb21wdCIsIm91dHB1dCIsIkpTT04iLCJzdHJpbmdpZnkiLCJkYXRhIiwiQmxvYiIsInR5cGUiLCJ1cmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJzZXRBdHRyaWJ1dGUiLCJocmVmIiwic3R5bGUiLCJkaXNwbGF5IiwiYm9keSIsImFwcGVuZENoaWxkIiwiY2xpY2siLCJyZW1vdmVDaGlsZCIsImJyb3dzZXJVcGxvYWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImZpbGVJbnB1dCIsImFkZEV2ZW50TGlzdGVuZXIiLCJldmVudCIsImZpbGUiLCJ0YXJnZXQiLCJmaWxlcyIsInJlYWRlciIsIkZpbGVSZWFkZXIiLCJmaWxlRXZlbnQiLCJsb2FkZWREYXRhIiwicmVzdWx0IiwicmVhZEFzVGV4dCIsImJyb3dzZXJJbWFnZVVwbG9hZCIsImltYWdlIiwiSW1hZ2UiLCJvbmxvYWQiLCJ3aWR0aCIsImhlaWdodCIsInNyYyIsInJlYWRBc0RhdGFVUkwiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sU0FBU0EsZUFBVCxDQUF5QkMsSUFBekIsRUFBK0I7QUFDcEMsTUFBSUMsaUJBQWlCQyxTQUFTQyxhQUFULENBQXVCLEdBQXZCLENBQXJCOztBQUVBLE1BQUlDLFdBQVcsV0FBV0MsS0FBS0MsR0FBTCxFQUFYLEdBQXdCLE9BQXZDO0FBQ0FGLGFBQVdHLE9BQU9DLE1BQVAsQ0FBYyx3QkFBZCxFQUF3Q0osUUFBeEMsQ0FBWDtBQUNBLE1BQUksQ0FBQ0EsUUFBTCxFQUFlOztBQUVmLE1BQUlLLFNBQVNDLEtBQUtDLFNBQUwsQ0FBZVgsSUFBZixDQUFiO0FBQ0EsTUFBSVksT0FBTyxJQUFJQyxJQUFKLENBQVMsQ0FBQ0osTUFBRCxDQUFULEVBQW1CLEVBQUNLLE1BQU0sWUFBUCxFQUFuQixDQUFYO0FBQ0EsTUFBSUMsTUFBTVIsT0FBT1MsR0FBUCxDQUFXQyxlQUFYLENBQTJCTCxJQUEzQixDQUFWO0FBQ0FYLGlCQUFlaUIsWUFBZixDQUE0QixVQUE1QixFQUF3Q2QsUUFBeEM7QUFDQUgsaUJBQWVrQixJQUFmLEdBQXNCSixHQUF0QjtBQUNBZCxpQkFBZW1CLEtBQWYsQ0FBcUJDLE9BQXJCLEdBQStCLE1BQS9CO0FBQ0FuQixXQUFTb0IsSUFBVCxDQUFjQyxXQUFkLENBQTBCdEIsY0FBMUI7QUFDQUEsaUJBQWV1QixLQUFmO0FBQ0F0QixXQUFTb0IsSUFBVCxDQUFjRyxXQUFkLENBQTBCeEIsY0FBMUI7QUFDRDs7QUFFRCxPQUFPLFNBQVN5QixhQUFULEdBQXlCO0FBQzlCLFNBQU8sSUFBSUMsT0FBSixDQUFZLFVBQVVDLE9BQVYsRUFBbUJDLE1BQW5CLEVBQTJCOztBQUU1QyxRQUFJQyxZQUFZNUIsU0FBU0MsYUFBVCxDQUF1QixPQUF2QixDQUFoQjtBQUNBMkIsY0FBVWhCLElBQVYsR0FBaUIsTUFBakI7O0FBRUFnQixjQUFVQyxnQkFBVixDQUEyQixRQUEzQixFQUFxQyxVQUFVQyxLQUFWLEVBQWlCO0FBQ3BELFVBQUlDLE9BQU9ELE1BQU1FLE1BQU4sQ0FBYUMsS0FBYixDQUFtQixDQUFuQixDQUFYO0FBQ0EsVUFBSUMsU0FBUyxJQUFJQyxVQUFKLEVBQWI7QUFDQUQsYUFBT0wsZ0JBQVAsQ0FBd0IsTUFBeEIsRUFBZ0MsVUFBQ08sU0FBRCxFQUFlO0FBQzdDLFlBQUlDLGFBQWFELFVBQVVKLE1BQVYsQ0FBaUJNLE1BQWxDO0FBQ0FaLGdCQUFRVyxVQUFSO0FBQ0QsT0FIRDtBQUlBSCxhQUFPSyxVQUFQLENBQWtCUixJQUFsQjtBQUNELEtBUkQ7O0FBVUFILGNBQVVOLEtBQVY7QUFDRCxHQWhCTSxDQUFQO0FBaUJEOztBQUdELE9BQU8sU0FBU2tCLGtCQUFULEdBQThCO0FBQ25DLFNBQU8sSUFBSWYsT0FBSixDQUFZLFVBQVVDLE9BQVYsRUFBbUJDLE1BQW5CLEVBQTJCOztBQUU1QyxRQUFJQyxZQUFZNUIsU0FBU0MsYUFBVCxDQUF1QixPQUF2QixDQUFoQjtBQUNBMkIsY0FBVWhCLElBQVYsR0FBaUIsTUFBakI7O0FBRUFnQixjQUFVQyxnQkFBVixDQUEyQixRQUEzQixFQUFxQyxVQUFVQyxLQUFWLEVBQWlCO0FBQ3BELFVBQUlDLE9BQU9ELE1BQU1FLE1BQU4sQ0FBYUMsS0FBYixDQUFtQixDQUFuQixDQUFYO0FBQ0EsVUFBSUMsU0FBUyxJQUFJQyxVQUFKLEVBQWI7QUFDQUQsYUFBT0wsZ0JBQVAsQ0FBd0IsTUFBeEIsRUFBZ0MsVUFBQ08sU0FBRCxFQUFlO0FBQzdDLFlBQUlDLGFBQWFELFVBQVVKLE1BQVYsQ0FBaUJNLE1BQWxDOztBQUVBLFlBQUlWLFlBQVk1QixTQUFTQyxhQUFULENBQXVCLE9BQXZCLENBQWhCOztBQUVBLFlBQUl3QyxRQUFRLElBQUlDLEtBQUosRUFBWjtBQUNBRCxjQUFNRSxNQUFOLEdBQWUsWUFBSztBQUNsQmpCLGtCQUFRLEVBQUNoQixNQUFNMkIsVUFBUCxFQUFtQk8sT0FBT0gsTUFBTUcsS0FBaEMsRUFBdUNDLFFBQVFKLE1BQU1JLE1BQXJELEVBQVI7QUFDRCxTQUZEO0FBR0FKLGNBQU1LLEdBQU4sR0FBWVQsVUFBWjtBQUNELE9BVkQ7QUFXQUgsYUFBT2EsYUFBUCxDQUFxQmhCLElBQXJCO0FBQ0QsS0FmRDs7QUFpQkFILGNBQVVOLEtBQVY7QUFDRCxHQXZCTSxDQUFQO0FBd0JEIiwiZmlsZSI6ImJyb3dzZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gYnJvd3NlckRvd25sb2FkKGpzb24pIHtcbiAgdmFyIGZpbGVPdXRwdXRMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuXG4gIHZhciBmaWxlbmFtZSA9IFwib3V0cHV0XCIgKyBEYXRlLm5vdygpICsgXCIuanNvblwiO1xuICBmaWxlbmFtZSA9IHdpbmRvdy5wcm9tcHQoXCJJbnNlcnQgb3V0cHV0IGZpbGVuYW1lXCIsIGZpbGVuYW1lKTtcbiAgaWYgKCFmaWxlbmFtZSkgcmV0dXJuO1xuXG4gIHZhciBvdXRwdXQgPSBKU09OLnN0cmluZ2lmeShqc29uKTtcbiAgdmFyIGRhdGEgPSBuZXcgQmxvYihbb3V0cHV0XSwge3R5cGU6ICd0ZXh0L3BsYWluJ30pO1xuICB2YXIgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZGF0YSk7XG4gIGZpbGVPdXRwdXRMaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlbmFtZSk7XG4gIGZpbGVPdXRwdXRMaW5rLmhyZWYgPSB1cmw7XG4gIGZpbGVPdXRwdXRMaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZmlsZU91dHB1dExpbmspO1xuICBmaWxlT3V0cHV0TGluay5jbGljaygpO1xuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGZpbGVPdXRwdXRMaW5rKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyb3dzZXJVcGxvYWQoKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG5cbiAgICB2YXIgZmlsZUlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICBmaWxlSW5wdXQudHlwZSA9IFwiZmlsZVwiO1xuXG4gICAgZmlsZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgdmFyIGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XG4gICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKGZpbGVFdmVudCkgPT4ge1xuICAgICAgICB2YXIgbG9hZGVkRGF0YSA9IGZpbGVFdmVudC50YXJnZXQucmVzdWx0O1xuICAgICAgICByZXNvbHZlKGxvYWRlZERhdGEpO1xuICAgICAgfSk7XG4gICAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlKTtcbiAgICB9KTtcblxuICAgIGZpbGVJbnB1dC5jbGljaygpO1xuICB9KTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gYnJvd3NlckltYWdlVXBsb2FkKCkge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuXG4gICAgdmFyIGZpbGVJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgZmlsZUlucHV0LnR5cGUgPSBcImZpbGVcIjtcblxuICAgIGZpbGVJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIHZhciBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xuICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIChmaWxlRXZlbnQpID0+IHtcbiAgICAgICAgdmFyIGxvYWRlZERhdGEgPSBmaWxlRXZlbnQudGFyZ2V0LnJlc3VsdDtcblxuICAgICAgICB2YXIgZmlsZUlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcblxuICAgICAgICB2YXIgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICAgICAgaW1hZ2Uub25sb2FkID0gKCk9PiB7XG4gICAgICAgICAgcmVzb2x2ZSh7ZGF0YTogbG9hZGVkRGF0YSwgd2lkdGg6IGltYWdlLndpZHRoLCBoZWlnaHQ6IGltYWdlLmhlaWdodH0pO1xuICAgICAgICB9O1xuICAgICAgICBpbWFnZS5zcmMgPSBsb2FkZWREYXRhO1xuICAgICAgfSk7XG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICB9KTtcblxuICAgIGZpbGVJbnB1dC5jbGljaygpO1xuICB9KTtcbn1cbiJdfQ==