@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
1 lines • 4.2 kB
Source Map (JSON)
{"version":3,"file":"capabilities.mjs","names":[],"sources":["../../../../src/libs/collection/custom-fields/capabilities.ts"],"sourcesContent":["/** Shared field-type filter/sort capabilities for core and admin. */\n\nimport { checkboxFieldConfig } from \"./fields/checkbox/config.js\";\nimport { codeFieldConfig } from \"./fields/code/config.js\";\nimport { collapsibleFieldConfig } from \"./fields/collapsible/config.js\";\nimport { colorFieldConfig } from \"./fields/color/config.js\";\nimport { datetimeFieldConfig } from \"./fields/datetime/config.js\";\nimport { jsonFieldConfig } from \"./fields/json/config.js\";\nimport { linkFieldConfig } from \"./fields/link/config.js\";\nimport { mediaFieldConfig } from \"./fields/media/config.js\";\nimport { numberFieldConfig } from \"./fields/number/config.js\";\nimport { rangeFieldConfig } from \"./fields/range/config.js\";\nimport { relationFieldConfig } from \"./fields/relation/config.js\";\nimport { repeaterFieldConfig } from \"./fields/repeater/config.js\";\nimport { richTextFieldConfig } from \"./fields/rich-text/config.js\";\nimport { sectionFieldConfig } from \"./fields/section/config.js\";\nimport { selectFieldConfig } from \"./fields/select/config.js\";\nimport { tabFieldConfig } from \"./fields/tab/config.js\";\nimport { textFieldConfig } from \"./fields/text/config.js\";\nimport { textareaFieldConfig } from \"./fields/textarea/config.js\";\nimport { userFieldConfig } from \"./fields/user/config.js\";\n\nexport type FieldTypeCapabilities = {\n\tfilterable: boolean;\n\tsortable: boolean;\n};\n\nexport const fieldTypeCapabilities = {\n\t[checkboxFieldConfig.type]: checkboxFieldConfig.capabilities,\n\t[codeFieldConfig.type]: codeFieldConfig.capabilities,\n\t[collapsibleFieldConfig.type]: collapsibleFieldConfig.capabilities,\n\t[colorFieldConfig.type]: colorFieldConfig.capabilities,\n\t[datetimeFieldConfig.type]: datetimeFieldConfig.capabilities,\n\t[jsonFieldConfig.type]: jsonFieldConfig.capabilities,\n\t[linkFieldConfig.type]: linkFieldConfig.capabilities,\n\t[mediaFieldConfig.type]: mediaFieldConfig.capabilities,\n\t[numberFieldConfig.type]: numberFieldConfig.capabilities,\n\t[rangeFieldConfig.type]: rangeFieldConfig.capabilities,\n\t[relationFieldConfig.type]: relationFieldConfig.capabilities,\n\t[repeaterFieldConfig.type]: repeaterFieldConfig.capabilities,\n\t[richTextFieldConfig.type]: richTextFieldConfig.capabilities,\n\t[sectionFieldConfig.type]: sectionFieldConfig.capabilities,\n\t[selectFieldConfig.type]: selectFieldConfig.capabilities,\n\t[tabFieldConfig.type]: tabFieldConfig.capabilities,\n\t[textFieldConfig.type]: textFieldConfig.capabilities,\n\t[textareaFieldConfig.type]: textareaFieldConfig.capabilities,\n\t[userFieldConfig.type]: userFieldConfig.capabilities,\n} as const satisfies Record<string, FieldTypeCapabilities>;\n\nexport type CapabilityFieldType = keyof typeof fieldTypeCapabilities;\n\n/** Resolves the capability matrix entry for a field type. Unknown types support nothing. */\nexport const getFieldTypeCapabilities = (\n\ttype: string,\n): FieldTypeCapabilities => {\n\treturn (\n\t\tfieldTypeCapabilities[type as CapabilityFieldType] ?? {\n\t\t\tfilterable: false,\n\t\t\tsortable: false,\n\t\t}\n\t);\n};\n\n/** Whether documents can be filtered by this field type's stored value. */\nexport const isFieldTypeFilterable = (type: string): boolean => {\n\treturn getFieldTypeCapabilities(type).filterable;\n};\n\n/** Whether documents can be sorted by this field type's stored value. */\nexport const isFieldTypeSortable = (type: string): boolean => {\n\treturn getFieldTypeCapabilities(type).sortable;\n};\n"],"mappings":"krCA2BA,MAAa,EAAwB,EACnC,EAAoB,MAAO,EAAoB,cAC/C,EAAgB,MAAO,EAAgB,cACvC,EAAuB,MAAO,EAAuB,cACrD,EAAiB,MAAO,EAAiB,cACzC,EAAoB,MAAO,EAAoB,cAC/C,EAAgB,MAAO,EAAgB,cACvC,EAAgB,MAAO,EAAgB,cACvC,EAAiB,MAAO,EAAiB,cACzC,EAAkB,MAAO,EAAkB,cAC3C,EAAiB,MAAO,EAAiB,cACzC,EAAoB,MAAO,EAAoB,cAC/C,EAAoB,MAAO,EAAoB,cAC/C,EAAoB,MAAO,EAAoB,cAC/C,EAAmB,MAAO,EAAmB,cAC7C,EAAkB,MAAO,EAAkB,cAC3C,EAAe,MAAO,EAAe,cACrC,EAAgB,MAAO,EAAgB,cACvC,EAAoB,MAAO,EAAoB,cAC/C,EAAgB,MAAO,EAAgB,YACzC,EAKa,EACZ,GAGC,EAAsB,IAAgC,CACrD,WAAY,GACZ,SAAU,EACX,EAUW,EAAuB,GAC5B,EAAyB,CAAI,CAAC,CAAC"}