drapcode-constant
Version:
Drapcode Constants
514 lines • 16.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NoRefFields = exports.simpleTextField = exports.pureTextField = exports.textTypeAndColorField = exports.notFieldForImport = exports.nonExportField = exports.stringLinkField = exports.mixedField = exports.normalTextField = exports.hiddenFormField = exports.stringField = exports.BelongsSelectOptionFields = exports.BelongsRefByFields = exports.BelongsCreatedByRefField = exports.SystemPrivateFields = exports.DefaultPrivateField = exports.TextTypeFields = exports.dateField = exports.MultiSelectOptionFields = exports.SelectOptionFields = exports.ImageUrlFields = exports.textEmailPasswordField = exports.hashCodeFieldText = exports.systemHideField = exports.textNumberField = exports.timeSlotPicker = exports.passwordBooleanField = exports.hiddenField = exports.byFields = exports.booleanUrlField = exports.largeTextNumberField = exports.passwordUrlField = exports.linkField = exports.numberTextField = exports.exportHideField = exports.uuidField = exports.passwordField = exports.emailField = exports.systemDateField = exports.FileUrlFields = exports.URLFields = exports.ImageFields = exports.ReferenceCreatedByFields = exports.BelongsToReferenceField = exports.childDataField = exports.OptionTypeFields = exports.fieldType = exports.crudKeys = exports.defaultFields = exports.FieldTypes = void 0;
exports.filterIndexFields = exports.filterFieldsForPlaceholderModal = exports.filterFieldsForItemTemplate = exports.filterFieldForItemTemplate = exports.filterSystemCreatedFieldsForItemList = exports.filterFieldsForItemList = exports.filterFieldsForDataTable = exports.fieldToShow = exports.filterFieldForCommandObj = exports.filterFieldsForForm = exports.collectionDefaultFieldSortOrder = exports.AllSelectOptionFields = exports.nonReferenceField = exports.level3ReferenceField = exports.notFieldForExport = exports.level3ReferenceField2 = exports.belongsToAndHiddenField = exports.systemAndRefField = exports.placeholderField = exports.StringFields = exports.referenceTextField = exports.pageCollectionFields = exports.textField1 = void 0;
/**
* Collection of all available field types in the system
* Each field type defines its properties, validation rules, and display settings
*/
exports.FieldTypes = {
text: {
id: "text",
name: "Text",
validation: { min: 1, max: 20 },
show: true,
compositeKey: true,
sortOrder: 0,
},
large_text: {
id: "large_text",
name: "Large Text",
validation: { min: 20, max: 140 },
show: true,
compositeKey: false,
sortOrder: 3,
},
number: {
id: "number",
name: "Number",
validation: { min: 20, max: 140 },
show: true,
compositeKey: true,
sortOrder: 1,
},
date: {
id: "date",
name: "Date",
show: true,
compositeKey: true,
sortOrder: 2,
},
password: {
id: "password",
name: "Password",
show: true,
compositeKey: false,
sortOrder: 5,
},
color: {
id: "color",
name: "Color",
show: true,
compositeKey: false,
},
file: {
id: "file",
name: "File",
show: true,
compositeKey: false,
multipleTrueName: "Files/Images",
sortOrder: 9,
},
reference: {
id: "reference",
name: "Reference",
show: true,
compositeKey: true,
multipleTrueName: "Multi Reference",
sortOrder: 10,
},
belongsTo: {
id: "belongsTo",
name: "Child Of",
show: true,
compositeKey: true,
sortOrder: 11,
},
image: {
id: "image",
name: "Image",
show: false,
compositeKey: false,
},
multi_image: {
id: "multi_image",
name: "Multi-image",
show: false,
compositeKey: false,
},
video_link: {
id: "video_link",
name: "Video link",
show: false,
compositeKey: false,
},
url: {
id: "url",
name: "URL",
show: true,
compositeKey: true,
sortOrder: 8,
},
tel: {
id: "tel",
name: "Phone Number",
show: true,
compositeKey: true,
sortOrder: 6,
},
email: {
id: "email",
name: "Email",
show: true,
compositeKey: true,
sortOrder: 7,
},
boolean: {
id: "boolean",
name: "Boolean",
show: true,
compositeKey: false,
sortOrder: 4,
},
createdAt: {
id: "createdAt",
name: "Created At",
show: false,
compositeKey: false,
},
updatedAt: {
id: "updatedAt",
name: "Updated At",
show: false,
compositeKey: false,
},
createdBy: {
id: "createdBy",
name: "Created By",
show: false,
compositeKey: true,
},
updatedBy: {
id: "updatedBy",
name: "Updated By",
show: false,
compositeKey: true,
},
version: {
id: "version",
name: "Version",
show: false,
compositeKey: true,
},
isDeleted: {
id: "isDeleted",
name: "Is deleted",
show: false,
compositeKey: false,
},
dynamic_option: {
id: "dynamic_option",
name: "Dynamic Option",
show: true,
compositeKey: true,
multipleTrueName: "Multiple Dynamic Options",
sortOrder: 14,
},
static_option: {
id: "static_option",
name: "Static Option",
show: true,
compositeKey: true,
multipleTrueName: "Multiple Static Options",
sortOrder: 15,
},
uuid: {
id: "uuid",
name: "Id",
show: false,
compositeKey: false,
},
custom_uuid: {
id: "custom_uuid",
name: "Custom UUID",
prepend: "",
append: "",
algorithm: "",
show: true,
sortOrder: 12,
compositeKey: false,
},
object: {
id: "object",
name: "Object",
show: false,
sortOrder: 0,
compositeKey: false,
},
unix_timestamp: {
id: "unix_timestamp",
name: "Unix Timestamp",
validation: { min: 20, max: 140 },
show: false,
advancedOptions: true,
compositeKey: false,
advSortOrder: 1,
},
time_slot: {
id: "time_slot",
name: "Time Slot",
show: false,
advancedOptions: true,
compositeKey: false,
advSortOrder: 2,
},
time_picker: {
id: "time_picker",
name: "Timepicker",
show: false,
advancedOptions: true,
compositeKey: false,
advSortOrder: 3,
},
slug: {
id: "slug",
name: "Slug",
show: false,
advancedOptions: true,
compositeKey: false,
advSortOrder: 4,
},
json: {
id: "json",
name: "JSON",
show: false,
advancedOptions: true,
compositeKey: false,
advSortOrder: 5,
},
markdown: {
id: "markdown",
name: "Markdown",
show: false,
advancedOptions: true,
compositeKey: false,
advSortOrder: 6,
},
};
const { belongsTo, boolean, color, createdAt, createdBy, custom_uuid, date, dynamic_option, email, file, image, isDeleted, large_text, multi_image, number, object, password, reference, static_option, tel, text, uuid, updatedAt, url, unix_timestamp, video_link,
// slug,
// json,
// markdown,
time_picker, time_slot, updatedBy, version, } = exports.FieldTypes;
exports.defaultFields = [
"id",
"uuid",
"UUID",
"created_at",
"createdat",
"createdAt",
"created",
"created time",
"updated_at",
"updatedat",
"updatedAt",
"updated",
"last edited time",
"created by",
"isdeleted",
"is_deleted",
"is_delete",
"isdelete",
"delete",
"updatedBy",
"version",
];
exports.crudKeys = ["create", "update", "detail", "list", "delete"];
const fieldType = (itemName, type) => {
if (itemName === "custom_uuid") {
return "uuid";
}
switch (type) {
case "integer":
case "autoNumber":
case "phoneNumber":
case "phone_number":
type = "number";
break;
case "string":
case "singleLineText":
case "rich_text":
case "title":
case "multilineText":
case "url":
case "multipleAttachments":
type = "text";
break;
case "checkbox":
type = "boolean";
break;
case "multipleSelects":
case "multi_select":
case "status":
case "select":
case "singleSelect":
type = "static_option";
break;
case "date":
type = "date";
break;
default:
break;
}
return type;
};
exports.fieldType = fieldType;
/** TWO */
exports.OptionTypeFields = [static_option.id, dynamic_option.id];
//Can be removed
exports.childDataField = [reference.id, dynamic_option.id];
exports.BelongsToReferenceField = [reference.id, belongsTo.id];
exports.ReferenceCreatedByFields = [reference.id, createdBy.id];
exports.ImageFields = [image.id, multi_image.id];
exports.URLFields = [image.id, file.id];
exports.FileUrlFields = [file.id, url.id];
exports.systemDateField = [updatedAt.id, createdAt.id];
exports.emailField = [text.id, email.id];
exports.passwordField = [text.id, password.id];
exports.uuidField = [text.id, uuid.id];
exports.exportHideField = [password.id, file.id];
exports.numberTextField = [number.id, tel.id];
exports.linkField = [tel.id, url.id];
exports.passwordUrlField = [password.id, url.id];
exports.largeTextNumberField = [large_text.id, number.id];
exports.booleanUrlField = [boolean.id, url.id];
exports.byFields = new Set([createdBy.id, updatedBy.id]);
exports.hiddenField = [
createdBy.id,
isDeleted.id,
updatedBy.id,
version.id,
];
exports.passwordBooleanField = [boolean.id, password.id];
exports.timeSlotPicker = [time_picker.id, time_slot.id];
exports.textNumberField = [text.id, number.id];
/** THREE */
exports.systemHideField = [...exports.hiddenField, uuid.id];
exports.hashCodeFieldText = [color.id, uuid.id, custom_uuid.id];
exports.textEmailPasswordField = [...exports.emailField, password.id];
exports.ImageUrlFields = [...exports.ImageFields, file.id];
exports.SelectOptionFields = [...exports.OptionTypeFields, reference.id];
exports.MultiSelectOptionFields = [
...exports.OptionTypeFields,
belongsTo.id,
...exports.byFields,
];
exports.dateField = [...exports.systemDateField, date.id];
/** FOUR */
exports.TextTypeFields = [...exports.emailField, ...exports.numberTextField];
exports.DefaultPrivateField = [...exports.systemHideField, password.id];
exports.SystemPrivateFields = [
isDeleted.id,
version.id,
uuid.id,
password.id,
];
exports.BelongsCreatedByRefField = [
...exports.BelongsToReferenceField,
createdBy.id,
];
exports.BelongsRefByFields = [...exports.BelongsToReferenceField, ...exports.byFields];
exports.BelongsSelectOptionFields = [
...exports.SelectOptionFields,
...exports.byFields,
belongsTo.id,
];
/** FIVE */
exports.stringField = [...exports.emailField, ...exports.hashCodeFieldText];
exports.hiddenFormField = [...exports.systemHideField, ...exports.systemDateField];
exports.normalTextField = [...exports.TextTypeFields, ...exports.passwordUrlField];
exports.mixedField = [
...exports.hashCodeFieldText,
...exports.largeTextNumberField,
video_link.id,
boolean.id,
];
exports.stringLinkField = [...exports.stringField, ...exports.linkField];
exports.nonExportField = [...exports.systemDateField, ...exports.exportHideField];
exports.notFieldForImport = [
...exports.hiddenFormField,
...exports.ImageFields,
password.id,
];
/** Usage of emailField */
exports.textTypeAndColorField = [...exports.TextTypeFields, color.id];
exports.pureTextField = [...exports.textTypeAndColorField, ...exports.linkField];
exports.simpleTextField = [
...exports.emailField,
...exports.largeTextNumberField,
...exports.booleanUrlField,
];
exports.NoRefFields = [...exports.textTypeAndColorField, boolean.id];
exports.textField1 = [...exports.TextTypeFields, ...exports.booleanUrlField];
/** Usage of uuidField */
exports.pageCollectionFields = [
...exports.uuidField,
...exports.largeTextNumberField,
createdAt.id,
boolean.id,
];
exports.referenceTextField = [...exports.uuidField, ...exports.childDataField, number.id];
/** Usage of textEmailPasswordField */
exports.StringFields = [...exports.textEmailPasswordField, ...exports.linkField];
exports.placeholderField = [
reference.id,
...exports.systemDateField,
...exports.hiddenField,
password.id,
];
/** Usage of systemDateField and systemHideField */
exports.systemAndRefField = [...exports.systemHideField, ...exports.childDataField];
exports.belongsToAndHiddenField = [
...exports.BelongsToReferenceField,
...exports.hiddenFormField,
];
/** Usage of BelongsToReferenceField */
exports.level3ReferenceField2 = [
...exports.belongsToAndHiddenField,
...exports.exportHideField,
];
exports.notFieldForExport = [...exports.nonExportField, ...exports.hiddenField, object.id];
exports.level3ReferenceField = [
...exports.BelongsCreatedByRefField,
...exports.nonExportField,
isDeleted.id,
];
/** Usage of OptionTypeFields */
exports.nonReferenceField = [
...exports.stringLinkField,
...exports.largeTextNumberField,
...exports.passwordBooleanField,
video_link.id,
];
exports.AllSelectOptionFields = [reference.id, ...exports.MultiSelectOptionFields];
const textField = [
...exports.stringLinkField,
...exports.passwordBooleanField,
number.id,
date.id,
unix_timestamp.id,
];
exports.collectionDefaultFieldSortOrder = [
{ order: 1, field: uuid.id },
{ order: 2, field: createdAt.id },
{ order: 3, field: createdBy.id },
{ order: 4, field: updatedAt.id },
];
const filterFieldsForForm = (fields) => {
return fields.filter((field) => {
return !exports.hiddenFormField.includes(field.type);
});
};
exports.filterFieldsForForm = filterFieldsForForm;
const filterFieldForCommandObj = () => {
return Object.keys(exports.FieldTypes).filter((field) => {
return ![
...exports.systemDateField,
...exports.systemAndRefField,
...exports.ImageUrlFields,
belongsTo.id,
static_option.id,
color.id,
].includes(field);
});
};
exports.filterFieldForCommandObj = filterFieldForCommandObj;
const fieldToShow = (type) => {
return !exports.systemAndRefField.includes(type);
};
exports.fieldToShow = fieldToShow;
const filterFieldsForDataTable = (fields) => {
return fields.filter((field) => ![...exports.belongsToAndHiddenField, "utility"].includes(field.type) &&
field.id !== "");
};
exports.filterFieldsForDataTable = filterFieldsForDataTable;
const filterFieldsForItemList = (fields) => {
return fields.filter((field) => ![...exports.systemHideField, password.id].includes(field.type));
};
exports.filterFieldsForItemList = filterFieldsForItemList;
const filterSystemCreatedFieldsForItemList = (fields) => {
return fields.filter((field) => field.type === createdAt.id);
};
exports.filterSystemCreatedFieldsForItemList = filterSystemCreatedFieldsForItemList;
const filterFieldForItemTemplate = (fieldName) => [...exports.hiddenFormField, reference.id, ...exports.ImageFields].includes(fieldName);
exports.filterFieldForItemTemplate = filterFieldForItemTemplate;
const filterFieldsForItemTemplate = (fields) => {
return fields.filter((field) => {
return ![...exports.notFieldForImport, reference.id].includes(field.type);
});
};
exports.filterFieldsForItemTemplate = filterFieldsForItemTemplate;
const filterFieldsForPlaceholderModal = (fields) => {
return fields.filter((field) => {
return !exports.placeholderField.includes(field.type);
});
};
exports.filterFieldsForPlaceholderModal = filterFieldsForPlaceholderModal;
const filterIndexFields = (fields) => {
if (!fields || fields.length === 0) {
return [];
}
return fields.filter((field) => textField.includes(field.type));
};
exports.filterIndexFields = filterIndexFields;
//# sourceMappingURL=FieldTypes.js.map