@webiny/app-headless-cms 6.3.0-beta.2 → 6.3.0-beta.4

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 (21) hide show
  1. package/admin/contexts/Cms/index.js +1 -1
  2. package/admin/contexts/Cms/index.js.map +1 -1
  3. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js +3 -1
  4. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js.map +1 -1
  5. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js +3 -1
  6. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js.map +1 -1
  7. package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.js +12 -8
  8. package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.js.map +1 -1
  9. package/admin/plugins/fieldRenderers/ref/advanced/components/Options.js +5 -3
  10. package/admin/plugins/fieldRenderers/ref/advanced/components/Options.js.map +1 -1
  11. package/admin/plugins/fields/dynamicZone/TemplateDialog.js +1 -1
  12. package/admin/plugins/fields/dynamicZone/TemplateDialog.js.map +1 -1
  13. package/admin/views/contentModels/NewContentModelDialog.js +2 -5
  14. package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
  15. package/exports/admin/cms/field-renderers/common.d.ts +3 -0
  16. package/exports/admin/cms/field-renderers/common.js +5 -0
  17. package/exports/admin/cms/field-renderers/common.js.map +1 -0
  18. package/exports/admin/cms/field-renderers/dynamic-zone.d.ts +2 -0
  19. package/exports/admin/cms/field-renderers/dynamic-zone.js +2 -0
  20. package/exports/admin/cms/field-renderers/dynamic-zone.js.map +1 -1
  21. package/package.json +29 -26
@@ -289,7 +289,7 @@ export const CmsProvider = props => {
289
289
  options
290
290
  }) => {
291
291
  const mutation = createUpdateSingletonMutation(model);
292
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
292
+ // oxlint-disable-next-line typescript/no-unused-vars
293
293
  const {
294
294
  id,
295
295
  ...input
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","config","appConfig","useFeature","EventPublisherFeature","EntryAfterCreateEvent","EntryAfterUpdateEvent","EntryAfterDeleteEvent","createBulkActionMutation","createCreateFromMutation","createCreateMutation","createDeleteMutation","createPublishMutation","createReadQuery","createReadSingletonQuery","createRevisionsQuery","createUnpublishMutation","createUpdateMutation","createUpdateSingletonMutation","getFetchPolicy","defaultErrorMessage","catchErrorOnExecute","cb","options","ex","data","content","error","message","code","stack","CmsContext","createContext","undefined","CmsProvider","props","apiUrl","getKey","process","env","REACT_APP_API_URL","apolloClient","createApolloClient","uri","eventPublisher","value","getEntry","model","id","query","isRevisionId","includes","response","variables","revision","entryId","fetchPolicy","entry","listEntryRevisions","revisions","getSingletonEntry","createEntry","mutation","mutate","createdEntry","publish","catch","e","console","createEntryRevisionFrom","input","updateEntryRevision","updatedEntry","updateSingletonEntry","publishEntryRevision","unpublishEntryRevision","deleteEntry","permanently","split","bulkAction","action","where","search","responseData","createElement","Provider","Object","assign"],"sources":["index.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type ApolloClient from \"apollo-client\";\nimport { config as appConfig } from \"@webiny/app/config.js\";\nimport { useFeature } from \"@webiny/app\";\nimport { EventPublisherFeature } from \"@webiny/app/features/eventPublisher/index.js\";\nimport { EntryAfterCreateEvent } from \"~/features/contentEntry/events/EntryAfterCreateEvent.js\";\nimport { EntryAfterUpdateEvent } from \"~/features/contentEntry/events/EntryAfterUpdateEvent.js\";\nimport { EntryAfterDeleteEvent } from \"~/features/contentEntry/events/EntryAfterDeleteEvent.js\";\nimport type {\n CmsContentEntry,\n CmsContentEntryRevision,\n CmsErrorResponse,\n CmsModel\n} from \"~/types.js\";\nimport type {\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables,\n CmsEntryBulkActionMutationResponse,\n CmsEntryBulkActionMutationVariables,\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables,\n CmsEntryCreateMutationResponse,\n CmsEntryCreateMutationVariables,\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntryGetSingletonQueryResponse,\n CmsEntryPublishMutationResponse,\n CmsEntryPublishMutationVariables,\n CmsEntryUnpublishMutationResponse,\n CmsEntryUnpublishMutationVariables,\n CmsEntryUpdateMutationResponse,\n CmsEntryUpdateMutationVariables,\n CmsEntryUpdateSingletonMutationResponse,\n CmsEntryUpdateSingletonMutationVariables\n} from \"@webiny/app-headless-cms-common\";\nimport {\n createBulkActionMutation,\n createCreateFromMutation,\n createCreateMutation,\n createDeleteMutation,\n createPublishMutation,\n createReadQuery,\n createReadSingletonQuery,\n createRevisionsQuery,\n createUnpublishMutation,\n createUpdateMutation,\n createUpdateSingletonMutation\n} from \"@webiny/app-headless-cms-common\";\nimport { getFetchPolicy } from \"~/utils/getFetchPolicy.js\";\n\nexport interface EntryError {\n message: string;\n code?: string;\n data?: any;\n}\n\nexport interface OperationSuccess {\n entry: CmsContentEntry;\n error?: never;\n}\n\nexport interface OperationError {\n entry?: never;\n error: EntryError;\n}\n\nexport interface BulkActionOperationSuccess {\n id: string;\n error?: never;\n}\n\ninterface ListEntryRevisionsOperationSuccess {\n revisions: CmsContentEntryRevision[];\n error?: never;\n}\n\nexport type PartialCmsContentEntryWithId = Partial<CmsContentEntry> & { id: string };\nexport type GetEntryResponse = OperationSuccess | OperationError;\nexport type ListEntryRevisionsResponse = ListEntryRevisionsOperationSuccess | OperationError;\nexport type CreateEntryResponse = OperationSuccess | OperationError;\nexport type CreateEntryRevisionFromResponse = OperationSuccess | OperationError;\nexport type UpdateEntryRevisionResponse = OperationSuccess | OperationError;\nexport type DeleteEntryResponse = boolean | OperationError;\nexport type PublishEntryRevisionResponse = OperationSuccess | OperationError;\nexport type UnpublishEntryRevisionResponse = OperationSuccess | OperationError;\nexport type BulkActionResponse = BulkActionOperationSuccess | OperationError;\n\nexport interface CreateEntryParams {\n model: CmsModel;\n entry: Partial<CmsContentEntry>;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface CreateEntryRevisionFromParams {\n model: CmsModel;\n id: string;\n input?: Record<string, any>;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface UpdateEntryRevisionParams {\n model: CmsModel;\n entry: PartialCmsContentEntryWithId;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface UpdateSingletonEntryParams {\n model: CmsModel;\n entry: PartialCmsContentEntryWithId;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface PublishEntryRevisionParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface DeleteEntryParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface UnpublishEntryRevisionParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface GetEntryParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface ListEntryRevisionParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface GetSingletonEntryParams {\n model: CmsModel;\n}\n\nexport interface BulkActionParams {\n model: CmsModel;\n action: string;\n where?: Record<string, any>;\n search?: string;\n data?: Record<string, any>;\n}\n\ninterface ICatchErrorOnExecuteOptions {\n message?: string;\n}\n\nconst defaultErrorMessage =\n \"The system wasn't able to save the current entry. Please contact your support team to help you resolve this issue.\";\n\nconst catchErrorOnExecute = async <T = any,>(\n cb: () => Promise<T>,\n options?: ICatchErrorOnExecuteOptions\n) => {\n try {\n return await cb();\n } catch (ex) {\n return {\n data: {\n content: {\n data: null,\n error: {\n message: options?.message || defaultErrorMessage,\n code: ex.code,\n stack: ex.stack,\n data: {\n ...ex.data\n }\n }\n }\n }\n };\n }\n};\n\nexport interface CmsContext {\n createApolloClient: CmsProviderProps[\"createApolloClient\"];\n apolloClient: ApolloClient<any>;\n getEntry: (params: GetEntryParams) => Promise<GetEntryResponse>;\n listEntryRevisions: (params: ListEntryRevisionParams) => Promise<ListEntryRevisionsResponse>;\n getSingletonEntry: (params: GetSingletonEntryParams) => Promise<GetEntryResponse>;\n createEntry: (params: CreateEntryParams) => Promise<CreateEntryResponse>;\n createEntryRevisionFrom: (\n params: CreateEntryRevisionFromParams\n ) => Promise<CreateEntryRevisionFromResponse>;\n updateSingletonEntry: (\n params: UpdateSingletonEntryParams\n ) => Promise<UpdateEntryRevisionResponse>;\n updateEntryRevision: (\n params: UpdateEntryRevisionParams\n ) => Promise<UpdateEntryRevisionResponse>;\n publishEntryRevision: (\n params: PublishEntryRevisionParams\n ) => Promise<PublishEntryRevisionResponse>;\n unpublishEntryRevision: (\n params: UnpublishEntryRevisionParams\n ) => Promise<UnpublishEntryRevisionResponse>;\n deleteEntry: (params: DeleteEntryParams) => Promise<DeleteEntryResponse>;\n bulkAction: (params: BulkActionParams) => Promise<BulkActionResponse>;\n}\n\nexport const CmsContext = React.createContext<CmsContext | undefined>(undefined);\n\nexport interface CmsProviderProps {\n createApolloClient: (params: { uri: string }) => ApolloClient<any>;\n children: React.ReactNode;\n}\n\nexport const CmsProvider = (props: CmsProviderProps) => {\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n const apolloClient = useMemo(() => {\n return props.createApolloClient({ uri: `${apiUrl}/cms/manage` });\n }, []);\n const { eventPublisher } = useFeature(EventPublisherFeature);\n\n const value: CmsContext = {\n createApolloClient: props.createApolloClient,\n apolloClient,\n getEntry: async ({ model, id }) => {\n const query = createReadQuery(model);\n const isRevisionId = id.includes(\"#\");\n\n const response = await value.apolloClient.query<\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables\n >({\n query,\n variables: isRevisionId ? { revision: id } : { entryId: id },\n fetchPolicy: getFetchPolicy(model)\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on getEntry query.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n listEntryRevisions: async ({ model, id }) => {\n const query = createRevisionsQuery(model);\n\n const response = await value.apolloClient.query<\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n >({\n query,\n variables: { id },\n fetchPolicy: \"network-only\"\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on getRevisions query.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.revisions;\n\n if (error) {\n return { error };\n }\n\n return {\n revisions: data as CmsContentEntryRevision[]\n };\n },\n getSingletonEntry: async ({ model }) => {\n const query = createReadSingletonQuery(model);\n\n const response = await value.apolloClient.query<CmsEntryGetSingletonQueryResponse>({\n query,\n fetchPolicy: getFetchPolicy(model)\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on getSingletonEntry query.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n createEntry: async ({ model, entry, options }) => {\n const mutation = createCreateMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryCreateMutationResponse,\n CmsEntryCreateMutationVariables\n >({\n mutation,\n variables: {\n data: entry,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n },\n {\n message:\n \"The system wasn't able to create a new entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Create Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n const createdEntry = data as CmsContentEntry;\n\n await eventPublisher\n .publish(new EntryAfterCreateEvent({ entry: createdEntry, model }))\n .catch(e => {\n console.error(\"[CmsProvider] Failed to publish EntryAfterCreateEvent\", e);\n });\n\n return {\n entry: createdEntry\n };\n },\n createEntryRevisionFrom: async ({ model, id, input, options }) => {\n const mutation = createCreateFromMutation(model);\n const response = await catchErrorOnExecute(\n async () => {\n return value.apolloClient.mutate<\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables\n >({\n mutation,\n variables: {\n revision: id,\n data: input,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n },\n {\n message:\n \"The system wasn't able to create a new revision of the entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Create Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n updateEntryRevision: async ({ model, entry, options }) => {\n const mutation = createUpdateMutation(model);\n const { id, ...input } = entry;\n const response = await catchErrorOnExecute(() => {\n return value.apolloClient.mutate<\n CmsEntryUpdateMutationResponse,\n CmsEntryUpdateMutationVariables\n >({\n mutation,\n variables: {\n revision: id,\n data: input,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Update Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n const updatedEntry = data as CmsContentEntry;\n\n await eventPublisher\n .publish(new EntryAfterUpdateEvent({ entry: updatedEntry, model }))\n .catch(e => {\n console.error(\"[CmsProvider] Failed to publish EntryAfterUpdateEvent\", e);\n });\n\n return {\n entry: updatedEntry\n };\n },\n updateSingletonEntry: async ({ model, entry, options }) => {\n const mutation = createUpdateSingletonMutation(model);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { id, ...input } = entry;\n const response = await catchErrorOnExecute(() => {\n return value.apolloClient.mutate<\n CmsEntryUpdateSingletonMutationResponse,\n CmsEntryUpdateSingletonMutationVariables\n >({\n mutation,\n variables: {\n data: input,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on updateSingletonEntry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n publishEntryRevision: async ({ model, id }) => {\n const mutation = createPublishMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryPublishMutationResponse,\n CmsEntryPublishMutationVariables\n >({\n mutation,\n variables: {\n revision: id\n }\n });\n },\n {\n message:\n \"The system wasn't able to publish the current entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n const error: CmsErrorResponse = {\n message: \"Missing response data on Publish Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n };\n return { error };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n unpublishEntryRevision: async ({ model, id }) => {\n const mutation = createUnpublishMutation(model);\n\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryUnpublishMutationResponse,\n CmsEntryUnpublishMutationVariables\n >({\n mutation,\n variables: {\n revision: id\n }\n });\n },\n {\n message:\n \"The system wasn't able to unpublish the current entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Unpublish Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n const { data, error } = response.data.content;\n if (error) {\n return {\n error\n };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n deleteEntry: async ({ model, id }) => {\n const mutation = createDeleteMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables\n >({\n mutation,\n variables: {\n revision: id,\n permanently: false\n }\n });\n },\n {\n message:\n \"The system wasn't able to delete the current entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n const error: CmsErrorResponse = {\n message: \"Missing response data on Delete Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n };\n return { error };\n }\n\n const { error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n const entryId = id.split(\"#\")[0];\n await eventPublisher\n .publish(new EntryAfterDeleteEvent({ model, id, entryId }))\n .catch(e => {\n console.error(\"[CmsProvider] Failed to publish EntryAfterDeleteEvent\", e);\n });\n\n return true;\n },\n bulkAction: async ({ model, action, where, search, data }) => {\n const mutation = createBulkActionMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryBulkActionMutationResponse,\n CmsEntryBulkActionMutationVariables\n >({\n mutation,\n variables: {\n action,\n where,\n search,\n data\n }\n });\n },\n {\n message:\n \"The system wasn't able to perform the bulk action. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Bulk Action mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n const { data: responseData, error } = response.data.content;\n\n if (error) {\n return {\n error\n };\n }\n\n if (!responseData) {\n return {\n error: {\n message: \"Missing response data on Bulk Action mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n return responseData;\n }\n };\n\n return <CmsContext.Provider value={value} {...props} />;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","config","appConfig","useFeature","EventPublisherFeature","EntryAfterCreateEvent","EntryAfterUpdateEvent","EntryAfterDeleteEvent","createBulkActionMutation","createCreateFromMutation","createCreateMutation","createDeleteMutation","createPublishMutation","createReadQuery","createReadSingletonQuery","createRevisionsQuery","createUnpublishMutation","createUpdateMutation","createUpdateSingletonMutation","getFetchPolicy","defaultErrorMessage","catchErrorOnExecute","cb","options","ex","data","content","error","message","code","stack","CmsContext","createContext","undefined","CmsProvider","props","apiUrl","getKey","process","env","REACT_APP_API_URL","apolloClient","createApolloClient","uri","eventPublisher","value","getEntry","model","id","query","isRevisionId","includes","response","variables","revision","entryId","fetchPolicy","entry","listEntryRevisions","revisions","getSingletonEntry","createEntry","mutation","mutate","createdEntry","publish","catch","e","console","createEntryRevisionFrom","input","updateEntryRevision","updatedEntry","updateSingletonEntry","publishEntryRevision","unpublishEntryRevision","deleteEntry","permanently","split","bulkAction","action","where","search","responseData","createElement","Provider","Object","assign"],"sources":["index.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type ApolloClient from \"apollo-client\";\nimport { config as appConfig } from \"@webiny/app/config.js\";\nimport { useFeature } from \"@webiny/app\";\nimport { EventPublisherFeature } from \"@webiny/app/features/eventPublisher/index.js\";\nimport { EntryAfterCreateEvent } from \"~/features/contentEntry/events/EntryAfterCreateEvent.js\";\nimport { EntryAfterUpdateEvent } from \"~/features/contentEntry/events/EntryAfterUpdateEvent.js\";\nimport { EntryAfterDeleteEvent } from \"~/features/contentEntry/events/EntryAfterDeleteEvent.js\";\nimport type {\n CmsContentEntry,\n CmsContentEntryRevision,\n CmsErrorResponse,\n CmsModel\n} from \"~/types.js\";\nimport type {\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables,\n CmsEntryBulkActionMutationResponse,\n CmsEntryBulkActionMutationVariables,\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables,\n CmsEntryCreateMutationResponse,\n CmsEntryCreateMutationVariables,\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntryGetSingletonQueryResponse,\n CmsEntryPublishMutationResponse,\n CmsEntryPublishMutationVariables,\n CmsEntryUnpublishMutationResponse,\n CmsEntryUnpublishMutationVariables,\n CmsEntryUpdateMutationResponse,\n CmsEntryUpdateMutationVariables,\n CmsEntryUpdateSingletonMutationResponse,\n CmsEntryUpdateSingletonMutationVariables\n} from \"@webiny/app-headless-cms-common\";\nimport {\n createBulkActionMutation,\n createCreateFromMutation,\n createCreateMutation,\n createDeleteMutation,\n createPublishMutation,\n createReadQuery,\n createReadSingletonQuery,\n createRevisionsQuery,\n createUnpublishMutation,\n createUpdateMutation,\n createUpdateSingletonMutation\n} from \"@webiny/app-headless-cms-common\";\nimport { getFetchPolicy } from \"~/utils/getFetchPolicy.js\";\n\nexport interface EntryError {\n message: string;\n code?: string;\n data?: any;\n}\n\nexport interface OperationSuccess {\n entry: CmsContentEntry;\n error?: never;\n}\n\nexport interface OperationError {\n entry?: never;\n error: EntryError;\n}\n\nexport interface BulkActionOperationSuccess {\n id: string;\n error?: never;\n}\n\ninterface ListEntryRevisionsOperationSuccess {\n revisions: CmsContentEntryRevision[];\n error?: never;\n}\n\nexport type PartialCmsContentEntryWithId = Partial<CmsContentEntry> & { id: string };\nexport type GetEntryResponse = OperationSuccess | OperationError;\nexport type ListEntryRevisionsResponse = ListEntryRevisionsOperationSuccess | OperationError;\nexport type CreateEntryResponse = OperationSuccess | OperationError;\nexport type CreateEntryRevisionFromResponse = OperationSuccess | OperationError;\nexport type UpdateEntryRevisionResponse = OperationSuccess | OperationError;\nexport type DeleteEntryResponse = boolean | OperationError;\nexport type PublishEntryRevisionResponse = OperationSuccess | OperationError;\nexport type UnpublishEntryRevisionResponse = OperationSuccess | OperationError;\nexport type BulkActionResponse = BulkActionOperationSuccess | OperationError;\n\nexport interface CreateEntryParams {\n model: CmsModel;\n entry: Partial<CmsContentEntry>;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface CreateEntryRevisionFromParams {\n model: CmsModel;\n id: string;\n input?: Record<string, any>;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface UpdateEntryRevisionParams {\n model: CmsModel;\n entry: PartialCmsContentEntryWithId;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface UpdateSingletonEntryParams {\n model: CmsModel;\n entry: PartialCmsContentEntryWithId;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface PublishEntryRevisionParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface DeleteEntryParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface UnpublishEntryRevisionParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface GetEntryParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface ListEntryRevisionParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface GetSingletonEntryParams {\n model: CmsModel;\n}\n\nexport interface BulkActionParams {\n model: CmsModel;\n action: string;\n where?: Record<string, any>;\n search?: string;\n data?: Record<string, any>;\n}\n\ninterface ICatchErrorOnExecuteOptions {\n message?: string;\n}\n\nconst defaultErrorMessage =\n \"The system wasn't able to save the current entry. Please contact your support team to help you resolve this issue.\";\n\nconst catchErrorOnExecute = async <T = any,>(\n cb: () => Promise<T>,\n options?: ICatchErrorOnExecuteOptions\n) => {\n try {\n return await cb();\n } catch (ex) {\n return {\n data: {\n content: {\n data: null,\n error: {\n message: options?.message || defaultErrorMessage,\n code: ex.code,\n stack: ex.stack,\n data: {\n ...ex.data\n }\n }\n }\n }\n };\n }\n};\n\nexport interface CmsContext {\n createApolloClient: CmsProviderProps[\"createApolloClient\"];\n apolloClient: ApolloClient<any>;\n getEntry: (params: GetEntryParams) => Promise<GetEntryResponse>;\n listEntryRevisions: (params: ListEntryRevisionParams) => Promise<ListEntryRevisionsResponse>;\n getSingletonEntry: (params: GetSingletonEntryParams) => Promise<GetEntryResponse>;\n createEntry: (params: CreateEntryParams) => Promise<CreateEntryResponse>;\n createEntryRevisionFrom: (\n params: CreateEntryRevisionFromParams\n ) => Promise<CreateEntryRevisionFromResponse>;\n updateSingletonEntry: (\n params: UpdateSingletonEntryParams\n ) => Promise<UpdateEntryRevisionResponse>;\n updateEntryRevision: (\n params: UpdateEntryRevisionParams\n ) => Promise<UpdateEntryRevisionResponse>;\n publishEntryRevision: (\n params: PublishEntryRevisionParams\n ) => Promise<PublishEntryRevisionResponse>;\n unpublishEntryRevision: (\n params: UnpublishEntryRevisionParams\n ) => Promise<UnpublishEntryRevisionResponse>;\n deleteEntry: (params: DeleteEntryParams) => Promise<DeleteEntryResponse>;\n bulkAction: (params: BulkActionParams) => Promise<BulkActionResponse>;\n}\n\nexport const CmsContext = React.createContext<CmsContext | undefined>(undefined);\n\nexport interface CmsProviderProps {\n createApolloClient: (params: { uri: string }) => ApolloClient<any>;\n children: React.ReactNode;\n}\n\nexport const CmsProvider = (props: CmsProviderProps) => {\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n const apolloClient = useMemo(() => {\n return props.createApolloClient({ uri: `${apiUrl}/cms/manage` });\n }, []);\n const { eventPublisher } = useFeature(EventPublisherFeature);\n\n const value: CmsContext = {\n createApolloClient: props.createApolloClient,\n apolloClient,\n getEntry: async ({ model, id }) => {\n const query = createReadQuery(model);\n const isRevisionId = id.includes(\"#\");\n\n const response = await value.apolloClient.query<\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables\n >({\n query,\n variables: isRevisionId ? { revision: id } : { entryId: id },\n fetchPolicy: getFetchPolicy(model)\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on getEntry query.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n listEntryRevisions: async ({ model, id }) => {\n const query = createRevisionsQuery(model);\n\n const response = await value.apolloClient.query<\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n >({\n query,\n variables: { id },\n fetchPolicy: \"network-only\"\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on getRevisions query.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.revisions;\n\n if (error) {\n return { error };\n }\n\n return {\n revisions: data as CmsContentEntryRevision[]\n };\n },\n getSingletonEntry: async ({ model }) => {\n const query = createReadSingletonQuery(model);\n\n const response = await value.apolloClient.query<CmsEntryGetSingletonQueryResponse>({\n query,\n fetchPolicy: getFetchPolicy(model)\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on getSingletonEntry query.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n createEntry: async ({ model, entry, options }) => {\n const mutation = createCreateMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryCreateMutationResponse,\n CmsEntryCreateMutationVariables\n >({\n mutation,\n variables: {\n data: entry,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n },\n {\n message:\n \"The system wasn't able to create a new entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Create Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n const createdEntry = data as CmsContentEntry;\n\n await eventPublisher\n .publish(new EntryAfterCreateEvent({ entry: createdEntry, model }))\n .catch(e => {\n console.error(\"[CmsProvider] Failed to publish EntryAfterCreateEvent\", e);\n });\n\n return {\n entry: createdEntry\n };\n },\n createEntryRevisionFrom: async ({ model, id, input, options }) => {\n const mutation = createCreateFromMutation(model);\n const response = await catchErrorOnExecute(\n async () => {\n return value.apolloClient.mutate<\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables\n >({\n mutation,\n variables: {\n revision: id,\n data: input,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n },\n {\n message:\n \"The system wasn't able to create a new revision of the entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Create Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n updateEntryRevision: async ({ model, entry, options }) => {\n const mutation = createUpdateMutation(model);\n const { id, ...input } = entry;\n const response = await catchErrorOnExecute(() => {\n return value.apolloClient.mutate<\n CmsEntryUpdateMutationResponse,\n CmsEntryUpdateMutationVariables\n >({\n mutation,\n variables: {\n revision: id,\n data: input,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Update Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n const updatedEntry = data as CmsContentEntry;\n\n await eventPublisher\n .publish(new EntryAfterUpdateEvent({ entry: updatedEntry, model }))\n .catch(e => {\n console.error(\"[CmsProvider] Failed to publish EntryAfterUpdateEvent\", e);\n });\n\n return {\n entry: updatedEntry\n };\n },\n updateSingletonEntry: async ({ model, entry, options }) => {\n const mutation = createUpdateSingletonMutation(model);\n // oxlint-disable-next-line typescript/no-unused-vars\n const { id, ...input } = entry;\n const response = await catchErrorOnExecute(() => {\n return value.apolloClient.mutate<\n CmsEntryUpdateSingletonMutationResponse,\n CmsEntryUpdateSingletonMutationVariables\n >({\n mutation,\n variables: {\n data: input,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on updateSingletonEntry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n publishEntryRevision: async ({ model, id }) => {\n const mutation = createPublishMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryPublishMutationResponse,\n CmsEntryPublishMutationVariables\n >({\n mutation,\n variables: {\n revision: id\n }\n });\n },\n {\n message:\n \"The system wasn't able to publish the current entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n const error: CmsErrorResponse = {\n message: \"Missing response data on Publish Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n };\n return { error };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n unpublishEntryRevision: async ({ model, id }) => {\n const mutation = createUnpublishMutation(model);\n\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryUnpublishMutationResponse,\n CmsEntryUnpublishMutationVariables\n >({\n mutation,\n variables: {\n revision: id\n }\n });\n },\n {\n message:\n \"The system wasn't able to unpublish the current entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Unpublish Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n const { data, error } = response.data.content;\n if (error) {\n return {\n error\n };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n deleteEntry: async ({ model, id }) => {\n const mutation = createDeleteMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables\n >({\n mutation,\n variables: {\n revision: id,\n permanently: false\n }\n });\n },\n {\n message:\n \"The system wasn't able to delete the current entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n const error: CmsErrorResponse = {\n message: \"Missing response data on Delete Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n };\n return { error };\n }\n\n const { error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n const entryId = id.split(\"#\")[0];\n await eventPublisher\n .publish(new EntryAfterDeleteEvent({ model, id, entryId }))\n .catch(e => {\n console.error(\"[CmsProvider] Failed to publish EntryAfterDeleteEvent\", e);\n });\n\n return true;\n },\n bulkAction: async ({ model, action, where, search, data }) => {\n const mutation = createBulkActionMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryBulkActionMutationResponse,\n CmsEntryBulkActionMutationVariables\n >({\n mutation,\n variables: {\n action,\n where,\n search,\n data\n }\n });\n },\n {\n message:\n \"The system wasn't able to perform the bulk action. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Bulk Action mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n const { data: responseData, error } = response.data.content;\n\n if (error) {\n return {\n error\n };\n }\n\n if (!responseData) {\n return {\n error: {\n message: \"Missing response data on Bulk Action mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n return responseData;\n }\n };\n\n return <CmsContext.Provider value={value} {...props} />;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -153,7 +153,9 @@ export const AdvancedMultipleReferenceField = props => {
153
153
  message: validationMessage
154
154
  } = validation || {};
155
155
  const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);
156
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
156
+ return /*#__PURE__*/React.createElement("div", {
157
+ className: "@container"
158
+ }, /*#__PURE__*/React.createElement("div", {
157
159
  className: "flex items-center justify-between"
158
160
  }, /*#__PURE__*/React.createElement(FormComponentLabel, {
159
161
  text: field.label,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","GQL","withoutBeingDeletedModels","Options","useReferences","Entry","ReferencesDialog","useModelField","useModelFieldGraphqlContext","useQuery","useSnackbar","parseIdentifier","Entries","NewReferencedEntryDialog","FormComponentErrorMessage","FormComponentLabel","CanEditField","useFieldEffectiveRules","AdvancedMultipleReferenceField","props","bind","showSnackbar","field","rules","requestContext","disabled","canEdit","values","value","linkEntryDialogModel","setLinkEntryDialogModel","newEntryDialogModel","setNewEntryDialogModel","loadedModels","setLoadedModels","data","loading","loadingModels","LIST_CONTENT_MODELS","context","listContentModels","error","message","onNewRecord","modelId","model","find","console","log","onNewEntryDialogClose","onExistingRecord","onLinkEntryDialogClose","entries","loadMore","perPage","onRemove","id","Array","isArray","entryId","newValues","filter","valueEntryId","onChange","length","models","settings","reduce","collection","ref","push","storeValues","onNewEntryCreate","concat","onMoveUp","index","toTop","arr","splice","moveValueUp","onMoveDown","toBottom","moveValueDown","validation","isValid","validationIsValid","validationMessage","invalid","createElement","Fragment","className","text","label","entry","isFirst","isLast","placement","key","undefined","onLinkExistingRecord","onClose","Object","assign","multiple","contentModel","onDialogClose"],"sources":["AdvancedMultipleReferenceField.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { ListCmsModelsQueryResponse } from \"~/admin/viewsGraphql.js\";\nimport * as GQL from \"~/admin/viewsGraphql.js\";\nimport { withoutBeingDeletedModels } from \"~/admin/viewsGraphql.js\";\nimport type {\n BindComponentRenderProp,\n CmsContentEntry,\n CmsModel,\n CmsModelFieldRendererProps\n} from \"~/types.js\";\nimport { Options } from \"./Options.js\";\nimport { useReferences } from \"../hooks/useReferences.js\";\nimport { Entry } from \"./Entry.js\";\nimport { ReferencesDialog } from \"./ReferencesDialog.js\";\nimport { useModelField, useModelFieldGraphqlContext, useQuery } from \"~/admin/hooks/index.js\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport type { CmsReferenceValue } from \"~/admin/plugins/fieldRenderers/ref/components/types.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { Entries } from \"./Entries.js\";\nimport { NewReferencedEntryDialog } from \"~/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog.js\";\nimport { FormComponentErrorMessage, FormComponentLabel } from \"@webiny/admin-ui\";\nimport { CanEditField, useFieldEffectiveRules } from \"@webiny/app-headless-cms-common\";\n\ninterface AdvancedMultipleReferenceFieldProps extends CmsModelFieldRendererProps {\n bind: BindComponentRenderProp<CmsReferenceValue[] | undefined | null>;\n}\n\nexport const AdvancedMultipleReferenceField = (props: AdvancedMultipleReferenceFieldProps) => {\n const { bind } = props;\n const { showSnackbar } = useSnackbar();\n const { field } = useModelField();\n const rules = useFieldEffectiveRules(field);\n const requestContext = useModelFieldGraphqlContext();\n const disabled = !rules.canEdit || rules.disabled;\n\n const values = useMemo(() => {\n return bind.value || [];\n }, [bind.value]);\n\n const [linkEntryDialogModel, setLinkEntryDialogModel] = useState<CmsModel | null>(null);\n const [newEntryDialogModel, setNewEntryDialogModel] = useState<CmsModel | null>(null);\n\n const [loadedModels, setLoadedModels] = useState<CmsModel[]>([]);\n\n const { data, loading: loadingModels } = useQuery<ListCmsModelsQueryResponse>(\n GQL.LIST_CONTENT_MODELS,\n {\n context: requestContext\n }\n );\n\n useEffect(() => {\n if (loadingModels || !data?.listContentModels?.data) {\n return;\n } else if (data.listContentModels.error) {\n setLoadedModels([]);\n showSnackbar(data.listContentModels.error.message);\n return;\n }\n setLoadedModels(withoutBeingDeletedModels(data.listContentModels.data));\n }, [data]);\n\n const onNewRecord = useCallback(\n (modelId: string) => {\n const model = loadedModels.find(model => model.modelId === modelId);\n if (!model) {\n console.log(`Cannot find model by modelId \"${modelId}\".`);\n return;\n }\n setNewEntryDialogModel(model);\n },\n [loadedModels, linkEntryDialogModel]\n );\n\n const onNewEntryDialogClose = useCallback(() => {\n setNewEntryDialogModel(null);\n }, [linkEntryDialogModel]);\n\n const onExistingRecord = useCallback(\n (modelId: string) => {\n const model = loadedModels.find(model => model.modelId === modelId);\n if (!model) {\n console.log(`Cannot find model by modelId \"${modelId}\".`);\n return;\n }\n setLinkEntryDialogModel(model);\n },\n [loadedModels, linkEntryDialogModel]\n );\n\n const onLinkEntryDialogClose = useCallback(() => {\n setLinkEntryDialogModel(null);\n }, []);\n\n const { entries, loadMore } = useReferences({\n values,\n perPage: 10,\n requestContext\n });\n\n const onRemove = useCallback(\n (id: string) => {\n if (!values || !Array.isArray(values)) {\n return;\n }\n const { id: entryId } = parseIdentifier(id);\n const newValues = values.filter(value => {\n const { id: valueEntryId } = parseIdentifier(value.id);\n return valueEntryId !== entryId;\n });\n bind.onChange(newValues.length > 0 ? newValues : null);\n },\n [entries, values]\n );\n\n const models = useMemo(() => {\n if (!loadedModels || !field.settings?.models || !Array.isArray(field.settings.models)) {\n return [];\n }\n\n return field.settings.models.reduce<CmsModel[]>((collection, ref) => {\n const model = loadedModels.find(model => model.modelId === ref.modelId);\n if (!model) {\n return collection;\n }\n collection.push(model);\n\n return collection;\n }, []);\n }, [loadedModels, entries]);\n\n const storeValues = useCallback(\n (values: CmsReferenceValue[]) => {\n bind.onChange(values?.length ? values : null);\n return;\n },\n [values]\n );\n\n const onNewEntryCreate = useCallback(\n (data: Partial<CmsContentEntry> | null) => {\n if (!data) {\n console.log(\n `Could not store new entry to the reference field. Missing whole entry.`\n );\n return;\n } else if (!data.id) {\n console.log(\n `Could not store new entry to the reference field. Missing \"id\" value.`\n );\n return;\n } else if (!data.modelId) {\n console.log(\n `Could not store new entry to the reference field. Missing \"modelId\" value.`\n );\n return;\n }\n storeValues(\n values.concat([\n {\n id: data.id,\n modelId: data.modelId\n }\n ])\n );\n },\n [storeValues]\n );\n\n const onMoveUp = useCallback(\n (index: number, toTop?: boolean) => {\n if (!values?.length) {\n return;\n } else if (toTop) {\n const arr = values.splice(index, 1);\n bind.onChange(arr.concat(values));\n return;\n }\n bind.moveValueUp(index);\n },\n [values]\n );\n const onMoveDown = useCallback(\n (index: number, toBottom?: boolean) => {\n if (!values?.length) {\n return;\n } else if (toBottom === true) {\n const arr = values.splice(index, 1);\n bind.onChange(values.concat(arr));\n return;\n }\n bind.moveValueDown(index);\n },\n [values]\n );\n\n const { validation } = bind;\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n return (\n <>\n <div className={\"flex items-center justify-between\"}>\n <FormComponentLabel text={field.label} invalid={invalid} disabled={disabled} />\n </div>\n <div className={\"webiny_ref-field-container\"}>\n <Entries entries={entries} loadMore={loadMore}>\n {(entry, index) => {\n const isFirst = index === 0;\n const isLast = index >= values.length - 1;\n const model = loadedModels.find(\n model => model.modelId === entry.model.modelId\n );\n if (!model) {\n return null;\n }\n return (\n <Entry\n disabled={disabled}\n model={model}\n placement=\"multiRef\"\n key={`reference-entry-${entry.id}`}\n index={index}\n entry={entry}\n onRemove={onRemove}\n onMoveUp={!isFirst ? onMoveUp : undefined}\n onMoveDown={!isLast ? onMoveDown : undefined}\n />\n );\n }}\n </Entries>\n </div>\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n />\n {values.length > 0 && <div className=\"mb-md\" />}\n\n <CanEditField>\n <Options\n models={models}\n onNewRecord={onNewRecord}\n onLinkExistingRecord={onExistingRecord}\n />\n </CanEditField>\n\n {newEntryDialogModel && (\n <NewReferencedEntryDialog\n model={newEntryDialogModel}\n onClose={onNewEntryDialogClose}\n onChange={onNewEntryCreate}\n />\n )}\n\n {linkEntryDialogModel && (\n <ReferencesDialog\n {...props}\n field={field}\n multiple={true}\n values={values}\n contentModel={linkEntryDialogModel}\n storeValues={storeValues}\n onDialogClose={onLinkEntryDialogClose}\n />\n )}\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","GQL","withoutBeingDeletedModels","Options","useReferences","Entry","ReferencesDialog","useModelField","useModelFieldGraphqlContext","useQuery","useSnackbar","parseIdentifier","Entries","NewReferencedEntryDialog","FormComponentErrorMessage","FormComponentLabel","CanEditField","useFieldEffectiveRules","AdvancedMultipleReferenceField","props","bind","showSnackbar","field","rules","requestContext","disabled","canEdit","values","value","linkEntryDialogModel","setLinkEntryDialogModel","newEntryDialogModel","setNewEntryDialogModel","loadedModels","setLoadedModels","data","loading","loadingModels","LIST_CONTENT_MODELS","context","listContentModels","error","message","onNewRecord","modelId","model","find","console","log","onNewEntryDialogClose","onExistingRecord","onLinkEntryDialogClose","entries","loadMore","perPage","onRemove","id","Array","isArray","entryId","newValues","filter","valueEntryId","onChange","length","models","settings","reduce","collection","ref","push","storeValues","onNewEntryCreate","concat","onMoveUp","index","toTop","arr","splice","moveValueUp","onMoveDown","toBottom","moveValueDown","validation","isValid","validationIsValid","validationMessage","invalid","createElement","className","text","label","entry","isFirst","isLast","placement","key","undefined","onLinkExistingRecord","onClose","Object","assign","multiple","contentModel","onDialogClose"],"sources":["AdvancedMultipleReferenceField.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { ListCmsModelsQueryResponse } from \"~/admin/viewsGraphql.js\";\nimport * as GQL from \"~/admin/viewsGraphql.js\";\nimport { withoutBeingDeletedModels } from \"~/admin/viewsGraphql.js\";\nimport type {\n BindComponentRenderProp,\n CmsContentEntry,\n CmsModel,\n CmsModelFieldRendererProps\n} from \"~/types.js\";\nimport { Options } from \"./Options.js\";\nimport { useReferences } from \"../hooks/useReferences.js\";\nimport { Entry } from \"./Entry.js\";\nimport { ReferencesDialog } from \"./ReferencesDialog.js\";\nimport { useModelField, useModelFieldGraphqlContext, useQuery } from \"~/admin/hooks/index.js\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport type { CmsReferenceValue } from \"~/admin/plugins/fieldRenderers/ref/components/types.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { Entries } from \"./Entries.js\";\nimport { NewReferencedEntryDialog } from \"~/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog.js\";\nimport { FormComponentErrorMessage, FormComponentLabel } from \"@webiny/admin-ui\";\nimport { CanEditField, useFieldEffectiveRules } from \"@webiny/app-headless-cms-common\";\n\ninterface AdvancedMultipleReferenceFieldProps extends CmsModelFieldRendererProps {\n bind: BindComponentRenderProp<CmsReferenceValue[] | undefined | null>;\n}\n\nexport const AdvancedMultipleReferenceField = (props: AdvancedMultipleReferenceFieldProps) => {\n const { bind } = props;\n const { showSnackbar } = useSnackbar();\n const { field } = useModelField();\n const rules = useFieldEffectiveRules(field);\n const requestContext = useModelFieldGraphqlContext();\n const disabled = !rules.canEdit || rules.disabled;\n\n const values = useMemo(() => {\n return bind.value || [];\n }, [bind.value]);\n\n const [linkEntryDialogModel, setLinkEntryDialogModel] = useState<CmsModel | null>(null);\n const [newEntryDialogModel, setNewEntryDialogModel] = useState<CmsModel | null>(null);\n\n const [loadedModels, setLoadedModels] = useState<CmsModel[]>([]);\n\n const { data, loading: loadingModels } = useQuery<ListCmsModelsQueryResponse>(\n GQL.LIST_CONTENT_MODELS,\n {\n context: requestContext\n }\n );\n\n useEffect(() => {\n if (loadingModels || !data?.listContentModels?.data) {\n return;\n } else if (data.listContentModels.error) {\n setLoadedModels([]);\n showSnackbar(data.listContentModels.error.message);\n return;\n }\n setLoadedModels(withoutBeingDeletedModels(data.listContentModels.data));\n }, [data]);\n\n const onNewRecord = useCallback(\n (modelId: string) => {\n const model = loadedModels.find(model => model.modelId === modelId);\n if (!model) {\n console.log(`Cannot find model by modelId \"${modelId}\".`);\n return;\n }\n setNewEntryDialogModel(model);\n },\n [loadedModels, linkEntryDialogModel]\n );\n\n const onNewEntryDialogClose = useCallback(() => {\n setNewEntryDialogModel(null);\n }, [linkEntryDialogModel]);\n\n const onExistingRecord = useCallback(\n (modelId: string) => {\n const model = loadedModels.find(model => model.modelId === modelId);\n if (!model) {\n console.log(`Cannot find model by modelId \"${modelId}\".`);\n return;\n }\n setLinkEntryDialogModel(model);\n },\n [loadedModels, linkEntryDialogModel]\n );\n\n const onLinkEntryDialogClose = useCallback(() => {\n setLinkEntryDialogModel(null);\n }, []);\n\n const { entries, loadMore } = useReferences({\n values,\n perPage: 10,\n requestContext\n });\n\n const onRemove = useCallback(\n (id: string) => {\n if (!values || !Array.isArray(values)) {\n return;\n }\n const { id: entryId } = parseIdentifier(id);\n const newValues = values.filter(value => {\n const { id: valueEntryId } = parseIdentifier(value.id);\n return valueEntryId !== entryId;\n });\n bind.onChange(newValues.length > 0 ? newValues : null);\n },\n [entries, values]\n );\n\n const models = useMemo(() => {\n if (!loadedModels || !field.settings?.models || !Array.isArray(field.settings.models)) {\n return [];\n }\n\n return field.settings.models.reduce<CmsModel[]>((collection, ref) => {\n const model = loadedModels.find(model => model.modelId === ref.modelId);\n if (!model) {\n return collection;\n }\n collection.push(model);\n\n return collection;\n }, []);\n }, [loadedModels, entries]);\n\n const storeValues = useCallback(\n (values: CmsReferenceValue[]) => {\n bind.onChange(values?.length ? values : null);\n return;\n },\n [values]\n );\n\n const onNewEntryCreate = useCallback(\n (data: Partial<CmsContentEntry> | null) => {\n if (!data) {\n console.log(\n `Could not store new entry to the reference field. Missing whole entry.`\n );\n return;\n } else if (!data.id) {\n console.log(\n `Could not store new entry to the reference field. Missing \"id\" value.`\n );\n return;\n } else if (!data.modelId) {\n console.log(\n `Could not store new entry to the reference field. Missing \"modelId\" value.`\n );\n return;\n }\n storeValues(\n values.concat([\n {\n id: data.id,\n modelId: data.modelId\n }\n ])\n );\n },\n [storeValues]\n );\n\n const onMoveUp = useCallback(\n (index: number, toTop?: boolean) => {\n if (!values?.length) {\n return;\n } else if (toTop) {\n const arr = values.splice(index, 1);\n bind.onChange(arr.concat(values));\n return;\n }\n bind.moveValueUp(index);\n },\n [values]\n );\n const onMoveDown = useCallback(\n (index: number, toBottom?: boolean) => {\n if (!values?.length) {\n return;\n } else if (toBottom === true) {\n const arr = values.splice(index, 1);\n bind.onChange(values.concat(arr));\n return;\n }\n bind.moveValueDown(index);\n },\n [values]\n );\n\n const { validation } = bind;\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n return (\n <div className={\"@container\"}>\n <div className={\"flex items-center justify-between\"}>\n <FormComponentLabel text={field.label} invalid={invalid} disabled={disabled} />\n </div>\n <div className={\"webiny_ref-field-container\"}>\n <Entries entries={entries} loadMore={loadMore}>\n {(entry, index) => {\n const isFirst = index === 0;\n const isLast = index >= values.length - 1;\n const model = loadedModels.find(\n model => model.modelId === entry.model.modelId\n );\n if (!model) {\n return null;\n }\n return (\n <Entry\n disabled={disabled}\n model={model}\n placement=\"multiRef\"\n key={`reference-entry-${entry.id}`}\n index={index}\n entry={entry}\n onRemove={onRemove}\n onMoveUp={!isFirst ? onMoveUp : undefined}\n onMoveDown={!isLast ? onMoveDown : undefined}\n />\n );\n }}\n </Entries>\n </div>\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n />\n {values.length > 0 && <div className=\"mb-md\" />}\n\n <CanEditField>\n <Options\n models={models}\n onNewRecord={onNewRecord}\n onLinkExistingRecord={onExistingRecord}\n />\n </CanEditField>\n\n {newEntryDialogModel && (\n <NewReferencedEntryDialog\n model={newEntryDialogModel}\n onClose={onNewEntryDialogClose}\n onChange={onNewEntryCreate}\n />\n )}\n\n {linkEntryDialogModel && (\n <ReferencesDialog\n {...props}\n field={field}\n multiple={true}\n values={values}\n contentModel={linkEntryDialogModel}\n storeValues={storeValues}\n onDialogClose={onLinkEntryDialogClose}\n />\n )}\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -135,7 +135,9 @@ export const AdvancedSingleReferenceField = props => {
135
135
  } = validation || {};
136
136
  const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);
137
137
  const disabled = !rules.canEdit || rules.disabled;
138
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormComponentLabel, {
138
+ return /*#__PURE__*/React.createElement("div", {
139
+ className: "@container"
140
+ }, /*#__PURE__*/React.createElement(FormComponentLabel, {
139
141
  text: field.label,
140
142
  invalid: invalid,
141
143
  disabled: disabled
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","Options","useReferences","Entry","ReferencesDialog","useQuery","useModelFieldGraphqlContext","useModelField","GQL","useSnackbar","NewReferencedEntryDialog","FormComponentErrorMessage","FormComponentLabel","OverlayLoader","CanEditField","useFieldEffectiveRules","AdvancedSingleReferenceField","props","bind","showSnackbar","field","rules","linkEntryDialogModel","setLinkEntryDialogModel","newEntryDialogModel","setNewEntryDialogModel","loadedModels","setLoadedModels","requestContext","data","loading","loadingModels","LIST_CONTENT_MODELS","context","listContentModels","error","message","onNewRecord","modelId","model","find","console","log","onNewEntryDialogClose","onExistingRecord","onLinkEntryDialogClose","entries","loadingEntries","values","value","onRemove","onChange","models","settings","map","filter","Boolean","storeValues","length","id","onNewEntryCreate","initialValue","entry","validation","isValid","validationIsValid","validationMessage","invalid","disabled","canEdit","createElement","Fragment","text","label","className","size","placement","index","onLinkExistingRecord","onClose","Object","assign","multiple","contentModel","onDialogClose"],"sources":["AdvancedSingleReferenceField.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type {\n BindComponentRenderProp,\n CmsContentEntry,\n CmsModelFieldRendererProps,\n CmsModel\n} from \"~/types.js\";\nimport { Options } from \"./Options.js\";\nimport { useReferences } from \"../hooks/useReferences.js\";\nimport { Entry } from \"./Entry.js\";\nimport { ReferencesDialog } from \"./ReferencesDialog.js\";\nimport { useQuery, useModelFieldGraphqlContext, useModelField } from \"~/admin/hooks/index.js\";\nimport type { ListCmsModelsQueryResponse } from \"~/admin/viewsGraphql.js\";\nimport * as GQL from \"~/admin/viewsGraphql.js\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport type { CmsReferenceValue } from \"~/admin/plugins/fieldRenderers/ref/components/types.js\";\nimport { NewReferencedEntryDialog } from \"~/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog.js\";\nimport { FormComponentErrorMessage, FormComponentLabel, OverlayLoader } from \"@webiny/admin-ui\";\nimport { CanEditField, useFieldEffectiveRules } from \"@webiny/app-headless-cms-common\";\n\ninterface AdvancedSingleReferenceFieldProps extends CmsModelFieldRendererProps {\n bind: BindComponentRenderProp<CmsReferenceValue | null>;\n}\n\nexport const AdvancedSingleReferenceField = (props: AdvancedSingleReferenceFieldProps) => {\n const { bind } = props;\n const { showSnackbar } = useSnackbar();\n const { field } = useModelField();\n const rules = useFieldEffectiveRules(field);\n\n const [linkEntryDialogModel, setLinkEntryDialogModel] = useState<CmsModel | null>(null);\n const [newEntryDialogModel, setNewEntryDialogModel] = useState<CmsModel | null>(null);\n const [loadedModels, setLoadedModels] = useState<CmsModel[]>([]);\n const requestContext = useModelFieldGraphqlContext();\n\n const { data, loading: loadingModels } = useQuery<ListCmsModelsQueryResponse>(\n GQL.LIST_CONTENT_MODELS,\n {\n context: requestContext\n }\n );\n\n useEffect(() => {\n if (loadingModels || !data?.listContentModels?.data) {\n return;\n } else if (data.listContentModels.error) {\n setLoadedModels([]);\n showSnackbar(data.listContentModels.error.message);\n return;\n }\n setLoadedModels(data.listContentModels.data);\n }, [data]);\n\n const onNewRecord = useCallback(\n (modelId: string) => {\n const model = loadedModels.find(model => model.modelId === modelId);\n if (!model) {\n console.log(`Cannot find model by modelId \"${modelId}\".`);\n return;\n }\n setNewEntryDialogModel(model);\n },\n [loadedModels, linkEntryDialogModel]\n );\n\n const onNewEntryDialogClose = useCallback(() => {\n setNewEntryDialogModel(null);\n }, [linkEntryDialogModel]);\n\n const onExistingRecord = useCallback(\n (modelId: string) => {\n const model = loadedModels.find(model => model.modelId === modelId);\n if (!model) {\n console.log(`Cannot find model by modelId \"${modelId}\".`);\n return;\n }\n setLinkEntryDialogModel(model);\n },\n [loadedModels, linkEntryDialogModel]\n );\n\n const onLinkEntryDialogClose = useCallback(() => {\n setLinkEntryDialogModel(null);\n }, []);\n\n const { entries, loading: loadingEntries } = useReferences({\n values: bind.value,\n requestContext\n });\n\n const onRemove = useCallback(() => {\n bind.onChange(null);\n }, [entries]);\n\n const models = useMemo(() => {\n if (!loadedModels || !field.settings?.models) {\n return [];\n }\n\n return (field.settings?.models || [])\n .map(({ modelId }) => {\n return loadedModels.find(model => model.modelId === modelId);\n })\n .filter(Boolean) as CmsModel[];\n }, [loadedModels, entries]);\n\n const loading = loadingEntries || loadingModels;\n\n const storeValues = useCallback(\n (values: CmsReferenceValue[]) => {\n if (values.length > 1) {\n console.log(\"More than one value selected. This should never happen.\");\n return;\n } else if (values.length === 0 || !values[0]?.id) {\n bind.onChange(null);\n return;\n }\n bind.onChange(values[0]);\n },\n [bind.value, bind.onChange, entries]\n );\n\n const onNewEntryCreate = useCallback(\n (data: CmsContentEntry | null) => {\n if (!data) {\n console.log(\n `Could not store new entry to the reference field. Missing whole entry.`\n );\n return;\n } else if (!data.id) {\n console.log(\n `Could not store new entry to the reference field. Missing \"id\" value.`\n );\n return;\n } else if (!data.modelId) {\n console.log(\n `Could not store new entry to the reference field. Missing \"modelId\" value.`\n );\n return;\n }\n storeValues([\n {\n id: data.id,\n modelId: data.modelId\n }\n ]);\n },\n [storeValues]\n );\n\n const initialValue = useMemo(() => {\n if (entries.length === 0 || loadedModels.length === 0) {\n return null;\n }\n const entry = entries[0];\n if (!entry) {\n return null;\n }\n const model = loadedModels.find(model => model.modelId === entry.model.modelId);\n if (!model) {\n return null;\n }\n return {\n entry,\n model\n };\n }, [entries, loadedModels]);\n\n const { validation } = bind;\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n const disabled = !rules.canEdit || rules.disabled;\n\n return (\n <>\n <FormComponentLabel text={field.label} invalid={invalid} disabled={disabled} />\n <div className={\"webiny_ref-field-container\"}>\n {loading && <OverlayLoader size={\"md\"} />}\n {initialValue && (\n <Entry\n model={initialValue.model}\n placement=\"singleRefField\"\n index={0}\n entry={initialValue.entry}\n onRemove={onRemove}\n />\n )}\n </div>\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n />\n {initialValue && <div className=\"mb-md\" />}\n <CanEditField>\n <Options\n models={models}\n onNewRecord={onNewRecord}\n onLinkExistingRecord={onExistingRecord}\n />\n </CanEditField>\n\n {newEntryDialogModel && (\n <NewReferencedEntryDialog\n model={newEntryDialogModel}\n onClose={onNewEntryDialogClose}\n onChange={onNewEntryCreate}\n />\n )}\n\n {linkEntryDialogModel && (\n <ReferencesDialog\n {...props}\n multiple={false}\n values={bind.value ? [bind.value] : []}\n contentModel={linkEntryDialogModel}\n storeValues={storeValues}\n onDialogClose={onLinkEntryDialogClose}\n />\n )}\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","Options","useReferences","Entry","ReferencesDialog","useQuery","useModelFieldGraphqlContext","useModelField","GQL","useSnackbar","NewReferencedEntryDialog","FormComponentErrorMessage","FormComponentLabel","OverlayLoader","CanEditField","useFieldEffectiveRules","AdvancedSingleReferenceField","props","bind","showSnackbar","field","rules","linkEntryDialogModel","setLinkEntryDialogModel","newEntryDialogModel","setNewEntryDialogModel","loadedModels","setLoadedModels","requestContext","data","loading","loadingModels","LIST_CONTENT_MODELS","context","listContentModels","error","message","onNewRecord","modelId","model","find","console","log","onNewEntryDialogClose","onExistingRecord","onLinkEntryDialogClose","entries","loadingEntries","values","value","onRemove","onChange","models","settings","map","filter","Boolean","storeValues","length","id","onNewEntryCreate","initialValue","entry","validation","isValid","validationIsValid","validationMessage","invalid","disabled","canEdit","createElement","className","text","label","size","placement","index","onLinkExistingRecord","onClose","Object","assign","multiple","contentModel","onDialogClose"],"sources":["AdvancedSingleReferenceField.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type {\n BindComponentRenderProp,\n CmsContentEntry,\n CmsModelFieldRendererProps,\n CmsModel\n} from \"~/types.js\";\nimport { Options } from \"./Options.js\";\nimport { useReferences } from \"../hooks/useReferences.js\";\nimport { Entry } from \"./Entry.js\";\nimport { ReferencesDialog } from \"./ReferencesDialog.js\";\nimport { useQuery, useModelFieldGraphqlContext, useModelField } from \"~/admin/hooks/index.js\";\nimport type { ListCmsModelsQueryResponse } from \"~/admin/viewsGraphql.js\";\nimport * as GQL from \"~/admin/viewsGraphql.js\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport type { CmsReferenceValue } from \"~/admin/plugins/fieldRenderers/ref/components/types.js\";\nimport { NewReferencedEntryDialog } from \"~/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog.js\";\nimport { FormComponentErrorMessage, FormComponentLabel, OverlayLoader } from \"@webiny/admin-ui\";\nimport { CanEditField, useFieldEffectiveRules } from \"@webiny/app-headless-cms-common\";\n\ninterface AdvancedSingleReferenceFieldProps extends CmsModelFieldRendererProps {\n bind: BindComponentRenderProp<CmsReferenceValue | null>;\n}\n\nexport const AdvancedSingleReferenceField = (props: AdvancedSingleReferenceFieldProps) => {\n const { bind } = props;\n const { showSnackbar } = useSnackbar();\n const { field } = useModelField();\n const rules = useFieldEffectiveRules(field);\n\n const [linkEntryDialogModel, setLinkEntryDialogModel] = useState<CmsModel | null>(null);\n const [newEntryDialogModel, setNewEntryDialogModel] = useState<CmsModel | null>(null);\n const [loadedModels, setLoadedModels] = useState<CmsModel[]>([]);\n const requestContext = useModelFieldGraphqlContext();\n\n const { data, loading: loadingModels } = useQuery<ListCmsModelsQueryResponse>(\n GQL.LIST_CONTENT_MODELS,\n {\n context: requestContext\n }\n );\n\n useEffect(() => {\n if (loadingModels || !data?.listContentModels?.data) {\n return;\n } else if (data.listContentModels.error) {\n setLoadedModels([]);\n showSnackbar(data.listContentModels.error.message);\n return;\n }\n setLoadedModels(data.listContentModels.data);\n }, [data]);\n\n const onNewRecord = useCallback(\n (modelId: string) => {\n const model = loadedModels.find(model => model.modelId === modelId);\n if (!model) {\n console.log(`Cannot find model by modelId \"${modelId}\".`);\n return;\n }\n setNewEntryDialogModel(model);\n },\n [loadedModels, linkEntryDialogModel]\n );\n\n const onNewEntryDialogClose = useCallback(() => {\n setNewEntryDialogModel(null);\n }, [linkEntryDialogModel]);\n\n const onExistingRecord = useCallback(\n (modelId: string) => {\n const model = loadedModels.find(model => model.modelId === modelId);\n if (!model) {\n console.log(`Cannot find model by modelId \"${modelId}\".`);\n return;\n }\n setLinkEntryDialogModel(model);\n },\n [loadedModels, linkEntryDialogModel]\n );\n\n const onLinkEntryDialogClose = useCallback(() => {\n setLinkEntryDialogModel(null);\n }, []);\n\n const { entries, loading: loadingEntries } = useReferences({\n values: bind.value,\n requestContext\n });\n\n const onRemove = useCallback(() => {\n bind.onChange(null);\n }, [entries]);\n\n const models = useMemo(() => {\n if (!loadedModels || !field.settings?.models) {\n return [];\n }\n\n return (field.settings?.models || [])\n .map(({ modelId }) => {\n return loadedModels.find(model => model.modelId === modelId);\n })\n .filter(Boolean) as CmsModel[];\n }, [loadedModels, entries]);\n\n const loading = loadingEntries || loadingModels;\n\n const storeValues = useCallback(\n (values: CmsReferenceValue[]) => {\n if (values.length > 1) {\n console.log(\"More than one value selected. This should never happen.\");\n return;\n } else if (values.length === 0 || !values[0]?.id) {\n bind.onChange(null);\n return;\n }\n bind.onChange(values[0]);\n },\n [bind.value, bind.onChange, entries]\n );\n\n const onNewEntryCreate = useCallback(\n (data: CmsContentEntry | null) => {\n if (!data) {\n console.log(\n `Could not store new entry to the reference field. Missing whole entry.`\n );\n return;\n } else if (!data.id) {\n console.log(\n `Could not store new entry to the reference field. Missing \"id\" value.`\n );\n return;\n } else if (!data.modelId) {\n console.log(\n `Could not store new entry to the reference field. Missing \"modelId\" value.`\n );\n return;\n }\n storeValues([\n {\n id: data.id,\n modelId: data.modelId\n }\n ]);\n },\n [storeValues]\n );\n\n const initialValue = useMemo(() => {\n if (entries.length === 0 || loadedModels.length === 0) {\n return null;\n }\n const entry = entries[0];\n if (!entry) {\n return null;\n }\n const model = loadedModels.find(model => model.modelId === entry.model.modelId);\n if (!model) {\n return null;\n }\n return {\n entry,\n model\n };\n }, [entries, loadedModels]);\n\n const { validation } = bind;\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n const disabled = !rules.canEdit || rules.disabled;\n\n return (\n <div className={\"@container\"}>\n <FormComponentLabel text={field.label} invalid={invalid} disabled={disabled} />\n <div className={\"webiny_ref-field-container\"}>\n {loading && <OverlayLoader size={\"md\"} />}\n {initialValue && (\n <Entry\n model={initialValue.model}\n placement=\"singleRefField\"\n index={0}\n entry={initialValue.entry}\n onRemove={onRemove}\n />\n )}\n </div>\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n />\n {initialValue && <div className=\"mb-md\" />}\n <CanEditField>\n <Options\n models={models}\n onNewRecord={onNewRecord}\n onLinkExistingRecord={onExistingRecord}\n />\n </CanEditField>\n\n {newEntryDialogModel && (\n <NewReferencedEntryDialog\n model={newEntryDialogModel}\n onClose={onNewEntryDialogClose}\n onChange={onNewEntryCreate}\n />\n )}\n\n {linkEntryDialogModel && (\n <ReferencesDialog\n {...props}\n multiple={false}\n values={bind.value ? [bind.value] : []}\n contentModel={linkEntryDialogModel}\n storeValues={storeValues}\n onDialogClose={onLinkEntryDialogClose}\n />\n )}\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -72,28 +72,32 @@ export const Entry = ({
72
72
  // the parent div already does that on click.
73
73
  }
74
74
  })) : null, /*#__PURE__*/React.createElement("div", {
75
- className: "grid grid-cols-[auto_1fr_auto] items-center gap-lg text-sm text-neutral-muted w-full min-w-0"
75
+ className: "grid grid-cols-[auto_1fr] items-start @lg:items-center gap-lg text-sm text-neutral-muted w-full min-w-0"
76
76
  }, /*#__PURE__*/React.createElement(Image, {
77
77
  title: entry.title,
78
78
  src: entry.image
79
79
  }), /*#__PURE__*/React.createElement("div", {
80
- className: "overflow-hidden"
81
- }, /*#__PURE__*/React.createElement("div", null, entry.model.name), /*#__PURE__*/React.createElement("div", {
80
+ className: "flex flex-col @lg:flex-row @lg:items-center @lg:justify-between gap-sm min-w-0"
81
+ }, /*#__PURE__*/React.createElement("div", {
82
+ className: "min-w-0"
83
+ }, /*#__PURE__*/React.createElement("div", {
84
+ className: "truncate"
85
+ }, entry.model.name), /*#__PURE__*/React.createElement("div", {
82
86
  title: entry.title,
83
87
  className: "text-md text-neutral-primary font-semibold mb-sm text-ellipsis overflow-hidden whitespace-nowrap block"
84
88
  }, entry.title), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", {
85
89
  className: "w-[60px] inline-block"
86
- }, "Created:"), /*#__PURE__*/React.createElement("span", null, entry.createdBy.displayName, ", ", /*#__PURE__*/React.createElement(TimeAgo, {
90
+ }, "Created:"), /*#__PURE__*/React.createElement("span", null, entry.createdBy.displayName, ",", " ", /*#__PURE__*/React.createElement(TimeAgo, {
87
91
  datetime: entry.createdOn
88
92
  })))), /*#__PURE__*/React.createElement("div", {
89
- className: "flex items-center gap-sm"
93
+ className: "flex items-center gap-sm shrink-0"
90
94
  }, /*#__PURE__*/React.createElement(Tag, {
91
95
  content: /*#__PURE__*/React.createElement(React.Fragment, null, entryStatusLabel, "\xA0", /*#__PURE__*/React.createElement(Text, {
92
96
  size: "sm",
93
97
  className: "text-neutral-muted"
94
98
  }, "(", entryRevision, ")")),
95
99
  variant: "neutral-base-outline"
96
- }), !disabled && placement == "multiRef" ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
100
+ }), !disabled && placement == "multiRef" ? /*#__PURE__*/React.createElement("div", {
97
101
  className: "flex gap-xs"
98
102
  }, /*#__PURE__*/React.createElement(IconButton, {
99
103
  disabled: !onMoveUpClick,
@@ -107,7 +111,7 @@ export const Entry = ({
107
111
  size: "sm",
108
112
  icon: /*#__PURE__*/React.createElement(ArrowDown, null),
109
113
  onClick: onMoveDown
110
- }))) : null, !disabled ? /*#__PURE__*/React.createElement(DropdownMenu, {
114
+ })) : null, !disabled ? /*#__PURE__*/React.createElement(DropdownMenu, {
111
115
  trigger: /*#__PURE__*/React.createElement(IconButton, {
112
116
  variant: "ghost",
113
117
  size: "sm",
@@ -122,7 +126,7 @@ export const Entry = ({
122
126
  icon: /*#__PURE__*/React.createElement(RemoveIcon, null),
123
127
  text: placement === "multiRef" ? "Remove from list" : "Remove",
124
128
  onClick: () => onRemove(entry.id)
125
- })) : null)));
129
+ })) : null))));
126
130
  };
127
131
 
128
132
  //# sourceMappingURL=Entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","Image","Tag","TimeAgo","Text","DropdownMenu","IconButton","Checkbox","cn","ReactComponent","MoreVertIcon","OpenInNewIcon","RemoveIcon","ArrowUp","ArrowDown","useRouter","Routes","Entry","entry","onChange","onRemove","selected","index","onMoveUp","onMoveUpClick","onMoveDown","onMoveDownClick","placement","disabled","getLink","onSelect","id","modelId","model","ev","shiftKey","entryStatusLabel","status","charAt","toUpperCase","slice","entryRevision","extractedRevision","split","Number","toString","folderId","wbyAco_location","location","link","ContentEntries","List","createElement","onClick","className","checked","title","src","image","name","createdBy","displayName","datetime","createdOn","content","Fragment","size","variant","icon","trigger","Link","text","to","target","Item"],"sources":["Entry.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport type {\n CmsReferenceContentEntry,\n CmsReferenceValue\n} from \"~/admin/plugins/fieldRenderers/ref/components/types.js\";\nimport { Image } from \"./entry/Image.js\";\nimport type { CmsModel } from \"~/types.js\";\nimport { Tag, TimeAgo, Text, DropdownMenu, IconButton, Checkbox, cn } from \"@webiny/admin-ui\";\nimport { ReactComponent as MoreVertIcon } from \"@webiny/icons/more_vert.svg\";\nimport { ReactComponent as OpenInNewIcon } from \"@webiny/icons/open_in_new.svg\";\nimport { ReactComponent as RemoveIcon } from \"@webiny/icons/close.svg\";\nimport { ReactComponent as ArrowUp } from \"@webiny/icons/arrow_upward.svg\";\nimport { ReactComponent as ArrowDown } from \"@webiny/icons/arrow_downward.svg\";\nimport { useRouter } from \"@webiny/app\";\nimport { Routes } from \"~/routes.js\";\n\ninterface EntryProps {\n model: CmsModel;\n entry: CmsReferenceContentEntry;\n onChange: (value: CmsReferenceValue) => void;\n index?: never;\n disabled?: boolean;\n selected: boolean;\n onMoveUp?: never;\n onMoveDown?: never;\n onRemove?: never;\n placement?: string;\n}\n\ninterface EntryPropsWithRemove {\n onRemove: (entryId: string) => void;\n disabled?: boolean;\n model: CmsModel;\n entry: CmsReferenceContentEntry;\n index: number;\n onMoveUp?: (index: number, toTop: boolean) => void;\n onMoveDown?: (index: number, toBottom: boolean) => void;\n onChange?: never;\n selected?: never;\n placement?: string;\n}\n\nexport const Entry = ({\n entry,\n onChange,\n onRemove,\n selected,\n index,\n onMoveUp: onMoveUpClick,\n onMoveDown: onMoveDownClick,\n placement,\n disabled = false\n}: EntryPropsWithRemove | EntryProps) => {\n const { getLink } = useRouter();\n\n const onSelect = useCallback(() => {\n if (onChange) {\n onChange({\n id: entry.id,\n modelId: entry.model.modelId\n });\n }\n }, [onChange, entry.id, entry.model.modelId]);\n\n const onMoveUp = useCallback(\n (ev: React.MouseEvent) => {\n if (!onMoveUpClick) {\n return;\n }\n onMoveUpClick(index, ev.shiftKey);\n },\n [onMoveUpClick, index]\n );\n const onMoveDown = useCallback(\n (ev: React.MouseEvent) => {\n if (!onMoveDownClick) {\n return;\n }\n onMoveDownClick(index, ev.shiftKey);\n },\n [onMoveDownClick, index]\n );\n\n const entryStatusLabel = entry.status.charAt(0).toUpperCase() + entry.status.slice(1);\n\n // Did not have `revision` field available in the `getLatestContentEntries`\n // response, hence the manual extraction from the `id` field.\n const entryRevision = useMemo(() => {\n const extractedRevision = entry.id.split(\"#\")[1] || \"0001\";\n\n // Remove leading zeros for correct padding.\n return \"v\" + Number(extractedRevision).toString();\n }, [entry.id]);\n\n const folderId = entry.wbyAco_location?.folderId || entry.location?.folderId || \"\";\n\n const link = getLink(Routes.ContentEntries.List, {\n id: entry.id,\n modelId: entry.model.modelId,\n folderId\n });\n\n return (\n <div\n data-selected={selected}\n onClick={onSelect}\n data-role=\"ref-field-entry\"\n className={cn(\n \"flex items-center justify-between gap-md w-full rounded-md bg-neutral-light p-sm-extra pr-lg hover:bg-neutral-dimmed border-md border-transparent data-[selected=true]:border-accent-dimmed\",\n { \"hover:cursor-pointer\": !!onChange }\n )}\n >\n {onChange && !disabled ? (\n <div>\n <Checkbox\n checked={selected}\n onChange={() => {\n // We're not calling the onSelect callback here because\n // the parent div already does that on click.\n }}\n />\n </div>\n ) : null}\n <div\n className={\n \"grid grid-cols-[auto_1fr_auto] items-center gap-lg text-sm text-neutral-muted w-full min-w-0\"\n }\n >\n <Image title={entry.title} src={entry.image} />\n <div className={\"overflow-hidden\"}>\n <div>{entry.model.name}</div>\n\n <div\n title={entry.title}\n className={\n \"text-md text-neutral-primary font-semibold mb-sm text-ellipsis overflow-hidden whitespace-nowrap block\"\n }\n >\n {entry.title}\n </div>\n\n <div>\n <span className={\"w-[60px] inline-block\"}>Created:</span>\n <span>\n {entry.createdBy.displayName}, <TimeAgo datetime={entry.createdOn} />\n </span>\n </div>\n {/* <div>\n <span className={\"w-[60px] inline-block\"}>Location:</span>\n <span>\n Home / Content / Preview / ... / Manage / Retail / Local / Products\n </span>\n </div>*/}\n </div>\n <div className={\"flex items-center gap-sm\"}>\n <Tag\n content={\n <>\n {entryStatusLabel}&nbsp;\n <Text size={\"sm\"} className={\"text-neutral-muted\"}>\n ({entryRevision})\n </Text>\n </>\n }\n variant={\"neutral-base-outline\"}\n />\n\n {!disabled && placement == \"multiRef\" ? (\n <>\n <div className={\"flex gap-xs\"}>\n <IconButton\n disabled={!onMoveUpClick}\n variant={\"ghost\"}\n size={\"sm\"}\n icon={<ArrowUp />}\n onClick={onMoveUp}\n />\n <IconButton\n disabled={!onMoveDownClick}\n variant={\"ghost\"}\n size={\"sm\"}\n icon={<ArrowDown />}\n onClick={onMoveDown}\n />\n </div>\n </>\n ) : null}\n\n {!disabled ? (\n <DropdownMenu\n trigger={\n <IconButton variant={\"ghost\"} size={\"sm\"} icon={<MoreVertIcon />} />\n }\n >\n <DropdownMenu.Link\n icon={<OpenInNewIcon />}\n text={\"Open in new tab\"}\n to={link}\n target={\"_blank\"}\n />\n\n {onRemove && (\n <DropdownMenu.Item\n icon={<RemoveIcon />}\n text={placement === \"multiRef\" ? \"Remove from list\" : \"Remove\"}\n onClick={() => onRemove(entry.id)}\n />\n )}\n </DropdownMenu>\n ) : null}\n </div>\n </div>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","Image","Tag","TimeAgo","Text","DropdownMenu","IconButton","Checkbox","cn","ReactComponent","MoreVertIcon","OpenInNewIcon","RemoveIcon","ArrowUp","ArrowDown","useRouter","Routes","Entry","entry","onChange","onRemove","selected","index","onMoveUp","onMoveUpClick","onMoveDown","onMoveDownClick","placement","disabled","getLink","onSelect","id","modelId","model","ev","shiftKey","entryStatusLabel","status","charAt","toUpperCase","slice","entryRevision","extractedRevision","split","Number","toString","folderId","wbyAco_location","location","link","ContentEntries","List","createElement","onClick","className","checked","title","src","image","name","createdBy","displayName","datetime","createdOn","content","Fragment","size","variant","icon","trigger","Link","text","to","target","Item"],"sources":["Entry.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport type {\n CmsReferenceContentEntry,\n CmsReferenceValue\n} from \"~/admin/plugins/fieldRenderers/ref/components/types.js\";\nimport { Image } from \"./entry/Image.js\";\nimport type { CmsModel } from \"~/types.js\";\nimport { Tag, TimeAgo, Text, DropdownMenu, IconButton, Checkbox, cn } from \"@webiny/admin-ui\";\nimport { ReactComponent as MoreVertIcon } from \"@webiny/icons/more_vert.svg\";\nimport { ReactComponent as OpenInNewIcon } from \"@webiny/icons/open_in_new.svg\";\nimport { ReactComponent as RemoveIcon } from \"@webiny/icons/close.svg\";\nimport { ReactComponent as ArrowUp } from \"@webiny/icons/arrow_upward.svg\";\nimport { ReactComponent as ArrowDown } from \"@webiny/icons/arrow_downward.svg\";\nimport { useRouter } from \"@webiny/app\";\nimport { Routes } from \"~/routes.js\";\n\ninterface EntryProps {\n model: CmsModel;\n entry: CmsReferenceContentEntry;\n onChange: (value: CmsReferenceValue) => void;\n index?: never;\n disabled?: boolean;\n selected: boolean;\n onMoveUp?: never;\n onMoveDown?: never;\n onRemove?: never;\n placement?: string;\n}\n\ninterface EntryPropsWithRemove {\n onRemove: (entryId: string) => void;\n disabled?: boolean;\n model: CmsModel;\n entry: CmsReferenceContentEntry;\n index: number;\n onMoveUp?: (index: number, toTop: boolean) => void;\n onMoveDown?: (index: number, toBottom: boolean) => void;\n onChange?: never;\n selected?: never;\n placement?: string;\n}\n\nexport const Entry = ({\n entry,\n onChange,\n onRemove,\n selected,\n index,\n onMoveUp: onMoveUpClick,\n onMoveDown: onMoveDownClick,\n placement,\n disabled = false\n}: EntryPropsWithRemove | EntryProps) => {\n const { getLink } = useRouter();\n\n const onSelect = useCallback(() => {\n if (onChange) {\n onChange({\n id: entry.id,\n modelId: entry.model.modelId\n });\n }\n }, [onChange, entry.id, entry.model.modelId]);\n\n const onMoveUp = useCallback(\n (ev: React.MouseEvent) => {\n if (!onMoveUpClick) {\n return;\n }\n onMoveUpClick(index, ev.shiftKey);\n },\n [onMoveUpClick, index]\n );\n const onMoveDown = useCallback(\n (ev: React.MouseEvent) => {\n if (!onMoveDownClick) {\n return;\n }\n onMoveDownClick(index, ev.shiftKey);\n },\n [onMoveDownClick, index]\n );\n\n const entryStatusLabel = entry.status.charAt(0).toUpperCase() + entry.status.slice(1);\n\n // Did not have `revision` field available in the `getLatestContentEntries`\n // response, hence the manual extraction from the `id` field.\n const entryRevision = useMemo(() => {\n const extractedRevision = entry.id.split(\"#\")[1] || \"0001\";\n\n // Remove leading zeros for correct padding.\n return \"v\" + Number(extractedRevision).toString();\n }, [entry.id]);\n\n const folderId = entry.wbyAco_location?.folderId || entry.location?.folderId || \"\";\n\n const link = getLink(Routes.ContentEntries.List, {\n id: entry.id,\n modelId: entry.model.modelId,\n folderId\n });\n\n return (\n <div\n data-selected={selected}\n onClick={onSelect}\n data-role=\"ref-field-entry\"\n className={cn(\n \"flex items-center justify-between gap-md w-full rounded-md bg-neutral-light p-sm-extra pr-lg hover:bg-neutral-dimmed border-md border-transparent data-[selected=true]:border-accent-dimmed\",\n { \"hover:cursor-pointer\": !!onChange }\n )}\n >\n {onChange && !disabled ? (\n <div>\n <Checkbox\n checked={selected}\n onChange={() => {\n // We're not calling the onSelect callback here because\n // the parent div already does that on click.\n }}\n />\n </div>\n ) : null}\n <div\n className={\n \"grid grid-cols-[auto_1fr] items-start @lg:items-center gap-lg text-sm text-neutral-muted w-full min-w-0\"\n }\n >\n <Image title={entry.title} src={entry.image} />\n <div\n className={\n \"flex flex-col @lg:flex-row @lg:items-center @lg:justify-between gap-sm min-w-0\"\n }\n >\n <div className={\"min-w-0\"}>\n <div className={\"truncate\"}>{entry.model.name}</div>\n\n <div\n title={entry.title}\n className={\n \"text-md text-neutral-primary font-semibold mb-sm text-ellipsis overflow-hidden whitespace-nowrap block\"\n }\n >\n {entry.title}\n </div>\n\n <div>\n <span className={\"w-[60px] inline-block\"}>Created:</span>\n <span>\n {entry.createdBy.displayName},{\" \"}\n <TimeAgo datetime={entry.createdOn} />\n </span>\n </div>\n </div>\n <div className={\"flex items-center gap-sm shrink-0\"}>\n <Tag\n content={\n <>\n {entryStatusLabel}&nbsp;\n <Text size={\"sm\"} className={\"text-neutral-muted\"}>\n ({entryRevision})\n </Text>\n </>\n }\n variant={\"neutral-base-outline\"}\n />\n\n {!disabled && placement == \"multiRef\" ? (\n <div className={\"flex gap-xs\"}>\n <IconButton\n disabled={!onMoveUpClick}\n variant={\"ghost\"}\n size={\"sm\"}\n icon={<ArrowUp />}\n onClick={onMoveUp}\n />\n <IconButton\n disabled={!onMoveDownClick}\n variant={\"ghost\"}\n size={\"sm\"}\n icon={<ArrowDown />}\n onClick={onMoveDown}\n />\n </div>\n ) : null}\n\n {!disabled ? (\n <DropdownMenu\n trigger={\n <IconButton\n variant={\"ghost\"}\n size={\"sm\"}\n icon={<MoreVertIcon />}\n />\n }\n >\n <DropdownMenu.Link\n icon={<OpenInNewIcon />}\n text={\"Open in new tab\"}\n to={link}\n target={\"_blank\"}\n />\n\n {onRemove && (\n <DropdownMenu.Item\n icon={<RemoveIcon />}\n text={\n placement === \"multiRef\" ? \"Remove from list\" : \"Remove\"\n }\n onClick={() => onRemove(entry.id)}\n />\n )}\n </DropdownMenu>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -37,7 +37,7 @@ export const Options = ({
37
37
  }, [models]);
38
38
  if (hasMultipleModels) {
39
39
  return /*#__PURE__*/React.createElement("div", {
40
- className: "flex gap-sm"
40
+ className: "flex flex-wrap gap-sm"
41
41
  }, /*#__PURE__*/React.createElement(DropdownMenu, {
42
42
  trigger: /*#__PURE__*/React.createElement(Button, {
43
43
  variant: "tertiary",
@@ -58,9 +58,11 @@ export const Options = ({
58
58
  models: models
59
59
  })));
60
60
  }
61
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(CreateNewRecordButton, {
61
+ return /*#__PURE__*/React.createElement("div", {
62
+ className: "flex flex-wrap gap-sm"
63
+ }, /*#__PURE__*/React.createElement(CreateNewRecordButton, {
62
64
  onClick: onSingleNewRecord
63
- }), "\xA0", /*#__PURE__*/React.createElement(LinkExistingRecordButton, {
65
+ }), /*#__PURE__*/React.createElement(LinkExistingRecordButton, {
64
66
  onClick: onSingleExistingRecord
65
67
  }));
66
68
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","OptionsModelList","ReactComponent","AddIcon","LinkIcon","Button","DropdownMenu","CreateNewRecordButton","props","createElement","Object","assign","variant","text","icon","LinkExistingRecordButton","Options","models","onNewRecord","onLinkExistingRecord","hasMultipleModels","length","onSingleNewRecord","modelId","onSingleExistingRecord","className","trigger","onClick"],"sources":["Options.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport type { CmsModel } from \"~/types.js\";\nimport { OptionsModelList } from \"~/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport { ReactComponent as LinkIcon } from \"@webiny/icons/link.svg\";\nimport { Button, type ButtonProps, DropdownMenu } from \"@webiny/admin-ui\";\n\nconst CreateNewRecordButton = (props: ButtonProps) => {\n return <Button {...props} variant={\"tertiary\"} text=\"Create a new record\" icon={<AddIcon />} />;\n};\n\nconst LinkExistingRecordButton = (props: ButtonProps) => {\n return (\n <Button\n {...props}\n variant={\"tertiary\"}\n text=\"Select an existing record\"\n icon={<LinkIcon />}\n />\n );\n};\n\ninterface OptionsProps {\n models: CmsModel[];\n onNewRecord: (modelId: string) => void;\n onLinkExistingRecord: (modelId: string) => void;\n}\nexport const Options = ({ models, onNewRecord, onLinkExistingRecord }: OptionsProps) => {\n const hasMultipleModels = models.length > 1;\n const onSingleNewRecord = useCallback(() => {\n if (models.length === 0 || hasMultipleModels) {\n return;\n }\n onNewRecord(models[0].modelId);\n }, [models]);\n\n const onSingleExistingRecord = useCallback(() => {\n if (models.length === 0 || hasMultipleModels) {\n return;\n }\n onLinkExistingRecord(models[0].modelId);\n }, [models]);\n\n if (hasMultipleModels) {\n return (\n <div className={\"flex gap-sm\"}>\n <DropdownMenu\n trigger={\n <Button\n variant={\"tertiary\"}\n text=\"Create a new record\"\n icon={<AddIcon />}\n />\n }\n >\n <OptionsModelList onClick={onNewRecord} models={models} />\n </DropdownMenu>\n <DropdownMenu\n trigger={\n <Button\n variant={\"tertiary\"}\n text=\"Select an existing record\"\n icon={<LinkIcon />}\n />\n }\n >\n <OptionsModelList onClick={onLinkExistingRecord} models={models} />\n </DropdownMenu>\n </div>\n );\n }\n\n return (\n <div>\n <CreateNewRecordButton onClick={onSingleNewRecord} />\n &nbsp;\n <LinkExistingRecordButton onClick={onSingleExistingRecord} />\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAE1C,SAASC,gBAAgB;AACzB,SAASC,cAAc,IAAIC,OAAO,QAAQ,uBAAuB;AACjE,SAASD,cAAc,IAAIE,QAAQ,QAAQ,wBAAwB;AACnE,SAASC,MAAM,EAAoBC,YAAY,QAAQ,kBAAkB;AAEzE,MAAMC,qBAAqB,GAAIC,KAAkB,IAAK;EAClD,oBAAOT,KAAA,CAAAU,aAAA,CAACJ,MAAM,EAAAK,MAAA,CAAAC,MAAA,KAAKH,KAAK;IAAEI,OAAO,EAAE,UAAW;IAACC,IAAI,EAAC,qBAAqB;IAACC,IAAI,eAAEf,KAAA,CAAAU,aAAA,CAACN,OAAO,MAAE;EAAE,EAAE,CAAC;AACnG,CAAC;AAED,MAAMY,wBAAwB,GAAIP,KAAkB,IAAK;EACrD,oBACIT,KAAA,CAAAU,aAAA,CAACJ,MAAM,EAAAK,MAAA,CAAAC,MAAA,KACCH,KAAK;IACTI,OAAO,EAAE,UAAW;IACpBC,IAAI,EAAC,2BAA2B;IAChCC,IAAI,eAAEf,KAAA,CAAAU,aAAA,CAACL,QAAQ,MAAE;EAAE,EACtB,CAAC;AAEV,CAAC;AAOD,OAAO,MAAMY,OAAO,GAAGA,CAAC;EAAEC,MAAM;EAAEC,WAAW;EAAEC;AAAmC,CAAC,KAAK;EACpF,MAAMC,iBAAiB,GAAGH,MAAM,CAACI,MAAM,GAAG,CAAC;EAC3C,MAAMC,iBAAiB,GAAGtB,WAAW,CAAC,MAAM;IACxC,IAAIiB,MAAM,CAACI,MAAM,KAAK,CAAC,IAAID,iBAAiB,EAAE;MAC1C;IACJ;IACAF,WAAW,CAACD,MAAM,CAAC,CAAC,CAAC,CAACM,OAAO,CAAC;EAClC,CAAC,EAAE,CAACN,MAAM,CAAC,CAAC;EAEZ,MAAMO,sBAAsB,GAAGxB,WAAW,CAAC,MAAM;IAC7C,IAAIiB,MAAM,CAACI,MAAM,KAAK,CAAC,IAAID,iBAAiB,EAAE;MAC1C;IACJ;IACAD,oBAAoB,CAACF,MAAM,CAAC,CAAC,CAAC,CAACM,OAAO,CAAC;EAC3C,CAAC,EAAE,CAACN,MAAM,CAAC,CAAC;EAEZ,IAAIG,iBAAiB,EAAE;IACnB,oBACIrB,KAAA,CAAAU,aAAA;MAAKgB,SAAS,EAAE;IAAc,gBAC1B1B,KAAA,CAAAU,aAAA,CAACH,YAAY;MACToB,OAAO,eACH3B,KAAA,CAAAU,aAAA,CAACJ,MAAM;QACHO,OAAO,EAAE,UAAW;QACpBC,IAAI,EAAC,qBAAqB;QAC1BC,IAAI,eAAEf,KAAA,CAAAU,aAAA,CAACN,OAAO,MAAE;MAAE,CACrB;IACJ,gBAEDJ,KAAA,CAAAU,aAAA,CAACR,gBAAgB;MAAC0B,OAAO,EAAET,WAAY;MAACD,MAAM,EAAEA;IAAO,CAAE,CAC/C,CAAC,eACflB,KAAA,CAAAU,aAAA,CAACH,YAAY;MACToB,OAAO,eACH3B,KAAA,CAAAU,aAAA,CAACJ,MAAM;QACHO,OAAO,EAAE,UAAW;QACpBC,IAAI,EAAC,2BAA2B;QAChCC,IAAI,eAAEf,KAAA,CAAAU,aAAA,CAACL,QAAQ,MAAE;MAAE,CACtB;IACJ,gBAEDL,KAAA,CAAAU,aAAA,CAACR,gBAAgB;MAAC0B,OAAO,EAAER,oBAAqB;MAACF,MAAM,EAAEA;IAAO,CAAE,CACxD,CACb,CAAC;EAEd;EAEA,oBACIlB,KAAA,CAAAU,aAAA,2BACIV,KAAA,CAAAU,aAAA,CAACF,qBAAqB;IAACoB,OAAO,EAAEL;EAAkB,CAAE,CAAC,QAErD,eAAAvB,KAAA,CAAAU,aAAA,CAACM,wBAAwB;IAACY,OAAO,EAAEH;EAAuB,CAAE,CAC3D,CAAC;AAEd,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","OptionsModelList","ReactComponent","AddIcon","LinkIcon","Button","DropdownMenu","CreateNewRecordButton","props","createElement","Object","assign","variant","text","icon","LinkExistingRecordButton","Options","models","onNewRecord","onLinkExistingRecord","hasMultipleModels","length","onSingleNewRecord","modelId","onSingleExistingRecord","className","trigger","onClick"],"sources":["Options.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport type { CmsModel } from \"~/types.js\";\nimport { OptionsModelList } from \"~/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport { ReactComponent as LinkIcon } from \"@webiny/icons/link.svg\";\nimport { Button, type ButtonProps, DropdownMenu } from \"@webiny/admin-ui\";\n\nconst CreateNewRecordButton = (props: ButtonProps) => {\n return <Button {...props} variant={\"tertiary\"} text=\"Create a new record\" icon={<AddIcon />} />;\n};\n\nconst LinkExistingRecordButton = (props: ButtonProps) => {\n return (\n <Button\n {...props}\n variant={\"tertiary\"}\n text=\"Select an existing record\"\n icon={<LinkIcon />}\n />\n );\n};\n\ninterface OptionsProps {\n models: CmsModel[];\n onNewRecord: (modelId: string) => void;\n onLinkExistingRecord: (modelId: string) => void;\n}\nexport const Options = ({ models, onNewRecord, onLinkExistingRecord }: OptionsProps) => {\n const hasMultipleModels = models.length > 1;\n const onSingleNewRecord = useCallback(() => {\n if (models.length === 0 || hasMultipleModels) {\n return;\n }\n onNewRecord(models[0].modelId);\n }, [models]);\n\n const onSingleExistingRecord = useCallback(() => {\n if (models.length === 0 || hasMultipleModels) {\n return;\n }\n onLinkExistingRecord(models[0].modelId);\n }, [models]);\n\n if (hasMultipleModels) {\n return (\n <div className={\"flex flex-wrap gap-sm\"}>\n <DropdownMenu\n trigger={\n <Button\n variant={\"tertiary\"}\n text=\"Create a new record\"\n icon={<AddIcon />}\n />\n }\n >\n <OptionsModelList onClick={onNewRecord} models={models} />\n </DropdownMenu>\n <DropdownMenu\n trigger={\n <Button\n variant={\"tertiary\"}\n text=\"Select an existing record\"\n icon={<LinkIcon />}\n />\n }\n >\n <OptionsModelList onClick={onLinkExistingRecord} models={models} />\n </DropdownMenu>\n </div>\n );\n }\n\n return (\n <div className={\"flex flex-wrap gap-sm\"}>\n <CreateNewRecordButton onClick={onSingleNewRecord} />\n <LinkExistingRecordButton onClick={onSingleExistingRecord} />\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -18,7 +18,7 @@ const getGraphQLTypeName = value => {
18
18
  };
19
19
  export const TemplateDialog = props => {
20
20
  const [showWarning, setWarning] = useState(false);
21
- const newTemplate = !Boolean(props.template);
21
+ const newTemplate = !props.template;
22
22
  const dialogTitle = newTemplate ? "Add Template" : "Edit Template";
23
23
  const submitLabel = newTemplate ? "Add Template" : "Update Template";
24
24
  const onSubmit = template => {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","Form","validation","generateAlphaNumericLowerCaseId","IconPicker","Tags","Alert","Dialog","Grid","Input","Textarea","typeNameValidator","value","regex","RegExp","test","Error","getGraphQLTypeName","titleCase","charAt","toUpperCase","slice","replace","TemplateDialog","props","showWarning","setWarning","newTemplate","Boolean","template","dialogTitle","submitLabel","onSubmit","id","onTemplate","fields","layout","onClose","showGqlTypeNameWarning","hideGqlTypeNameWarning","checkGqlType","data","gqlTypeName","nameOnBlur","form","name","setValue","onFormChange","createElement","onChange","Bind","submit","open","title","actions","Fragment","CancelAction","ConfirmAction","onClick","text","Column","span","type","validators","create","label","onBlur","autoFocus","description","rows","defaultValue"],"sources":["TemplateDialog.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport type { FormAPI, FormOnSubmit } from \"@webiny/form\";\nimport { Form } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport type { CmsDynamicZoneTemplate } from \"~/types.js\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport { IconPicker } from \"~/admin/components/IconPicker.js\";\nimport { Tags } from \"@webiny/ui/Tags/index.js\";\nimport { Alert, Dialog, Grid, Input, Textarea } from \"@webiny/admin-ui\";\n\nconst typeNameValidator = (value: string) => {\n const regex = new RegExp(\"^[A-Z]+[_0-9A-Za-z]+$\");\n if (regex.test(value)) {\n return true;\n }\n\n throw Error(\n `Must start with a capital letter, may contain numbers, and must not contain spaces.`\n );\n};\n\nconst getGraphQLTypeName = (value: string) => {\n const titleCase = value.charAt(0).toUpperCase() + value.slice(1);\n return titleCase.replace(/[^a-zA-Z0-9]/g, \"\");\n};\n\ninterface TemplateDialogProps {\n onClose: () => void;\n template?: CmsDynamicZoneTemplate;\n onTemplate: (template: CmsDynamicZoneTemplate) => void;\n}\n\nexport const TemplateDialog = (props: TemplateDialogProps) => {\n const [showWarning, setWarning] = useState(false);\n const newTemplate = !Boolean(props.template);\n const dialogTitle = newTemplate ? \"Add Template\" : \"Edit Template\";\n const submitLabel = newTemplate ? \"Add Template\" : \"Update Template\";\n\n const onSubmit: FormOnSubmit<CmsDynamicZoneTemplate> = template => {\n if (template.id) {\n props.onTemplate(template);\n } else {\n props.onTemplate({\n ...template,\n id: generateAlphaNumericLowerCaseId(),\n fields: [],\n layout: []\n });\n }\n props.onClose();\n };\n\n const showGqlTypeNameWarning = () => {\n setWarning(true);\n };\n\n const hideGqlTypeNameWarning = () => {\n setWarning(false);\n };\n\n const checkGqlType: FormOnSubmit<CmsDynamicZoneTemplate> = data => {\n if (newTemplate) {\n return;\n }\n\n if (data.gqlTypeName !== props.template?.gqlTypeName) {\n showGqlTypeNameWarning();\n } else {\n hideGqlTypeNameWarning();\n }\n };\n\n const nameOnBlur = (form: FormAPI<CmsDynamicZoneTemplate>) => () => {\n if (!form.data.gqlTypeName) {\n /**\n * There is a possibility that name is undefined, so let's check for it.\n */\n const name = form.data.name;\n if (!name) {\n return;\n }\n form.setValue(\"gqlTypeName\", getGraphQLTypeName(name));\n }\n };\n\n const onFormChange: FormOnSubmit<CmsDynamicZoneTemplate> = (data, form) => {\n checkGqlType(data, form);\n };\n\n return (\n <Form<CmsDynamicZoneTemplate>\n onSubmit={onSubmit}\n data={props.template}\n onChange={onFormChange}\n >\n {({ Bind, submit, form }) => (\n <Dialog\n open={true}\n onClose={props.onClose}\n title={dialogTitle}\n actions={\n <>\n <Dialog.CancelAction />\n <Dialog.ConfirmAction onClick={submit} text={submitLabel} />\n </>\n }\n >\n <Grid>\n <>\n {showWarning ? (\n <Grid.Column span={12}>\n <Alert title={\"GraphQL Schema Change\"} type={\"danger\"}>\n You&apos;ve changed the GraphQL schema type name! If your\n API is being queried by a 3rd party application, this will\n affect the GraphQL queries in those applications. Make sure\n your consumers are informed about this change!\n </Alert>\n </Grid.Column>\n ) : null}\n </>\n <Grid.Column span={12}>\n <Bind name={\"name\"} validators={[validation.create(\"required\")]}>\n <Input label={\"Name\"} onBlur={nameOnBlur(form)} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name={\"gqlTypeName\"}\n validators={[validation.create(\"required\"), typeNameValidator]}\n >\n <Input\n autoFocus={false}\n label={\"GraphQL Type Name\"}\n description={\n \"This string will be used to generate the GraphQL schema. \"\n }\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"icon\"} validators={[validation.create(\"required\")]}>\n <IconPicker label={\"Icon\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"description\"} validators={[validation.create(\"required\")]}>\n <Textarea rows={3} label={\"Description\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"tags\"} defaultValue={[]}>\n <Tags label={\"Tags\"} />\n </Bind>\n </Grid.Column>\n </Grid>\n </Dialog>\n )}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","Form","validation","generateAlphaNumericLowerCaseId","IconPicker","Tags","Alert","Dialog","Grid","Input","Textarea","typeNameValidator","value","regex","RegExp","test","Error","getGraphQLTypeName","titleCase","charAt","toUpperCase","slice","replace","TemplateDialog","props","showWarning","setWarning","newTemplate","template","dialogTitle","submitLabel","onSubmit","id","onTemplate","fields","layout","onClose","showGqlTypeNameWarning","hideGqlTypeNameWarning","checkGqlType","data","gqlTypeName","nameOnBlur","form","name","setValue","onFormChange","createElement","onChange","Bind","submit","open","title","actions","Fragment","CancelAction","ConfirmAction","onClick","text","Column","span","type","validators","create","label","onBlur","autoFocus","description","rows","defaultValue"],"sources":["TemplateDialog.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport type { FormAPI, FormOnSubmit } from \"@webiny/form\";\nimport { Form } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport type { CmsDynamicZoneTemplate } from \"~/types.js\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport { IconPicker } from \"~/admin/components/IconPicker.js\";\nimport { Tags } from \"@webiny/ui/Tags/index.js\";\nimport { Alert, Dialog, Grid, Input, Textarea } from \"@webiny/admin-ui\";\n\nconst typeNameValidator = (value: string) => {\n const regex = new RegExp(\"^[A-Z]+[_0-9A-Za-z]+$\");\n if (regex.test(value)) {\n return true;\n }\n\n throw Error(\n `Must start with a capital letter, may contain numbers, and must not contain spaces.`\n );\n};\n\nconst getGraphQLTypeName = (value: string) => {\n const titleCase = value.charAt(0).toUpperCase() + value.slice(1);\n return titleCase.replace(/[^a-zA-Z0-9]/g, \"\");\n};\n\ninterface TemplateDialogProps {\n onClose: () => void;\n template?: CmsDynamicZoneTemplate;\n onTemplate: (template: CmsDynamicZoneTemplate) => void;\n}\n\nexport const TemplateDialog = (props: TemplateDialogProps) => {\n const [showWarning, setWarning] = useState(false);\n const newTemplate = !props.template;\n const dialogTitle = newTemplate ? \"Add Template\" : \"Edit Template\";\n const submitLabel = newTemplate ? \"Add Template\" : \"Update Template\";\n\n const onSubmit: FormOnSubmit<CmsDynamicZoneTemplate> = template => {\n if (template.id) {\n props.onTemplate(template);\n } else {\n props.onTemplate({\n ...template,\n id: generateAlphaNumericLowerCaseId(),\n fields: [],\n layout: []\n });\n }\n props.onClose();\n };\n\n const showGqlTypeNameWarning = () => {\n setWarning(true);\n };\n\n const hideGqlTypeNameWarning = () => {\n setWarning(false);\n };\n\n const checkGqlType: FormOnSubmit<CmsDynamicZoneTemplate> = data => {\n if (newTemplate) {\n return;\n }\n\n if (data.gqlTypeName !== props.template?.gqlTypeName) {\n showGqlTypeNameWarning();\n } else {\n hideGqlTypeNameWarning();\n }\n };\n\n const nameOnBlur = (form: FormAPI<CmsDynamicZoneTemplate>) => () => {\n if (!form.data.gqlTypeName) {\n /**\n * There is a possibility that name is undefined, so let's check for it.\n */\n const name = form.data.name;\n if (!name) {\n return;\n }\n form.setValue(\"gqlTypeName\", getGraphQLTypeName(name));\n }\n };\n\n const onFormChange: FormOnSubmit<CmsDynamicZoneTemplate> = (data, form) => {\n checkGqlType(data, form);\n };\n\n return (\n <Form<CmsDynamicZoneTemplate>\n onSubmit={onSubmit}\n data={props.template}\n onChange={onFormChange}\n >\n {({ Bind, submit, form }) => (\n <Dialog\n open={true}\n onClose={props.onClose}\n title={dialogTitle}\n actions={\n <>\n <Dialog.CancelAction />\n <Dialog.ConfirmAction onClick={submit} text={submitLabel} />\n </>\n }\n >\n <Grid>\n <>\n {showWarning ? (\n <Grid.Column span={12}>\n <Alert title={\"GraphQL Schema Change\"} type={\"danger\"}>\n You&apos;ve changed the GraphQL schema type name! If your\n API is being queried by a 3rd party application, this will\n affect the GraphQL queries in those applications. Make sure\n your consumers are informed about this change!\n </Alert>\n </Grid.Column>\n ) : null}\n </>\n <Grid.Column span={12}>\n <Bind name={\"name\"} validators={[validation.create(\"required\")]}>\n <Input label={\"Name\"} onBlur={nameOnBlur(form)} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name={\"gqlTypeName\"}\n validators={[validation.create(\"required\"), typeNameValidator]}\n >\n <Input\n autoFocus={false}\n label={\"GraphQL Type Name\"}\n description={\n \"This string will be used to generate the GraphQL schema. \"\n }\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"icon\"} validators={[validation.create(\"required\")]}>\n <IconPicker label={\"Icon\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"description\"} validators={[validation.create(\"required\")]}>\n <Textarea rows={3} label={\"Description\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"tags\"} defaultValue={[]}>\n <Tags label={\"Tags\"} />\n </Bind>\n </Grid.Column>\n </Grid>\n </Dialog>\n )}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -17,7 +17,6 @@ import { Checkbox } from "@webiny/ui/Checkbox/index.js";
17
17
  import { IconPicker } from "../../components/IconPicker.js";
18
18
  import { Switch } from "@webiny/ui/Switch/index.js";
19
19
  import { Routes } from "../../../routes.js";
20
- import { ScrollArea } from "@webiny/admin-ui/ScrollArea";
21
20
  const t = i18n.ns("app-headless-cms/admin/views/content-models/new-content-model-dialog");
22
21
  const NewContentModelDialog = ({
23
22
  open,
@@ -149,9 +148,7 @@ const NewContentModelDialog = ({
149
148
  }, "+ ", t`Create Model`)
150
149
  }, /*#__PURE__*/React.createElement(React.Fragment, null, loading && /*#__PURE__*/React.createElement(CircularProgress, {
151
150
  label: "Creating content model..."
152
- }), /*#__PURE__*/React.createElement(ScrollArea, {
153
- className: "max-h-[70vh] flex flex-col"
154
- }, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Grid.Column, {
151
+ }), /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Grid.Column, {
155
152
  span: 12
156
153
  }, /*#__PURE__*/React.createElement(Bind, {
157
154
  name: "name",
@@ -223,7 +220,7 @@ const NewContentModelDialog = ({
223
220
  description: t`Create model with default title (text), description (long text) and image (file) fields`,
224
221
  label: t`Create model with default fields`,
225
222
  "data-testid": "cms.newcontentmodeldialog.defaultfields"
226
- })))))));
223
+ }))))));
227
224
  });
228
225
  };
229
226
  export default NewContentModelDialog;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","useRouter","useSnackbar","Form","Input","Select","CircularProgress","validation","useApolloClient","useMutation","useQuery","i18n","Dialog","Grid","CMS_MODEL_SINGLETON_TAG","addModelToGroupCache","addModelToListCache","GQL","createApiNameValidator","createNameValidator","Checkbox","IconPicker","Switch","Routes","ScrollArea","t","ns","NewContentModelDialog","open","onClose","loading","setLoading","useState","showSnackbar","goToRoute","client","createContentModel","CREATE_CONTENT_MODEL","onCompleted","data","model","error","message","ContentModels","Editor","modelId","update","cache","listMenuGroupsQuery","LIST_MENU_CONTENT_GROUPS_MODELS","skip","groups","listContentModelGroups","contentModelGroups","map","item","value","slug","label","name","models","reduce","collection","group","push","contentModels","nameValidator","apiNameValidator","length","undefined","onSubmit","tags","Array","isArray","singleEntry","pluralApiName","singularApiName","variables","createElement","Bind","submit","title","actions","ConfirmAction","onClick","Fragment","className","Column","span","validators","create","description","defaultValue","disabled","options","props","Object","assign","rows","maxLength"],"sources":["NewContentModelDialog.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { useRouter, useSnackbar } from \"@webiny/app-admin\";\nimport { Form } from \"@webiny/form\";\nimport { Input } from \"@webiny/ui/Input/index.js\";\nimport { Select } from \"@webiny/ui/Select/index.js\";\nimport { CircularProgress } from \"@webiny/ui/Progress/index.js\";\nimport { validation } from \"@webiny/validation\";\nimport { useApolloClient, useMutation, useQuery } from \"../../hooks/index.js\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Dialog, DialogProps, Grid } from \"@webiny/admin-ui\";\nimport { CMS_MODEL_SINGLETON_TAG } from \"@webiny/app-headless-cms-common\";\nimport { addModelToGroupCache, addModelToListCache } from \"./cache.js\";\nimport type {\n CreateCmsModelMutationResponse,\n CreateCmsModelMutationVariables,\n ListMenuCmsGroupsQueryResponse\n} from \"../../viewsGraphql.js\";\nimport * as GQL from \"../../viewsGraphql.js\";\nimport type { CmsModel } from \"~/types.js\";\nimport type { CmsGroupOption } from \"./types.js\";\nimport { createApiNameValidator } from \"~/admin/views/contentModels/helpers/apiNameValidator.js\";\nimport { createNameValidator } from \"~/admin/views/contentModels/helpers/nameValidator.js\";\nimport { Checkbox } from \"@webiny/ui/Checkbox/index.js\";\nimport { IconPicker } from \"~/admin/components/IconPicker.js\";\nimport { Switch } from \"@webiny/ui/Switch/index.js\";\nimport { Routes } from \"~/routes.js\";\nimport { ScrollArea } from \"@webiny/admin-ui/ScrollArea\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/views/content-models/new-content-model-dialog\");\n\nexport interface NewContentModelDialogProps {\n open: boolean;\n onClose: DialogProps[\"onClose\"];\n}\n\ninterface CmsModelData {\n name: string;\n description: string;\n group: string;\n singleEntry?: boolean;\n singularApiName: string;\n pluralApiName: string;\n defaultFields: boolean;\n}\n\nconst NewContentModelDialog = ({ open, onClose }: NewContentModelDialogProps) => {\n const [loading, setLoading] = React.useState(false);\n const { showSnackbar } = useSnackbar();\n const { goToRoute } = useRouter();\n const client = useApolloClient();\n\n const [createContentModel] = useMutation<\n CreateCmsModelMutationResponse,\n CreateCmsModelMutationVariables\n >(GQL.CREATE_CONTENT_MODEL, {\n onCompleted(data) {\n setLoading(false);\n\n if (!data) {\n showSnackbar(\"Missing data on Create Content Model Mutation Response.\");\n return;\n }\n\n const { data: model, error } = data.createContentModel;\n\n if (error) {\n setLoading(false);\n showSnackbar(error.message);\n return;\n }\n\n goToRoute(Routes.ContentModels.Editor, { modelId: model.modelId });\n },\n update(cache, { data }) {\n if (!data) {\n return;\n }\n\n const { data: model, error } = data.createContentModel;\n\n if (error) {\n return;\n }\n\n addModelToListCache(cache, model);\n addModelToGroupCache(cache, model);\n }\n });\n\n const listMenuGroupsQuery = useQuery<ListMenuCmsGroupsQueryResponse>(\n GQL.LIST_MENU_CONTENT_GROUPS_MODELS,\n {\n skip: !open\n }\n );\n\n const groups = useMemo(() => {\n return listMenuGroupsQuery.data?.listContentModelGroups?.data || [];\n }, [listMenuGroupsQuery.data]);\n\n const contentModelGroups = useMemo(() => {\n return groups.map((item): CmsGroupOption => {\n return {\n value: item.slug,\n label: item.name\n };\n });\n }, [groups]);\n\n const models = useMemo(() => {\n return groups.reduce<CmsModel[]>((collection, group) => {\n collection.push(...group.contentModels);\n return collection;\n }, []);\n }, [groups]);\n\n const nameValidator = useCallback(createNameValidator({ models }), [models]);\n\n const apiNameValidator = useCallback(createApiNameValidator({ client, models }), [\n client,\n models\n ]);\n\n const group = useMemo<string | undefined>(() => {\n if (!contentModelGroups.length) {\n return undefined;\n }\n return contentModelGroups[0]?.value;\n }, [contentModelGroups]);\n\n const onSubmit = useCallback(\n async (data: CmsModelData) => {\n setLoading(true);\n /**\n * We need to make sure that tags are always an array.\n * At the moment there is no tags on the CmsModelData type.\n * If it is added at some point, the @ts-expect-error should be removed - it will cause TS error.\n */\n // @ts-expect-error\n const tags: string[] = Array.isArray(data.tags) ? data.tags : [];\n /**\n * If a model is a singleEntry, we add a special tag to it.\n * + we need to put the pluralApiName to something that is not used.\n */\n if (data.singleEntry) {\n tags.push(CMS_MODEL_SINGLETON_TAG);\n data.pluralApiName = `${data.singularApiName}Unused`;\n }\n delete data.singleEntry;\n await createContentModel({\n variables: {\n data: {\n ...data,\n tags\n }\n }\n });\n },\n [loading, createContentModel]\n );\n\n return (\n <Form<CmsModelData> data={{ group, singleEntry: false }} onSubmit={onSubmit}>\n {({ Bind, submit, data }) => {\n return (\n <Dialog\n open={open}\n onClose={onClose}\n data-testid=\"cms-new-content-model-modal\"\n title={t`New Content Model`}\n actions={\n <Dialog.ConfirmAction onClick={submit}>\n + {t`Create Model`}\n </Dialog.ConfirmAction>\n }\n >\n <>\n {loading && <CircularProgress label={\"Creating content model...\"} />}\n <ScrollArea className=\"max-h-[70vh] flex flex-col\">\n <Grid>\n <Grid.Column span={12}>\n <Bind\n name={\"name\"}\n validators={[\n validation.create(\"required,maxLength:100\"),\n nameValidator\n ]}\n >\n <Input\n label={t`Name`}\n description={t`The name of the content model. Use the singular form, e.g. Author Category, not Author Categories.`}\n data-testid=\"cms.newcontentmodeldialog.name\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name={\"singularApiName\"}\n validators={[\n validation.create(\"required,maxLength:100\"),\n apiNameValidator\n ]}\n >\n <Input\n label={t`Singular API Name`}\n description={t`The API name of the content model. For example: AuthorCategory.`}\n data-testid=\"cms.newcontentmodeldialog.singularApiName\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"singleEntry\"} defaultValue={false}>\n <Switch\n description={t`Create a model that can hold only one entry. Cannot be changed later.`}\n label={t`Single entry model`}\n data-testid=\"cms.newcontentmodeldialog.singleEntry\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name={\"pluralApiName\"}\n validators={\n data.singleEntry\n ? []\n : [\n validation.create(\n \"required,maxLength:100\"\n ),\n apiNameValidator\n ]\n }\n >\n <Input\n disabled={data.singleEntry}\n label={t`Plural API Name`}\n description={t`The plural API name of the content model. For example: AuthorCategories.`}\n data-testid=\"cms.newcontentmodeldialog.pluralApiName\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name={\"group\"}\n validators={validation.create(\"required\")}\n >\n <Select\n description={t`Choose a content model group`}\n label={t`Content model group`}\n options={contentModelGroups}\n data-testid=\"cms.newcontentmodeldialog.selectgroup\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name=\"icon\">\n <IconPicker\n label={t`Icon`}\n description={t`Choose an icon to represent the model.`}\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name=\"description\">\n {props => (\n <Input\n {...props}\n rows={4}\n maxLength={200}\n label={t`Description`}\n data-testid=\"cms.newcontentmodeldialog.description\"\n />\n )}\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"defaultFields\"} defaultValue={true}>\n <Checkbox\n description={t`Create model with default title (text), description (long text) and image (file) fields`}\n label={t`Create model with default fields`}\n data-testid=\"cms.newcontentmodeldialog.defaultfields\"\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </ScrollArea>\n </>\n </Dialog>\n );\n }}\n </Form>\n );\n};\n\nexport default NewContentModelDialog;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","useRouter","useSnackbar","Form","Input","Select","CircularProgress","validation","useApolloClient","useMutation","useQuery","i18n","Dialog","Grid","CMS_MODEL_SINGLETON_TAG","addModelToGroupCache","addModelToListCache","GQL","createApiNameValidator","createNameValidator","Checkbox","IconPicker","Switch","Routes","t","ns","NewContentModelDialog","open","onClose","loading","setLoading","useState","showSnackbar","goToRoute","client","createContentModel","CREATE_CONTENT_MODEL","onCompleted","data","model","error","message","ContentModels","Editor","modelId","update","cache","listMenuGroupsQuery","LIST_MENU_CONTENT_GROUPS_MODELS","skip","groups","listContentModelGroups","contentModelGroups","map","item","value","slug","label","name","models","reduce","collection","group","push","contentModels","nameValidator","apiNameValidator","length","undefined","onSubmit","tags","Array","isArray","singleEntry","pluralApiName","singularApiName","variables","createElement","Bind","submit","title","actions","ConfirmAction","onClick","Fragment","Column","span","validators","create","description","defaultValue","disabled","options","props","Object","assign","rows","maxLength"],"sources":["NewContentModelDialog.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { useRouter, useSnackbar } from \"@webiny/app-admin\";\nimport { Form } from \"@webiny/form\";\nimport { Input } from \"@webiny/ui/Input/index.js\";\nimport { Select } from \"@webiny/ui/Select/index.js\";\nimport { CircularProgress } from \"@webiny/ui/Progress/index.js\";\nimport { validation } from \"@webiny/validation\";\nimport { useApolloClient, useMutation, useQuery } from \"../../hooks/index.js\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Dialog, DialogProps, Grid } from \"@webiny/admin-ui\";\nimport { CMS_MODEL_SINGLETON_TAG } from \"@webiny/app-headless-cms-common\";\nimport { addModelToGroupCache, addModelToListCache } from \"./cache.js\";\nimport type {\n CreateCmsModelMutationResponse,\n CreateCmsModelMutationVariables,\n ListMenuCmsGroupsQueryResponse\n} from \"../../viewsGraphql.js\";\nimport * as GQL from \"../../viewsGraphql.js\";\nimport type { CmsModel } from \"~/types.js\";\nimport type { CmsGroupOption } from \"./types.js\";\nimport { createApiNameValidator } from \"~/admin/views/contentModels/helpers/apiNameValidator.js\";\nimport { createNameValidator } from \"~/admin/views/contentModels/helpers/nameValidator.js\";\nimport { Checkbox } from \"@webiny/ui/Checkbox/index.js\";\nimport { IconPicker } from \"~/admin/components/IconPicker.js\";\nimport { Switch } from \"@webiny/ui/Switch/index.js\";\nimport { Routes } from \"~/routes.js\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/views/content-models/new-content-model-dialog\");\n\nexport interface NewContentModelDialogProps {\n open: boolean;\n onClose: DialogProps[\"onClose\"];\n}\n\ninterface CmsModelData {\n name: string;\n description: string;\n group: string;\n singleEntry?: boolean;\n singularApiName: string;\n pluralApiName: string;\n defaultFields: boolean;\n}\n\nconst NewContentModelDialog = ({ open, onClose }: NewContentModelDialogProps) => {\n const [loading, setLoading] = React.useState(false);\n const { showSnackbar } = useSnackbar();\n const { goToRoute } = useRouter();\n const client = useApolloClient();\n\n const [createContentModel] = useMutation<\n CreateCmsModelMutationResponse,\n CreateCmsModelMutationVariables\n >(GQL.CREATE_CONTENT_MODEL, {\n onCompleted(data) {\n setLoading(false);\n\n if (!data) {\n showSnackbar(\"Missing data on Create Content Model Mutation Response.\");\n return;\n }\n\n const { data: model, error } = data.createContentModel;\n\n if (error) {\n setLoading(false);\n showSnackbar(error.message);\n return;\n }\n\n goToRoute(Routes.ContentModels.Editor, { modelId: model.modelId });\n },\n update(cache, { data }) {\n if (!data) {\n return;\n }\n\n const { data: model, error } = data.createContentModel;\n\n if (error) {\n return;\n }\n\n addModelToListCache(cache, model);\n addModelToGroupCache(cache, model);\n }\n });\n\n const listMenuGroupsQuery = useQuery<ListMenuCmsGroupsQueryResponse>(\n GQL.LIST_MENU_CONTENT_GROUPS_MODELS,\n {\n skip: !open\n }\n );\n\n const groups = useMemo(() => {\n return listMenuGroupsQuery.data?.listContentModelGroups?.data || [];\n }, [listMenuGroupsQuery.data]);\n\n const contentModelGroups = useMemo(() => {\n return groups.map((item): CmsGroupOption => {\n return {\n value: item.slug,\n label: item.name\n };\n });\n }, [groups]);\n\n const models = useMemo(() => {\n return groups.reduce<CmsModel[]>((collection, group) => {\n collection.push(...group.contentModels);\n return collection;\n }, []);\n }, [groups]);\n\n const nameValidator = useCallback(createNameValidator({ models }), [models]);\n\n const apiNameValidator = useCallback(createApiNameValidator({ client, models }), [\n client,\n models\n ]);\n\n const group = useMemo<string | undefined>(() => {\n if (!contentModelGroups.length) {\n return undefined;\n }\n return contentModelGroups[0]?.value;\n }, [contentModelGroups]);\n\n const onSubmit = useCallback(\n async (data: CmsModelData) => {\n setLoading(true);\n /**\n * We need to make sure that tags are always an array.\n * At the moment there is no tags on the CmsModelData type.\n * If it is added at some point, the @ts-expect-error should be removed - it will cause TS error.\n */\n // @ts-expect-error\n const tags: string[] = Array.isArray(data.tags) ? data.tags : [];\n /**\n * If a model is a singleEntry, we add a special tag to it.\n * + we need to put the pluralApiName to something that is not used.\n */\n if (data.singleEntry) {\n tags.push(CMS_MODEL_SINGLETON_TAG);\n data.pluralApiName = `${data.singularApiName}Unused`;\n }\n delete data.singleEntry;\n await createContentModel({\n variables: {\n data: {\n ...data,\n tags\n }\n }\n });\n },\n [loading, createContentModel]\n );\n\n return (\n <Form<CmsModelData> data={{ group, singleEntry: false }} onSubmit={onSubmit}>\n {({ Bind, submit, data }) => {\n return (\n <Dialog\n open={open}\n onClose={onClose}\n data-testid=\"cms-new-content-model-modal\"\n title={t`New Content Model`}\n actions={\n <Dialog.ConfirmAction onClick={submit}>\n + {t`Create Model`}\n </Dialog.ConfirmAction>\n }\n >\n <>\n {loading && <CircularProgress label={\"Creating content model...\"} />}\n <Grid>\n <Grid.Column span={12}>\n <Bind\n name={\"name\"}\n validators={[\n validation.create(\"required,maxLength:100\"),\n nameValidator\n ]}\n >\n <Input\n label={t`Name`}\n description={t`The name of the content model. Use the singular form, e.g. Author Category, not Author Categories.`}\n data-testid=\"cms.newcontentmodeldialog.name\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name={\"singularApiName\"}\n validators={[\n validation.create(\"required,maxLength:100\"),\n apiNameValidator\n ]}\n >\n <Input\n label={t`Singular API Name`}\n description={t`The API name of the content model. For example: AuthorCategory.`}\n data-testid=\"cms.newcontentmodeldialog.singularApiName\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"singleEntry\"} defaultValue={false}>\n <Switch\n description={t`Create a model that can hold only one entry. Cannot be changed later.`}\n label={t`Single entry model`}\n data-testid=\"cms.newcontentmodeldialog.singleEntry\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name={\"pluralApiName\"}\n validators={\n data.singleEntry\n ? []\n : [\n validation.create(\"required,maxLength:100\"),\n apiNameValidator\n ]\n }\n >\n <Input\n disabled={data.singleEntry}\n label={t`Plural API Name`}\n description={t`The plural API name of the content model. For example: AuthorCategories.`}\n data-testid=\"cms.newcontentmodeldialog.pluralApiName\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"group\"} validators={validation.create(\"required\")}>\n <Select\n description={t`Choose a content model group`}\n label={t`Content model group`}\n options={contentModelGroups}\n data-testid=\"cms.newcontentmodeldialog.selectgroup\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name=\"icon\">\n <IconPicker\n label={t`Icon`}\n description={t`Choose an icon to represent the model.`}\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name=\"description\">\n {props => (\n <Input\n {...props}\n rows={4}\n maxLength={200}\n label={t`Description`}\n data-testid=\"cms.newcontentmodeldialog.description\"\n />\n )}\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"defaultFields\"} defaultValue={true}>\n <Checkbox\n description={t`Create model with default title (text), description (long text) and image (file) fields`}\n label={t`Create model with default fields`}\n data-testid=\"cms.newcontentmodeldialog.defaultfields\"\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </>\n </Dialog>\n );\n }}\n </Form>\n );\n};\n\nexport default NewContentModelDialog;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACnD,SAASC,SAAS,EAAEC,WAAW,QAAQ,mBAAmB;AAC1D,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,KAAK,QAAQ,2BAA2B;AACjD,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,eAAe,EAAEC,WAAW,EAAEC,QAAQ;AAC/C,SAASC,IAAI,QAAQ,2BAA2B;AAChD,SAASC,MAAM,EAAeC,IAAI,QAAQ,kBAAkB;AAC5D,SAASC,uBAAuB,QAAQ,iCAAiC;AACzE,SAASC,oBAAoB,EAAEC,mBAAmB;AAMlD,OAAO,KAAKC,GAAG;AAGf,SAASC,sBAAsB;AAC/B,SAASC,mBAAmB;AAC5B,SAASC,QAAQ,QAAQ,8BAA8B;AACvD,SAASC,UAAU;AACnB,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SAASC,MAAM;AAEf,MAAMC,CAAC,GAAGb,IAAI,CAACc,EAAE,CAAC,sEAAsE,CAAC;AAiBzF,MAAMC,qBAAqB,GAAGA,CAAC;EAAEC,IAAI;EAAEC;AAAoC,CAAC,KAAK;EAC7E,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGhC,KAAK,CAACiC,QAAQ,CAAC,KAAK,CAAC;EACnD,MAAM;IAAEC;EAAa,CAAC,GAAG9B,WAAW,CAAC,CAAC;EACtC,MAAM;IAAE+B;EAAU,CAAC,GAAGhC,SAAS,CAAC,CAAC;EACjC,MAAMiC,MAAM,GAAG1B,eAAe,CAAC,CAAC;EAEhC,MAAM,CAAC2B,kBAAkB,CAAC,GAAG1B,WAAW,CAGtCQ,GAAG,CAACmB,oBAAoB,EAAE;IACxBC,WAAWA,CAACC,IAAI,EAAE;MACdR,UAAU,CAAC,KAAK,CAAC;MAEjB,IAAI,CAACQ,IAAI,EAAE;QACPN,YAAY,CAAC,yDAAyD,CAAC;QACvE;MACJ;MAEA,MAAM;QAAEM,IAAI,EAAEC,KAAK;QAAEC;MAAM,CAAC,GAAGF,IAAI,CAACH,kBAAkB;MAEtD,IAAIK,KAAK,EAAE;QACPV,UAAU,CAAC,KAAK,CAAC;QACjBE,YAAY,CAACQ,KAAK,CAACC,OAAO,CAAC;QAC3B;MACJ;MAEAR,SAAS,CAACV,MAAM,CAACmB,aAAa,CAACC,MAAM,EAAE;QAAEC,OAAO,EAAEL,KAAK,CAACK;MAAQ,CAAC,CAAC;IACtE,CAAC;IACDC,MAAMA,CAACC,KAAK,EAAE;MAAER;IAAK,CAAC,EAAE;MACpB,IAAI,CAACA,IAAI,EAAE;QACP;MACJ;MAEA,MAAM;QAAEA,IAAI,EAAEC,KAAK;QAAEC;MAAM,CAAC,GAAGF,IAAI,CAACH,kBAAkB;MAEtD,IAAIK,KAAK,EAAE;QACP;MACJ;MAEAxB,mBAAmB,CAAC8B,KAAK,EAAEP,KAAK,CAAC;MACjCxB,oBAAoB,CAAC+B,KAAK,EAAEP,KAAK,CAAC;IACtC;EACJ,CAAC,CAAC;EAEF,MAAMQ,mBAAmB,GAAGrC,QAAQ,CAChCO,GAAG,CAAC+B,+BAA+B,EACnC;IACIC,IAAI,EAAE,CAACtB;EACX,CACJ,CAAC;EAED,MAAMuB,MAAM,GAAGlD,OAAO,CAAC,MAAM;IACzB,OAAO+C,mBAAmB,CAACT,IAAI,EAAEa,sBAAsB,EAAEb,IAAI,IAAI,EAAE;EACvE,CAAC,EAAE,CAACS,mBAAmB,CAACT,IAAI,CAAC,CAAC;EAE9B,MAAMc,kBAAkB,GAAGpD,OAAO,CAAC,MAAM;IACrC,OAAOkD,MAAM,CAACG,GAAG,CAAEC,IAAI,IAAqB;MACxC,OAAO;QACHC,KAAK,EAAED,IAAI,CAACE,IAAI;QAChBC,KAAK,EAAEH,IAAI,CAACI;MAChB,CAAC;IACL,CAAC,CAAC;EACN,CAAC,EAAE,CAACR,MAAM,CAAC,CAAC;EAEZ,MAAMS,MAAM,GAAG3D,OAAO,CAAC,MAAM;IACzB,OAAOkD,MAAM,CAACU,MAAM,CAAa,CAACC,UAAU,EAAEC,KAAK,KAAK;MACpDD,UAAU,CAACE,IAAI,CAAC,GAAGD,KAAK,CAACE,aAAa,CAAC;MACvC,OAAOH,UAAU;IACrB,CAAC,EAAE,EAAE,CAAC;EACV,CAAC,EAAE,CAACX,MAAM,CAAC,CAAC;EAEZ,MAAMe,aAAa,GAAGlE,WAAW,CAACoB,mBAAmB,CAAC;IAAEwC;EAAO,CAAC,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAE5E,MAAMO,gBAAgB,GAAGnE,WAAW,CAACmB,sBAAsB,CAAC;IAAEgB,MAAM;IAAEyB;EAAO,CAAC,CAAC,EAAE,CAC7EzB,MAAM,EACNyB,MAAM,CACT,CAAC;EAEF,MAAMG,KAAK,GAAG9D,OAAO,CAAqB,MAAM;IAC5C,IAAI,CAACoD,kBAAkB,CAACe,MAAM,EAAE;MAC5B,OAAOC,SAAS;IACpB;IACA,OAAOhB,kBAAkB,CAAC,CAAC,CAAC,EAAEG,KAAK;EACvC,CAAC,EAAE,CAACH,kBAAkB,CAAC,CAAC;EAExB,MAAMiB,QAAQ,GAAGtE,WAAW,CACxB,MAAOuC,IAAkB,IAAK;IAC1BR,UAAU,CAAC,IAAI,CAAC;IAChB;AACZ;AACA;AACA;AACA;IACY;IACA,MAAMwC,IAAc,GAAGC,KAAK,CAACC,OAAO,CAAClC,IAAI,CAACgC,IAAI,CAAC,GAAGhC,IAAI,CAACgC,IAAI,GAAG,EAAE;IAChE;AACZ;AACA;AACA;IACY,IAAIhC,IAAI,CAACmC,WAAW,EAAE;MAClBH,IAAI,CAACP,IAAI,CAACjD,uBAAuB,CAAC;MAClCwB,IAAI,CAACoC,aAAa,GAAG,GAAGpC,IAAI,CAACqC,eAAe,QAAQ;IACxD;IACA,OAAOrC,IAAI,CAACmC,WAAW;IACvB,MAAMtC,kBAAkB,CAAC;MACrByC,SAAS,EAAE;QACPtC,IAAI,EAAE;UACF,GAAGA,IAAI;UACPgC;QACJ;MACJ;IACJ,CAAC,CAAC;EACN,CAAC,EACD,CAACzC,OAAO,EAAEM,kBAAkB,CAChC,CAAC;EAED,oBACIrC,KAAA,CAAA+E,aAAA,CAAC1E,IAAI;IAAemC,IAAI,EAAE;MAAEwB,KAAK;MAAEW,WAAW,EAAE;IAAM,CAAE;IAACJ,QAAQ,EAAEA;EAAS,GACvE,CAAC;IAAES,IAAI;IAAEC,MAAM;IAAEzC;EAAK,CAAC,KAAK;IACzB,oBACIxC,KAAA,CAAA+E,aAAA,CAACjE,MAAM;MACHe,IAAI,EAAEA,IAAK;MACXC,OAAO,EAAEA,OAAQ;MACjB,eAAY,6BAA6B;MACzCoD,KAAK,EAAExD,CAAC,mBAAoB;MAC5ByD,OAAO,eACHnF,KAAA,CAAA+E,aAAA,CAACjE,MAAM,CAACsE,aAAa;QAACC,OAAO,EAAEJ;MAAO,GAAC,IACjC,EAACvD,CAAC,cACc;IACzB,gBAED1B,KAAA,CAAA+E,aAAA,CAAA/E,KAAA,CAAAsF,QAAA,QACKvD,OAAO,iBAAI/B,KAAA,CAAA+E,aAAA,CAACvE,gBAAgB;MAACmD,KAAK,EAAE;IAA4B,CAAE,CAAC,eACpE3D,KAAA,CAAA+E,aAAA,CAAChE,IAAI,qBACDf,KAAA,CAAA+E,aAAA,CAAChE,IAAI,CAACwE,MAAM;MAACC,IAAI,EAAE;IAAG,gBAClBxF,KAAA,CAAA+E,aAAA,CAACC,IAAI;MACDpB,IAAI,EAAE,MAAO;MACb6B,UAAU,EAAE,CACRhF,UAAU,CAACiF,MAAM,CAAC,wBAAwB,CAAC,EAC3CvB,aAAa;IACf,gBAEFnE,KAAA,CAAA+E,aAAA,CAACzE,KAAK;MACFqD,KAAK,EAAEjC,CAAC,MAAO;MACfiE,WAAW,EAAEjE,CAAC,oGAAqG;MACnH,eAAY;IAAgC,CAC/C,CACC,CACG,CAAC,eACd1B,KAAA,CAAA+E,aAAA,CAAChE,IAAI,CAACwE,MAAM;MAACC,IAAI,EAAE;IAAG,gBAClBxF,KAAA,CAAA+E,aAAA,CAACC,IAAI;MACDpB,IAAI,EAAE,iBAAkB;MACxB6B,UAAU,EAAE,CACRhF,UAAU,CAACiF,MAAM,CAAC,wBAAwB,CAAC,EAC3CtB,gBAAgB;IAClB,gBAEFpE,KAAA,CAAA+E,aAAA,CAACzE,KAAK;MACFqD,KAAK,EAAEjC,CAAC,mBAAoB;MAC5BiE,WAAW,EAAEjE,CAAC,iEAAkE;MAChF,eAAY;IAA2C,CAC1D,CACC,CACG,CAAC,eACd1B,KAAA,CAAA+E,aAAA,CAAChE,IAAI,CAACwE,MAAM;MAACC,IAAI,EAAE;IAAG,gBAClBxF,KAAA,CAAA+E,aAAA,CAACC,IAAI;MAACpB,IAAI,EAAE,aAAc;MAACgC,YAAY,EAAE;IAAM,gBAC3C5F,KAAA,CAAA+E,aAAA,CAACvD,MAAM;MACHmE,WAAW,EAAEjE,CAAC,uEAAwE;MACtFiC,KAAK,EAAEjC,CAAC,oBAAqB;MAC7B,eAAY;IAAuC,CACtD,CACC,CACG,CAAC,eACd1B,KAAA,CAAA+E,aAAA,CAAChE,IAAI,CAACwE,MAAM;MAACC,IAAI,EAAE;IAAG,gBAClBxF,KAAA,CAAA+E,aAAA,CAACC,IAAI;MACDpB,IAAI,EAAE,eAAgB;MACtB6B,UAAU,EACNjD,IAAI,CAACmC,WAAW,GACV,EAAE,GACF,CACIlE,UAAU,CAACiF,MAAM,CAAC,wBAAwB,CAAC,EAC3CtB,gBAAgB;IAE7B,gBAEDpE,KAAA,CAAA+E,aAAA,CAACzE,KAAK;MACFuF,QAAQ,EAAErD,IAAI,CAACmC,WAAY;MAC3BhB,KAAK,EAAEjC,CAAC,iBAAkB;MAC1BiE,WAAW,EAAEjE,CAAC,0EAA2E;MACzF,eAAY;IAAyC,CACxD,CACC,CACG,CAAC,eACd1B,KAAA,CAAA+E,aAAA,CAAChE,IAAI,CAACwE,MAAM;MAACC,IAAI,EAAE;IAAG,gBAClBxF,KAAA,CAAA+E,aAAA,CAACC,IAAI;MAACpB,IAAI,EAAE,OAAQ;MAAC6B,UAAU,EAAEhF,UAAU,CAACiF,MAAM,CAAC,UAAU;IAAE,gBAC3D1F,KAAA,CAAA+E,aAAA,CAACxE,MAAM;MACHoF,WAAW,EAAEjE,CAAC,8BAA+B;MAC7CiC,KAAK,EAAEjC,CAAC,qBAAsB;MAC9BoE,OAAO,EAAExC,kBAAmB;MAC5B,eAAY;IAAuC,CACtD,CACC,CACG,CAAC,eACdtD,KAAA,CAAA+E,aAAA,CAAChE,IAAI,CAACwE,MAAM;MAACC,IAAI,EAAE;IAAG,gBAClBxF,KAAA,CAAA+E,aAAA,CAACC,IAAI;MAACpB,IAAI,EAAC;IAAM,gBACb5D,KAAA,CAAA+E,aAAA,CAACxD,UAAU;MACPoC,KAAK,EAAEjC,CAAC,MAAO;MACfiE,WAAW,EAAEjE,CAAC;IAAyC,CAC1D,CACC,CACG,CAAC,eACd1B,KAAA,CAAA+E,aAAA,CAAChE,IAAI,CAACwE,MAAM;MAACC,IAAI,EAAE;IAAG,gBAClBxF,KAAA,CAAA+E,aAAA,CAACC,IAAI;MAACpB,IAAI,EAAC;IAAa,GACnBmC,KAAK,iBACF/F,KAAA,CAAA+E,aAAA,CAACzE,KAAK,EAAA0F,MAAA,CAAAC,MAAA,KACEF,KAAK;MACTG,IAAI,EAAE,CAAE;MACRC,SAAS,EAAE,GAAI;MACfxC,KAAK,EAAEjC,CAAC,aAAc;MACtB,eAAY;IAAuC,EACtD,CAEH,CACG,CAAC,eACd1B,KAAA,CAAA+E,aAAA,CAAChE,IAAI,CAACwE,MAAM;MAACC,IAAI,EAAE;IAAG,gBAClBxF,KAAA,CAAA+E,aAAA,CAACC,IAAI;MAACpB,IAAI,EAAE,eAAgB;MAACgC,YAAY,EAAE;IAAK,gBAC5C5F,KAAA,CAAA+E,aAAA,CAACzD,QAAQ;MACLqE,WAAW,EAAEjE,CAAC,yFAA0F;MACxGiC,KAAK,EAAEjC,CAAC,kCAAmC;MAC3C,eAAY;IAAyC,CACxD,CACC,CACG,CACX,CACR,CACE,CAAC;EAEjB,CACE,CAAC;AAEf,CAAC;AAED,eAAeE,qBAAqB","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export { Fields } from "@webiny/app-headless-cms-common";
2
+ export { ParentValueIndexProvider } from "@webiny/app-headless-cms-common";
3
+ export { ParentFieldProvider } from "../../../../admin/components/ContentEntryForm/ParentValue.js";
@@ -0,0 +1,5 @@
1
+ export { Fields } from "@webiny/app-headless-cms-common";
2
+ export { ParentValueIndexProvider } from "@webiny/app-headless-cms-common";
3
+ export { ParentFieldProvider } from "../../../../admin/components/ContentEntryForm/ParentValue.js";
4
+
5
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Fields","ParentValueIndexProvider","ParentFieldProvider"],"sources":["common.ts"],"sourcesContent":["export { Fields } from \"@webiny/app-headless-cms-common\";\nexport { ParentValueIndexProvider } from \"@webiny/app-headless-cms-common\";\nexport { ParentFieldProvider } from \"~/admin/components/ContentEntryForm/ParentValue.js\";\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,iCAAiC;AACxD,SAASC,wBAAwB,QAAQ,iCAAiC;AAC1E,SAASC,mBAAmB","ignoreList":[]}
@@ -1,6 +1,8 @@
1
1
  export { DynamicZoneContainer } from "../../../../admin/plugins/fieldRenderers/dynamicZone/index.js";
2
2
  export { useTemplate } from "../../../../admin/plugins/fieldRenderers/dynamicZone/index.js";
3
3
  export { TemplateGallery } from "../../../../admin/plugins/fieldRenderers/dynamicZone/index.js";
4
+ export { TemplateProvider } from "../../../../admin/plugins/fieldRenderers/dynamicZone/index.js";
5
+ export { TemplateIcon } from "../../../../admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js";
4
6
  export { SingleValueItemContainer } from "../../../../admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js";
5
7
  export { MultiValueContainer } from "../../../../admin/plugins/fieldRenderers/dynamicZone/index.js";
6
8
  export { MultiValueItemContainer } from "../../../../admin/plugins/fieldRenderers/dynamicZone/index.js";
@@ -1,6 +1,8 @@
1
1
  export { DynamicZoneContainer } from "../../../../admin/plugins/fieldRenderers/dynamicZone/index.js";
2
2
  export { useTemplate } from "../../../../admin/plugins/fieldRenderers/dynamicZone/index.js";
3
3
  export { TemplateGallery } from "../../../../admin/plugins/fieldRenderers/dynamicZone/index.js";
4
+ export { TemplateProvider } from "../../../../admin/plugins/fieldRenderers/dynamicZone/index.js";
5
+ export { TemplateIcon } from "../../../../admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js";
4
6
  export { SingleValueItemContainer } from "../../../../admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js";
5
7
  export { MultiValueContainer } from "../../../../admin/plugins/fieldRenderers/dynamicZone/index.js";
6
8
  export { MultiValueItemContainer } from "../../../../admin/plugins/fieldRenderers/dynamicZone/index.js";
@@ -1 +1 @@
1
- {"version":3,"names":["DynamicZoneContainer","useTemplate","TemplateGallery","SingleValueItemContainer","MultiValueContainer","MultiValueItemContainer","MultiValueItem"],"sources":["dynamic-zone.ts"],"sourcesContent":["export { DynamicZoneContainer } from \"~/admin/plugins/fieldRenderers/dynamicZone/index.js\";\nexport { useTemplate } from \"~/admin/plugins/fieldRenderers/dynamicZone/index.js\";\nexport { TemplateGallery } from \"~/admin/plugins/fieldRenderers/dynamicZone/index.js\";\nexport { SingleValueItemContainer } from \"~/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js\";\nexport { MultiValueContainer } from \"~/admin/plugins/fieldRenderers/dynamicZone/index.js\";\nexport { MultiValueItemContainer } from \"~/admin/plugins/fieldRenderers/dynamicZone/index.js\";\nexport { MultiValueItem } from \"~/admin/plugins/fieldRenderers/dynamicZone/index.js\";\n"],"mappings":"AAAA,SAASA,oBAAoB;AAC7B,SAASC,WAAW;AACpB,SAASC,eAAe;AACxB,SAASC,wBAAwB;AACjC,SAASC,mBAAmB;AAC5B,SAASC,uBAAuB;AAChC,SAASC,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["DynamicZoneContainer","useTemplate","TemplateGallery","TemplateProvider","TemplateIcon","SingleValueItemContainer","MultiValueContainer","MultiValueItemContainer","MultiValueItem"],"sources":["dynamic-zone.ts"],"sourcesContent":["export { DynamicZoneContainer } from \"~/admin/plugins/fieldRenderers/dynamicZone/index.js\";\nexport { useTemplate } from \"~/admin/plugins/fieldRenderers/dynamicZone/index.js\";\nexport { TemplateGallery } from \"~/admin/plugins/fieldRenderers/dynamicZone/index.js\";\nexport { TemplateProvider } from \"~/admin/plugins/fieldRenderers/dynamicZone/index.js\";\nexport { TemplateIcon } from \"~/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js\";\nexport { SingleValueItemContainer } from \"~/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js\";\nexport { MultiValueContainer } from \"~/admin/plugins/fieldRenderers/dynamicZone/index.js\";\nexport { MultiValueItemContainer } from \"~/admin/plugins/fieldRenderers/dynamicZone/index.js\";\nexport { MultiValueItem } from \"~/admin/plugins/fieldRenderers/dynamicZone/index.js\";\n"],"mappings":"AAAA,SAASA,oBAAoB;AAC7B,SAASC,WAAW;AACpB,SAASC,eAAe;AACxB,SAASC,gBAAgB;AACzB,SAASC,YAAY;AACrB,SAASC,wBAAwB;AACjC,SAASC,mBAAmB;AAC5B,SAASC,uBAAuB;AAChC,SAASC,cAAc","ignoreList":[]}
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@webiny/app-headless-cms",
3
- "version": "6.3.0-beta.2",
3
+ "version": "6.3.0-beta.4",
4
4
  "type": "module",
5
- "main": "index.js",
5
+ "exports": {
6
+ ".": "./index.js",
7
+ "./*": "./*"
8
+ },
6
9
  "repository": {
7
10
  "type": "git",
8
11
  "url": "https://github.com/webiny/webiny-js.git"
@@ -25,29 +28,29 @@
25
28
  "@fortawesome/free-regular-svg-icons": "7.2.0",
26
29
  "@fortawesome/free-solid-svg-icons": "7.2.0",
27
30
  "@fortawesome/react-fontawesome": "3.3.1",
28
- "@lexical/utils": "0.43.0",
31
+ "@lexical/utils": "0.44.0",
29
32
  "@svgr/webpack": "8.1.0",
30
33
  "@types/react": "18.3.28",
31
- "@webiny/admin-ui": "6.3.0-beta.2",
32
- "@webiny/app": "6.3.0-beta.2",
33
- "@webiny/app-aco": "6.3.0-beta.2",
34
- "@webiny/app-admin": "6.3.0-beta.2",
35
- "@webiny/app-graphql-playground": "6.3.0-beta.2",
36
- "@webiny/app-headless-cms-common": "6.3.0-beta.2",
37
- "@webiny/app-trash-bin": "6.3.0-beta.2",
38
- "@webiny/error": "6.3.0-beta.2",
39
- "@webiny/feature": "6.3.0-beta.2",
40
- "@webiny/form": "6.3.0-beta.2",
41
- "@webiny/icons": "6.3.0-beta.2",
42
- "@webiny/lexical-converter": "6.3.0-beta.2",
43
- "@webiny/lexical-editor": "6.3.0-beta.2",
44
- "@webiny/lexical-nodes": "6.3.0-beta.2",
45
- "@webiny/plugins": "6.3.0-beta.2",
46
- "@webiny/react-composition": "6.3.0-beta.2",
47
- "@webiny/react-properties": "6.3.0-beta.2",
48
- "@webiny/ui": "6.3.0-beta.2",
49
- "@webiny/utils": "6.3.0-beta.2",
50
- "@webiny/validation": "6.3.0-beta.2",
34
+ "@webiny/admin-ui": "6.3.0-beta.4",
35
+ "@webiny/app": "6.3.0-beta.4",
36
+ "@webiny/app-aco": "6.3.0-beta.4",
37
+ "@webiny/app-admin": "6.3.0-beta.4",
38
+ "@webiny/app-graphql-playground": "6.3.0-beta.4",
39
+ "@webiny/app-headless-cms-common": "6.3.0-beta.4",
40
+ "@webiny/app-trash-bin": "6.3.0-beta.4",
41
+ "@webiny/error": "6.3.0-beta.4",
42
+ "@webiny/feature": "6.3.0-beta.4",
43
+ "@webiny/form": "6.3.0-beta.4",
44
+ "@webiny/icons": "6.3.0-beta.4",
45
+ "@webiny/lexical-converter": "6.3.0-beta.4",
46
+ "@webiny/lexical-editor": "6.3.0-beta.4",
47
+ "@webiny/lexical-nodes": "6.3.0-beta.4",
48
+ "@webiny/plugins": "6.3.0-beta.4",
49
+ "@webiny/react-composition": "6.3.0-beta.4",
50
+ "@webiny/react-properties": "6.3.0-beta.4",
51
+ "@webiny/ui": "6.3.0-beta.4",
52
+ "@webiny/utils": "6.3.0-beta.4",
53
+ "@webiny/validation": "6.3.0-beta.4",
51
54
  "apollo-cache": "1.3.5",
52
55
  "apollo-client": "2.6.10",
53
56
  "apollo-link": "1.2.14",
@@ -58,7 +61,7 @@
58
61
  "graphql": "16.13.2",
59
62
  "graphql-tag": "2.12.6",
60
63
  "lodash": "4.18.1",
61
- "mobx": "6.15.0",
64
+ "mobx": "6.15.1",
62
65
  "mobx-react-lite": "4.1.1",
63
66
  "react": "18.3.1",
64
67
  "react-butterfiles": "1.3.3",
@@ -71,7 +74,7 @@
71
74
  },
72
75
  "devDependencies": {
73
76
  "@emotion/babel-plugin": "11.13.5",
74
- "@webiny/build-tools": "6.3.0-beta.2",
77
+ "@webiny/build-tools": "6.3.0-beta.4",
75
78
  "babel-plugin-module-resolver": "5.0.3",
76
79
  "rimraf": "6.1.3",
77
80
  "typescript": "6.0.3",
@@ -96,5 +99,5 @@
96
99
  ]
97
100
  }
98
101
  },
99
- "gitHead": "c5ae1dbcb99bf7457449ef67aef19c5b4b1ffc4c"
102
+ "gitHead": "7cefe15431dbd65504e1f58147dc9e55bcbfa693"
100
103
  }