UNPKG

drapcode-constant

Version:

Drapcode Constants

514 lines 16.7 kB
"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