@sitecore/sc-contenthub-webclient-sdk
Version:
Sitecore Content Hub WebClient SDK.
127 lines • 5.29 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import format from "string-format";
import { JsonElementType, JsonObject, JsonProperty } from "ta-json";
import ErrorMessages from "../../error-messages";
import { InvalidOperationError } from "../../errors/invalid-operation-error";
import Guard from "../../guard";
import { MemberGroup } from "./member-group";
import { PropertyDefinition } from "./property-definition";
import { RelationDefinition } from "./relation-definition";
let EntityDefinition = class EntityDefinition {
get isNew() {
return !this.id;
}
constructor(init) {
this.isSystemOwned = false;
this.isLight = false;
Object.assign(this, init);
this.memberGroups = this.memberGroups || [];
this.labels = this.labels || {};
}
getPropertyDefinition(name) {
Guard.stringNotNullOrEmpty(name);
return (this.getPropertyDefinitions().find(propertyDefinition => {
return propertyDefinition.name.toLowerCase() === name.toLowerCase();
}) || null);
}
getPropertyDefinitions() {
return this.getMemberDefinitions(PropertyDefinition);
}
getRelationDefinition(name, role) {
Guard.stringNotNullOrEmpty(name);
const relationDefinition = this.getRelationDefinitions().find(relationDefinition => {
return (relationDefinition.name.toLowerCase() === name.toLowerCase() &&
(role == null || relationDefinition.role === role));
});
if ((relationDefinition === null || relationDefinition === void 0 ? void 0 : relationDefinition.associatedEntityDefinitionName) === this.name && role == null) {
const errorMessage = format(ErrorMessages.NoRoleSpecifiedForSelfRelation, name);
throw new InvalidOperationError(errorMessage);
}
return relationDefinition !== null && relationDefinition !== void 0 ? relationDefinition : null;
}
getRelationDefinitions() {
return this.getMemberDefinitions(RelationDefinition);
}
getMemberDefinitions(typeT) {
const members = [];
for (const group of this.memberGroups) {
for (const member of group.memberDefinitions) {
if (member instanceof typeT) {
members.push(member);
}
}
}
return members;
}
};
__decorate([
JsonProperty("id"),
__metadata("design:type", Number)
], EntityDefinition.prototype, "id", void 0);
__decorate([
JsonProperty("name"),
__metadata("design:type", String)
], EntityDefinition.prototype, "name", void 0);
__decorate([
JsonProperty("created_by"),
__metadata("design:type", Number)
], EntityDefinition.prototype, "createdBy", void 0);
__decorate([
JsonProperty("created_on"),
__metadata("design:type", Date)
], EntityDefinition.prototype, "createdOn", void 0);
__decorate([
JsonProperty("modified_by"),
__metadata("design:type", Number)
], EntityDefinition.prototype, "modifiedBy", void 0);
__decorate([
JsonProperty("modified_on"),
__metadata("design:type", Date)
], EntityDefinition.prototype, "modifiedOn", void 0);
__decorate([
JsonProperty("display_template"),
__metadata("design:type", String)
], EntityDefinition.prototype, "displayTemplate", void 0);
__decorate([
JsonProperty("is_taxonomy_item_definition"),
__metadata("design:type", Boolean)
], EntityDefinition.prototype, "isTaxonomyItemDefinition", void 0);
__decorate([
JsonProperty("is_path_enabled_definition"),
__metadata("design:type", Boolean)
], EntityDefinition.prototype, "isPathEnabledDefinition", void 0);
__decorate([
JsonProperty("is_manual_sorting_allowed"),
__metadata("design:type", Boolean)
], EntityDefinition.prototype, "isManualSortingAllowed", void 0);
__decorate([
JsonProperty("is_system_owned"),
__metadata("design:type", Boolean)
], EntityDefinition.prototype, "isSystemOwned", void 0);
__decorate([
JsonProperty("is_light"),
__metadata("design:type", Boolean)
], EntityDefinition.prototype, "isLight", void 0);
__decorate([
JsonProperty("member_groups"),
JsonElementType(MemberGroup),
__metadata("design:type", Array)
], EntityDefinition.prototype, "memberGroups", void 0);
__decorate([
JsonProperty("labels"),
__metadata("design:type", Object)
], EntityDefinition.prototype, "labels", void 0);
EntityDefinition = __decorate([
JsonObject(),
__metadata("design:paramtypes", [Object])
], EntityDefinition);
export { EntityDefinition };
//# sourceMappingURL=entity-definition.js.map