@solidxai/core-ui 0.1.13-beta.1 → 0.1.13-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/common/SolidFieldTooltip.d.ts.map +1 -1
- package/dist/components/common/SolidFieldTooltip.js +33 -1
- package/dist/components/common/SolidFieldTooltip.js.map +1 -1
- package/dist/components/common/SolidFieldTooltip.tsx +64 -8
- package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatter.js +4 -2
- package/dist/components/core/chatter/SolidChatter.js.map +1 -1
- package/dist/components/core/chatter/SolidChatter.tsx +4 -1
- package/dist/components/core/chatter/SolidChatterMentionMenu.d.ts +9 -0
- package/dist/components/core/chatter/SolidChatterMentionMenu.d.ts.map +1 -0
- package/dist/components/core/chatter/SolidChatterMentionMenu.js +18 -0
- package/dist/components/core/chatter/SolidChatterMentionMenu.js.map +1 -0
- package/dist/components/core/chatter/SolidChatterMentionMenu.tsx +45 -0
- package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +1 -0
- package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.js +29 -5
- package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.tsx +57 -4
- package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.js +33 -7
- package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.tsx +61 -7
- package/dist/components/core/chatter/chatter.module.css +63 -0
- package/dist/components/core/chatter/chatterMentions.d.ts +17 -0
- package/dist/components/core/chatter/chatterMentions.d.ts.map +1 -0
- package/dist/components/core/chatter/chatterMentions.js +50 -0
- package/dist/components/core/chatter/chatterMentions.js.map +1 -0
- package/dist/components/core/chatter/chatterMentions.ts +59 -0
- package/dist/components/core/chatter/useChatterMentions.d.ts +26 -0
- package/dist/components/core/chatter/useChatterMentions.d.ts.map +1 -0
- package/dist/components/core/chatter/useChatterMentions.js +204 -0
- package/dist/components/core/chatter/useChatterMentions.js.map +1 -0
- package/dist/components/core/chatter/useChatterMentions.ts +160 -0
- package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +111 -106
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +165 -134
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +81 -84
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +97 -86
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +4 -0
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +6 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +4 -3
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +4 -3
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +42 -81
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +90 -120
- package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js +34 -42
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +51 -46
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +3 -2
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/CreateModel.tsx +4 -1
- package/dist/components/core/model/FieldMetaData.d.ts +1 -1
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +17 -17
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +10 -2
- package/dist/components/shad-cn-ui/SolidTextarea.d.ts +1 -1
- package/dist/components/shad-cn-ui/SolidTextarea.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidTextarea.js +4 -3
- package/dist/components/shad-cn-ui/SolidTextarea.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidTextarea.tsx +4 -2
- package/dist/helpers/downloadMediaFile.d.ts.map +1 -1
- package/dist/helpers/downloadMediaFile.js +10 -3
- package/dist/helpers/downloadMediaFile.js.map +1 -1
- package/dist/helpers/downloadMediaFile.tsx +13 -7
- package/dist/helpers/fileTypeIcon.d.ts +3 -2
- package/dist/helpers/fileTypeIcon.d.ts.map +1 -1
- package/dist/helpers/fileTypeIcon.js +11 -7
- package/dist/helpers/fileTypeIcon.js.map +1 -1
- package/dist/helpers/fileTypeIcon.tsx +12 -7
- package/dist/helpers/mediaType.d.ts +7 -0
- package/dist/helpers/mediaType.d.ts.map +1 -1
- package/dist/helpers/mediaType.js +39 -8
- package/dist/helpers/mediaType.js.map +1 -1
- package/dist/helpers/mediaType.ts +46 -7
- package/dist/helpers/mediaUrl.d.ts +2 -0
- package/dist/helpers/mediaUrl.d.ts.map +1 -0
- package/dist/helpers/mediaUrl.js +10 -0
- package/dist/helpers/mediaUrl.js.map +1 -0
- package/dist/helpers/mediaUrl.ts +11 -0
- package/dist/resources/globals.css +14 -0
- package/dist/resources/solid-tailwind-generated.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldMetaData.js","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaData.tsx"],"names":[],"mappings":"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","sourcesContent":["import { usePathname } from \"../../../hooks/usePathname\";\nimport { SolidDataTable as DataTable, Column } from \"../list/SolidDataTable\";\nimport { useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport FieldMetaDataForm from \"./FieldMetaDataForm\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { AlertTriangle, Info, Pencil, Plus, Trash2 } from \"lucide-react\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n} from \"../../shad-cn-ui\";\n\n\nconst FieldMetaData = ({ setIsDirty, setFieldDeleted, modelMetaData, fieldMetaData, setFieldMetaData, deleteModelFunction, nextTab, formikFieldsMetadataRef, params }: any) => {\n const pathname = usePathname();\n const dispatch = useDispatch();\n const [visiblePopup, setVisiblePopup] = useState(false);\n const [isRequiredPopUp, setIsRequiredPopUp] = useState(false);\n const [currentPopup, setCurrentPopup] = useState();\n const [selectedFieldMetaData, setSelectedFieldMetaData] = useState<any>(null);\n const [deleteAlertPopup, setDeleteAlertPopup] = useState(false);\n const [rowToDelete, setRowToDelete] = useState<any>(null);\n const onRowSelect = (event: any) => {\n setVisiblePopup(true);\n\n };\n\n\n const bodyTemplate = (rowData: any) => {\n return (\n <>\n\n {rowData.displayName &&\n <>\n <p>{rowData.displayName}\n {rowData.isMarkedForRemoval === true &&\n <>\n <br></br> <span style={{ fontSize: '11px', color: 'red' }}>This field will be removed next time you generate code for this model.</span>\n </>\n }\n </p>\n </>\n }\n </>\n )\n };\n\n\n // Template for the pencil icon column\n const editTemplate = (rowData: any) => {\n return (\n <>\n {rowData.isSystem !== true && rowData.isMarkedForRemoval !== true &&\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n aria-label=\"Edit field\"\n leftIcon={<Pencil size={14} />}\n onClick={() => {\n setSelectedFieldMetaData(rowData);\n setVisiblePopup(true);\n }}\n />\n }\n </>\n )\n };\n\n // Function to delete a row\n const deleteRow = (rowData: any) => {\n //show dialog bbefore deletion & which will have to option ok and cancel\n setFieldMetaData((prevData: any) => {\n const updatedData = prevData.filter((item: any) => item.name !== rowData.name);\n setIsDirty(true); // Ensure dirty state is updated immediately\n if (setFieldDeleted) setFieldDeleted(true);\n return updatedData;\n });\n };\n\n // Template for the trash (delete) icon column\n const deleteTemplate = (rowData: any) => {\n return (\n <>\n {(pathname.includes('create') || (rowData.isSystem !== true && rowData.isMarkedForRemoval !== true)) &&\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n style={{ color: \"var(--solid-danger, #ef4444)\" }}\n aria-label=\"Delete field\"\n leftIcon={<Trash2 size={14} />}\n onClick={() => { setRowToDelete(rowData); setDeleteAlertPopup(true) }}\n />\n\n }\n </>\n )\n };\n\n const showToaster = async (message: any, severity: any) => {\n const errorMessages = Object.values(message);\n if (errorMessages.length > 0) {\n dispatch(showToast({ severity, summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.map(String).join(', '), life: 3000 }));\n }\n };\n\n\n // const rowClass = (data: any) => {\n // return {\n // 'bg-red-row': data.isMarkedForRemoval === true\n // };\n // };\n\n\n const needsModelSetup = !modelMetaData.moduleId || !modelMetaData.dataSource;\n\n return (\n <>\n\n {needsModelSetup ?\n <div className=\"solid-placeholder-card-wrapper\">\n <div className=\"solid-placeholder-card\">\n <div className=\"solid-placeholder-card-icon\">\n <Info size={18} />\n </div>\n <div className=\"solid-placeholder-card-body\">\n <p className=\"solid-placeholder-card-title\">Model setup incomplete</p>\n <p className=\"solid-placeholder-card-text\">Please select Module and Datasource from the models tab before managing fields.</p>\n </div>\n </div>\n </div>\n :\n <>\n\n <div className=\"flex justify-end\" style={{ marginBottom: '0.5rem' }}>\n {modelMetaData.isSystem !== true &&\n <SolidButton\n size=\"sm\"\n leftIcon={<Plus size={14} />}\n onClick={() => {\n if (!modelMetaData?.dataSourceType) {\n dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: ERROR_MESSAGES.ORM_TYPE_REQUIRED }));\n } else {\n setSelectedFieldMetaData(null);\n setVisiblePopup(true)\n }\n }}\n >\n Add\n </SolidButton>\n }\n </div>\n <div className=\"solid-datatable-wrapper solid-list-table-area flex-1 min-h-0 overflow-hidden\">\n <DataTable\n value={fieldMetaData}\n dataKey=\"id\"\n size=\"small\"\n emptyMessage=\"No fields configured\"\n rowClassName={(rowData) => rowData.isMarkedForRemoval === true ? \"greyed-out-row\" : \"\"}\n >\n <Column field=\"displayName\" header=\"Display Name\" body={bodyTemplate}></Column>\n <Column field=\"name\" header=\"Name\"></Column>\n <Column field=\"type\" header=\"Type\"></Column>\n\n {modelMetaData.isSystem !== true &&\n <Column body={editTemplate} header=\"Edit\" style={{ width: '80px' }} />\n }\n {modelMetaData.isSystem !== true &&\n <Column body={deleteTemplate} header=\"Delete\" style={{ width: '90px' }} />\n }\n </DataTable>\n </div>\n <SolidDialog\n open={visiblePopup}\n onOpenChange={(open) => {\n if (!open) {\n setVisiblePopup(false);\n }\n }}\n className=\"solid-dialog solid-field-dialog\"\n style={{ width: \"min(720px, calc(100vw - 2rem))\", minWidth:\"20rem\", maxWidth:\"95vw\" }}\n showHeader={false}\n >\n <SolidDialogBody className=\"solid-dialog-body-flush\">\n <FieldMetaDataForm setIsDirty={setIsDirty} modelMetaData={modelMetaData} fieldMetaData={selectedFieldMetaData} allFields={fieldMetaData} setFieldMetaData={setFieldMetaData} deleteModelFunction={deleteModelFunction} setVisiblePopup={setVisiblePopup} formikFieldsMetadataRef={formikFieldsMetadataRef} params={params} setIsRequiredPopUp={setIsRequiredPopUp} showToaster={showToaster}></FieldMetaDataForm>\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog\n open={isRequiredPopUp}\n onOpenChange={(open) => {\n if (!open) {\n setIsRequiredPopUp(false);\n }\n }}\n className=\"solid-dialog solid-confirm-dialog solid-field-confirm-dialog\"\n style={{ width: \"min(420px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-field-confirm-header\">\n <SolidDialogTitle>\n <span className=\"flex items-center gap-2\">\n <AlertTriangle size={18} className=\"text-yellow-500\" />\n <span>Warning</span>\n </span>\n </SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogBody className=\"solid-field-confirm-dialog-body\">\n <p className=\"solid-field-confirm-message\">If there is data against this model this operation might not work and manual intervention will be required.</p>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-field-confirm-actions\">\n <SolidButton size=\"sm\" onClick={() => setIsRequiredPopUp(false)}>\n Ok\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n <SolidDialog\n open={deleteAlertPopup}\n onOpenChange={(open) => {\n if (!open) {\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }\n }}\n className=\"solid-shadcn-confirm-dialog solid-field-delete-flow-dialog\"\n style={{ width: \"min(560px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-shadcn-dialog-head solid-field-delete-flow-head\">\n <SolidDialogTitle>\n <span className=\"flex items-center gap-2\">\n <AlertTriangle size={18} className=\"text-yellow-500\" />\n <span>Remove Field</span>\n </span>\n </SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-shadcn-dialog-sep\" />\n <SolidDialogBody className=\"solid-shadcn-dialog-body solid-field-delete-flow-body\">\n <p className=\"solid-shadcn-dialog-text solid-field-delete-flow-intro\">\n Removing a field is a 2 step process.\n </p>\n <ol className=\"solid-field-delete-flow-list\">\n <li>\n <span className=\"solid-field-delete-flow-index\">1.</span>\n <div className=\"solid-field-delete-flow-step\">\n <p className=\"solid-field-delete-flow-step-title\">Delete the field and save the model form.</p>\n <span className=\"solid-field-delete-flow-step-note\">This marks the field for removal.</span>\n </div>\n </li>\n <li>\n <span className=\"solid-field-delete-flow-index\">2.</span>\n <div className=\"solid-field-delete-flow-step\">\n <p className=\"solid-field-delete-flow-step-title\">Generate code for this model.</p>\n <span className=\"solid-field-delete-flow-step-note\">This removes the field from generated code, metadata tables, and JSON.</span>\n </div>\n </li>\n </ol>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-shadcn-dialog-actions solid-field-delete-flow-actions\">\n <SolidButton\n size=\"sm\"\n onClick={() => {\n if (rowToDelete) {\n deleteRow(rowToDelete);\n }\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }}\n >\n Ok\n </SolidButton>\n <SolidButton\n size=\"sm\"\n variant=\"outline\"\n onClick={() => {\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }}\n >\n Cancel\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n\n </>\n }\n </>\n\n\n\n );\n};\nexport default FieldMetaData;\n"]}
|
|
1
|
+
{"version":3,"file":"FieldMetaData.js","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaData.tsx"],"names":[],"mappings":"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","sourcesContent":["import { usePathname } from \"../../../hooks/usePathname\";\nimport { SolidDataTable as DataTable, Column } from \"../list/SolidDataTable\";\nimport { useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport FieldMetaDataForm from \"./FieldMetaDataForm\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { AlertTriangle, Info, Pencil, Plus, Trash2 } from \"lucide-react\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n} from \"../../shad-cn-ui\";\n\n\nconst FieldMetaData = ({ setIsDirty, setFieldDeleted, modelMetaData, fieldMetaData, setFieldMetaData, deleteModelFunction, nextTab, formikFieldsMetadataRef, params, showSaveButton = false, onSave }: any) => {\n const pathname = usePathname();\n const dispatch = useDispatch();\n const [visiblePopup, setVisiblePopup] = useState(false);\n const [isRequiredPopUp, setIsRequiredPopUp] = useState(false);\n const [currentPopup, setCurrentPopup] = useState();\n const [selectedFieldMetaData, setSelectedFieldMetaData] = useState<any>(null);\n const [deleteAlertPopup, setDeleteAlertPopup] = useState(false);\n const [rowToDelete, setRowToDelete] = useState<any>(null);\n const onRowSelect = (event: any) => {\n setVisiblePopup(true);\n\n };\n\n\n const bodyTemplate = (rowData: any) => {\n return (\n <>\n\n {rowData.displayName &&\n <>\n <p>{rowData.displayName}\n {rowData.isMarkedForRemoval === true &&\n <>\n <br></br> <span style={{ fontSize: '11px', color: 'red' }}>This field will be removed next time you generate code for this model.</span>\n </>\n }\n </p>\n </>\n }\n </>\n )\n };\n\n\n // Template for the pencil icon column\n const editTemplate = (rowData: any) => {\n return (\n <>\n {rowData.isSystem !== true && rowData.isMarkedForRemoval !== true &&\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n aria-label=\"Edit field\"\n leftIcon={<Pencil size={14} />}\n onClick={() => {\n setSelectedFieldMetaData(rowData);\n setVisiblePopup(true);\n }}\n />\n }\n </>\n )\n };\n\n // Function to delete a row\n const deleteRow = (rowData: any) => {\n //show dialog bbefore deletion & which will have to option ok and cancel\n setFieldMetaData((prevData: any) => {\n const updatedData = prevData.filter((item: any) => item.name !== rowData.name);\n setIsDirty(true); // Ensure dirty state is updated immediately\n if (setFieldDeleted) setFieldDeleted(true);\n return updatedData;\n });\n };\n\n // Template for the trash (delete) icon column\n const deleteTemplate = (rowData: any) => {\n return (\n <>\n {(pathname.includes('create') || (rowData.isSystem !== true && rowData.isMarkedForRemoval !== true)) &&\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n style={{ color: \"var(--solid-danger, #ef4444)\" }}\n aria-label=\"Delete field\"\n leftIcon={<Trash2 size={14} />}\n onClick={() => { setRowToDelete(rowData); setDeleteAlertPopup(true) }}\n />\n\n }\n </>\n )\n };\n\n const showToaster = async (message: any, severity: any) => {\n const errorMessages = Object.values(message);\n if (errorMessages.length > 0) {\n dispatch(showToast({ severity, summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.map(String).join(', '), life: 3000 }));\n }\n };\n\n\n // const rowClass = (data: any) => {\n // return {\n // 'bg-red-row': data.isMarkedForRemoval === true\n // };\n // };\n\n\n const needsModelSetup = !modelMetaData.moduleId || !modelMetaData.dataSource;\n\n return (\n <>\n\n {needsModelSetup ?\n <div className=\"solid-placeholder-card-wrapper\">\n <div className=\"solid-placeholder-card\">\n <div className=\"solid-placeholder-card-icon\">\n <Info size={18} />\n </div>\n <div className=\"solid-placeholder-card-body\">\n <p className=\"solid-placeholder-card-title\">Model setup incomplete</p>\n <p className=\"solid-placeholder-card-text\">Please select Module and Datasource from the models tab before managing fields.</p>\n </div>\n </div>\n </div>\n :\n <>\n\n <div className=\"flex justify-end gap-2\" style={{ marginBottom: '0.5rem' }}>\n {showSaveButton && (\n <SolidButton\n size=\"sm\"\n onClick={onSave}\n >\n Save\n </SolidButton>\n )}\n {modelMetaData.isSystem !== true &&\n <SolidButton\n size=\"sm\"\n leftIcon={<Plus size={14} />}\n onClick={() => {\n if (!modelMetaData?.dataSourceType) {\n dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: ERROR_MESSAGES.ORM_TYPE_REQUIRED }));\n } else {\n setSelectedFieldMetaData(null);\n setVisiblePopup(true)\n }\n }}\n >\n Add\n </SolidButton>\n }\n </div>\n <div className=\"solid-datatable-wrapper solid-list-table-area flex-1 min-h-0 overflow-hidden\">\n <DataTable\n value={fieldMetaData}\n dataKey=\"id\"\n size=\"small\"\n emptyMessage=\"No fields configured\"\n rowClassName={(rowData) => rowData.isMarkedForRemoval === true ? \"greyed-out-row\" : \"\"}\n >\n <Column field=\"displayName\" header=\"Display Name\" body={bodyTemplate}></Column>\n <Column field=\"name\" header=\"Name\"></Column>\n <Column field=\"type\" header=\"Type\"></Column>\n\n {modelMetaData.isSystem !== true &&\n <Column body={editTemplate} header=\"Edit\" style={{ width: '80px' }} />\n }\n {modelMetaData.isSystem !== true &&\n <Column body={deleteTemplate} header=\"Delete\" style={{ width: '90px' }} />\n }\n </DataTable>\n </div>\n <SolidDialog\n open={visiblePopup}\n onOpenChange={(open) => {\n if (!open) {\n setVisiblePopup(false);\n }\n }}\n className=\"solid-dialog solid-field-dialog\"\n style={{ width: \"min(720px, calc(100vw - 2rem))\", minWidth:\"20rem\", maxWidth:\"95vw\" }}\n showHeader={false}\n >\n <SolidDialogBody className=\"solid-dialog-body-flush\">\n <FieldMetaDataForm setIsDirty={setIsDirty} modelMetaData={modelMetaData} fieldMetaData={selectedFieldMetaData} allFields={fieldMetaData} setFieldMetaData={setFieldMetaData} deleteModelFunction={deleteModelFunction} setVisiblePopup={setVisiblePopup} formikFieldsMetadataRef={formikFieldsMetadataRef} params={params} setIsRequiredPopUp={setIsRequiredPopUp} showToaster={showToaster}></FieldMetaDataForm>\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog\n open={isRequiredPopUp}\n onOpenChange={(open) => {\n if (!open) {\n setIsRequiredPopUp(false);\n }\n }}\n className=\"solid-dialog solid-confirm-dialog solid-field-confirm-dialog\"\n style={{ width: \"min(420px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-field-confirm-header\">\n <SolidDialogTitle>\n <span className=\"flex items-center gap-2\">\n <AlertTriangle size={18} className=\"text-yellow-500\" />\n <span>Warning</span>\n </span>\n </SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogBody className=\"solid-field-confirm-dialog-body\">\n <p className=\"solid-field-confirm-message\">If there is data against this model this operation might not work and manual intervention will be required.</p>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-field-confirm-actions\">\n <SolidButton size=\"sm\" onClick={() => setIsRequiredPopUp(false)}>\n Ok\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n <SolidDialog\n open={deleteAlertPopup}\n onOpenChange={(open) => {\n if (!open) {\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }\n }}\n className=\"solid-shadcn-confirm-dialog solid-field-delete-flow-dialog\"\n style={{ width: \"min(560px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-shadcn-dialog-head solid-field-delete-flow-head\">\n <SolidDialogTitle>\n <span className=\"flex items-center gap-2\">\n <AlertTriangle size={18} className=\"text-yellow-500\" />\n <span>Remove Field</span>\n </span>\n </SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-shadcn-dialog-sep\" />\n <SolidDialogBody className=\"solid-shadcn-dialog-body solid-field-delete-flow-body\">\n <p className=\"solid-shadcn-dialog-text solid-field-delete-flow-intro\">\n Removing a field is a 2 step process.\n </p>\n <ol className=\"solid-field-delete-flow-list\">\n <li>\n <span className=\"solid-field-delete-flow-index\">1.</span>\n <div className=\"solid-field-delete-flow-step\">\n <p className=\"solid-field-delete-flow-step-title\">Delete the field and save the model form.</p>\n <span className=\"solid-field-delete-flow-step-note\">This marks the field for removal.</span>\n </div>\n </li>\n <li>\n <span className=\"solid-field-delete-flow-index\">2.</span>\n <div className=\"solid-field-delete-flow-step\">\n <p className=\"solid-field-delete-flow-step-title\">Generate code for this model.</p>\n <span className=\"solid-field-delete-flow-step-note\">This removes the field from generated code, metadata tables, and JSON.</span>\n </div>\n </li>\n </ol>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-shadcn-dialog-actions solid-field-delete-flow-actions\">\n <SolidButton\n size=\"sm\"\n onClick={() => {\n if (rowToDelete) {\n deleteRow(rowToDelete);\n }\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }}\n >\n Ok\n </SolidButton>\n <SolidButton\n size=\"sm\"\n variant=\"outline\"\n onClick={() => {\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }}\n >\n Cancel\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n\n </>\n }\n </>\n\n\n\n );\n};\nexport default FieldMetaData;\n"]}
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
} from "../../shad-cn-ui";
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
const FieldMetaData = ({ setIsDirty, setFieldDeleted, modelMetaData, fieldMetaData, setFieldMetaData, deleteModelFunction, nextTab, formikFieldsMetadataRef, params }: any) => {
|
|
21
|
+
const FieldMetaData = ({ setIsDirty, setFieldDeleted, modelMetaData, fieldMetaData, setFieldMetaData, deleteModelFunction, nextTab, formikFieldsMetadataRef, params, showSaveButton = false, onSave }: any) => {
|
|
22
22
|
const pathname = usePathname();
|
|
23
23
|
const dispatch = useDispatch();
|
|
24
24
|
const [visiblePopup, setVisiblePopup] = useState(false);
|
|
@@ -140,7 +140,15 @@ const FieldMetaData = ({ setIsDirty, setFieldDeleted, modelMetaData, fieldMetaDa
|
|
|
140
140
|
:
|
|
141
141
|
<>
|
|
142
142
|
|
|
143
|
-
<div className="flex justify-end" style={{ marginBottom: '0.5rem' }}>
|
|
143
|
+
<div className="flex justify-end gap-2" style={{ marginBottom: '0.5rem' }}>
|
|
144
|
+
{showSaveButton && (
|
|
145
|
+
<SolidButton
|
|
146
|
+
size="sm"
|
|
147
|
+
onClick={onSave}
|
|
148
|
+
>
|
|
149
|
+
Save
|
|
150
|
+
</SolidButton>
|
|
151
|
+
)}
|
|
144
152
|
{modelMetaData.isSystem !== true &&
|
|
145
153
|
<SolidButton
|
|
146
154
|
size="sm"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
type SolidTextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;
|
|
3
|
-
export declare
|
|
3
|
+
export declare const SolidTextarea: React.ForwardRefExoticComponent<SolidTextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
4
4
|
export {};
|
|
5
5
|
//# sourceMappingURL=SolidTextarea.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidTextarea.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTextarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,kBAAkB,GAAG,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;AAM5E,
|
|
1
|
+
{"version":3,"file":"SolidTextarea.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTextarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,kBAAkB,GAAG,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;AAM5E,eAAO,MAAM,aAAa,gGAmBxB,CAAC"}
|
|
@@ -21,6 +21,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
21
|
return t;
|
|
22
22
|
};
|
|
23
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
+
import React from "react";
|
|
24
25
|
function cx() {
|
|
25
26
|
var parts = [];
|
|
26
27
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
@@ -28,9 +29,9 @@ function cx() {
|
|
|
28
29
|
}
|
|
29
30
|
return parts.filter(Boolean).join(" ");
|
|
30
31
|
}
|
|
31
|
-
export function SolidTextarea(_a) {
|
|
32
|
+
export var SolidTextarea = React.forwardRef(function SolidTextarea(_a, ref) {
|
|
32
33
|
var className = _a.className, disabled = _a.disabled, readOnly = _a.readOnly, style = _a.style, props = __rest(_a, ["className", "disabled", "readOnly", "style"]);
|
|
33
34
|
var isInteractionLocked = Boolean(disabled || readOnly);
|
|
34
|
-
return (_jsx("textarea", __assign({ className: cx("solid-input solid-textarea", isInteractionLocked && "is-interaction-locked", className), "aria-disabled": disabled || undefined, "aria-readonly": readOnly || undefined, style: __assign(__assign({}, (style || {})), (isInteractionLocked ? { opacity: 0.75, cursor: "not-allowed" } : {})), disabled: disabled, readOnly: readOnly }, props)));
|
|
35
|
-
}
|
|
35
|
+
return (_jsx("textarea", __assign({ ref: ref, className: cx("solid-input solid-textarea", isInteractionLocked && "is-interaction-locked", className), "aria-disabled": disabled || undefined, "aria-readonly": readOnly || undefined, style: __assign(__assign({}, (style || {})), (isInteractionLocked ? { opacity: 0.75, cursor: "not-allowed" } : {})), disabled: disabled, readOnly: readOnly }, props)));
|
|
36
|
+
});
|
|
36
37
|
//# sourceMappingURL=SolidTextarea.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidTextarea.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTextarea.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"SolidTextarea.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTextarea.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,SAAS,EAAE;IAAC,eAA2C;SAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;QAA3C,0BAA2C;;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,IAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAC7C,SAAS,aAAa,CAAC,EAAkD,EAAE,GAAG;IAArD,IAAA,SAAS,eAAA,EAAE,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,KAAK,WAAA,EAAK,KAAK,cAAhD,8CAAkD,CAAF;IACrE,IAAM,mBAAmB,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IAE1D,OAAO,CACL,4BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,SAAS,CAAC,mBACvF,QAAQ,IAAI,SAAS,mBACrB,QAAQ,IAAI,SAAS,EACpC,KAAK,wBACA,CAAC,KAAK,IAAI,EAAE,CAAC,GACb,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAE1E,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,IACd,KAAK,EACT,CACH,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import React from \"react\";\n\ntype SolidTextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport const SolidTextarea = React.forwardRef<HTMLTextAreaElement, SolidTextareaProps>(\nfunction SolidTextarea({ className, disabled, readOnly, style, ...props }, ref) {\n const isInteractionLocked = Boolean(disabled || readOnly);\n\n return (\n <textarea\n ref={ref}\n className={cx(\"solid-input solid-textarea\", isInteractionLocked && \"is-interaction-locked\", className)}\n aria-disabled={disabled || undefined}\n aria-readonly={readOnly || undefined}\n style={{\n ...(style || {}),\n ...(isInteractionLocked ? { opacity: 0.75, cursor: \"not-allowed\" } : {}),\n }}\n disabled={disabled}\n readOnly={readOnly}\n {...props}\n />\n );\n});\n"]}
|
|
@@ -6,11 +6,13 @@ function cx(...parts: Array<string | false | undefined>) {
|
|
|
6
6
|
return parts.filter(Boolean).join(" ");
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export
|
|
9
|
+
export const SolidTextarea = React.forwardRef<HTMLTextAreaElement, SolidTextareaProps>(
|
|
10
|
+
function SolidTextarea({ className, disabled, readOnly, style, ...props }, ref) {
|
|
10
11
|
const isInteractionLocked = Boolean(disabled || readOnly);
|
|
11
12
|
|
|
12
13
|
return (
|
|
13
14
|
<textarea
|
|
15
|
+
ref={ref}
|
|
14
16
|
className={cx("solid-input solid-textarea", isInteractionLocked && "is-interaction-locked", className)}
|
|
15
17
|
aria-disabled={disabled || undefined}
|
|
16
18
|
aria-readonly={readOnly || undefined}
|
|
@@ -23,4 +25,4 @@ export function SolidTextarea({ className, disabled, readOnly, style, ...props }
|
|
|
23
25
|
{...props}
|
|
24
26
|
/>
|
|
25
27
|
);
|
|
26
|
-
}
|
|
28
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadMediaFile.d.ts","sourceRoot":"","sources":["../../src/helpers/downloadMediaFile.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"downloadMediaFile.d.ts","sourceRoot":"","sources":["../../src/helpers/downloadMediaFile.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,iBAAiB,YAAa,MAAM,aAAa,MAAM,SAMnE,CAAC"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
var triggerBrowserDownload = function (url, fileName) {
|
|
2
2
|
var link = document.createElement("a");
|
|
3
|
-
|
|
3
|
+
var downloadUrl = new URL(url, window.location.origin);
|
|
4
|
+
downloadUrl.searchParams.set("disposition", "attachment");
|
|
5
|
+
link.href = downloadUrl.toString();
|
|
4
6
|
link.download = fileName || "";
|
|
5
|
-
link.target = "_blank";
|
|
6
7
|
document.body.appendChild(link);
|
|
7
8
|
link.click();
|
|
8
9
|
document.body.removeChild(link);
|
|
9
10
|
};
|
|
11
|
+
export var downloadMediaFile = function (fileUrl, fileName) {
|
|
12
|
+
if (!fileUrl) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
triggerBrowserDownload(fileUrl, fileName);
|
|
16
|
+
};
|
|
10
17
|
//# sourceMappingURL=downloadMediaFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadMediaFile.js","sourceRoot":"","sources":["../../src/helpers/downloadMediaFile.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"downloadMediaFile.js","sourceRoot":"","sources":["../../src/helpers/downloadMediaFile.tsx"],"names":[],"mappings":"AAAA,IAAM,sBAAsB,GAAG,UAAC,GAAW,EAAE,QAAiB;IAC1D,IAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzC,IAAM,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzD,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAK;IACjB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,OAAe,EAAE,QAAiB;IAChE,IAAI,CAAC,OAAO,EAAE;QACV,OAAO;KACV;IAED,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC,CAAC","sourcesContent":["const triggerBrowserDownload = (url: string, fileName?: string) => {\n const link = document.createElement(\"a\");\n const downloadUrl = new URL(url, window.location.origin);\n downloadUrl.searchParams.set(\"disposition\", \"attachment\");\n link.href = downloadUrl.toString();\n link.download = fileName || \"\";\n document.body.appendChild(link);\n link.click() ;\n document.body.removeChild(link);\n};\n\nexport const downloadMediaFile = (fileUrl: string, fileName?: string) => {\n if (!fileUrl) {\n return;\n }\n\n triggerBrowserDownload(fileUrl, fileName);\n};\n"]}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
import { env } from "../adapters/env";
|
|
3
|
-
|
|
4
|
-
export const downloadMediaFile = (fileUrl: string, fileName?: string) => {
|
|
1
|
+
const triggerBrowserDownload = (url: string, fileName?: string) => {
|
|
5
2
|
const link = document.createElement("a");
|
|
6
|
-
|
|
3
|
+
const downloadUrl = new URL(url, window.location.origin);
|
|
4
|
+
downloadUrl.searchParams.set("disposition", "attachment");
|
|
5
|
+
link.href = downloadUrl.toString();
|
|
7
6
|
link.download = fileName || "";
|
|
8
|
-
link.target = "_blank";
|
|
9
7
|
document.body.appendChild(link);
|
|
10
|
-
link.click();
|
|
8
|
+
link.click() ;
|
|
11
9
|
document.body.removeChild(link);
|
|
12
10
|
};
|
|
11
|
+
|
|
12
|
+
export const downloadMediaFile = (fileUrl: string, fileName?: string) => {
|
|
13
|
+
if (!fileUrl) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
triggerBrowserDownload(fileUrl, fileName);
|
|
18
|
+
};
|
|
@@ -2,9 +2,10 @@ type FileTypeIconTone = {
|
|
|
2
2
|
bg: string;
|
|
3
3
|
corner: string;
|
|
4
4
|
};
|
|
5
|
-
export declare const getFileTypeIconTone: (fileUrl: string) => FileTypeIconTone;
|
|
6
|
-
export declare const SolidFileTypeIcon: ({ fileUrl, size, className }: {
|
|
5
|
+
export declare const getFileTypeIconTone: (fileUrl: string, fileName?: string) => FileTypeIconTone;
|
|
6
|
+
export declare const SolidFileTypeIcon: ({ fileUrl, fileName, size, className }: {
|
|
7
7
|
fileUrl: string;
|
|
8
|
+
fileName?: string | undefined;
|
|
8
9
|
size?: number | undefined;
|
|
9
10
|
className?: string | undefined;
|
|
10
11
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileTypeIcon.d.ts","sourceRoot":"","sources":["../../src/helpers/fileTypeIcon.tsx"],"names":[],"mappings":"AAEA,KAAK,gBAAgB,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"fileTypeIcon.d.ts","sourceRoot":"","sources":["../../src/helpers/fileTypeIcon.tsx"],"names":[],"mappings":"AAEA,KAAK,gBAAgB,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAkCF,eAAO,MAAM,mBAAmB,YAAa,MAAM,aAAa,MAAM,qBAGrE,CAAC;AAEF,eAAO,MAAM,iBAAiB;aAA4D,MAAM;;;;6CAyB/F,CAAC"}
|
|
@@ -19,19 +19,23 @@ var FILE_TYPE_ICON_MAP = {
|
|
|
19
19
|
ogg: { bg: "#DB2777", corner: "#F9A8D4" },
|
|
20
20
|
wav: { bg: "#DB2777", corner: "#F9A8D4" }
|
|
21
21
|
};
|
|
22
|
-
var getFileExtension = function (fileUrl) {
|
|
22
|
+
var getFileExtension = function (fileName, fileUrl) {
|
|
23
23
|
var _a, _b;
|
|
24
|
-
var
|
|
25
|
-
|
|
24
|
+
var value = fileName || fileUrl;
|
|
25
|
+
if (!value) {
|
|
26
|
+
return "";
|
|
27
|
+
}
|
|
28
|
+
var cleanValue = value.split("?")[0];
|
|
29
|
+
return (_b = (_a = cleanValue.split(".").pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : "";
|
|
26
30
|
};
|
|
27
|
-
export var getFileTypeIconTone = function (fileUrl) {
|
|
31
|
+
export var getFileTypeIconTone = function (fileUrl, fileName) {
|
|
28
32
|
var _a;
|
|
29
|
-
var extension = getFileExtension(fileUrl);
|
|
33
|
+
var extension = getFileExtension(fileName, fileUrl);
|
|
30
34
|
return (_a = FILE_TYPE_ICON_MAP[extension]) !== null && _a !== void 0 ? _a : DEFAULT_FILE_ICON;
|
|
31
35
|
};
|
|
32
36
|
export var SolidFileTypeIcon = function (_a) {
|
|
33
|
-
var fileUrl = _a.fileUrl, _b = _a.size, size = _b === void 0 ? 24 : _b, className = _a.className;
|
|
34
|
-
var icon = getFileTypeIconTone(fileUrl);
|
|
37
|
+
var fileUrl = _a.fileUrl, fileName = _a.fileName, _b = _a.size, size = _b === void 0 ? 24 : _b, className = _a.className;
|
|
38
|
+
var icon = getFileTypeIconTone(fileUrl, fileName);
|
|
35
39
|
return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 32 32", fill: "none", className: className, "aria-hidden": true, children: [_jsx("path", { d: "M7.5 2.5h12L26 9v19.5a2 2 0 0 1-2 2H7.5a2 2 0 0 1-2-2v-24a2 2 0 0 1 2-2Z", fill: icon.bg }), _jsx("path", { d: "M19.5 2.5V8a1 1 0 0 0 1 1H26L19.5 2.5Z", fill: icon.corner }), _jsx("path", { d: "M9.5 12.25h9.5M9.5 15.25h12", stroke: "rgba(255,255,255,0.42)", strokeWidth: "1.4", strokeLinecap: "round" }), _jsx("rect", { x: "7.5", y: "18", width: "17", height: "7.5", rx: "1.5", fill: "rgba(255,255,255,0.2)" })] }));
|
|
36
40
|
};
|
|
37
41
|
//# sourceMappingURL=fileTypeIcon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileTypeIcon.js","sourceRoot":"","sources":["../../src/helpers/fileTypeIcon.tsx"],"names":[],"mappings":";AAOA,IAAM,iBAAiB,GAAqB;IACxC,EAAE,EAAE,SAAS;IACb,MAAM,EAAE,SAAS;CACpB,CAAC;AAEF,IAAM,kBAAkB,GAAqC;IACzD,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IACzC,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IACzC,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IACzC,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC1C,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IACzC,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC1C,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IACzC,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IACzC,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC1C,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IACzC,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IACzC,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC1C,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IACzC,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;CAC5C,CAAC;AAEF,IAAM,gBAAgB,GAAG,UAAC,
|
|
1
|
+
{"version":3,"file":"fileTypeIcon.js","sourceRoot":"","sources":["../../src/helpers/fileTypeIcon.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\ntype FileTypeIconTone = {\n bg: string;\n corner: string;\n};\n\nconst DEFAULT_FILE_ICON: FileTypeIconTone = {\n bg: \"#64748B\",\n corner: \"#CBD5E1\"\n};\n\nconst FILE_TYPE_ICON_MAP: Record<string, FileTypeIconTone> = {\n pdf: { bg: \"#DC2626\", corner: \"#FCA5A5\" },\n txt: { bg: \"#475569\", corner: \"#CBD5E1\" },\n doc: { bg: \"#2563EB\", corner: \"#93C5FD\" },\n docx: { bg: \"#2563EB\", corner: \"#93C5FD\" },\n xls: { bg: \"#16A34A\", corner: \"#86EFAC\" },\n xlsx: { bg: \"#16A34A\", corner: \"#86EFAC\" },\n csv: { bg: \"#059669\", corner: \"#A7F3D0\" },\n ppt: { bg: \"#EA580C\", corner: \"#FDBA74\" },\n pptx: { bg: \"#EA580C\", corner: \"#FDBA74\" },\n zip: { bg: \"#7C3AED\", corner: \"#C4B5FD\" },\n rar: { bg: \"#7C3AED\", corner: \"#C4B5FD\" },\n webm: { bg: \"#4F46E5\", corner: \"#A5B4FC\" },\n ogg: { bg: \"#DB2777\", corner: \"#F9A8D4\" },\n wav: { bg: \"#DB2777\", corner: \"#F9A8D4\" }\n};\n\nconst getFileExtension = (fileName?: string, fileUrl?: string) => {\n const value = fileName || fileUrl;\n if (!value) {\n return \"\";\n }\n\n const cleanValue = value.split(\"?\")[0];\n return cleanValue.split(\".\").pop()?.toLowerCase() ?? \"\";\n};\n\nexport const getFileTypeIconTone = (fileUrl: string, fileName?: string) => {\n const extension = getFileExtension(fileName, fileUrl);\n return FILE_TYPE_ICON_MAP[extension] ?? DEFAULT_FILE_ICON;\n};\n\nexport const SolidFileTypeIcon = ({ fileUrl, fileName, size = 24, className }: { fileUrl: string; fileName?: string; size?: number; className?: string }) => {\n const icon = getFileTypeIconTone(fileUrl, fileName);\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n className={className}\n aria-hidden\n >\n <path\n d=\"M7.5 2.5h12L26 9v19.5a2 2 0 0 1-2 2H7.5a2 2 0 0 1-2-2v-24a2 2 0 0 1 2-2Z\"\n fill={icon.bg}\n />\n <path\n d=\"M19.5 2.5V8a1 1 0 0 0 1 1H26L19.5 2.5Z\"\n fill={icon.corner}\n />\n <path d=\"M9.5 12.25h9.5M9.5 15.25h12\" stroke=\"rgba(255,255,255,0.42)\" strokeWidth=\"1.4\" strokeLinecap=\"round\" />\n <rect x=\"7.5\" y=\"18\" width=\"17\" height=\"7.5\" rx=\"1.5\" fill=\"rgba(255,255,255,0.2)\" />\n </svg>\n );\n};\n"]}
|
|
@@ -27,18 +27,23 @@ const FILE_TYPE_ICON_MAP: Record<string, FileTypeIconTone> = {
|
|
|
27
27
|
wav: { bg: "#DB2777", corner: "#F9A8D4" }
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
const getFileExtension = (fileUrl
|
|
31
|
-
const
|
|
32
|
-
|
|
30
|
+
const getFileExtension = (fileName?: string, fileUrl?: string) => {
|
|
31
|
+
const value = fileName || fileUrl;
|
|
32
|
+
if (!value) {
|
|
33
|
+
return "";
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const cleanValue = value.split("?")[0];
|
|
37
|
+
return cleanValue.split(".").pop()?.toLowerCase() ?? "";
|
|
33
38
|
};
|
|
34
39
|
|
|
35
|
-
export const getFileTypeIconTone = (fileUrl: string) => {
|
|
36
|
-
const extension = getFileExtension(fileUrl);
|
|
40
|
+
export const getFileTypeIconTone = (fileUrl: string, fileName?: string) => {
|
|
41
|
+
const extension = getFileExtension(fileName, fileUrl);
|
|
37
42
|
return FILE_TYPE_ICON_MAP[extension] ?? DEFAULT_FILE_ICON;
|
|
38
43
|
};
|
|
39
44
|
|
|
40
|
-
export const SolidFileTypeIcon = ({ fileUrl, size = 24, className }: { fileUrl: string; size?: number; className?: string }) => {
|
|
41
|
-
const icon = getFileTypeIconTone(fileUrl);
|
|
45
|
+
export const SolidFileTypeIcon = ({ fileUrl, fileName, size = 24, className }: { fileUrl: string; fileName?: string; size?: number; className?: string }) => {
|
|
46
|
+
const icon = getFileTypeIconTone(fileUrl, fileName);
|
|
42
47
|
|
|
43
48
|
return (
|
|
44
49
|
<svg
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
export type MediaKind = "image" | "video" | "audio";
|
|
2
|
+
export type MediaPreviewKind = MediaKind | "file";
|
|
3
|
+
export declare const getMediaPreviewKind: ({ url, fileName, mimeType }: {
|
|
4
|
+
url?: string | undefined;
|
|
5
|
+
fileName?: string | undefined;
|
|
6
|
+
mimeType?: string | undefined;
|
|
7
|
+
}) => MediaPreviewKind;
|
|
8
|
+
export declare const isLightboxMediaKind: (mediaKind: MediaPreviewKind) => mediaKind is "video" | "image";
|
|
2
9
|
export declare const getMediaTypeFromUrl: (url?: string) => MediaKind;
|
|
3
10
|
//# sourceMappingURL=mediaType.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaType.d.ts","sourceRoot":"","sources":["../../src/helpers/mediaType.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mediaType.d.ts","sourceRoot":"","sources":["../../src/helpers/mediaType.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AACpD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAAC;AAyClD,eAAO,MAAM,mBAAmB;;;;MAA0F,gBAEzH,CAAC;AAEF,eAAO,MAAM,mBAAmB,cACnB,gBAAgB,mCACsD,CAAC;AAEpF,eAAO,MAAM,mBAAmB,SAAU,MAAM,KAAG,SAOlD,CAAC"}
|
|
@@ -1,19 +1,50 @@
|
|
|
1
|
+
var imageExtensions = ["jpg", "jpeg", "png", "gif", "bmp", "webp", "svg", "avif"];
|
|
1
2
|
var videoExtensions = ["mp4", "webm", "ogg", "mov", "m4v"];
|
|
2
3
|
var audioExtensions = ["mp3", "wav", "m4a", "aac", "oga"];
|
|
3
|
-
|
|
4
|
-
var _a;
|
|
5
|
-
if (!
|
|
4
|
+
var getMediaExtension = function (value) {
|
|
5
|
+
var _a, _b;
|
|
6
|
+
if (!value)
|
|
7
|
+
return "";
|
|
8
|
+
var cleanValue = value.split("?")[0];
|
|
9
|
+
return (_b = (_a = cleanValue.split(".").pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : "";
|
|
10
|
+
};
|
|
11
|
+
var getMediaKind = function (_a) {
|
|
12
|
+
var url = _a.url, fileName = _a.fileName, mimeType = _a.mimeType;
|
|
13
|
+
var normalizedMimeType = String(mimeType || "").toLowerCase();
|
|
14
|
+
if (normalizedMimeType.startsWith("image/")) {
|
|
6
15
|
return "image";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
16
|
+
}
|
|
17
|
+
if (normalizedMimeType.startsWith("video/")) {
|
|
18
|
+
return "video";
|
|
19
|
+
}
|
|
20
|
+
if (normalizedMimeType.startsWith("audio/")) {
|
|
21
|
+
return "audio";
|
|
22
|
+
}
|
|
23
|
+
var extension = getMediaExtension(fileName) || getMediaExtension(url);
|
|
24
|
+
if (!extension)
|
|
25
|
+
return null;
|
|
26
|
+
if (imageExtensions.includes(extension)) {
|
|
10
27
|
return "image";
|
|
11
|
-
|
|
28
|
+
}
|
|
29
|
+
if (videoExtensions.includes(extension)) {
|
|
12
30
|
return "video";
|
|
13
31
|
}
|
|
14
|
-
if (audioExtensions.includes(
|
|
32
|
+
if (audioExtensions.includes(extension)) {
|
|
15
33
|
return "audio";
|
|
16
34
|
}
|
|
35
|
+
return null;
|
|
36
|
+
};
|
|
37
|
+
export var getMediaPreviewKind = function (_a) {
|
|
38
|
+
var _b;
|
|
39
|
+
var url = _a.url, fileName = _a.fileName, mimeType = _a.mimeType;
|
|
40
|
+
return (_b = getMediaKind({ url: url, fileName: fileName, mimeType: mimeType })) !== null && _b !== void 0 ? _b : "file";
|
|
41
|
+
};
|
|
42
|
+
export var isLightboxMediaKind = function (mediaKind) { return mediaKind === "image" || mediaKind === "video"; };
|
|
43
|
+
export var getMediaTypeFromUrl = function (url) {
|
|
44
|
+
var mediaKind = getMediaKind({ url: url });
|
|
45
|
+
if (mediaKind === "video" || mediaKind === "audio") {
|
|
46
|
+
return mediaKind;
|
|
47
|
+
}
|
|
17
48
|
return "image";
|
|
18
49
|
};
|
|
19
50
|
//# sourceMappingURL=mediaType.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaType.js","sourceRoot":"","sources":["../../src/helpers/mediaType.ts"],"names":[],"mappings":"AAAA,IAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"mediaType.js","sourceRoot":"","sources":["../../src/helpers/mediaType.ts"],"names":[],"mappings":"AAAA,IAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACpF,IAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7D,IAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAK5D,IAAM,iBAAiB,GAAG,UAAC,KAAc;;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,IAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,MAAA,MAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,0CAAE,WAAW,EAAE,mCAAI,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEF,IAAM,YAAY,GAAG,UAAC,EAAoF;QAAlF,GAAG,SAAA,EAAE,QAAQ,cAAA,EAAE,QAAQ,cAAA;IAC7C,IAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,IAAI,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC3C,OAAO,OAAO,CAAC;KAChB;IAED,IAAI,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC3C,OAAO,OAAO,CAAC;KAChB;IAED,IAAI,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC3C,OAAO,OAAO,CAAC;KAChB;IAED,IAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACvC,OAAO,OAAO,CAAC;KAChB;IAED,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACvC,OAAO,OAAO,CAAC;KAChB;IAED,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACvC,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,EAAmF;;QAAjF,GAAG,SAAA,EAAE,QAAQ,cAAA,EAAE,QAAQ,cAAA;IAC3D,OAAO,MAAA,YAAY,CAAC,EAAE,GAAG,KAAA,EAAE,QAAQ,UAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,mCAAI,MAAM,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,mBAAmB,GAAG,UACjC,SAA2B,IACQ,OAAA,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,EAA9C,CAA8C,CAAC;AAEpF,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,GAAY;IAC9C,IAAM,SAAS,GAAG,YAAY,CAAC,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;IACxC,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,EAAE;QAClD,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC","sourcesContent":["const imageExtensions = [\"jpg\", \"jpeg\", \"png\", \"gif\", \"bmp\", \"webp\", \"svg\", \"avif\"];\nconst videoExtensions = [\"mp4\", \"webm\", \"ogg\", \"mov\", \"m4v\"];\nconst audioExtensions = [\"mp3\", \"wav\", \"m4a\", \"aac\", \"oga\"];\n\nexport type MediaKind = \"image\" | \"video\" | \"audio\";\nexport type MediaPreviewKind = MediaKind | \"file\";\n\nconst getMediaExtension = (value?: string): string => {\n if (!value) return \"\";\n\n const cleanValue = value.split(\"?\")[0];\n return cleanValue.split(\".\").pop()?.toLowerCase() ?? \"\";\n};\n\nconst getMediaKind = ({ url, fileName, mimeType }: { url?: string; fileName?: string; mimeType?: string; }): MediaKind | null => {\n const normalizedMimeType = String(mimeType || \"\").toLowerCase();\n if (normalizedMimeType.startsWith(\"image/\")) {\n return \"image\";\n }\n\n if (normalizedMimeType.startsWith(\"video/\")) {\n return \"video\";\n }\n\n if (normalizedMimeType.startsWith(\"audio/\")) {\n return \"audio\";\n }\n\n const extension = getMediaExtension(fileName) || getMediaExtension(url);\n if (!extension) return null;\n\n if (imageExtensions.includes(extension)) {\n return \"image\";\n }\n\n if (videoExtensions.includes(extension)) {\n return \"video\";\n }\n\n if (audioExtensions.includes(extension)) {\n return \"audio\";\n }\n\n return null;\n};\n\nexport const getMediaPreviewKind = ({ url, fileName, mimeType}: { url?: string; fileName?: string; mimeType?: string; }): MediaPreviewKind => {\n return getMediaKind({ url, fileName, mimeType }) ?? \"file\";\n};\n\nexport const isLightboxMediaKind = (\n mediaKind: MediaPreviewKind\n): mediaKind is \"image\" | \"video\" => mediaKind === \"image\" || mediaKind === \"video\";\n\nexport const getMediaTypeFromUrl = (url?: string): MediaKind => {\n const mediaKind = getMediaKind({ url });\n if (mediaKind === \"video\" || mediaKind === \"audio\") {\n return mediaKind;\n }\n\n return \"image\";\n};\n"]}
|
|
@@ -1,23 +1,62 @@
|
|
|
1
|
+
const imageExtensions = ["jpg", "jpeg", "png", "gif", "bmp", "webp", "svg", "avif"];
|
|
1
2
|
const videoExtensions = ["mp4", "webm", "ogg", "mov", "m4v"];
|
|
2
3
|
const audioExtensions = ["mp3", "wav", "m4a", "aac", "oga"];
|
|
3
4
|
|
|
4
5
|
export type MediaKind = "image" | "video" | "audio";
|
|
6
|
+
export type MediaPreviewKind = MediaKind | "file";
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
if (!
|
|
8
|
+
const getMediaExtension = (value?: string): string => {
|
|
9
|
+
if (!value) return "";
|
|
10
|
+
|
|
11
|
+
const cleanValue = value.split("?")[0];
|
|
12
|
+
return cleanValue.split(".").pop()?.toLowerCase() ?? "";
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const getMediaKind = ({ url, fileName, mimeType }: { url?: string; fileName?: string; mimeType?: string; }): MediaKind | null => {
|
|
16
|
+
const normalizedMimeType = String(mimeType || "").toLowerCase();
|
|
17
|
+
if (normalizedMimeType.startsWith("image/")) {
|
|
18
|
+
return "image";
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (normalizedMimeType.startsWith("video/")) {
|
|
22
|
+
return "video";
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (normalizedMimeType.startsWith("audio/")) {
|
|
26
|
+
return "audio";
|
|
27
|
+
}
|
|
8
28
|
|
|
9
|
-
const
|
|
10
|
-
|
|
29
|
+
const extension = getMediaExtension(fileName) || getMediaExtension(url);
|
|
30
|
+
if (!extension) return null;
|
|
11
31
|
|
|
12
|
-
if (
|
|
32
|
+
if (imageExtensions.includes(extension)) {
|
|
33
|
+
return "image";
|
|
34
|
+
}
|
|
13
35
|
|
|
14
|
-
if (videoExtensions.includes(
|
|
36
|
+
if (videoExtensions.includes(extension)) {
|
|
15
37
|
return "video";
|
|
16
38
|
}
|
|
17
39
|
|
|
18
|
-
if (audioExtensions.includes(
|
|
40
|
+
if (audioExtensions.includes(extension)) {
|
|
19
41
|
return "audio";
|
|
20
42
|
}
|
|
21
43
|
|
|
44
|
+
return null;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export const getMediaPreviewKind = ({ url, fileName, mimeType}: { url?: string; fileName?: string; mimeType?: string; }): MediaPreviewKind => {
|
|
48
|
+
return getMediaKind({ url, fileName, mimeType }) ?? "file";
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const isLightboxMediaKind = (
|
|
52
|
+
mediaKind: MediaPreviewKind
|
|
53
|
+
): mediaKind is "image" | "video" => mediaKind === "image" || mediaKind === "video";
|
|
54
|
+
|
|
55
|
+
export const getMediaTypeFromUrl = (url?: string): MediaKind => {
|
|
56
|
+
const mediaKind = getMediaKind({ url });
|
|
57
|
+
if (mediaKind === "video" || mediaKind === "audio") {
|
|
58
|
+
return mediaKind;
|
|
59
|
+
}
|
|
60
|
+
|
|
22
61
|
return "image";
|
|
23
62
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaUrl.d.ts","sourceRoot":"","sources":["../../src/helpers/mediaUrl.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,WAAY,MAAM,SAU/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaUrl.js","sourceRoot":"","sources":["../../src/helpers/mediaUrl.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,KAAc;IAC5C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QAC/B,OAAO;KACV;IAED,IAAI,CAAC,KAAK,EAAE;QACR,OAAO;KACV;IAED,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;AACxD,CAAC,CAAC","sourcesContent":["export const openMediaInNewTab = (value?: string) => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n if (!value) {\n return;\n }\n\n window.open(value, \"_blank\", \"noopener,noreferrer\");\n};\n"]}
|
|
@@ -878,6 +878,20 @@ html.dark .solid-react-datepicker-calendar .react-datepicker__month-year-read-vi
|
|
|
878
878
|
word-break: break-word;
|
|
879
879
|
}
|
|
880
880
|
|
|
881
|
+
.solid-popover-content.solid-field-tooltip-popover {
|
|
882
|
+
z-index: 9999;
|
|
883
|
+
border: none;
|
|
884
|
+
border-radius: 6px;
|
|
885
|
+
background: #111827;
|
|
886
|
+
color: #fff;
|
|
887
|
+
padding: 6px 8px;
|
|
888
|
+
font-size: 12px;
|
|
889
|
+
line-height: 1.3;
|
|
890
|
+
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
|
|
891
|
+
max-width: 280px;
|
|
892
|
+
word-break: break-word;
|
|
893
|
+
}
|
|
894
|
+
|
|
881
895
|
.form-wrapper-subtitle {
|
|
882
896
|
font-size: 0.75rem !important;
|
|
883
897
|
font-weight: 700;
|