graft-react
Version:
react admin and helper components for graft-db
94 lines (93 loc) • 2.74 kB
JavaScript
;
var React = require("react");
var FontIcons_1 = require("react-md/lib/FontIcons");
var graft_db_1 = require("graft-db");
function friendlyObjectName(o) {
var v = find(o.values, function (v) { return /name/i.test(v.property.name); });
if (v) {
if (v.stringValue) {
return v.stringValue;
}
}
return o.id;
}
exports.friendlyObjectName = friendlyObjectName;
function propertyIconName(t) {
switch (t) {
case graft_db_1.PropertyType.Label: return 'label';
case graft_db_1.PropertyType.RichText: return 'art_track';
case graft_db_1.PropertyType.Int: return 'iso';
case graft_db_1.PropertyType.Edge: return 'link';
case graft_db_1.PropertyType.Image: return 'image';
case graft_db_1.PropertyType.Location: return 'map';
case graft_db_1.PropertyType.Enum: return 'sort';
default: return 'text_fields';
}
}
exports.propertyIconName = propertyIconName;
function propertyIcon(t) {
return React.createElement(FontIcons_1.default, null, propertyIconName(t));
}
exports.propertyIcon = propertyIcon;
function blobToUint8Array(blob) {
return new Promise(function (resolve, reject) {
var done = false;
var r = new FileReader();
r.onload = function (_progressEvent) {
if (done) {
return;
}
var buf = r.result;
var uint8array = new Uint8Array(buf);
done = true;
resolve(uint8array);
};
r.onerror = function (err) {
if (done) {
return;
}
done = true;
reject(err);
};
r.readAsArrayBuffer(blob);
});
}
exports.blobToUint8Array = blobToUint8Array;
function blobToDataURL(blob) {
return new Promise(function (resolve, reject) {
var done = false;
var r = new FileReader();
r.onload = function (_progressEvent) {
if (done) {
return;
}
var url = r.result;
done = true;
resolve(url);
};
r.onerror = function (err) {
if (done) {
return;
}
done = true;
reject(err);
};
r.readAsDataURL(blob);
});
}
exports.blobToDataURL = blobToDataURL;
function find(arr, fn) {
for (var i = 0; i < arr.length; i++) {
var res = fn(arr[i], i);
if (res) {
return arr[i];
}
}
return undefined;
}
exports.find = find;
function startsWith(srcString, searchString, position) {
return srcString.substr(position || 0, searchString.length) === searchString;
}
exports.startsWith = startsWith;
;