@umbraco/json-models-builders
Version:
Builders and models for Umbraco Sites
66 lines • 1.86 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BlockGridLayoutBuilder = void 0;
const blockGridAreaBuilder_1 = require("./blockGridAreaBuilder");
class BlockGridLayoutBuilder {
parentBuilder;
columnSpan;
contentKey;
contentUdi;
rowSpan;
settingsKey;
settingsUdi;
areasBuilder;
constructor(parentBuilder) {
this.parentBuilder = parentBuilder;
this.areasBuilder = [];
}
withColumnSpan(columnSpan) {
this.columnSpan = columnSpan;
return this;
}
withContentKey(contentKey) {
this.contentKey = contentKey;
return this;
}
withContentUdi(contentUdi) {
this.contentUdi = contentUdi;
return this;
}
withRowSpan(rowSpan) {
this.rowSpan = rowSpan;
return this;
}
withSettingsUdi(settingsUdi) {
this.settingsUdi = settingsUdi;
return this;
}
withSettingsKey(settingsKey) {
this.settingsKey = settingsKey;
return this;
}
addArea() {
const builder = new blockGridAreaBuilder_1.BlockGridAreaBuilder(this);
this.areasBuilder.push(builder);
return builder;
}
done() {
return this.parentBuilder;
}
getValue() {
return {
$type: 'BlockGridLayoutItem',
columnSpan: this.columnSpan || 12,
contentKey: this.contentKey,
areas: this.areasBuilder.map((builder) => {
return builder.getValue();
}),
contentUdi: this.contentUdi || null,
rowSpan: this.rowSpan || 1,
settingsKey: this.settingsKey || null,
settingsUdi: this.settingsUdi || null
};
}
}
exports.BlockGridLayoutBuilder = BlockGridLayoutBuilder;
//# sourceMappingURL=blockGridLayoutBuilder.js.map