@webiny/app-headless-cms 6.4.11 → 6.4.12-beta.1

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.
Files changed (56) hide show
  1. package/HeadlessCMS.js +1 -1
  2. package/HeadlessCMS.js.map +1 -1
  3. package/admin/components/ContentEntries/BulkActions/ActionDelete.d.ts +2 -2
  4. package/admin/components/ContentEntries/BulkActions/ActionMove.d.ts +2 -2
  5. package/admin/components/ContentEntries/BulkActions/ActionPublish.d.ts +2 -2
  6. package/admin/components/ContentEntries/BulkActions/ActionUnpublish.d.ts +2 -2
  7. package/admin/components/ContentModelEditor/ContentModelEditor.js +1 -1
  8. package/admin/components/ContentModelEditor/ContentModelEditor.js.map +1 -1
  9. package/admin/components/FieldEditor/Field.js +4 -4
  10. package/admin/components/FieldEditor/Field.js.map +1 -1
  11. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js +5 -5
  12. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js.map +1 -1
  13. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js +4 -4
  14. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js.map +1 -1
  15. package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.js +2 -3
  16. package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.js.map +1 -1
  17. package/admin/plugins/fieldRenderers/ref/components/helpers.js +1 -1
  18. package/admin/plugins/fieldRenderers/ref/components/helpers.js.map +1 -1
  19. package/admin/plugins/fieldRenderers/ref/components/useReference.js +1 -1
  20. package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
  21. package/admin/plugins/fieldValidators/date/availableValidators.js +1 -1
  22. package/admin/plugins/fieldValidators/date/availableValidators.js.map +1 -1
  23. package/admin/plugins/fieldValidators/date/createDateInputField.js +2 -2
  24. package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -1
  25. package/admin/plugins/fieldValidators/dateGte.js +1 -1
  26. package/admin/plugins/fieldValidators/dateGte.js.map +1 -1
  27. package/admin/plugins/fieldValidators/dateLte.js +1 -1
  28. package/admin/plugins/fieldValidators/dateLte.js.map +1 -1
  29. package/admin/plugins/fields/ref/renderInfo.js +1 -1
  30. package/admin/plugins/fields/ref/renderInfo.js.map +1 -1
  31. package/admin/plugins/transformers/dateTransformer.js +5 -5
  32. package/admin/plugins/transformers/dateTransformer.js.map +1 -1
  33. package/admin/plugins/transformers/numberTransformer.js +1 -1
  34. package/admin/plugins/transformers/numberTransformer.js.map +1 -1
  35. package/admin/views/contentEntries/ContentEntriesContainer.js +1 -1
  36. package/admin/views/contentEntries/ContentEntriesContainer.js.map +1 -1
  37. package/admin/views/contentModels/exporting/runExport.js +2 -4
  38. package/admin/views/contentModels/exporting/runExport.js.map +1 -1
  39. package/admin/views/contentModels/exporting/useModelExport.js +1 -1
  40. package/admin/views/contentModels/exporting/useModelExport.js.map +1 -1
  41. package/admin/views/contentModels/fullDelete/dialog/Content.js +2 -2
  42. package/admin/views/contentModels/fullDelete/dialog/Content.js.map +1 -1
  43. package/admin/views/contentModels/fullDelete/dialog/process.js +2 -2
  44. package/admin/views/contentModels/fullDelete/dialog/process.js.map +1 -1
  45. package/admin/views/contentModels/fullDelete/types.js.map +1 -1
  46. package/admin/views/contentModels/helpers/apiNameValidator.js +1 -1
  47. package/admin/views/contentModels/helpers/apiNameValidator.js.map +1 -1
  48. package/admin/views/contentModels/importing/ImportContext.js +6 -6
  49. package/admin/views/contentModels/importing/ImportContext.js.map +1 -1
  50. package/admin/views/contentModels/importing/components/FileUpload.js +1 -1
  51. package/admin/views/contentModels/importing/components/FileUpload.js.map +1 -1
  52. package/admin/views/contentModels/importing/components/Model/DataListModelItem.js +3 -3
  53. package/admin/views/contentModels/importing/components/Model/DataListModelItem.js.map +1 -1
  54. package/admin/views/contentModels/importing/components/Model/DataListModelItemInfo.js +2 -2
  55. package/admin/views/contentModels/importing/components/Model/DataListModelItemInfo.js.map +1 -1
  56. package/package.json +31 -31
@@ -1 +1 @@
1
- {"version":3,"file":"admin/views/contentModels/importing/ImportContext.js","sources":["../../../../../src/admin/views/contentModels/importing/ImportContext.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks/index.js\";\nimport type {\n ImportStructureResponse,\n ImportStructureVariables,\n ImportStructureVariablesGroup,\n ImportStructureVariablesModel,\n ValidateImportStructureResponse\n} from \"~/admin/views/contentModels/importing/graphql.js\";\nimport {\n IMPORT_STRUCTURE,\n VALIDATE_IMPORT_STRUCTURE\n} from \"~/admin/views/contentModels/importing/graphql.js\";\nimport type { CmsGroup, CmsModel } from \"@webiny/app-headless-cms-common/types/index.js\";\nimport type { ImportGroupData, ImportModelData } from \"./types.js\";\nimport { ImportAction } from \"./types.js\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport type { FetchResult } from \"apollo-link\";\n\nconst parseFileData = (input: string) => {\n let data: Record<string, any> = {};\n try {\n data = JSON.parse(input);\n } catch {\n throw new Error(`Could not parse the uploaded file. Make sure it's a valid JSON file.`);\n }\n if (!data.groups?.length && !data.models?.length) {\n throw new Error(`No groups and models in the uploaded file.`);\n } else if (data.groups.length === 0) {\n throw new Error(`No groups in the uploaded file. There must be at least one group.`);\n }\n return {\n groups: data.groups,\n models: data.models\n };\n};\n\nconst parseFileContent = (content?: string | ArrayBuffer | null) => {\n if (!content) {\n throw new Error(`Missing data in uploaded file.`);\n } else if (content instanceof ArrayBuffer) {\n const data = Buffer.from(content).toString(\"utf8\");\n return parseFileData(data);\n }\n return parseFileData(content);\n};\n\ninterface Data {\n groups: CmsGroup[];\n models: CmsModel[];\n}\n\ntype Selected = Map<string, string[]>;\n\ninterface State {\n data: Data | null;\n loading: boolean;\n groups?: ImportGroupData[];\n models?: ImportModelData[];\n file: File | null;\n errors?: string[] | null;\n validated: boolean;\n selected: Selected;\n}\n\nexport interface OnFileCb {\n (file: File): void;\n}\n\nexport interface OnFileErrorCb {\n (error: string): void;\n}\n\nexport interface HandleModelsValidationCb {\n (): Promise<void>;\n}\n\nexport interface HandleModelsImportCb {\n (): Promise<void>;\n}\n\nexport interface IsModelSelectedCb {\n (item: Pick<ImportModelData, \"id\">): boolean;\n}\n\nexport interface IsModelRelatedCb {\n (item: Pick<ImportModelData, \"id\">): boolean;\n}\n\nexport interface AddModelCb {\n (item: Pick<ImportModelData, \"id\" | \"name\" | \"related\">): void;\n}\n\nexport interface RemoveModelCb {\n (item: Pick<ImportModelData, \"id\" | \"name\" | \"related\">): void;\n}\n\nexport interface ToggleModelCb {\n (item: Pick<ImportModelData, \"id\" | \"name\" | \"related\">): void;\n}\n\nexport interface ImportContextProperties {\n data: Data | null;\n loading: boolean;\n groups?: ImportGroupData[];\n models?: ImportModelData[];\n hasSelected: () => boolean;\n file: File | null;\n errors: string[];\n validated: boolean;\n onFile: OnFileCb;\n onFileError: OnFileErrorCb;\n handleModelsValidation: HandleModelsValidationCb;\n handleModelsImport: HandleModelsImportCb;\n toggleModel: ToggleModelCb;\n isModelSelected: IsModelSelectedCb;\n isModelRelated: IsModelRelatedCb;\n}\n\ninterface CreateSelectedParams {\n previous: Selected;\n models: Pick<ImportModelData, \"id\" | \"related\" | \"imported\">[];\n item: Pick<ImportModelData, \"id\" | \"related\">;\n}\n\nconst createSelected = (params: CreateSelectedParams): Selected => {\n const { previous, models, item } = params;\n let selected = new Map(previous);\n\n selected.set(item.id, item.related);\n for (const id of item.related) {\n const model = models.find(model => model.id === id);\n if (!model) {\n continue;\n } else if (selected.has(model.id) || model.imported) {\n continue;\n }\n const related = createSelected({\n previous: selected,\n models,\n item: model\n });\n selected = new Map([...selected, ...related]);\n }\n\n return selected;\n};\n\ninterface DataToImportResult {\n groups: ImportStructureVariablesGroup[];\n models: ImportStructureVariablesModel[];\n}\n\nconst getDataToImport = (state: State): DataToImportResult => {\n const selected = Array.from(state.selected.keys());\n\n const groups: Map<string, ImportStructureVariablesGroup> = new Map();\n const models: Map<string, ImportStructureVariablesModel> = new Map();\n const noAction = [ImportAction.CODE, ImportAction.NONE];\n\n for (const id of selected) {\n const validatedModel = state.models?.find(model => model.id === id);\n if (\n !validatedModel?.action ||\n validatedModel.error ||\n noAction.includes(validatedModel.action)\n ) {\n continue;\n }\n const validatedGroup = state.groups?.find(group => group.slug === validatedModel.group);\n if (!validatedGroup?.action || validatedGroup.error) {\n continue;\n }\n\n const model = state.data?.models?.find(model => model.modelId === id);\n if (!model) {\n continue;\n }\n models.set(id, {\n ...model,\n layout: model.layout || [],\n titleFieldId: model.titleFieldId || \"id\",\n descriptionFieldId: model.descriptionFieldId || \"\",\n imageFieldId: model.imageFieldId || \"\",\n group: validatedModel.group\n });\n\n if (noAction.includes(validatedGroup.action)) {\n continue;\n }\n\n const group = state.data?.groups?.find(group => group.slug === validatedModel.group);\n if (!group) {\n continue;\n }\n groups.set(group.id, group);\n }\n\n return {\n groups: Array.from(groups.values()),\n models: Array.from(models.values())\n };\n};\n\nexport const ImportContext = React.createContext<ImportContextProperties | undefined>(undefined);\n\nexport interface ImportContextProviderProps {\n children: (props: ImportContextProperties) => React.ReactNode;\n}\n\nexport const ImportContextProvider = ({ children }: ImportContextProviderProps) => {\n const client = useApolloClient();\n\n const { showSnackbar } = useSnackbar();\n\n const [state, setState] = useState<State>({\n data: null,\n file: null,\n loading: false,\n validated: false,\n selected: new Map()\n });\n\n const hasSelected = useCallback(() => {\n return Array.from(state.selected.keys()).length > 0;\n }, [state.selected]);\n\n const handleModelsValidation = useCallback(async () => {\n if (!state.data) {\n console.error(\"Cannot import models without any data.\");\n return;\n }\n setState(prev => {\n return {\n ...prev,\n loading: true\n };\n });\n\n let result: FetchResult<ValidateImportStructureResponse> | undefined;\n try {\n result = await client.mutate<ValidateImportStructureResponse>({\n mutation: VALIDATE_IMPORT_STRUCTURE,\n variables: {\n data: state.data\n }\n });\n } catch (ex) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n errors: [ex.message]\n };\n });\n return;\n }\n\n const { data, error } = result.data?.validateImportStructure || {};\n if (error) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n errors: [error.message]\n };\n });\n return;\n } else if (!data) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n errors: [\"No validation data received.\"]\n };\n });\n return;\n }\n setState(prev => {\n const next = {\n ...prev,\n loading: false,\n groups: data.groups.map(group => {\n return {\n id: group.group.id,\n name: group.group.name,\n slug: group.group.slug,\n error: group.error,\n action: group.action\n };\n }),\n models: data.models.map(model => {\n return {\n id: model.model.modelId,\n name: model.model.name,\n group: model.model.group,\n related: model.related || [],\n error: model.error,\n action: model.action\n };\n }),\n validated: true\n };\n return next;\n });\n }, [state.data, setState]);\n\n const handleModelsImport = useCallback(async () => {\n if (!state.data) {\n console.error(\"Cannot import models without any data.\");\n return;\n } else if (!state.groups?.length) {\n console.error(\"Cannot import models without any groups.\");\n return;\n } else if (!state.models?.length) {\n console.error(\"Cannot import models because none are selected.\");\n return;\n } else if (Array.from(state.selected.keys()).length === 0) {\n console.error(\"Cannot import models because none are selected.\");\n return;\n }\n setState(prev => {\n return {\n ...prev,\n loading: true\n };\n });\n\n const dataToImport = getDataToImport(state);\n\n let result: FetchResult<ImportStructureResponse> | undefined;\n try {\n result = await client.mutate<ImportStructureResponse, ImportStructureVariables>({\n mutation: IMPORT_STRUCTURE,\n variables: {\n data: dataToImport\n },\n errorPolicy: \"all\"\n });\n } catch (ex) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n errors: [ex.message]\n };\n });\n return;\n }\n const { data, error } = result.data?.importStructure || {};\n if (error) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n errors: [error.message]\n };\n });\n return;\n } else if (!data) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n validated: false,\n errors: [\"No structure import data received.\"]\n };\n });\n return;\n }\n setState(prev => {\n return {\n ...prev,\n loading: false,\n selected: new Map(),\n groups: state.groups!.map(group => {\n const result = data.groups.find(item => item.group.id === group.id);\n return {\n id: result?.group.id || group.id,\n name: result?.group.name || group.name,\n slug: result?.group.slug || group.slug,\n error: result?.error || group.error,\n imported: result ? result.imported : group.imported\n };\n }),\n models: state.models!.map(model => {\n const result = data.models.find(item => item.model.modelId === model.id);\n return {\n id: result?.model.modelId || model.id,\n name: result?.model.name || model.name,\n group: result?.model.group || model.group,\n related: result?.related || model.related || [],\n action: result?.action || model.action,\n error: result?.error || model.error,\n imported: result ? result.imported : model.imported\n };\n }),\n validated: true\n };\n });\n }, [state.selected, state.data, setState]);\n\n const onFile = useCallback(\n (file: File) => {\n const reader = new FileReader();\n reader.addEventListener(\"load\", event => {\n try {\n const data = parseFileContent(event.target?.result);\n setState(prev => {\n return {\n ...prev,\n models: undefined,\n groups: undefined,\n selected: new Map(),\n errors: null,\n validated: false,\n file,\n data\n };\n });\n } catch (ex) {\n setState(prev => {\n return {\n ...prev,\n file,\n selected: new Map(),\n validated: false,\n groups: undefined,\n models: undefined,\n data: null,\n errors: [ex.message]\n };\n });\n }\n });\n reader.readAsText(file);\n },\n [state.data, setState]\n );\n\n const onFileError = useCallback(\n (error: string) => {\n setState(prev => {\n return {\n ...prev,\n file: null,\n errors: [error]\n };\n });\n },\n [state, setState]\n );\n\n const isModelSelected = useCallback<IsModelSelectedCb>(\n item => {\n return state.selected.has(item.id);\n },\n [state.selected]\n );\n\n const isModelRelated = useCallback<IsModelRelatedCb>(\n ({ id: target }) => {\n for (const id of state.selected.keys()) {\n if (id === target) {\n continue;\n }\n const related = state.selected.get(id);\n if (related?.includes(id)) {\n return true;\n }\n }\n return false;\n },\n [state.selected]\n );\n\n const addModel = useCallback<AddModelCb>(\n item => {\n if (isModelSelected(item)) {\n return;\n }\n setState(prev => {\n return {\n ...prev,\n selected: createSelected({\n previous: prev.selected,\n models: state.models || [],\n item\n })\n };\n });\n },\n [isModelSelected, state.models, state.selected]\n );\n const removeModel = useCallback<RemoveModelCb>(\n item => {\n if (isModelRelated(item)) {\n showSnackbar(\n `Model \"${item.name}\" is required due to another model having a relation to it.`\n );\n return;\n }\n setState(prev => {\n const selected = prev.selected;\n selected.delete(item.id);\n return {\n ...prev,\n selected\n };\n });\n },\n [state, setState]\n );\n\n const toggleModel = useCallback<ToggleModelCb>(\n item => {\n if (isModelSelected(item)) {\n removeModel(item);\n return;\n }\n addModel(item);\n },\n [isModelSelected, addModel, removeModel]\n );\n\n const value: ImportContextProperties = {\n data: state.data || null,\n loading: state.loading || false,\n groups: state.groups || [],\n models: state.models || [],\n errors: state.errors || [],\n validated: state.validated || false,\n hasSelected,\n isModelRelated,\n file: state.file,\n onFile,\n onFileError,\n handleModelsValidation,\n handleModelsImport,\n toggleModel,\n isModelSelected\n };\n\n return <ImportContext.Provider value={value}>{children(value)}</ImportContext.Provider>;\n};\n"],"names":["parseFileData","input","data","JSON","Error","parseFileContent","content","ArrayBuffer","Buffer","createSelected","params","previous","models","item","selected","Map","id","model","related","getDataToImport","state","Array","groups","noAction","ImportAction","validatedModel","validatedGroup","group","ImportContext","React","undefined","ImportContextProvider","children","client","useApolloClient","showSnackbar","useSnackbar","setState","useState","hasSelected","useCallback","handleModelsValidation","console","prev","result","VALIDATE_IMPORT_STRUCTURE","ex","error","next","handleModelsImport","dataToImport","IMPORT_STRUCTURE","onFile","file","reader","FileReader","event","onFileError","isModelSelected","isModelRelated","target","addModel","removeModel","toggleModel","value"],"mappings":"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"}
1
+ {"version":3,"file":"admin/views/contentModels/importing/ImportContext.js","sources":["../../../../../src/admin/views/contentModels/importing/ImportContext.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks/index.js\";\nimport type {\n ImportStructureResponse,\n ImportStructureVariables,\n ImportStructureVariablesGroup,\n ImportStructureVariablesModel,\n ValidateImportStructureResponse\n} from \"~/admin/views/contentModels/importing/graphql.js\";\nimport {\n IMPORT_STRUCTURE,\n VALIDATE_IMPORT_STRUCTURE\n} from \"~/admin/views/contentModels/importing/graphql.js\";\nimport type { CmsGroup, CmsModel } from \"@webiny/app-headless-cms-common/types/index.js\";\nimport type { ImportGroupData, ImportModelData } from \"./types.js\";\nimport { ImportAction } from \"./types.js\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport type { FetchResult } from \"apollo-link\";\n\nconst parseFileData = (input: string) => {\n let data: Record<string, any> = {};\n try {\n data = JSON.parse(input);\n } catch {\n throw new Error(`Could not parse the uploaded file. Make sure it's a valid JSON file.`);\n }\n if (!data.groups?.length && !data.models?.length) {\n throw new Error(`No groups and models in the uploaded file.`);\n } else if (data.groups.length === 0) {\n throw new Error(`No groups in the uploaded file. There must be at least one group.`);\n }\n return {\n groups: data.groups,\n models: data.models\n };\n};\n\nconst parseFileContent = (content?: string | ArrayBuffer | null) => {\n if (!content) {\n throw new Error(`Missing data in uploaded file.`);\n } else if (content instanceof ArrayBuffer) {\n const data = Buffer.from(content).toString(\"utf8\");\n return parseFileData(data);\n }\n return parseFileData(content);\n};\n\ninterface Data {\n groups: CmsGroup[];\n models: CmsModel[];\n}\n\ntype Selected = Map<string, string[]>;\n\ninterface State {\n data: Data | null;\n loading: boolean;\n groups?: ImportGroupData[];\n models?: ImportModelData[];\n file: File | null;\n errors?: string[] | null;\n validated: boolean;\n selected: Selected;\n}\n\nexport interface OnFileCb {\n (file: File): void;\n}\n\nexport interface OnFileErrorCb {\n (error: string): void;\n}\n\nexport interface HandleModelsValidationCb {\n (): Promise<void>;\n}\n\nexport interface HandleModelsImportCb {\n (): Promise<void>;\n}\n\nexport interface IsModelSelectedCb {\n (item: Pick<ImportModelData, \"id\">): boolean;\n}\n\nexport interface IsModelRelatedCb {\n (item: Pick<ImportModelData, \"id\">): boolean;\n}\n\nexport interface AddModelCb {\n (item: Pick<ImportModelData, \"id\" | \"name\" | \"related\">): void;\n}\n\nexport interface RemoveModelCb {\n (item: Pick<ImportModelData, \"id\" | \"name\" | \"related\">): void;\n}\n\nexport interface ToggleModelCb {\n (item: Pick<ImportModelData, \"id\" | \"name\" | \"related\">): void;\n}\n\nexport interface ImportContextProperties {\n data: Data | null;\n loading: boolean;\n groups?: ImportGroupData[];\n models?: ImportModelData[];\n hasSelected: () => boolean;\n file: File | null;\n errors: string[];\n validated: boolean;\n onFile: OnFileCb;\n onFileError: OnFileErrorCb;\n handleModelsValidation: HandleModelsValidationCb;\n handleModelsImport: HandleModelsImportCb;\n toggleModel: ToggleModelCb;\n isModelSelected: IsModelSelectedCb;\n isModelRelated: IsModelRelatedCb;\n}\n\ninterface CreateSelectedParams {\n previous: Selected;\n models: Pick<ImportModelData, \"id\" | \"related\" | \"imported\">[];\n item: Pick<ImportModelData, \"id\" | \"related\">;\n}\n\nconst createSelected = (params: CreateSelectedParams): Selected => {\n const { previous, models, item } = params;\n let selected = new Map(previous);\n\n selected.set(item.id, item.related);\n for (const id of item.related) {\n const model = models.find(model => model.id === id);\n if (!model) {\n continue;\n } else if (selected.has(model.id) || model.imported) {\n continue;\n }\n const related = createSelected({\n previous: selected,\n models,\n item: model\n });\n selected = new Map([...selected, ...related]);\n }\n\n return selected;\n};\n\ninterface DataToImportResult {\n groups: ImportStructureVariablesGroup[];\n models: ImportStructureVariablesModel[];\n}\n\nconst getDataToImport = (state: State): DataToImportResult => {\n const selected = Array.from(state.selected.keys());\n\n const groups: Map<string, ImportStructureVariablesGroup> = new Map();\n const models: Map<string, ImportStructureVariablesModel> = new Map();\n const noAction = [ImportAction.CODE, ImportAction.NONE];\n\n for (const id of selected) {\n const validatedModel = state.models?.find(model => model.id === id);\n if (\n !validatedModel?.action ||\n validatedModel.error ||\n noAction.includes(validatedModel.action)\n ) {\n continue;\n }\n const validatedGroup = state.groups?.find(group => group.slug === validatedModel.group);\n if (!validatedGroup?.action || validatedGroup.error) {\n continue;\n }\n\n const model = state.data?.models?.find(model => model.modelId === id);\n if (!model) {\n continue;\n }\n models.set(id, {\n ...model,\n layout: model.layout || [],\n titleFieldId: model.titleFieldId || \"id\",\n descriptionFieldId: model.descriptionFieldId || \"\",\n imageFieldId: model.imageFieldId || \"\",\n group: validatedModel.group\n });\n\n if (noAction.includes(validatedGroup.action)) {\n continue;\n }\n\n const group = state.data?.groups?.find(group => group.slug === validatedModel.group);\n if (!group) {\n continue;\n }\n groups.set(group.id, group);\n }\n\n return {\n groups: Array.from(groups.values()),\n models: Array.from(models.values())\n };\n};\n\nexport const ImportContext = React.createContext<ImportContextProperties | undefined>(undefined);\n\nexport interface ImportContextProviderProps {\n children: (props: ImportContextProperties) => React.ReactNode;\n}\n\nexport const ImportContextProvider = ({ children }: ImportContextProviderProps) => {\n const client = useApolloClient();\n\n const { showSnackbar } = useSnackbar();\n\n const [state, setState] = useState<State>({\n data: null,\n file: null,\n loading: false,\n validated: false,\n selected: new Map()\n });\n\n const hasSelected = useCallback(() => {\n return Array.from(state.selected.keys()).length > 0;\n }, [state.selected]);\n\n const handleModelsValidation = useCallback(async () => {\n if (!state.data) {\n console.error(\"Cannot import models without any data.\");\n return;\n }\n setState(prev => {\n return {\n ...prev,\n loading: true\n };\n });\n\n let result: FetchResult<ValidateImportStructureResponse> | undefined;\n try {\n result = await client.mutate<ValidateImportStructureResponse>({\n mutation: VALIDATE_IMPORT_STRUCTURE,\n variables: {\n data: state.data\n }\n });\n } catch (ex) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n errors: [ex.message]\n };\n });\n return;\n }\n\n const { data, error } = result.data?.validateImportStructure || {};\n if (error) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n errors: [error.message]\n };\n });\n return;\n } else if (!data) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n errors: [\"No validation data received.\"]\n };\n });\n return;\n }\n setState(prev => {\n const next = {\n ...prev,\n loading: false,\n groups: data.groups.map(group => {\n return {\n id: group.group.id,\n name: group.group.name,\n slug: group.group.slug,\n error: group.error,\n action: group.action\n };\n }),\n models: data.models.map(model => {\n return {\n id: model.model.modelId,\n name: model.model.name,\n group: model.model.group,\n related: model.related || [],\n error: model.error,\n action: model.action\n };\n }),\n validated: true\n };\n return next;\n });\n }, [state.data, setState]);\n\n const handleModelsImport = useCallback(async () => {\n if (!state.data) {\n console.error(\"Cannot import models without any data.\");\n return;\n } else if (!state.groups?.length) {\n console.error(\"Cannot import models without any groups.\");\n return;\n } else if (!state.models?.length) {\n console.error(\"Cannot import models because none are selected.\");\n return;\n } else if (Array.from(state.selected.keys()).length === 0) {\n console.error(\"Cannot import models because none are selected.\");\n return;\n }\n setState(prev => {\n return {\n ...prev,\n loading: true\n };\n });\n\n const dataToImport = getDataToImport(state);\n\n let result: FetchResult<ImportStructureResponse> | undefined;\n try {\n result = await client.mutate<ImportStructureResponse, ImportStructureVariables>({\n mutation: IMPORT_STRUCTURE,\n variables: {\n data: dataToImport\n },\n errorPolicy: \"all\"\n });\n } catch (ex) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n errors: [ex.message]\n };\n });\n return;\n }\n const { data, error } = result.data?.importStructure || {};\n if (error) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n errors: [error.message]\n };\n });\n return;\n } else if (!data) {\n setState(prev => {\n return {\n ...prev,\n loading: false,\n validated: false,\n errors: [\"No structure import data received.\"]\n };\n });\n return;\n }\n setState(prev => {\n return {\n ...prev,\n loading: false,\n selected: new Map(),\n groups: state.groups!.map(group => {\n const result = data.groups.find(item => item.group.id === group.id);\n return {\n id: result?.group.id || group.id,\n name: result?.group.name || group.name,\n slug: result?.group.slug || group.slug,\n error: result?.error || group.error,\n imported: result ? result.imported : group.imported\n };\n }),\n models: state.models!.map(model => {\n const result = data.models.find(item => item.model.modelId === model.id);\n return {\n id: result?.model.modelId || model.id,\n name: result?.model.name || model.name,\n group: result?.model.group || model.group,\n related: result?.related || model.related || [],\n action: result?.action || model.action,\n error: result?.error || model.error,\n imported: result ? result.imported : model.imported\n };\n }),\n validated: true\n };\n });\n }, [state.selected, state.data, setState]);\n\n const onFile = useCallback(\n (file: File) => {\n const reader = new FileReader();\n reader.addEventListener(\"load\", event => {\n try {\n const data = parseFileContent(event.target?.result);\n setState(prev => {\n return {\n ...prev,\n models: undefined,\n groups: undefined,\n selected: new Map(),\n errors: null,\n validated: false,\n file,\n data\n };\n });\n } catch (ex) {\n setState(prev => {\n return {\n ...prev,\n file,\n selected: new Map(),\n validated: false,\n groups: undefined,\n models: undefined,\n data: null,\n errors: [ex.message]\n };\n });\n }\n });\n reader.readAsText(file);\n },\n [state.data, setState]\n );\n\n const onFileError = useCallback(\n (error: string) => {\n setState(prev => {\n return {\n ...prev,\n file: null,\n errors: [error]\n };\n });\n },\n [state, setState]\n );\n\n const isModelSelected = useCallback<IsModelSelectedCb>(\n item => {\n return state.selected.has(item.id);\n },\n [state.selected]\n );\n\n const isModelRelated = useCallback<IsModelRelatedCb>(\n ({ id: target }) => {\n for (const id of state.selected.keys()) {\n if (id === target) {\n continue;\n }\n const related = state.selected.get(id);\n if (related?.includes(id)) {\n return true;\n }\n }\n return false;\n },\n [state.selected]\n );\n\n const addModel = useCallback<AddModelCb>(\n item => {\n if (isModelSelected(item)) {\n return;\n }\n setState(prev => {\n return {\n ...prev,\n selected: createSelected({\n previous: prev.selected,\n models: state.models || [],\n item\n })\n };\n });\n },\n [isModelSelected, state.models, state.selected]\n );\n const removeModel = useCallback<RemoveModelCb>(\n item => {\n if (isModelRelated(item)) {\n showSnackbar(\n `Model \"${item.name}\" is required due to another model having a relation to it.`\n );\n return;\n }\n setState(prev => {\n const selected = prev.selected;\n selected.delete(item.id);\n return {\n ...prev,\n selected\n };\n });\n },\n [state, setState]\n );\n\n const toggleModel = useCallback<ToggleModelCb>(\n item => {\n if (isModelSelected(item)) {\n removeModel(item);\n return;\n }\n addModel(item);\n },\n [isModelSelected, addModel, removeModel]\n );\n\n const value: ImportContextProperties = {\n data: state.data || null,\n loading: state.loading || false,\n groups: state.groups || [],\n models: state.models || [],\n errors: state.errors || [],\n validated: state.validated || false,\n hasSelected,\n isModelRelated,\n file: state.file,\n onFile,\n onFileError,\n handleModelsValidation,\n handleModelsImport,\n toggleModel,\n isModelSelected\n };\n\n return <ImportContext.Provider value={value}>{children(value)}</ImportContext.Provider>;\n};\n"],"names":["parseFileData","input","data","JSON","Error","parseFileContent","content","ArrayBuffer","Buffer","createSelected","params","previous","models","item","selected","Map","id","model","related","getDataToImport","state","Array","groups","noAction","ImportAction","validatedModel","validatedGroup","group","ImportContext","React","undefined","ImportContextProvider","children","client","useApolloClient","showSnackbar","useSnackbar","setState","useState","hasSelected","useCallback","handleModelsValidation","console","prev","result","VALIDATE_IMPORT_STRUCTURE","ex","error","next","handleModelsImport","dataToImport","IMPORT_STRUCTURE","onFile","file","reader","FileReader","event","onFileError","isModelSelected","isModelRelated","target","addModel","removeModel","toggleModel","value"],"mappings":"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"}
@@ -10,7 +10,7 @@ const FileUpload = ()=>{
10
10
  accept: [
11
11
  "application/json"
12
12
  ],
13
- maxSize: "5mb",
13
+ maxSize: "10mb",
14
14
  onSuccess: (files)=>{
15
15
  const file = files.find((f)=>f.src.file);
16
16
  const uploadedFile = file?.src?.file;
@@ -1 +1 @@
1
- {"version":3,"file":"admin/views/contentModels/importing/components/FileUpload.js","sources":["../../../../../../src/admin/views/contentModels/importing/components/FileUpload.tsx"],"sourcesContent":["import React from \"react\";\nimport { BrowserFilePicker } from \"@webiny/app-admin/presentation/browserFilePicker/index.js\";\nimport { Text } from \"@webiny/admin-ui\";\nimport { getError } from \"./Errors.js\";\nimport { useImport } from \"~/admin/views/contentModels/importing/useImport.js\";\n\nexport const FileUpload = () => {\n const { onFile, onFileError, file } = useImport();\n const fileName = file?.name;\n\n return (\n <BrowserFilePicker\n accept={[\"application/json\"]}\n maxSize={\"5mb\"}\n onSuccess={files => {\n const file = files.find(f => f.src.file);\n const uploadedFile = file?.src?.file;\n if (!uploadedFile) {\n onFileError(\n \"File is not valid. Please make sure you are uploading a valid JSON file.\"\n );\n return;\n }\n onFile(uploadedFile);\n }}\n onError={err => {\n const errors = err.map(er => {\n return getError(er);\n });\n if (errors.length === 0) {\n return;\n }\n onFileError(errors[0]);\n }}\n multiple={false}\n >\n {({ browseFiles, getDropZoneProps }) => {\n return (\n <>\n <div\n className={\n \"w-full mx-auto my-0 border-sm border-dashed cursor-pointer border-neutral-muted bg-neutral-base text-center p-md \"\n }\n onClick={() => browseFiles()}\n {...getDropZoneProps()}\n >\n <Text>{fileName || \"Drop a file here, or click to select one.\"}</Text>\n </div>\n </>\n );\n }}\n </BrowserFilePicker>\n );\n};\n"],"names":["FileUpload","onFile","onFileError","file","useImport","fileName","BrowserFilePicker","files","f","uploadedFile","err","errors","er","getError","browseFiles","getDropZoneProps","Text"],"mappings":";;;;;AAMO,MAAMA,aAAa;IACtB,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAEC,IAAI,EAAE,GAAGC;IACtC,MAAMC,WAAWF,MAAM;IAEvB,OAAO,WAAP,GACI,oBAACG,mBAAiBA;QACd,QAAQ;YAAC;SAAmB;QAC5B,SAAS;QACT,WAAWC,CAAAA;YACP,MAAMJ,OAAOI,MAAM,IAAI,CAACC,CAAAA,IAAKA,EAAE,GAAG,CAAC,IAAI;YACvC,MAAMC,eAAeN,MAAM,KAAK;YAChC,IAAI,CAACM,cAAc,YACfP,YACI;YAIRD,OAAOQ;QACX;QACA,SAASC,CAAAA;YACL,MAAMC,SAASD,IAAI,GAAG,CAACE,CAAAA,KACZC,SAASD;YAEpB,IAAID,AAAkB,MAAlBA,OAAO,MAAM,EACb;YAEJT,YAAYS,MAAM,CAAC,EAAE;QACzB;QACA,UAAU;OAET,CAAC,EAAEG,WAAW,EAAEC,gBAAgB,EAAE,GACxB,WAAP,GACI,wDACI,oBAAC;YACG,WACI;YAEJ,SAAS,IAAMD;YACd,GAAGC,kBAAkB;yBAEtB,oBAACC,MAAIA,MAAEX,YAAY;AAO/C"}
1
+ {"version":3,"file":"admin/views/contentModels/importing/components/FileUpload.js","sources":["../../../../../../src/admin/views/contentModels/importing/components/FileUpload.tsx"],"sourcesContent":["import React from \"react\";\nimport { BrowserFilePicker } from \"@webiny/app-admin/presentation/browserFilePicker/index.js\";\nimport { Text } from \"@webiny/admin-ui\";\nimport { getError } from \"./Errors.js\";\nimport { useImport } from \"~/admin/views/contentModels/importing/useImport.js\";\n\nexport const FileUpload = () => {\n const { onFile, onFileError, file } = useImport();\n const fileName = file?.name;\n\n return (\n <BrowserFilePicker\n accept={[\"application/json\"]}\n maxSize={\"10mb\"}\n onSuccess={files => {\n const file = files.find(f => f.src.file);\n const uploadedFile = file?.src?.file;\n if (!uploadedFile) {\n onFileError(\n \"File is not valid. Please make sure you are uploading a valid JSON file.\"\n );\n return;\n }\n onFile(uploadedFile);\n }}\n onError={err => {\n const errors = err.map(er => {\n return getError(er);\n });\n if (errors.length === 0) {\n return;\n }\n onFileError(errors[0]);\n }}\n multiple={false}\n >\n {({ browseFiles, getDropZoneProps }) => {\n return (\n <>\n <div\n className={\n \"w-full mx-auto my-0 border-sm border-dashed cursor-pointer border-neutral-muted bg-neutral-base text-center p-md \"\n }\n onClick={() => browseFiles()}\n {...getDropZoneProps()}\n >\n <Text>{fileName || \"Drop a file here, or click to select one.\"}</Text>\n </div>\n </>\n );\n }}\n </BrowserFilePicker>\n );\n};\n"],"names":["FileUpload","onFile","onFileError","file","useImport","fileName","BrowserFilePicker","files","f","uploadedFile","err","errors","er","getError","browseFiles","getDropZoneProps","Text"],"mappings":";;;;;AAMO,MAAMA,aAAa;IACtB,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAEC,IAAI,EAAE,GAAGC;IACtC,MAAMC,WAAWF,MAAM;IAEvB,OAAO,WAAP,GACI,oBAACG,mBAAiBA;QACd,QAAQ;YAAC;SAAmB;QAC5B,SAAS;QACT,WAAWC,CAAAA;YACP,MAAMJ,OAAOI,MAAM,IAAI,CAACC,CAAAA,IAAKA,EAAE,GAAG,CAAC,IAAI;YACvC,MAAMC,eAAeN,MAAM,KAAK;YAChC,IAAI,CAACM,cAAc,YACfP,YACI;YAIRD,OAAOQ;QACX;QACA,SAASC,CAAAA;YACL,MAAMC,SAASD,IAAI,GAAG,CAACE,CAAAA,KACZC,SAASD;YAEpB,IAAID,AAAkB,MAAlBA,OAAO,MAAM,EACb;YAEJT,YAAYS,MAAM,CAAC,EAAE;QACzB;QACA,UAAU;OAET,CAAC,EAAEG,WAAW,EAAEC,gBAAgB,EAAE,GACxB,WAAP,GACI,wDACI,oBAAC;YACG,WACI;YAEJ,SAAS,IAAMD;YACd,GAAGC,kBAAkB;yBAEtB,oBAACC,MAAIA,MAAEX,YAAY;AAO/C"}
@@ -72,9 +72,9 @@ const Checkbox = ({ model, toggle, selected })=>{
72
72
  };
73
73
  const Container = ({ model, children })=>{
74
74
  if (model.imported) return /*#__PURE__*/ react.createElement(ContainerImported, null, children);
75
- if ("create" === model.action) return /*#__PURE__*/ react.createElement(ContainerCreate, null, children);
76
- if ("update" === model.action) return /*#__PURE__*/ react.createElement(ContainerUpdate, null, children);
77
- if (model.error) return /*#__PURE__*/ react.createElement(ContainerError, null, children);
75
+ else if ("create" === model.action) return /*#__PURE__*/ react.createElement(ContainerCreate, null, children);
76
+ else if ("update" === model.action) return /*#__PURE__*/ react.createElement(ContainerUpdate, null, children);
77
+ else if (model.error) return /*#__PURE__*/ react.createElement(ContainerError, null, children);
78
78
  return /*#__PURE__*/ react.createElement(ContainerBase, null, children);
79
79
  };
80
80
  const DataListModelItem = ({ model, toggle, selected })=>/*#__PURE__*/ react.createElement(Container, {
@@ -1 +1 @@
1
- {"version":3,"file":"admin/views/contentModels/importing/components/Model/DataListModelItem.js","sources":["../../../../../../../src/admin/views/contentModels/importing/components/Model/DataListModelItem.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport styled from \"@emotion/styled\";\nimport type { ImportModelData } from \"~/admin/views/contentModels/importing/types.js\";\nimport { DataListModelItemError } from \"~/admin/views/contentModels/importing/components/Model/DataListModelItemError.js\";\nimport { DataListModelItemInfo } from \"./DataListModelItemInfo.js\";\nimport type { ToggleModelCb } from \"~/admin/views/contentModels/importing/ImportContext.js\";\n\nconst ContainerBase = styled(\"div\")(() => {\n return {\n width: \"100%\",\n padding: \"0px 5px 15px 5px\",\n margin: \"0\",\n boxSizing: \"border-box\" as const,\n \"&:last-child\": {\n paddingBottom: \"2px\"\n }\n };\n});\nconst ContainerCreate = styled(ContainerBase)(() => {\n return {\n // backgroundColor: \"var(--mdc-theme-secondary)\"\n };\n});\nconst ContainerImported = styled(ContainerBase)(() => {\n return {};\n});\nconst ContainerUpdate = styled(ContainerBase)(() => {\n return {};\n});\nconst ContainerError = styled(ContainerBase)(() => {\n return {};\n});\n\nconst ModelContainer = styled(\"div\")({\n display: \"flex\",\n width: \"100%\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\"\n});\nconst Name = styled(\"h4\")({\n fontSize: \"12px\",\n flex: \"1 0 auto\",\n lineHeight: \"18px\"\n});\nconst CheckboxContainer = styled(\"div\")({\n width: \"120px\",\n textAlign: \"right\",\n verticalAlign: \"middle\"\n});\n\nconst Button = styled(\"button\")({\n padding: \"1px 5px\",\n textAlign: \"right\",\n display: \"inline-block\",\n border: \"1px solid var(--mdc-theme-on-background)\",\n fontSize: \"10px\",\n lineHeight: \"12px\",\n cursor: \"pointer\",\n outline: \"0 none\",\n backgroundColor: \"var(--mdc-theme-background)\",\n \"&.selected\": {\n border: \"1px solid var(--mdc-theme-secondary)\"\n }\n});\n\nconst ImportedText = styled(\"div\")({\n padding: \"1px 5px\",\n textAlign: \"right\",\n display: \"inline-block\",\n border: \"1px solid var(--mdc-theme-on-background)\",\n fontSize: \"10px\",\n lineHeight: \"12px\",\n outline: \"0 none\",\n backgroundColor: \"var(--mdc-theme-secondary)\",\n color: \"#FFF\"\n});\n\nconst Imported = () => {\n return (\n <CheckboxContainer>\n <ImportedText>Imported.</ImportedText>\n </CheckboxContainer>\n );\n};\n\ninterface CheckboxProps {\n model: Pick<ImportModelData, \"id\" | \"name\" | \"error\" | \"related\">;\n toggle: ToggleModelCb;\n selected: boolean;\n}\n\nconst Checkbox = ({ model, toggle, selected }: CheckboxProps) => {\n const onClick = useCallback(() => {\n toggle(model);\n }, [toggle]);\n if (model.error) {\n return null;\n }\n return (\n <CheckboxContainer>\n <Button onClick={onClick} className={selected ? \"selected\" : \"\"}>\n {selected ? \"Model will be imported\" : \"Model will be skipped\"}\n </Button>\n </CheckboxContainer>\n );\n};\n\ninterface ContainerProps {\n model: Pick<ImportModelData, \"action\" | \"error\" | \"imported\">;\n children: React.ReactNode;\n}\n\nconst Container = ({ model, children }: ContainerProps) => {\n if (model.imported) {\n return <ContainerImported>{children}</ContainerImported>;\n } else if (model.action === \"create\") {\n return <ContainerCreate>{children}</ContainerCreate>;\n } else if (model.action === \"update\") {\n return <ContainerUpdate>{children}</ContainerUpdate>;\n } else if (model.error) {\n return <ContainerError>{children}</ContainerError>;\n }\n return <ContainerBase>{children}</ContainerBase>;\n};\n\ninterface DataListModelItemProps {\n model: ImportModelData;\n toggle: ToggleModelCb;\n selected: boolean;\n}\n\nexport const DataListModelItem = ({ model, toggle, selected }: DataListModelItemProps) => {\n return (\n <Container model={model}>\n <ModelContainer>\n <div>\n <Name>{model.name || model.id}</Name>\n {model.error ? (\n <DataListModelItemError error={model.error} />\n ) : (\n <DataListModelItemInfo model={model} />\n )}\n </div>\n {model.imported ? (\n <Imported />\n ) : (\n <Checkbox model={model} toggle={toggle} selected={selected} />\n )}\n </ModelContainer>\n </Container>\n );\n};\n"],"names":["ContainerBase","styled","ContainerCreate","ContainerImported","ContainerUpdate","ContainerError","ModelContainer","Name","CheckboxContainer","Button","ImportedText","Imported","Checkbox","model","toggle","selected","onClick","useCallback","Container","children","DataListModelItem","DataListModelItemError","DataListModelItemInfo"],"mappings":";;;;AAOA,MAAMA,gBAAgBC,OAAO,OAAO,IACzB;QACH,OAAO;QACP,SAAS;QACT,QAAQ;QACR,WAAW;QACX,gBAAgB;YACZ,eAAe;QACnB;IACJ;AAEJ,MAAMC,kBAAkBD,OAAOD,eAAe,IACnC,EAEP;AAEJ,MAAMG,oBAAoBF,OAAOD,eAAe,IACrC,EAAC;AAEZ,MAAMI,kBAAkBH,OAAOD,eAAe,IACnC,EAAC;AAEZ,MAAMK,iBAAiBJ,OAAOD,eAAe,IAClC,EAAC;AAGZ,MAAMM,iBAAiBL,OAAO,OAAO;IACjC,SAAS;IACT,OAAO;IACP,eAAe;IACf,YAAY;IACZ,gBAAgB;AACpB;AACA,MAAMM,OAAON,OAAO,MAAM;IACtB,UAAU;IACV,MAAM;IACN,YAAY;AAChB;AACA,MAAMO,oBAAoBP,OAAO,OAAO;IACpC,OAAO;IACP,WAAW;IACX,eAAe;AACnB;AAEA,MAAMQ,SAASR,OAAO,UAAU;IAC5B,SAAS;IACT,WAAW;IACX,SAAS;IACT,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,iBAAiB;IACjB,cAAc;QACV,QAAQ;IACZ;AACJ;AAEA,MAAMS,eAAeT,OAAO,OAAO;IAC/B,SAAS;IACT,WAAW;IACX,SAAS;IACT,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,SAAS;IACT,iBAAiB;IACjB,OAAO;AACX;AAEA,MAAMU,WAAW,IACN,WAAP,GACI,oBAACH,mBAAiBA,MAAAA,WAAAA,GACd,oBAACE,cAAYA,MAAC;AAW1B,MAAME,WAAW,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,EAAiB;IACxD,MAAMC,UAAUC,YAAY;QACxBH,OAAOD;IACX,GAAG;QAACC;KAAO;IACX,IAAID,MAAM,KAAK,EACX,OAAO;IAEX,OAAO,WAAP,GACI,oBAACL,mBAAiBA,MAAAA,WAAAA,GACd,oBAACC,QAAMA;QAAC,SAASO;QAAS,WAAWD,WAAW,aAAa;OACxDA,WAAW,2BAA2B;AAIvD;AAOA,MAAMG,YAAY,CAAC,EAAEL,KAAK,EAAEM,QAAQ,EAAkB;IAClD,IAAIN,MAAM,QAAQ,EACd,OAAO,WAAP,GAAO,oBAACV,mBAAiBA,MAAEgB;IACxB,IAAIN,AAAiB,aAAjBA,MAAM,MAAM,EACnB,OAAO,WAAP,GAAO,oBAACX,iBAAeA,MAAEiB;IACtB,IAAIN,AAAiB,aAAjBA,MAAM,MAAM,EACnB,OAAO,WAAP,GAAO,oBAACT,iBAAeA,MAAEe;IACtB,IAAIN,MAAM,KAAK,EAClB,OAAO,WAAP,GAAO,oBAACR,gBAAcA,MAAEc;IAE5B,OAAO,WAAP,GAAO,oBAACnB,eAAaA,MAAEmB;AAC3B;AAQO,MAAMC,oBAAoB,CAAC,EAAEP,KAAK,EAAEC,MAAM,EAAEC,QAAQ,EAA0B,GAC1E,WAAP,GACI,oBAACG,WAASA;QAAC,OAAOL;qBACd,oBAACP,gBAAcA,MAAAA,WAAAA,GACX,oBAAC,2BACG,oBAACC,MAAIA,MAAEM,MAAM,IAAI,IAAIA,MAAM,EAAE,GAC5BA,MAAM,KAAK,GAAG,WAAH,GACR,oBAACQ,wBAAsBA;QAAC,OAAOR,MAAM,KAAK;uBAE1C,oBAACS,uBAAqBA;QAAC,OAAOT;SAGrCA,MAAM,QAAQ,GAAG,WAAH,GACX,oBAACF,UAAQA,QAAAA,WAAAA,GAET,oBAACC,UAAQA;QAAC,OAAOC;QAAO,QAAQC;QAAQ,UAAUC"}
1
+ {"version":3,"file":"admin/views/contentModels/importing/components/Model/DataListModelItem.js","sources":["../../../../../../../src/admin/views/contentModels/importing/components/Model/DataListModelItem.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport styled from \"@emotion/styled\";\nimport type { ImportModelData } from \"~/admin/views/contentModels/importing/types.js\";\nimport { DataListModelItemError } from \"~/admin/views/contentModels/importing/components/Model/DataListModelItemError.js\";\nimport { DataListModelItemInfo } from \"./DataListModelItemInfo.js\";\nimport type { ToggleModelCb } from \"~/admin/views/contentModels/importing/ImportContext.js\";\n\nconst ContainerBase = styled(\"div\")(() => {\n return {\n width: \"100%\",\n padding: \"0px 5px 15px 5px\",\n margin: \"0\",\n boxSizing: \"border-box\" as const,\n \"&:last-child\": {\n paddingBottom: \"2px\"\n }\n };\n});\nconst ContainerCreate = styled(ContainerBase)(() => {\n return {\n // backgroundColor: \"var(--mdc-theme-secondary)\"\n };\n});\nconst ContainerImported = styled(ContainerBase)(() => {\n return {};\n});\nconst ContainerUpdate = styled(ContainerBase)(() => {\n return {};\n});\nconst ContainerError = styled(ContainerBase)(() => {\n return {};\n});\n\nconst ModelContainer = styled(\"div\")({\n display: \"flex\",\n width: \"100%\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\"\n});\nconst Name = styled(\"h4\")({\n fontSize: \"12px\",\n flex: \"1 0 auto\",\n lineHeight: \"18px\"\n});\nconst CheckboxContainer = styled(\"div\")({\n width: \"120px\",\n textAlign: \"right\",\n verticalAlign: \"middle\"\n});\n\nconst Button = styled(\"button\")({\n padding: \"1px 5px\",\n textAlign: \"right\",\n display: \"inline-block\",\n border: \"1px solid var(--mdc-theme-on-background)\",\n fontSize: \"10px\",\n lineHeight: \"12px\",\n cursor: \"pointer\",\n outline: \"0 none\",\n backgroundColor: \"var(--mdc-theme-background)\",\n \"&.selected\": {\n border: \"1px solid var(--mdc-theme-secondary)\"\n }\n});\n\nconst ImportedText = styled(\"div\")({\n padding: \"1px 5px\",\n textAlign: \"right\",\n display: \"inline-block\",\n border: \"1px solid var(--mdc-theme-on-background)\",\n fontSize: \"10px\",\n lineHeight: \"12px\",\n outline: \"0 none\",\n backgroundColor: \"var(--mdc-theme-secondary)\",\n color: \"#FFF\"\n});\n\nconst Imported = () => {\n return (\n <CheckboxContainer>\n <ImportedText>Imported.</ImportedText>\n </CheckboxContainer>\n );\n};\n\ninterface CheckboxProps {\n model: Pick<ImportModelData, \"id\" | \"name\" | \"error\" | \"related\">;\n toggle: ToggleModelCb;\n selected: boolean;\n}\n\nconst Checkbox = ({ model, toggle, selected }: CheckboxProps) => {\n const onClick = useCallback(() => {\n toggle(model);\n }, [toggle]);\n if (model.error) {\n return null;\n }\n return (\n <CheckboxContainer>\n <Button onClick={onClick} className={selected ? \"selected\" : \"\"}>\n {selected ? \"Model will be imported\" : \"Model will be skipped\"}\n </Button>\n </CheckboxContainer>\n );\n};\n\ninterface ContainerProps {\n model: Pick<ImportModelData, \"action\" | \"error\" | \"imported\">;\n children: React.ReactNode;\n}\n\nconst Container = ({ model, children }: ContainerProps) => {\n if (model.imported) {\n return <ContainerImported>{children}</ContainerImported>;\n } else if (model.action === \"create\") {\n return <ContainerCreate>{children}</ContainerCreate>;\n } else if (model.action === \"update\") {\n return <ContainerUpdate>{children}</ContainerUpdate>;\n } else if (model.error) {\n return <ContainerError>{children}</ContainerError>;\n }\n return <ContainerBase>{children}</ContainerBase>;\n};\n\ninterface DataListModelItemProps {\n model: ImportModelData;\n toggle: ToggleModelCb;\n selected: boolean;\n}\n\nexport const DataListModelItem = ({ model, toggle, selected }: DataListModelItemProps) => {\n return (\n <Container model={model}>\n <ModelContainer>\n <div>\n <Name>{model.name || model.id}</Name>\n {model.error ? (\n <DataListModelItemError error={model.error} />\n ) : (\n <DataListModelItemInfo model={model} />\n )}\n </div>\n {model.imported ? (\n <Imported />\n ) : (\n <Checkbox model={model} toggle={toggle} selected={selected} />\n )}\n </ModelContainer>\n </Container>\n );\n};\n"],"names":["ContainerBase","styled","ContainerCreate","ContainerImported","ContainerUpdate","ContainerError","ModelContainer","Name","CheckboxContainer","Button","ImportedText","Imported","Checkbox","model","toggle","selected","onClick","useCallback","Container","children","DataListModelItem","DataListModelItemError","DataListModelItemInfo"],"mappings":";;;;AAOA,MAAMA,gBAAgBC,OAAO,OAAO,IACzB;QACH,OAAO;QACP,SAAS;QACT,QAAQ;QACR,WAAW;QACX,gBAAgB;YACZ,eAAe;QACnB;IACJ;AAEJ,MAAMC,kBAAkBD,OAAOD,eAAe,IACnC,EAEP;AAEJ,MAAMG,oBAAoBF,OAAOD,eAAe,IACrC,EAAC;AAEZ,MAAMI,kBAAkBH,OAAOD,eAAe,IACnC,EAAC;AAEZ,MAAMK,iBAAiBJ,OAAOD,eAAe,IAClC,EAAC;AAGZ,MAAMM,iBAAiBL,OAAO,OAAO;IACjC,SAAS;IACT,OAAO;IACP,eAAe;IACf,YAAY;IACZ,gBAAgB;AACpB;AACA,MAAMM,OAAON,OAAO,MAAM;IACtB,UAAU;IACV,MAAM;IACN,YAAY;AAChB;AACA,MAAMO,oBAAoBP,OAAO,OAAO;IACpC,OAAO;IACP,WAAW;IACX,eAAe;AACnB;AAEA,MAAMQ,SAASR,OAAO,UAAU;IAC5B,SAAS;IACT,WAAW;IACX,SAAS;IACT,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,iBAAiB;IACjB,cAAc;QACV,QAAQ;IACZ;AACJ;AAEA,MAAMS,eAAeT,OAAO,OAAO;IAC/B,SAAS;IACT,WAAW;IACX,SAAS;IACT,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,SAAS;IACT,iBAAiB;IACjB,OAAO;AACX;AAEA,MAAMU,WAAW,IACN,WAAP,GACI,oBAACH,mBAAiBA,MAAAA,WAAAA,GACd,oBAACE,cAAYA,MAAC;AAW1B,MAAME,WAAW,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,EAAiB;IACxD,MAAMC,UAAUC,YAAY;QACxBH,OAAOD;IACX,GAAG;QAACC;KAAO;IACX,IAAID,MAAM,KAAK,EACX,OAAO;IAEX,OAAO,WAAP,GACI,oBAACL,mBAAiBA,MAAAA,WAAAA,GACd,oBAACC,QAAMA;QAAC,SAASO;QAAS,WAAWD,WAAW,aAAa;OACxDA,WAAW,2BAA2B;AAIvD;AAOA,MAAMG,YAAY,CAAC,EAAEL,KAAK,EAAEM,QAAQ,EAAkB;IAClD,IAAIN,MAAM,QAAQ,EACd,OAAO,WAAP,GAAO,oBAACV,mBAAiBA,MAAEgB;SACxB,IAAIN,AAAiB,aAAjBA,MAAM,MAAM,EACnB,OAAO,WAAP,GAAO,oBAACX,iBAAeA,MAAEiB;SACtB,IAAIN,AAAiB,aAAjBA,MAAM,MAAM,EACnB,OAAO,WAAP,GAAO,oBAACT,iBAAeA,MAAEe;SACtB,IAAIN,MAAM,KAAK,EAClB,OAAO,WAAP,GAAO,oBAACR,gBAAcA,MAAEc;IAE5B,OAAO,WAAP,GAAO,oBAACnB,eAAaA,MAAEmB;AAC3B;AAQO,MAAMC,oBAAoB,CAAC,EAAEP,KAAK,EAAEC,MAAM,EAAEC,QAAQ,EAA0B,GAC1E,WAAP,GACI,oBAACG,WAASA;QAAC,OAAOL;qBACd,oBAACP,gBAAcA,MAAAA,WAAAA,GACX,oBAAC,2BACG,oBAACC,MAAIA,MAAEM,MAAM,IAAI,IAAIA,MAAM,EAAE,GAC5BA,MAAM,KAAK,GAAG,WAAH,GACR,oBAACQ,wBAAsBA;QAAC,OAAOR,MAAM,KAAK;uBAE1C,oBAACS,uBAAqBA;QAAC,OAAOT;SAGrCA,MAAM,QAAQ,GAAG,WAAH,GACX,oBAACF,UAAQA,QAAAA,WAAAA,GAET,oBAACC,UAAQA;QAAC,OAAOC;QAAO,QAAQC;QAAQ,UAAUC"}
@@ -9,8 +9,8 @@ const Text = styled("p")({
9
9
  });
10
10
  const getText = (action)=>{
11
11
  if ("create" === action) return "Model will be created.";
12
- if ("update" === action) return "Model will be updated.";
13
- if ("code" === action) return "Model cannot be updated because it was created via code.";
12
+ else if ("update" === action) return "Model will be updated.";
13
+ else if ("code" === action) return "Model cannot be updated because it was created via code.";
14
14
  return `Unknown action: ${action}`;
15
15
  };
16
16
  const DataListModelItemInfo = ({ model })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"admin/views/contentModels/importing/components/Model/DataListModelItemInfo.js","sources":["../../../../../../../src/admin/views/contentModels/importing/components/Model/DataListModelItemInfo.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport type { ImportModelData } from \"~/admin/views/contentModels/importing/types.js\";\n\nconst Text = styled(\"p\")({\n fontSize: \"9px\",\n lineHeight: \"10px\",\n display: \"block\",\n padding: \"0\",\n margin: \"0\"\n});\n\nconst getText = (action?: string | null) => {\n if (action === \"create\") {\n return `Model will be created.`;\n } else if (action === \"update\") {\n return `Model will be updated.`;\n } else if (action === \"code\") {\n return \"Model cannot be updated because it was created via code.\";\n }\n return `Unknown action: ${action}`;\n};\n\ninterface DataListModelItemInfoProps {\n model: ImportModelData;\n}\n\nexport const DataListModelItemInfo = ({ model }: DataListModelItemInfoProps) => {\n const { action } = model;\n\n return <Text>{getText(action)}</Text>;\n};\n"],"names":["Text","styled","getText","action","DataListModelItemInfo","model"],"mappings":";;AAIA,MAAMA,OAAOC,OAAO,KAAK;IACrB,UAAU;IACV,YAAY;IACZ,SAAS;IACT,SAAS;IACT,QAAQ;AACZ;AAEA,MAAMC,UAAU,CAACC;IACb,IAAIA,AAAW,aAAXA,QACA,OAAO;IACJ,IAAIA,AAAW,aAAXA,QACP,OAAO;IACJ,IAAIA,AAAW,WAAXA,QACP,OAAO;IAEX,OAAO,CAAC,gBAAgB,EAAEA,QAAQ;AACtC;AAMO,MAAMC,wBAAwB,CAAC,EAAEC,KAAK,EAA8B;IACvE,MAAM,EAAEF,MAAM,EAAE,GAAGE;IAEnB,OAAO,WAAP,GAAO,oBAACL,MAAIA,MAAEE,QAAQC;AAC1B"}
1
+ {"version":3,"file":"admin/views/contentModels/importing/components/Model/DataListModelItemInfo.js","sources":["../../../../../../../src/admin/views/contentModels/importing/components/Model/DataListModelItemInfo.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport type { ImportModelData } from \"~/admin/views/contentModels/importing/types.js\";\n\nconst Text = styled(\"p\")({\n fontSize: \"9px\",\n lineHeight: \"10px\",\n display: \"block\",\n padding: \"0\",\n margin: \"0\"\n});\n\nconst getText = (action?: string | null) => {\n if (action === \"create\") {\n return `Model will be created.`;\n } else if (action === \"update\") {\n return `Model will be updated.`;\n } else if (action === \"code\") {\n return \"Model cannot be updated because it was created via code.\";\n }\n return `Unknown action: ${action}`;\n};\n\ninterface DataListModelItemInfoProps {\n model: ImportModelData;\n}\n\nexport const DataListModelItemInfo = ({ model }: DataListModelItemInfoProps) => {\n const { action } = model;\n\n return <Text>{getText(action)}</Text>;\n};\n"],"names":["Text","styled","getText","action","DataListModelItemInfo","model"],"mappings":";;AAIA,MAAMA,OAAOC,OAAO,KAAK;IACrB,UAAU;IACV,YAAY;IACZ,SAAS;IACT,SAAS;IACT,QAAQ;AACZ;AAEA,MAAMC,UAAU,CAACC;IACb,IAAIA,AAAW,aAAXA,QACA,OAAO;SACJ,IAAIA,AAAW,aAAXA,QACP,OAAO;SACJ,IAAIA,AAAW,WAAXA,QACP,OAAO;IAEX,OAAO,CAAC,gBAAgB,EAAEA,QAAQ;AACtC;AAMO,MAAMC,wBAAwB,CAAC,EAAEC,KAAK,EAA8B;IACvE,MAAM,EAAEF,MAAM,EAAE,GAAGE;IAEnB,OAAO,WAAP,GAAO,oBAACL,MAAIA,MAAEE,QAAQC;AAC1B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-headless-cms",
3
- "version": "6.4.11",
3
+ "version": "6.4.12-beta.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -22,34 +22,34 @@
22
22
  "@emotion/css": "11.13.5",
23
23
  "@emotion/react": "11.14.0",
24
24
  "@emotion/styled": "11.14.1",
25
- "@fortawesome/fontawesome-common-types": "7.3.0",
26
- "@fortawesome/fontawesome-svg-core": "7.3.0",
27
- "@fortawesome/free-brands-svg-icons": "7.3.0",
28
- "@fortawesome/free-regular-svg-icons": "7.3.0",
29
- "@fortawesome/free-solid-svg-icons": "7.3.0",
30
- "@fortawesome/react-fontawesome": "3.4.0",
25
+ "@fortawesome/fontawesome-common-types": "7.3.1",
26
+ "@fortawesome/fontawesome-svg-core": "7.3.1",
27
+ "@fortawesome/free-brands-svg-icons": "7.3.1",
28
+ "@fortawesome/free-regular-svg-icons": "7.3.1",
29
+ "@fortawesome/free-solid-svg-icons": "7.3.1",
30
+ "@fortawesome/react-fontawesome": "3.5.0",
31
31
  "@lexical/utils": "0.46.0",
32
32
  "@svgr/webpack": "8.1.0",
33
33
  "@types/react": "18.3.31",
34
- "@webiny/admin-ui": "6.4.11",
35
- "@webiny/app": "6.4.11",
36
- "@webiny/app-aco": "6.4.11",
37
- "@webiny/app-admin": "6.4.11",
38
- "@webiny/app-graphql-playground": "6.4.11",
39
- "@webiny/app-headless-cms-common": "6.4.11",
40
- "@webiny/app-trash-bin": "6.4.11",
41
- "@webiny/error": "6.4.11",
42
- "@webiny/feature": "6.4.11",
43
- "@webiny/form": "6.4.11",
44
- "@webiny/icons": "6.4.11",
45
- "@webiny/lexical-converter": "6.4.11",
46
- "@webiny/lexical-editor": "6.4.11",
47
- "@webiny/lexical-nodes": "6.4.11",
48
- "@webiny/plugins": "6.4.11",
49
- "@webiny/react-composition": "6.4.11",
50
- "@webiny/react-properties": "6.4.11",
51
- "@webiny/utils": "6.4.11",
52
- "@webiny/validation": "6.4.11",
34
+ "@webiny/admin-ui": "6.4.12-beta.1",
35
+ "@webiny/app": "6.4.12-beta.1",
36
+ "@webiny/app-aco": "6.4.12-beta.1",
37
+ "@webiny/app-admin": "6.4.12-beta.1",
38
+ "@webiny/app-graphql-playground": "6.4.12-beta.1",
39
+ "@webiny/app-headless-cms-common": "6.4.12-beta.1",
40
+ "@webiny/app-trash-bin": "6.4.12-beta.1",
41
+ "@webiny/error": "6.4.12-beta.1",
42
+ "@webiny/feature": "6.4.12-beta.1",
43
+ "@webiny/form": "6.4.12-beta.1",
44
+ "@webiny/icons": "6.4.12-beta.1",
45
+ "@webiny/lexical-converter": "6.4.12-beta.1",
46
+ "@webiny/lexical-editor": "6.4.12-beta.1",
47
+ "@webiny/lexical-nodes": "6.4.12-beta.1",
48
+ "@webiny/plugins": "6.4.12-beta.1",
49
+ "@webiny/react-composition": "6.4.12-beta.1",
50
+ "@webiny/react-properties": "6.4.12-beta.1",
51
+ "@webiny/utils": "6.4.12-beta.1",
52
+ "@webiny/validation": "6.4.12-beta.1",
53
53
  "apollo-cache": "1.3.5",
54
54
  "apollo-client": "2.6.10",
55
55
  "apollo-link": "1.2.14",
@@ -60,21 +60,21 @@
60
60
  "graphql": "16.14.2",
61
61
  "graphql-tag": "2.12.7",
62
62
  "lodash": "4.18.1",
63
- "mobx": "6.16.1",
64
- "mobx-react-lite": "4.1.1",
63
+ "mobx": "7.0.3",
64
+ "mobx-react-lite": "5.0.3",
65
65
  "react": "18.3.1",
66
66
  "react-dnd": "16.0.1",
67
67
  "react-dnd-html5-backend": "16.0.1",
68
68
  "react-dom": "18.3.1",
69
69
  "react-helmet": "6.1.0",
70
70
  "use-deep-compare-effect": "1.8.1",
71
- "zod": "4.4.3"
71
+ "zod": "4.6.5"
72
72
  },
73
73
  "devDependencies": {
74
- "@webiny/build-tools": "6.4.11",
74
+ "@webiny/build-tools": "6.4.12-beta.1",
75
75
  "rimraf": "6.1.3",
76
76
  "typescript": "6.0.3",
77
- "vitest": "4.1.10"
77
+ "vitest": "5.0.1"
78
78
  },
79
79
  "publishConfig": {
80
80
  "access": "public"