UNPKG

@wcardinal/wcardinal-geditor

Version:

WebGL-based graphic editor, tester and viewer for supervisory systems

76 lines 2.61 kB
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