@umbraco/json-models-builders
Version:
Builders and models for Umbraco Sites
125 lines • 4.18 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DocumentValueBuilder = void 0;
const mediaPickerValueBuilder_1 = require("./mediaPickerValueBuilder");
const urlPickerValueBuilder_1 = require("./urlPickerValueBuilder");
const imageCropperValueBuilder_1 = require("./imageCropperValueBuilder");
const blockGridValueBuilder_1 = require("./blockGridValueBuilder");
const blockListValueBuilder_1 = require("./blockListValueBuilder");
class DocumentValueBuilder {
parentBuilder;
culture;
segment;
alias;
value;
editorAlias;
entityType;
mediaPickerValueBuilder;
urlPickerValueBuilder;
imageCropperValueBuilder;
temporaryFileId;
blockGridValueBuilder;
blockListValueBuilder;
constructor(parentBuilder) {
this.parentBuilder = parentBuilder;
this.mediaPickerValueBuilder = [];
this.urlPickerValueBuilder = [];
}
withCulture(culture) {
this.culture = culture;
return this;
}
withSegment(segment) {
this.segment = segment;
return this;
}
withAlias(alias) {
this.alias = alias;
return this;
}
withValue(value) {
this.value = value;
return this;
}
withTemporaryFileId(temporaryFileId) {
this.temporaryFileId = temporaryFileId;
return this;
}
addMediaPickerValue() {
const builder = new mediaPickerValueBuilder_1.MediaPickerValueBuilder(this);
this.mediaPickerValueBuilder.push(builder);
return builder;
}
addURLPickerValue() {
const builder = new urlPickerValueBuilder_1.URLPickerValueBuilder(this);
this.urlPickerValueBuilder.push(builder);
return builder;
}
addImageCropperValue() {
const builder = new imageCropperValueBuilder_1.ImageCropperValueBuilder(this);
this.imageCropperValueBuilder = builder;
return builder;
}
addBlockGridValue() {
const builder = new blockGridValueBuilder_1.BlockGridValueBuilder(this);
this.blockGridValueBuilder = builder;
return builder;
}
addBlockListValue() {
const builder = new blockListValueBuilder_1.BlockListValueBuilder(this);
this.blockListValueBuilder = builder;
return builder;
}
withEditorAlias(editorAlias) {
this.editorAlias = editorAlias;
return this;
}
withEntityType(entityType) {
this.entityType = entityType;
return this;
}
done() {
return this.parentBuilder;
}
build() {
let value = null;
if (this.value != null) {
value = this.value;
}
else {
if (this.mediaPickerValueBuilder && this.mediaPickerValueBuilder.length > 0) {
value = this.mediaPickerValueBuilder.map((builder) => {
return builder.getValue();
});
}
if (this.urlPickerValueBuilder && this.urlPickerValueBuilder.length > 0) {
value = this.urlPickerValueBuilder.map((builder) => {
return builder.getValue();
});
}
if (this.imageCropperValueBuilder !== undefined) {
value = this.imageCropperValueBuilder.getValue();
}
if (this.temporaryFileId !== undefined) {
value = { temporaryFileId: this.temporaryFileId };
}
if (this.blockGridValueBuilder !== undefined) {
value = this.blockGridValueBuilder.getValue();
}
if (this.blockListValueBuilder !== undefined) {
value = this.blockListValueBuilder.getValue();
}
}
return {
culture: this.culture || null,
segment: this.segment || null,
alias: this.alias || null,
value: value || null,
editorAlias: this.editorAlias || null,
entityType: this.editorAlias !== undefined ? 'document-property-value' : null
};
}
;
}
exports.DocumentValueBuilder = DocumentValueBuilder;
//# sourceMappingURL=documentValueBuilder.js.map