@wcardinal/wcardinal-geditor
Version:
WebGL-based graphic editor, tester and viewer for supervisory systems
79 lines • 3.7 kB
JavaScript
import { createGroupUploaded, deserializeBase, DThemes, EShapeCapability, EShapeResourceManagerDeserializationMode } from "@wcardinal/wcardinal-ui";
import { EShapeButtonLayer } from "./e-shape-button-layer";
import { EShapeButtonLayerButtonValue } from "./e-shape-button-layer-button-value";
import { EShapeExtensions } from "../e-shape-extensions";
import { EShapeButtonLayerIds } from "./e-shape-button-layer-ids";
import { EEditorShapeButtonLayer } from "./e-editor-shape-button-layer";
var EShapeButtonLayers = /** @class */ (function () {
function EShapeButtonLayers() {
}
EShapeButtonLayers.getTheme = function () {
return DThemes.get("EShapeButtonLayer");
};
EShapeButtonLayers.create = function (existing) {
var result = new EShapeButtonLayer(EShapeResourceManagerDeserializationMode.EDITOR);
if (existing) {
result.copy(existing);
if (!(existing instanceof EShapeButtonLayer)) {
var label = this.getTheme().getLabel();
result.button.add(new EShapeButtonLayerButtonValue(label, 1, [], false, true, false));
}
}
else {
var label = this.getTheme().getLabel();
result.button.add(new EShapeButtonLayerButtonValue(label, 1, [], false, true, false));
}
result.onSizeChange();
return result;
};
EShapeButtonLayers.load = function () {
var theme = this.getTheme();
var name = theme.getName();
EShapeExtensions.add({
type: EShapeButtonLayerIds.ID,
name: name,
icon: {
width: 24,
height: 24,
// Material Icons https://material.io/tools/icons/
// Available under Apache license version 2.0
svg: "<g transform=\"scale(26.6666)\" fill=\"#fff\" stroke=\"none\">" +
"<path d=\"M22,9v6c0,1.1-0.9,2-2,2h-1l0-2h1V9H4v6h6v2H4c-1.1,0-2" +
"-0.9-2-2V9c0-1.1,0.9-2,2-2h16C21.1,7,22,7.9,22,9z\"/>" +
"<path d=\"M11.99 18.54l-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27zM12 16l7" +
".36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16zm0-11.47L17.74 9 12 13.47 6." +
"26 9 12 4.53z\" transform=\"translate(7.25,8) scale(0.6)\"/>" +
"</g>"
},
title: name,
creator: function (existing) { return EShapeButtonLayers.create(existing); },
deserializer: function (item, manager) { return EShapeButtonLayers.deserialize(item, manager); },
editor: EEditorShapeButtonLayer,
uploaded: createGroupUploaded,
capability: (EShapeCapability.PRIMITIVE |
EShapeCapability.STROKE_SIDE |
EShapeCapability.BORDER_RADIUS) &
~EShapeCapability.CHILDREN
});
};
EShapeButtonLayers.deserialize = function (item, manager) {
var shape = new EShapeButtonLayer(manager.mode);
var index = item[15];
var resources = manager.resources;
if (0 <= index && index < resources.length) {
var parsed = manager.getExtension(index);
if (parsed == null) {
parsed = JSON.parse(resources[index]);
manager.setExtension(index, parsed);
}
shape.button.deserialize(parsed[0], manager);
item[15] = parsed[parsed.length - 1];
}
var result = deserializeBase(item, manager, shape);
shape.size.init();
return result;
};
return EShapeButtonLayers;
}());
export { EShapeButtonLayers };
//# sourceMappingURL=e-shape-button-layers.js.map