@wcardinal/wcardinal-geditor
Version:
WebGL-based graphic editor, tester and viewer for supervisory systems
76 lines • 2.61 kB
JavaScript
import { DThemes, isFunction } from "@wcardinal/wcardinal-ui";
var UtilCanvasCategory = /** @class */ (function () {
function UtilCanvasCategory(options) {
this._options = options;
}
UtilCanvasCategory.prototype.get = function () {
var _a;
return ((_a = this._promise) !== null && _a !== void 0 ? _a : (this._promise = this.fetch()));
};
UtilCanvasCategory.prototype.fetch = function () {
var _this = this;
return Promise.all([this.doFetch()]).then(function (resolveds) {
var resolved = resolveds[0];
return _this.toFetched(resolved);
});
};
UtilCanvasCategory.prototype.doFetch = function () {
var options = this._options;
if (isFunction(options)) {
return options();
}
else {
return options;
}
};
UtilCanvasCategory.prototype.toFetched = function (options) {
var theme = DThemes.get("EEditorCanvas");
if (options != null) {
var items = this.toItems(theme, options);
return {
default: this.toDefault(items, theme, options),
items: items,
writable: this.toWritable(theme, options)
};
}
return {
default: theme.getDefaultCategory(),
items: [],
writable: theme.isCategoryWritable()
};
};
UtilCanvasCategory.prototype.toItems = function (theme, options) {
var result = [];
var items = options.items;
if (items != null) {
for (var i = 0, imax = items.length; i < imax; ++i) {
var category = items[i];
var id = theme.toCategoryId(category);
var label = theme.toCategoryLabel(category);
result.push({
id: id,
label: label
});
}
}
return result;
};
UtilCanvasCategory.prototype.toDefault = function (items, theme, options) {
if (options.default != null) {
return options.default;
}
else if (0 < items.length) {
return items[0].id;
}
else {
return theme.getDefaultCategory();
}
};
UtilCanvasCategory.prototype.toWritable = function (theme, options) {
var _a;
return (_a = options.writable) !== null && _a !== void 0 ? _a : theme.isCategoryWritable();
};
return UtilCanvasCategory;
}());
export { UtilCanvasCategory };
//# sourceMappingURL=util-canvas-category.js.map