@webiny/app-headless-cms 5.37.5 → 5.37.6-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,3 +11,4 @@ export { useModelField } from "../components/ModelFieldProvider";
11
11
  export { useModelFieldEditor } from "../components/FieldEditor";
12
12
  export * from "./useContentModels";
13
13
  export * from "../views/contentEntries/hooks";
14
+ export * from "./useModelFieldGraphqlContext";
@@ -121,4 +121,16 @@ Object.keys(_hooks).forEach(function (key) {
121
121
  return _hooks[key];
122
122
  }
123
123
  });
124
+ });
125
+ var _useModelFieldGraphqlContext = require("./useModelFieldGraphqlContext");
126
+ Object.keys(_useModelFieldGraphqlContext).forEach(function (key) {
127
+ if (key === "default" || key === "__esModule") return;
128
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
129
+ if (key in exports && exports[key] === _useModelFieldGraphqlContext[key]) return;
130
+ Object.defineProperty(exports, key, {
131
+ enumerable: true,
132
+ get: function get() {
133
+ return _useModelFieldGraphqlContext[key];
134
+ }
135
+ });
124
136
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_useCms","_interopRequireDefault","require","_useQuery","_useQueryLocale","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_useLazyQuery","_useMutation","_useApolloClient","_usePermission","_ModelProvider","_ContentModelEditor","_ModelFieldProvider","_FieldEditor","_useContentModels","_hooks"],"sources":["index.ts"],"sourcesContent":["export { default as useCms } from \"./useCms\";\nexport { default as useQuery } from \"./useQuery\";\nexport * from \"./useQueryLocale\";\nexport { default as useLazyQuery } from \"./useLazyQuery\";\nexport { default as useMutation } from \"./useMutation\";\nexport { default as useApolloClient } from \"./useApolloClient\";\nexport { default as usePermission } from \"./usePermission\";\nexport { useModel } from \"../components/ModelProvider\";\nexport { useModelEditor } from \"../components/ContentModelEditor\";\nexport { useModelField } from \"../components/ModelFieldProvider\";\nexport { useModelFieldEditor } from \"../components/FieldEditor\";\nexport * from \"./useContentModels\";\nexport * from \"~/admin/views/contentEntries/hooks\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAF,eAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,eAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAZ,eAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,aAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,YAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,gBAAA,GAAAlB,sBAAA,CAAAC,OAAA;AACA,IAAAkB,cAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,cAAA,GAAAnB,OAAA;AACA,IAAAoB,mBAAA,GAAApB,OAAA;AACA,IAAAqB,mBAAA,GAAArB,OAAA;AACA,IAAAsB,YAAA,GAAAtB,OAAA;AACA,IAAAuB,iBAAA,GAAAvB,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAmB,iBAAA,EAAAlB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAiB,iBAAA,CAAAjB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAS,iBAAA,CAAAjB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAkB,MAAA,GAAAxB,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAoB,MAAA,EAAAnB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAkB,MAAA,CAAAlB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAU,MAAA,CAAAlB,GAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":["_useCms","_interopRequireDefault","require","_useQuery","_useQueryLocale","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_useLazyQuery","_useMutation","_useApolloClient","_usePermission","_ModelProvider","_ContentModelEditor","_ModelFieldProvider","_FieldEditor","_useContentModels","_hooks","_useModelFieldGraphqlContext"],"sources":["index.ts"],"sourcesContent":["export { default as useCms } from \"./useCms\";\nexport { default as useQuery } from \"./useQuery\";\nexport * from \"./useQueryLocale\";\nexport { default as useLazyQuery } from \"./useLazyQuery\";\nexport { default as useMutation } from \"./useMutation\";\nexport { default as useApolloClient } from \"./useApolloClient\";\nexport { default as usePermission } from \"./usePermission\";\nexport { useModel } from \"../components/ModelProvider\";\nexport { useModelEditor } from \"../components/ContentModelEditor\";\nexport { useModelField } from \"../components/ModelFieldProvider\";\nexport { useModelFieldEditor } from \"../components/FieldEditor\";\nexport * from \"./useContentModels\";\nexport * from \"~/admin/views/contentEntries/hooks\";\nexport * from \"./useModelFieldGraphqlContext\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAF,eAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,eAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAZ,eAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,aAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,YAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,gBAAA,GAAAlB,sBAAA,CAAAC,OAAA;AACA,IAAAkB,cAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,cAAA,GAAAnB,OAAA;AACA,IAAAoB,mBAAA,GAAApB,OAAA;AACA,IAAAqB,mBAAA,GAAArB,OAAA;AACA,IAAAsB,YAAA,GAAAtB,OAAA;AACA,IAAAuB,iBAAA,GAAAvB,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAmB,iBAAA,EAAAlB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAiB,iBAAA,CAAAjB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAS,iBAAA,CAAAjB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAkB,MAAA,GAAAxB,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAoB,MAAA,EAAAnB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAkB,MAAA,CAAAlB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAU,MAAA,CAAAlB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAmB,4BAAA,GAAAzB,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAqB,4BAAA,EAAApB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAmB,4BAAA,CAAAnB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAW,4BAAA,CAAAnB,GAAA;IAAA;EAAA;AAAA"}
@@ -0,0 +1,24 @@
1
+ /// <reference types="react" />
2
+ export declare const useModelFieldGraphqlContext: () => {
3
+ cms: {
4
+ model: import("@webiny/app-headless-cms-common/types").CmsModel;
5
+ field: {
6
+ id: string;
7
+ type: string;
8
+ fieldId: string;
9
+ storageId?: string | undefined;
10
+ label: string;
11
+ helpText?: string | undefined;
12
+ placeholderText?: string | undefined;
13
+ validation?: import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator[] | undefined;
14
+ listValidation?: import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator[] | undefined;
15
+ multipleValues?: boolean | undefined;
16
+ predefinedValues?: import("@webiny/app-headless-cms-common/types").CmsEditorFieldPredefinedValues | undefined;
17
+ settings?: import("@webiny/app-headless-cms-common/types").CmsModelFieldSettings<unknown> | undefined;
18
+ renderer: {
19
+ name: string;
20
+ } | ((props: import("@webiny/app-headless-cms-common/types").CmsModelFieldRendererProps) => import("react").ReactNode);
21
+ tags?: string[] | undefined;
22
+ };
23
+ };
24
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useModelFieldGraphqlContext = void 0;
7
+ var _ = require("./");
8
+ var useModelFieldGraphqlContext = function useModelFieldGraphqlContext() {
9
+ var _useModel = (0, _.useModel)(),
10
+ model = _useModel.model;
11
+ var _useModelField = (0, _.useModelField)(),
12
+ field = _useModelField.field;
13
+ return {
14
+ cms: {
15
+ model: model,
16
+ field: field
17
+ }
18
+ };
19
+ };
20
+ exports.useModelFieldGraphqlContext = useModelFieldGraphqlContext;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_","require","useModelFieldGraphqlContext","_useModel","useModel","model","_useModelField","useModelField","field","cms","exports"],"sources":["useModelFieldGraphqlContext.ts"],"sourcesContent":["import { useModel, useModelField } from \"~/admin/hooks\";\n\nexport const useModelFieldGraphqlContext = () => {\n const { model } = useModel();\n const { field } = useModelField();\n\n return {\n cms: {\n model,\n field\n }\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,CAAA,GAAAC,OAAA;AAEO,IAAMC,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAA,EAAS;EAC7C,IAAAC,SAAA,GAAkB,IAAAC,UAAQ,EAAC,CAAC;IAApBC,KAAK,GAAAF,SAAA,CAALE,KAAK;EACb,IAAAC,cAAA,GAAkB,IAAAC,eAAa,EAAC,CAAC;IAAzBC,KAAK,GAAAF,cAAA,CAALE,KAAK;EAEb,OAAO;IACHC,GAAG,EAAE;MACDJ,KAAK,EAALA,KAAK;MACLG,KAAK,EAALA;IACJ;EACJ,CAAC;AACL,CAAC;AAACE,OAAA,CAAAR,2BAAA,GAAAA,2BAAA"}
@@ -102,6 +102,7 @@ var AdvancedMultipleReferenceField = function AdvancedMultipleReferenceField(pro
102
102
  field = props.field;
103
103
  var _useSnackbar = (0, _appAdmin.useSnackbar)(),
104
104
  showSnackbar = _useSnackbar.showSnackbar;
105
+ var requestContext = (0, _hooks.useModelFieldGraphqlContext)();
105
106
  var values = (0, _react.useMemo)(function () {
106
107
  return bind.value || [];
107
108
  }, [bind.value]);
@@ -117,7 +118,9 @@ var AdvancedMultipleReferenceField = function AdvancedMultipleReferenceField(pro
117
118
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
118
119
  loadedModels = _useState6[0],
119
120
  setLoadedModels = _useState6[1];
120
- var _useQuery = (0, _hooks.useQuery)(GQL.LIST_CONTENT_MODELS),
121
+ var _useQuery = (0, _hooks.useQuery)(GQL.LIST_CONTENT_MODELS, {
122
+ context: requestContext
123
+ }),
121
124
  data = _useQuery.data,
122
125
  loadingModels = _useQuery.loading;
123
126
  (0, _react.useEffect)(function () {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_styled","_interopRequireDefault","GQL","_Options","_useReferences2","_Entry","_ReferencesDialog","_hooks","_appAdmin","_Loader","_utils","_Entries","_NewReferencedEntryDialog","FieldLabel","styled","target","label","fontSize","fontWeight","borderBottom","marginBottom","paddingBottom","display","justifyContent","OptionsContainer","borderTop","borderRight","backgroundColor","marginLeft","marginRight","Container","border","paddingLeft","width","boxSizing","position","padding","_defineProperty2","default","borderLeft","margin","height","FieldName","RecordCount","color","lineHeight","alignSelf","getRecordCountMessage","count","concat","AdvancedMultipleReferenceField","props","bind","field","_useSnackbar","useSnackbar","showSnackbar","values","useMemo","value","_useState","useState","_useState2","_slicedToArray2","linkEntryDialogModel","setLinkEntryDialogModel","_useState3","_useState4","newEntryDialogModel","setNewEntryDialogModel","_useState5","_useState6","loadedModels","setLoadedModels","_useQuery","useQuery","LIST_CONTENT_MODELS","data","loadingModels","loading","useEffect","_data$listContentMode","listContentModels","error","message","onNewRecord","useCallback","modelId","model","find","console","log","onNewEntryDialogClose","onExistingRecord","onLinkEntryDialogClose","_useReferences","useReferences","perPage","entries","loadingEntries","loadMore","onRemove","id","Array","isArray","_parseIdentifier","parseIdentifier","entryId","onChange","filter","_parseIdentifier2","valueEntryId","models","_field$settings","settings","reduce","collection","ref","push","storeValues","onNewEntryCreate","onMoveUp","index","toTop","length","arr","splice","moveValueUp","onMoveDown","toBottom","moveValueDown","createElement","Fragment","className","AbsoluteLoader","Entries","entry","isFirst","isLast","Entry","placement","key","undefined","Options","onLinkExistingRecord","NewReferencedEntryDialog","onClose","ReferencesDialog","Object","assign","multiple","contentModel","onDialogClose","exports"],"sources":["AdvancedMultipleReferenceField.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport * as GQL from \"~/admin/viewsGraphql\";\nimport {\n BindComponentRenderProp,\n CmsContentEntry,\n CmsModelFieldRendererProps,\n CmsModel\n} from \"~/types\";\nimport { Options } from \"./Options\";\nimport { useReferences } from \"../hooks/useReferences\";\nimport { Entry } from \"./Entry\";\nimport { ReferencesDialog } from \"./ReferencesDialog\";\nimport { useQuery } from \"~/admin/hooks\";\nimport { ListCmsModelsQueryResponse } from \"~/admin/viewsGraphql\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { CmsReferenceValue } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport { AbsoluteLoader as Loader } from \"./Loader\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { Entries } from \"./Entries\";\nimport { NewReferencedEntryDialog } from \"~/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog\";\n\nconst FieldLabel = styled(\"h3\")({\n fontSize: 24,\n fontWeight: \"normal\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n marginBottom: \"20px\",\n paddingBottom: \"5px\",\n display: \"flex\",\n justifyContent: \"space-between\"\n});\n\nconst OptionsContainer: any = styled(\"div\")({\n borderTop: \"1px solid var(--mdc-theme-on-background)\",\n borderRight: \"1px solid var(--mdc-theme-surface)\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n marginLeft: \"-21px\",\n marginBottom: \"-21px\",\n marginRight: \"-1px\"\n});\n\nconst Container = styled(\"div\")({\n border: \"1px solid var(--mdc-theme-on-background)\",\n paddingLeft: \"10px\",\n width: \"100%\",\n boxSizing: \"border-box\",\n position: \"relative\",\n padding: \"20px 0 20px 20px\",\n backgroundColor: \"var(--mdc-theme-background)\",\n \"&.no-entries\": {\n backgroundColor: \"var(--mdc-theme-surface)\",\n border: \"none\",\n borderLeft: \"3px solid var(--mdc-theme-background)\",\n padding: 0,\n paddingLeft: 10,\n [OptionsContainer]: {\n border: \"none\",\n margin: 0\n }\n },\n \"&.single-entry\": {\n \"> .entries\": {\n height: \"auto\",\n \" > div > div\": {\n position: \"relative !important\" as any\n }\n }\n }\n});\n\nconst FieldName = styled(\"span\")({});\nconst RecordCount = styled(\"span\")({\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n fontSize: \"0.6em\",\n lineHeight: \"100%\",\n alignSelf: \"center\"\n});\n\nconst getRecordCountMessage = (count: number) => {\n switch (count) {\n case 0:\n return \"no records selected\";\n case 1:\n return \"1 record selected\";\n default:\n return `${count} records selected`;\n }\n};\n\ninterface Props extends CmsModelFieldRendererProps {\n bind: BindComponentRenderProp<CmsReferenceValue[] | undefined | null>;\n}\n\nexport const AdvancedMultipleReferenceField: React.VFC<Props> = props => {\n const { bind, field } = props;\n const { showSnackbar } = useSnackbar();\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\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 {\n entries,\n loading: loadingEntries,\n loadMore\n } = useReferences({\n values,\n perPage: 10\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 bind.onChange(\n values.filter(value => {\n const { id: valueEntryId } = parseIdentifier(value.id);\n return valueEntryId !== entryId;\n })\n );\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);\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 === 0) {\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 === 0) {\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 loading = loadingEntries || loadingModels;\n\n const message = getRecordCountMessage(values.length);\n\n return (\n <>\n <FieldLabel>\n <FieldName>{field.label}</FieldName>\n <RecordCount>({message})</RecordCount>\n </FieldLabel>\n <Container\n className={\n (entries.length < 1 ? \"no-entries\" : \"has-entries\") +\n (entries.length == 1 ? \" single-entry\" : \"\")\n }\n >\n {loading && <Loader />}\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 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\n <OptionsContainer>\n <Options\n models={models}\n onNewRecord={onNewRecord}\n onLinkExistingRecord={onExistingRecord}\n />\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={true}\n values={values}\n contentModel={linkEntryDialogModel}\n storeValues={storeValues}\n onDialogClose={onLinkEntryDialogClose}\n />\n )}\n </OptionsContainer>\n </Container>\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,GAAA,GAAAJ,uBAAA,CAAAC,OAAA;AAOA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AAEA,IAAAS,SAAA,GAAAT,OAAA;AAEA,IAAAU,OAAA,GAAAV,OAAA;AACA,IAAAW,MAAA,GAAAX,OAAA;AACA,IAAAY,QAAA,GAAAZ,OAAA;AACA,IAAAa,yBAAA,GAAAb,OAAA;AAEA,IAAMc,UAAU,oBAAGC,eAAM,EAAC,IAAI;EAAAC,MAAA;EAAAC,KAAA;AAAA,GAAE;EAC5BC,QAAQ,EAAE,EAAE;EACZC,UAAU,EAAE,QAAQ;EACpBC,YAAY,EAAE,uCAAuC;EACrDC,YAAY,EAAE,MAAM;EACpBC,aAAa,EAAE,KAAK;EACpBC,OAAO,EAAE,MAAM;EACfC,cAAc,EAAE;AACpB,CAAC,CAAC;AAEF,IAAMC,gBAAqB,oBAAGV,eAAM,EAAC,KAAK;EAAAC,MAAA;EAAAC,KAAA;AAAA,GAAE;EACxCS,SAAS,EAAE,0CAA0C;EACrDC,WAAW,EAAE,oCAAoC;EACjDC,eAAe,EAAE,0BAA0B;EAC3CC,UAAU,EAAE,OAAO;EACnBR,YAAY,EAAE,OAAO;EACrBS,WAAW,EAAE;AACjB,CAAC,CAAC;AAEF,IAAMC,SAAS,oBAAGhB,eAAM,EAAC,KAAK;EAAAC,MAAA;EAAAC,KAAA;AAAA,GAAE;EAC5Be,MAAM,EAAE,0CAA0C;EAClDC,WAAW,EAAE,MAAM;EACnBC,KAAK,EAAE,MAAM;EACbC,SAAS,EAAE,YAAY;EACvBC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE,kBAAkB;EAC3BT,eAAe,EAAE,6BAA6B;EAC9C,cAAc,MAAAU,gBAAA,CAAAC,OAAA;IACVX,eAAe,EAAE,0BAA0B;IAC3CI,MAAM,EAAE,MAAM;IACdQ,UAAU,EAAE,uCAAuC;IACnDH,OAAO,EAAE,CAAC;IACVJ,WAAW,EAAE;EAAE,GACdR,gBAAgB,EAAG;IAChBO,MAAM,EAAE,MAAM;IACdS,MAAM,EAAE;EACZ,CAAC,CACJ;EACD,gBAAgB,EAAE;IACd,YAAY,EAAE;MACVC,MAAM,EAAE,MAAM;MACd,cAAc,EAAE;QACZN,QAAQ,EAAE;MACd;IACJ;EACJ;AACJ,CAAC,CAAC;AAEF,IAAMO,SAAS,oBAAG5B,eAAM,EAAC,MAAM;EAAAC,MAAA;EAAAC,KAAA;AAAA,GAAE,CAAC,CAAC,CAAC;AACpC,IAAM2B,WAAW,oBAAG7B,eAAM,EAAC,MAAM;EAAAC,MAAA;EAAAC,KAAA;AAAA,GAAE;EAC/B4B,KAAK,EAAE,+CAA+C;EACtD3B,QAAQ,EAAE,OAAO;EACjB4B,UAAU,EAAE,MAAM;EAClBC,SAAS,EAAE;AACf,CAAC,CAAC;AAEF,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,KAAa,EAAK;EAC7C,QAAQA,KAAK;IACT,KAAK,CAAC;MACF,OAAO,qBAAqB;IAChC,KAAK,CAAC;MACF,OAAO,mBAAmB;IAC9B;MACI,UAAAC,MAAA,CAAUD,KAAK;EACvB;AACJ,CAAC;AAMM,IAAME,8BAAgD,GAAG,SAAnDA,8BAAgDA,CAAGC,KAAK,EAAI;EACrE,IAAQC,IAAI,GAAYD,KAAK,CAArBC,IAAI;IAAEC,KAAK,GAAKF,KAAK,CAAfE,KAAK;EACnB,IAAAC,YAAA,GAAyB,IAAAC,qBAAW,EAAC,CAAC;IAA9BC,YAAY,GAAAF,YAAA,CAAZE,YAAY;EAEpB,IAAMC,MAAM,GAAG,IAAAC,cAAO,EAAC,YAAM;IACzB,OAAON,IAAI,CAACO,KAAK,IAAI,EAAE;EAC3B,CAAC,EAAE,CAACP,IAAI,CAACO,KAAK,CAAC,CAAC;EAEhB,IAAAC,SAAA,GAAwD,IAAAC,eAAQ,EAAkB,IAAI,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAAzB,OAAA,EAAAsB,SAAA;IAAhFI,oBAAoB,GAAAF,UAAA;IAAEG,uBAAuB,GAAAH,UAAA;EACpD,IAAAI,UAAA,GAAsD,IAAAL,eAAQ,EAAkB,IAAI,CAAC;IAAAM,UAAA,OAAAJ,eAAA,CAAAzB,OAAA,EAAA4B,UAAA;IAA9EE,mBAAmB,GAAAD,UAAA;IAAEE,sBAAsB,GAAAF,UAAA;EAElD,IAAAG,UAAA,GAAwC,IAAAT,eAAQ,EAAa,EAAE,CAAC;IAAAU,UAAA,OAAAR,eAAA,CAAAzB,OAAA,EAAAgC,UAAA;IAAzDE,YAAY,GAAAD,UAAA;IAAEE,eAAe,GAAAF,UAAA;EAEpC,IAAAG,SAAA,GAAyC,IAAAC,eAAQ,EAC7CzE,GAAG,CAAC0E,mBACR,CAAC;IAFOC,IAAI,GAAAH,SAAA,CAAJG,IAAI;IAAWC,aAAa,GAAAJ,SAAA,CAAtBK,OAAO;EAIrB,IAAAC,gBAAS,EAAC,YAAM;IAAA,IAAAC,qBAAA;IACZ,IAAIH,aAAa,IAAI,EAACD,IAAI,aAAJA,IAAI,gBAAAI,qBAAA,GAAJJ,IAAI,CAAEK,iBAAiB,cAAAD,qBAAA,eAAvBA,qBAAA,CAAyBJ,IAAI,GAAE;MACjD;IACJ,CAAC,MAAM,IAAIA,IAAI,CAACK,iBAAiB,CAACC,KAAK,EAAE;MACrCV,eAAe,CAAC,EAAE,CAAC;MACnBjB,YAAY,CAACqB,IAAI,CAACK,iBAAiB,CAACC,KAAK,CAACC,OAAO,CAAC;MAClD;IACJ;IACAX,eAAe,CAACI,IAAI,CAACK,iBAAiB,CAACL,IAAI,CAAC;EAChD,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,IAAMQ,WAAW,GAAG,IAAAC,kBAAW,EAC3B,UAACC,OAAe,EAAK;IACjB,IAAMC,KAAK,GAAGhB,YAAY,CAACiB,IAAI,CAAC,UAAAD,KAAK;MAAA,OAAIA,KAAK,CAACD,OAAO,KAAKA,OAAO;IAAA,EAAC;IACnE,IAAI,CAACC,KAAK,EAAE;MACRE,OAAO,CAACC,GAAG,mCAAA1C,MAAA,CAAkCsC,OAAO,QAAI,CAAC;MACzD;IACJ;IACAlB,sBAAsB,CAACmB,KAAK,CAAC;EACjC,CAAC,EACD,CAAChB,YAAY,EAAER,oBAAoB,CACvC,CAAC;EAED,IAAM4B,qBAAqB,GAAG,IAAAN,kBAAW,EAAC,YAAM;IAC5CjB,sBAAsB,CAAC,IAAI,CAAC;EAChC,CAAC,EAAE,CAACL,oBAAoB,CAAC,CAAC;EAE1B,IAAM6B,gBAAgB,GAAG,IAAAP,kBAAW,EAChC,UAACC,OAAe,EAAK;IACjB,IAAMC,KAAK,GAAGhB,YAAY,CAACiB,IAAI,CAAC,UAAAD,KAAK;MAAA,OAAIA,KAAK,CAACD,OAAO,KAAKA,OAAO;IAAA,EAAC;IACnE,IAAI,CAACC,KAAK,EAAE;MACRE,OAAO,CAACC,GAAG,mCAAA1C,MAAA,CAAkCsC,OAAO,QAAI,CAAC;MACzD;IACJ;IACAtB,uBAAuB,CAACuB,KAAK,CAAC;EAClC,CAAC,EACD,CAAChB,YAAY,EAAER,oBAAoB,CACvC,CAAC;EAED,IAAM8B,sBAAsB,GAAG,IAAAR,kBAAW,EAAC,YAAM;IAC7CrB,uBAAuB,CAAC,IAAI,CAAC;EACjC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAA8B,cAAA,GAII,IAAAC,6BAAa,EAAC;MACdvC,MAAM,EAANA,MAAM;MACNwC,OAAO,EAAE;IACb,CAAC,CAAC;IANEC,OAAO,GAAAH,cAAA,CAAPG,OAAO;IACEC,cAAc,GAAAJ,cAAA,CAAvBhB,OAAO;IACPqB,QAAQ,GAAAL,cAAA,CAARK,QAAQ;EAMZ,IAAMC,QAAQ,GAAG,IAAAf,kBAAW,EACxB,UAACgB,EAAU,EAAK;IACZ,IAAI,CAAC7C,MAAM,IAAI,CAAC8C,KAAK,CAACC,OAAO,CAAC/C,MAAM,CAAC,EAAE;MACnC;IACJ;IACA,IAAAgD,gBAAA,GAAwB,IAAAC,sBAAe,EAACJ,EAAE,CAAC;MAA/BK,OAAO,GAAAF,gBAAA,CAAXH,EAAE;IACVlD,IAAI,CAACwD,QAAQ,CACTnD,MAAM,CAACoD,MAAM,CAAC,UAAAlD,KAAK,EAAI;MACnB,IAAAmD,iBAAA,GAA6B,IAAAJ,sBAAe,EAAC/C,KAAK,CAAC2C,EAAE,CAAC;QAA1CS,YAAY,GAAAD,iBAAA,CAAhBR,EAAE;MACV,OAAOS,YAAY,KAAKJ,OAAO;IACnC,CAAC,CACL,CAAC;EACL,CAAC,EACD,CAACT,OAAO,EAAEzC,MAAM,CACpB,CAAC;EAED,IAAMuD,MAAM,GAAG,IAAAtD,cAAO,EAAC,YAAM;IAAA,IAAAuD,eAAA;IACzB,IAAI,CAACzC,YAAY,IAAI,GAAAyC,eAAA,GAAC5D,KAAK,CAAC6D,QAAQ,cAAAD,eAAA,eAAdA,eAAA,CAAgBD,MAAM,KAAI,CAACT,KAAK,CAACC,OAAO,CAACnD,KAAK,CAAC6D,QAAQ,CAACF,MAAM,CAAC,EAAE;MACnF,OAAO,EAAE;IACb;IAEA,OAAO3D,KAAK,CAAC6D,QAAQ,CAACF,MAAM,CAACG,MAAM,CAAa,UAACC,UAAU,EAAEC,GAAG,EAAK;MACjE,IAAM7B,KAAK,GAAGhB,YAAY,CAACiB,IAAI,CAAC,UAAAD,KAAK;QAAA,OAAIA,KAAK,CAACD,OAAO,KAAK8B,GAAG,CAAC9B,OAAO;MAAA,EAAC;MACvE,IAAI,CAACC,KAAK,EAAE;QACR,OAAO4B,UAAU;MACrB;MACAA,UAAU,CAACE,IAAI,CAAC9B,KAAK,CAAC;MAEtB,OAAO4B,UAAU;IACrB,CAAC,EAAE,EAAE,CAAC;EACV,CAAC,EAAE,CAAC5C,YAAY,EAAE0B,OAAO,CAAC,CAAC;EAE3B,IAAMqB,WAAW,GAAG,IAAAjC,kBAAW,EAC3B,UAAC7B,MAA2B,EAAK;IAC7BL,IAAI,CAACwD,QAAQ,CAACnD,MAAM,CAAC;IACrB;EACJ,CAAC,EACD,CAACA,MAAM,CACX,CAAC;EAED,IAAM+D,gBAAgB,GAAG,IAAAlC,kBAAW,EAChC,UAACT,IAAqC,EAAK;IACvC,IAAI,CAACA,IAAI,EAAE;MACPa,OAAO,CAACC,GAAG,yEAEX,CAAC;MACD;IACJ,CAAC,MAAM,IAAI,CAACd,IAAI,CAACyB,EAAE,EAAE;MACjBZ,OAAO,CAACC,GAAG,0EAEX,CAAC;MACD;IACJ,CAAC,MAAM,IAAI,CAACd,IAAI,CAACU,OAAO,EAAE;MACtBG,OAAO,CAACC,GAAG,+EAEX,CAAC;MACD;IACJ;IACA4B,WAAW,CACP9D,MAAM,CAACR,MAAM,CAAC,CACV;MACIqD,EAAE,EAAEzB,IAAI,CAACyB,EAAE;MACXf,OAAO,EAAEV,IAAI,CAACU;IAClB,CAAC,CACJ,CACL,CAAC;EACL,CAAC,EACD,CAACgC,WAAW,CAChB,CAAC;EAED,IAAME,QAAQ,GAAG,IAAAnC,kBAAW,EACxB,UAACoC,KAAa,EAAEC,KAAe,EAAK;IAChC,IAAIlE,MAAM,CAACmE,MAAM,KAAK,CAAC,EAAE;MACrB;IACJ,CAAC,MAAM,IAAID,KAAK,EAAE;MACd,IAAME,GAAG,GAAGpE,MAAM,CAACqE,MAAM,CAACJ,KAAK,EAAE,CAAC,CAAC;MACnCtE,IAAI,CAACwD,QAAQ,CAACiB,GAAG,CAAC5E,MAAM,CAACQ,MAAM,CAAC,CAAC;MACjC;IACJ;IACAL,IAAI,CAAC2E,WAAW,CAACL,KAAK,CAAC;EAC3B,CAAC,EACD,CAACjE,MAAM,CACX,CAAC;EACD,IAAMuE,UAAU,GAAG,IAAA1C,kBAAW,EAC1B,UAACoC,KAAa,EAAEO,QAAkB,EAAK;IACnC,IAAIxE,MAAM,CAACmE,MAAM,KAAK,CAAC,EAAE;MACrB;IACJ,CAAC,MAAM,IAAIK,QAAQ,KAAK,IAAI,EAAE;MAC1B,IAAMJ,GAAG,GAAGpE,MAAM,CAACqE,MAAM,CAACJ,KAAK,EAAE,CAAC,CAAC;MACnCtE,IAAI,CAACwD,QAAQ,CAACnD,MAAM,CAACR,MAAM,CAAC4E,GAAG,CAAC,CAAC;MACjC;IACJ;IACAzE,IAAI,CAAC8E,aAAa,CAACR,KAAK,CAAC;EAC7B,CAAC,EACD,CAACjE,MAAM,CACX,CAAC;EAED,IAAMsB,OAAO,GAAGoB,cAAc,IAAIrB,aAAa;EAE/C,IAAMM,OAAO,GAAGrC,qBAAqB,CAACU,MAAM,CAACmE,MAAM,CAAC;EAEpD,oBACI/H,MAAA,CAAAyC,OAAA,CAAA6F,aAAA,CAAAtI,MAAA,CAAAyC,OAAA,CAAA8F,QAAA,qBACIvI,MAAA,CAAAyC,OAAA,CAAA6F,aAAA,CAACtH,UAAU,qBACPhB,MAAA,CAAAyC,OAAA,CAAA6F,aAAA,CAACzF,SAAS,QAAEW,KAAK,CAACrC,KAAiB,CAAC,eACpCnB,MAAA,CAAAyC,OAAA,CAAA6F,aAAA,CAACxF,WAAW,QAAC,GAAC,EAACyC,OAAO,EAAC,GAAc,CAC7B,CAAC,eACbvF,MAAA,CAAAyC,OAAA,CAAA6F,aAAA,CAACrG,SAAS;IACNuG,SAAS,EACL,CAACnC,OAAO,CAAC0B,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG,aAAa,KACjD1B,OAAO,CAAC0B,MAAM,IAAI,CAAC,GAAG,eAAe,GAAG,EAAE;EAC9C,GAEA7C,OAAO,iBAAIlF,MAAA,CAAAyC,OAAA,CAAA6F,aAAA,CAAC1H,OAAA,CAAA6H,cAAM,MAAE,CAAC,eACtBzI,MAAA,CAAAyC,OAAA,CAAA6F,aAAA,CAACxH,QAAA,CAAA4H,OAAO;IAACrC,OAAO,EAAEA,OAAQ;IAACE,QAAQ,EAAEA;EAAS,GACzC,UAACoC,KAAK,EAAEd,KAAK,EAAK;IACf,IAAMe,OAAO,GAAGf,KAAK,KAAK,CAAC;IAC3B,IAAMgB,MAAM,GAAGhB,KAAK,IAAIjE,MAAM,CAACmE,MAAM,GAAG,CAAC;IACzC,IAAMpC,KAAK,GAAGhB,YAAY,CAACiB,IAAI,CAC3B,UAAAD,KAAK;MAAA,OAAIA,KAAK,CAACD,OAAO,KAAKiD,KAAK,CAAChD,KAAK,CAACD,OAAO;IAAA,CAClD,CAAC;IACD,IAAI,CAACC,KAAK,EAAE;MACR,OAAO,IAAI;IACf;IACA,oBACI3F,MAAA,CAAAyC,OAAA,CAAA6F,aAAA,CAAC9H,MAAA,CAAAsI,KAAK;MACFnD,KAAK,EAAEA,KAAM;MACboD,SAAS,EAAC,UAAU;MACpBC,GAAG,qBAAA5F,MAAA,CAAqBuF,KAAK,CAAClC,EAAE,CAAG;MACnCoB,KAAK,EAAEA,KAAM;MACbc,KAAK,EAAEA,KAAM;MACbnC,QAAQ,EAAEA,QAAS;MACnBoB,QAAQ,EAAE,CAACgB,OAAO,GAAGhB,QAAQ,GAAGqB,SAAU;MAC1Cd,UAAU,EAAE,CAACU,MAAM,GAAGV,UAAU,GAAGc;IAAU,CAChD,CAAC;EAEV,CACK,CAAC,eAEVjJ,MAAA,CAAAyC,OAAA,CAAA6F,aAAA,CAAC3G,gBAAgB,qBACb3B,MAAA,CAAAyC,OAAA,CAAA6F,aAAA,CAAChI,QAAA,CAAA4I,OAAO;IACJ/B,MAAM,EAAEA,MAAO;IACf3B,WAAW,EAAEA,WAAY;IACzB2D,oBAAoB,EAAEnD;EAAiB,CAC1C,CAAC,EAEDzB,mBAAmB,iBAChBvE,MAAA,CAAAyC,OAAA,CAAA6F,aAAA,CAACvH,yBAAA,CAAAqI,wBAAwB;IACrBzD,KAAK,EAAEpB,mBAAoB;IAC3B8E,OAAO,EAAEtD,qBAAsB;IAC/BgB,QAAQ,EAAEY;EAAiB,CAC9B,CACJ,EAEAxD,oBAAoB,iBACjBnE,MAAA,CAAAyC,OAAA,CAAA6F,aAAA,CAAC7H,iBAAA,CAAA6I,gBAAgB,EAAAC,MAAA,CAAAC,MAAA,KACTlG,KAAK;IACTmG,QAAQ,EAAE,IAAK;IACf7F,MAAM,EAAEA,MAAO;IACf8F,YAAY,EAAEvF,oBAAqB;IACnCuD,WAAW,EAAEA,WAAY;IACzBiC,aAAa,EAAE1D;EAAuB,EACzC,CAES,CACX,CACb,CAAC;AAEX,CAAC;AAAC2D,OAAA,CAAAvG,8BAAA,GAAAA,8BAAA"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_styled","_interopRequireDefault","GQL","_Options","_useReferences2","_Entry","_ReferencesDialog","_hooks","_appAdmin","_Loader","_utils","_Entries","_NewReferencedEntryDialog","FieldLabel","styled","target","label","fontSize","fontWeight","borderBottom","marginBottom","paddingBottom","display","justifyContent","OptionsContainer","borderTop","borderRight","backgroundColor","marginLeft","marginRight","Container","border","paddingLeft","width","boxSizing","position","padding","_defineProperty2","default","borderLeft","margin","height","FieldName","RecordCount","color","lineHeight","alignSelf","getRecordCountMessage","count","concat","AdvancedMultipleReferenceField","props","bind","field","_useSnackbar","useSnackbar","showSnackbar","requestContext","useModelFieldGraphqlContext","values","useMemo","value","_useState","useState","_useState2","_slicedToArray2","linkEntryDialogModel","setLinkEntryDialogModel","_useState3","_useState4","newEntryDialogModel","setNewEntryDialogModel","_useState5","_useState6","loadedModels","setLoadedModels","_useQuery","useQuery","LIST_CONTENT_MODELS","context","data","loadingModels","loading","useEffect","_data$listContentMode","listContentModels","error","message","onNewRecord","useCallback","modelId","model","find","console","log","onNewEntryDialogClose","onExistingRecord","onLinkEntryDialogClose","_useReferences","useReferences","perPage","entries","loadingEntries","loadMore","onRemove","id","Array","isArray","_parseIdentifier","parseIdentifier","entryId","onChange","filter","_parseIdentifier2","valueEntryId","models","_field$settings","settings","reduce","collection","ref","push","storeValues","onNewEntryCreate","onMoveUp","index","toTop","length","arr","splice","moveValueUp","onMoveDown","toBottom","moveValueDown","createElement","Fragment","className","AbsoluteLoader","Entries","entry","isFirst","isLast","Entry","placement","key","undefined","Options","onLinkExistingRecord","NewReferencedEntryDialog","onClose","ReferencesDialog","Object","assign","multiple","contentModel","onDialogClose","exports"],"sources":["AdvancedMultipleReferenceField.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport * as GQL from \"~/admin/viewsGraphql\";\nimport {\n BindComponentRenderProp,\n CmsContentEntry,\n CmsModelFieldRendererProps,\n CmsModel\n} from \"~/types\";\nimport { Options } from \"./Options\";\nimport { useReferences } from \"../hooks/useReferences\";\nimport { Entry } from \"./Entry\";\nimport { ReferencesDialog } from \"./ReferencesDialog\";\nimport { useModelFieldGraphqlContext, useQuery } from \"~/admin/hooks\";\nimport { ListCmsModelsQueryResponse } from \"~/admin/viewsGraphql\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { CmsReferenceValue } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport { AbsoluteLoader as Loader } from \"./Loader\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { Entries } from \"./Entries\";\nimport { NewReferencedEntryDialog } from \"~/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog\";\n\nconst FieldLabel = styled(\"h3\")({\n fontSize: 24,\n fontWeight: \"normal\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n marginBottom: \"20px\",\n paddingBottom: \"5px\",\n display: \"flex\",\n justifyContent: \"space-between\"\n});\n\nconst OptionsContainer: any = styled(\"div\")({\n borderTop: \"1px solid var(--mdc-theme-on-background)\",\n borderRight: \"1px solid var(--mdc-theme-surface)\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n marginLeft: \"-21px\",\n marginBottom: \"-21px\",\n marginRight: \"-1px\"\n});\n\nconst Container = styled(\"div\")({\n border: \"1px solid var(--mdc-theme-on-background)\",\n paddingLeft: \"10px\",\n width: \"100%\",\n boxSizing: \"border-box\",\n position: \"relative\",\n padding: \"20px 0 20px 20px\",\n backgroundColor: \"var(--mdc-theme-background)\",\n \"&.no-entries\": {\n backgroundColor: \"var(--mdc-theme-surface)\",\n border: \"none\",\n borderLeft: \"3px solid var(--mdc-theme-background)\",\n padding: 0,\n paddingLeft: 10,\n [OptionsContainer]: {\n border: \"none\",\n margin: 0\n }\n },\n \"&.single-entry\": {\n \"> .entries\": {\n height: \"auto\",\n \" > div > div\": {\n position: \"relative !important\" as any\n }\n }\n }\n});\n\nconst FieldName = styled(\"span\")({});\nconst RecordCount = styled(\"span\")({\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n fontSize: \"0.6em\",\n lineHeight: \"100%\",\n alignSelf: \"center\"\n});\n\nconst getRecordCountMessage = (count: number) => {\n switch (count) {\n case 0:\n return \"no records selected\";\n case 1:\n return \"1 record selected\";\n default:\n return `${count} records selected`;\n }\n};\n\ninterface Props extends CmsModelFieldRendererProps {\n bind: BindComponentRenderProp<CmsReferenceValue[] | undefined | null>;\n}\n\nexport const AdvancedMultipleReferenceField: React.VFC<Props> = props => {\n const { bind, field } = props;\n const { showSnackbar } = useSnackbar();\n const requestContext = useModelFieldGraphqlContext();\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(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 {\n entries,\n loading: loadingEntries,\n loadMore\n } = useReferences({\n values,\n perPage: 10\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 bind.onChange(\n values.filter(value => {\n const { id: valueEntryId } = parseIdentifier(value.id);\n return valueEntryId !== entryId;\n })\n );\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);\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 === 0) {\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 === 0) {\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 loading = loadingEntries || loadingModels;\n\n const message = getRecordCountMessage(values.length);\n\n return (\n <>\n <FieldLabel>\n <FieldName>{field.label}</FieldName>\n <RecordCount>({message})</RecordCount>\n </FieldLabel>\n <Container\n className={\n (entries.length < 1 ? \"no-entries\" : \"has-entries\") +\n (entries.length == 1 ? \" single-entry\" : \"\")\n }\n >\n {loading && <Loader />}\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 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\n <OptionsContainer>\n <Options\n models={models}\n onNewRecord={onNewRecord}\n onLinkExistingRecord={onExistingRecord}\n />\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={true}\n values={values}\n contentModel={linkEntryDialogModel}\n storeValues={storeValues}\n onDialogClose={onLinkEntryDialogClose}\n />\n )}\n </OptionsContainer>\n </Container>\n </>\n );\n};\n"],"mappings":"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"}
@@ -49,7 +49,10 @@ var AdvancedSingleReferenceField = function AdvancedSingleReferenceField(props)
49
49
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
50
50
  loadedModels = _useState6[0],
51
51
  setLoadedModels = _useState6[1];
52
- var _useQuery = (0, _hooks.useQuery)(GQL.LIST_CONTENT_MODELS),
52
+ var requestContext = (0, _hooks.useModelFieldGraphqlContext)();
53
+ var _useQuery = (0, _hooks.useQuery)(GQL.LIST_CONTENT_MODELS, {
54
+ context: requestContext
55
+ }),
53
56
  data = _useQuery.data,
54
57
  loadingModels = _useQuery.loading;
55
58
  (0, _react.useEffect)(function () {
@@ -90,7 +93,8 @@ var AdvancedSingleReferenceField = function AdvancedSingleReferenceField(props)
90
93
  setLinkEntryDialogModel(null);
91
94
  }, []);
92
95
  var _useReferences = (0, _useReferences2.useReferences)({
93
- values: bind.value
96
+ values: bind.value,
97
+ requestContext: requestContext
94
98
  }),
95
99
  entries = _useReferences.entries,
96
100
  loadingEntries = _useReferences.loading;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_Options","_useReferences2","_Entry","_ReferencesDialog","_styled","_interopRequireDefault","_hooks","GQL","_appAdmin","_Loader","_NewReferencedEntryDialog","Container","styled","target","label","FieldLabel","fontSize","fontWeight","borderBottom","marginBottom","paddingBottom","AdvancedSingleReferenceField","props","bind","field","_useSnackbar","useSnackbar","showSnackbar","_useState","useState","_useState2","_slicedToArray2","default","linkEntryDialogModel","setLinkEntryDialogModel","_useState3","_useState4","newEntryDialogModel","setNewEntryDialogModel","_useState5","_useState6","loadedModels","setLoadedModels","_useQuery","useQuery","LIST_CONTENT_MODELS","data","loadingModels","loading","useEffect","_data$listContentMode","listContentModels","error","message","onNewRecord","useCallback","modelId","model","find","console","log","concat","onNewEntryDialogClose","onExistingRecord","onLinkEntryDialogClose","_useReferences","useReferences","values","value","entries","loadingEntries","onRemove","onChange","models","useMemo","_field$settings","_field$settings2","settings","map","_ref","filter","Boolean","storeValues","_values$","length","id","onNewEntryCreate","initialValue","entry","createElement","Fragment","Loader","Entry","placement","index","Options","onLinkExistingRecord","NewReferencedEntryDialog","onClose","ReferencesDialog","Object","assign","multiple","contentModel","onDialogClose","exports"],"sources":["AdvancedSingleReferenceField.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n BindComponentRenderProp,\n CmsContentEntry,\n CmsModelFieldRendererProps,\n CmsModel\n} from \"~/types\";\nimport { Options } from \"./Options\";\nimport { useReferences } from \"../hooks/useReferences\";\nimport { Entry } from \"./Entry\";\nimport { ReferencesDialog } from \"./ReferencesDialog\";\nimport styled from \"@emotion/styled\";\nimport { useQuery } from \"~/admin/hooks\";\nimport { ListCmsModelsQueryResponse } from \"~/admin/viewsGraphql\";\nimport * as GQL from \"~/admin/viewsGraphql\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { CmsReferenceValue } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport { Loader } from \"./Loader\";\nimport { NewReferencedEntryDialog } from \"~/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog\";\n\nconst Container = styled(\"div\")({});\n\nconst FieldLabel = styled(\"h3\")({\n fontSize: 24,\n fontWeight: \"normal\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n marginBottom: \"20px\",\n paddingBottom: \"5px\"\n});\n\ninterface Props extends CmsModelFieldRendererProps {\n bind: BindComponentRenderProp<CmsReferenceValue | null>;\n}\n\nexport const AdvancedSingleReferenceField: React.VFC<Props> = props => {\n const { bind, field } = props;\n const { showSnackbar } = useSnackbar();\n\n const [linkEntryDialogModel, setLinkEntryDialogModel] = useState<CmsModel | null>(null);\n const [newEntryDialogModel, setNewEntryDialogModel] = useState<CmsModel | null>(null);\n const [loadedModels, setLoadedModels] = useState<CmsModel[]>([]);\n\n const { data, loading: loadingModels } = useQuery<ListCmsModelsQueryResponse>(\n GQL.LIST_CONTENT_MODELS\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 });\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 return (\n <>\n <FieldLabel>{field.label}</FieldLabel>\n <Container>\n {loading && <Loader />}\n {initialValue && (\n <Entry\n model={initialValue.model}\n placement=\"singleRefField\"\n index={0}\n entry={initialValue.entry}\n onRemove={onRemove}\n />\n )}\n <Options\n models={models}\n onNewRecord={onNewRecord}\n onLinkExistingRecord={onExistingRecord}\n />\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 </Container>\n </>\n );\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAOA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAEA,IAAAQ,GAAA,GAAAT,uBAAA,CAAAC,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AAEA,IAAAU,OAAA,GAAAV,OAAA;AACA,IAAAW,yBAAA,GAAAX,OAAA;AAEA,IAAMY,SAAS,oBAAGC,eAAM,EAAC,KAAK;EAAAC,MAAA;EAAAC,KAAA;AAAA,GAAE,CAAC,CAAC,CAAC;AAEnC,IAAMC,UAAU,oBAAGH,eAAM,EAAC,IAAI;EAAAC,MAAA;EAAAC,KAAA;AAAA,GAAE;EAC5BE,QAAQ,EAAE,EAAE;EACZC,UAAU,EAAE,QAAQ;EACpBC,YAAY,EAAE,uCAAuC;EACrDC,YAAY,EAAE,MAAM;EACpBC,aAAa,EAAE;AACnB,CAAC,CAAC;AAMK,IAAMC,4BAA8C,GAAG,SAAjDA,4BAA8CA,CAAGC,KAAK,EAAI;EACnE,IAAQC,IAAI,GAAYD,KAAK,CAArBC,IAAI;IAAEC,KAAK,GAAKF,KAAK,CAAfE,KAAK;EACnB,IAAAC,YAAA,GAAyB,IAAAC,qBAAW,EAAC,CAAC;IAA9BC,YAAY,GAAAF,YAAA,CAAZE,YAAY;EAEpB,IAAAC,SAAA,GAAwD,IAAAC,eAAQ,EAAkB,IAAI,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,SAAA;IAAhFK,oBAAoB,GAAAH,UAAA;IAAEI,uBAAuB,GAAAJ,UAAA;EACpD,IAAAK,UAAA,GAAsD,IAAAN,eAAQ,EAAkB,IAAI,CAAC;IAAAO,UAAA,OAAAL,eAAA,CAAAC,OAAA,EAAAG,UAAA;IAA9EE,mBAAmB,GAAAD,UAAA;IAAEE,sBAAsB,GAAAF,UAAA;EAClD,IAAAG,UAAA,GAAwC,IAAAV,eAAQ,EAAa,EAAE,CAAC;IAAAW,UAAA,OAAAT,eAAA,CAAAC,OAAA,EAAAO,UAAA;IAAzDE,YAAY,GAAAD,UAAA;IAAEE,eAAe,GAAAF,UAAA;EAEpC,IAAAG,SAAA,GAAyC,IAAAC,eAAQ,EAC7CrC,GAAG,CAACsC,mBACR,CAAC;IAFOC,IAAI,GAAAH,SAAA,CAAJG,IAAI;IAAWC,aAAa,GAAAJ,SAAA,CAAtBK,OAAO;EAIrB,IAAAC,gBAAS,EAAC,YAAM;IAAA,IAAAC,qBAAA;IACZ,IAAIH,aAAa,IAAI,EAACD,IAAI,aAAJA,IAAI,gBAAAI,qBAAA,GAAJJ,IAAI,CAAEK,iBAAiB,cAAAD,qBAAA,eAAvBA,qBAAA,CAAyBJ,IAAI,GAAE;MACjD;IACJ,CAAC,MAAM,IAAIA,IAAI,CAACK,iBAAiB,CAACC,KAAK,EAAE;MACrCV,eAAe,CAAC,EAAE,CAAC;MACnBf,YAAY,CAACmB,IAAI,CAACK,iBAAiB,CAACC,KAAK,CAACC,OAAO,CAAC;MAClD;IACJ;IACAX,eAAe,CAACI,IAAI,CAACK,iBAAiB,CAACL,IAAI,CAAC;EAChD,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,IAAMQ,WAAW,GAAG,IAAAC,kBAAW,EAC3B,UAACC,OAAe,EAAK;IACjB,IAAMC,KAAK,GAAGhB,YAAY,CAACiB,IAAI,CAAC,UAAAD,KAAK;MAAA,OAAIA,KAAK,CAACD,OAAO,KAAKA,OAAO;IAAA,EAAC;IACnE,IAAI,CAACC,KAAK,EAAE;MACRE,OAAO,CAACC,GAAG,mCAAAC,MAAA,CAAkCL,OAAO,QAAI,CAAC;MACzD;IACJ;IACAlB,sBAAsB,CAACmB,KAAK,CAAC;EACjC,CAAC,EACD,CAAChB,YAAY,EAAER,oBAAoB,CACvC,CAAC;EAED,IAAM6B,qBAAqB,GAAG,IAAAP,kBAAW,EAAC,YAAM;IAC5CjB,sBAAsB,CAAC,IAAI,CAAC;EAChC,CAAC,EAAE,CAACL,oBAAoB,CAAC,CAAC;EAE1B,IAAM8B,gBAAgB,GAAG,IAAAR,kBAAW,EAChC,UAACC,OAAe,EAAK;IACjB,IAAMC,KAAK,GAAGhB,YAAY,CAACiB,IAAI,CAAC,UAAAD,KAAK;MAAA,OAAIA,KAAK,CAACD,OAAO,KAAKA,OAAO;IAAA,EAAC;IACnE,IAAI,CAACC,KAAK,EAAE;MACRE,OAAO,CAACC,GAAG,mCAAAC,MAAA,CAAkCL,OAAO,QAAI,CAAC;MACzD;IACJ;IACAtB,uBAAuB,CAACuB,KAAK,CAAC;EAClC,CAAC,EACD,CAAChB,YAAY,EAAER,oBAAoB,CACvC,CAAC;EAED,IAAM+B,sBAAsB,GAAG,IAAAT,kBAAW,EAAC,YAAM;IAC7CrB,uBAAuB,CAAC,IAAI,CAAC;EACjC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAA+B,cAAA,GAA6C,IAAAC,6BAAa,EAAC;MACvDC,MAAM,EAAE5C,IAAI,CAAC6C;IACjB,CAAC,CAAC;IAFMC,OAAO,GAAAJ,cAAA,CAAPI,OAAO;IAAWC,cAAc,GAAAL,cAAA,CAAvBjB,OAAO;EAIxB,IAAMuB,QAAQ,GAAG,IAAAhB,kBAAW,EAAC,YAAM;IAC/BhC,IAAI,CAACiD,QAAQ,CAAC,IAAI,CAAC;EACvB,CAAC,EAAE,CAACH,OAAO,CAAC,CAAC;EAEb,IAAMI,MAAM,GAAG,IAAAC,cAAO,EAAC,YAAM;IAAA,IAAAC,eAAA,EAAAC,gBAAA;IACzB,IAAI,CAACnC,YAAY,IAAI,GAAAkC,eAAA,GAACnD,KAAK,CAACqD,QAAQ,cAAAF,eAAA,eAAdA,eAAA,CAAgBF,MAAM,GAAE;MAC1C,OAAO,EAAE;IACb;IAEA,OAAO,CAAC,EAAAG,gBAAA,GAAApD,KAAK,CAACqD,QAAQ,cAAAD,gBAAA,uBAAdA,gBAAA,CAAgBH,MAAM,KAAI,EAAE,EAC/BK,GAAG,CAAC,UAAAC,IAAA,EAAiB;MAAA,IAAdvB,OAAO,GAAAuB,IAAA,CAAPvB,OAAO;MACX,OAAOf,YAAY,CAACiB,IAAI,CAAC,UAAAD,KAAK;QAAA,OAAIA,KAAK,CAACD,OAAO,KAAKA,OAAO;MAAA,EAAC;IAChE,CAAC,CAAC,CACDwB,MAAM,CAACC,OAAO,CAAC;EACxB,CAAC,EAAE,CAACxC,YAAY,EAAE4B,OAAO,CAAC,CAAC;EAE3B,IAAMrB,OAAO,GAAGsB,cAAc,IAAIvB,aAAa;EAE/C,IAAMmC,WAAW,GAAG,IAAA3B,kBAAW,EAC3B,UAACY,MAA2B,EAAK;IAAA,IAAAgB,QAAA;IAC7B,IAAIhB,MAAM,CAACiB,MAAM,GAAG,CAAC,EAAE;MACnBzB,OAAO,CAACC,GAAG,CAAC,yDAAyD,CAAC;MACtE;IACJ,CAAC,MAAM,IAAIO,MAAM,CAACiB,MAAM,KAAK,CAAC,IAAI,GAAAD,QAAA,GAAChB,MAAM,CAAC,CAAC,CAAC,cAAAgB,QAAA,eAATA,QAAA,CAAWE,EAAE,GAAE;MAC9C9D,IAAI,CAACiD,QAAQ,CAAC,IAAI,CAAC;MACnB;IACJ;IACAjD,IAAI,CAACiD,QAAQ,CAACL,MAAM,CAAC,CAAC,CAAC,CAAC;EAC5B,CAAC,EACD,CAAC5C,IAAI,CAAC6C,KAAK,EAAE7C,IAAI,CAACiD,QAAQ,EAAEH,OAAO,CACvC,CAAC;EAED,IAAMiB,gBAAgB,GAAG,IAAA/B,kBAAW,EAChC,UAACT,IAA4B,EAAK;IAC9B,IAAI,CAACA,IAAI,EAAE;MACPa,OAAO,CAACC,GAAG,yEAEX,CAAC;MACD;IACJ,CAAC,MAAM,IAAI,CAACd,IAAI,CAACuC,EAAE,EAAE;MACjB1B,OAAO,CAACC,GAAG,0EAEX,CAAC;MACD;IACJ,CAAC,MAAM,IAAI,CAACd,IAAI,CAACU,OAAO,EAAE;MACtBG,OAAO,CAACC,GAAG,+EAEX,CAAC;MACD;IACJ;IACAsB,WAAW,CAAC,CACR;MACIG,EAAE,EAAEvC,IAAI,CAACuC,EAAE;MACX7B,OAAO,EAAEV,IAAI,CAACU;IAClB,CAAC,CACJ,CAAC;EACN,CAAC,EACD,CAAC0B,WAAW,CAChB,CAAC;EAED,IAAMK,YAAY,GAAG,IAAAb,cAAO,EAAC,YAAM;IAC/B,IAAIL,OAAO,CAACe,MAAM,KAAK,CAAC,IAAI3C,YAAY,CAAC2C,MAAM,KAAK,CAAC,EAAE;MACnD,OAAO,IAAI;IACf;IACA,IAAMI,KAAK,GAAGnB,OAAO,CAAC,CAAC,CAAC;IACxB,IAAI,CAACmB,KAAK,EAAE;MACR,OAAO,IAAI;IACf;IACA,IAAM/B,KAAK,GAAGhB,YAAY,CAACiB,IAAI,CAAC,UAAAD,KAAK;MAAA,OAAIA,KAAK,CAACD,OAAO,KAAKgC,KAAK,CAAC/B,KAAK,CAACD,OAAO;IAAA,EAAC;IAC/E,IAAI,CAACC,KAAK,EAAE;MACR,OAAO,IAAI;IACf;IACA,OAAO;MACH+B,KAAK,EAALA,KAAK;MACL/B,KAAK,EAALA;IACJ,CAAC;EACL,CAAC,EAAE,CAACY,OAAO,EAAE5B,YAAY,CAAC,CAAC;EAE3B,oBACI5C,MAAA,CAAAmC,OAAA,CAAAyD,aAAA,CAAA5F,MAAA,CAAAmC,OAAA,CAAA0D,QAAA,qBACI7F,MAAA,CAAAmC,OAAA,CAAAyD,aAAA,CAAC1E,UAAU,QAAES,KAAK,CAACV,KAAkB,CAAC,eACtCjB,MAAA,CAAAmC,OAAA,CAAAyD,aAAA,CAAC9E,SAAS,QACLqC,OAAO,iBAAInD,MAAA,CAAAmC,OAAA,CAAAyD,aAAA,CAAChF,OAAA,CAAAkF,MAAM,MAAE,CAAC,EACrBJ,YAAY,iBACT1F,MAAA,CAAAmC,OAAA,CAAAyD,aAAA,CAACvF,MAAA,CAAA0F,KAAK;IACFnC,KAAK,EAAE8B,YAAY,CAAC9B,KAAM;IAC1BoC,SAAS,EAAC,gBAAgB;IAC1BC,KAAK,EAAE,CAAE;IACTN,KAAK,EAAED,YAAY,CAACC,KAAM;IAC1BjB,QAAQ,EAAEA;EAAS,CACtB,CACJ,eACD1E,MAAA,CAAAmC,OAAA,CAAAyD,aAAA,CAACzF,QAAA,CAAA+F,OAAO;IACJtB,MAAM,EAAEA,MAAO;IACfnB,WAAW,EAAEA,WAAY;IACzB0C,oBAAoB,EAAEjC;EAAiB,CAC1C,CAAC,EAED1B,mBAAmB,iBAChBxC,MAAA,CAAAmC,OAAA,CAAAyD,aAAA,CAAC/E,yBAAA,CAAAuF,wBAAwB;IACrBxC,KAAK,EAAEpB,mBAAoB;IAC3B6D,OAAO,EAAEpC,qBAAsB;IAC/BU,QAAQ,EAAEc;EAAiB,CAC9B,CACJ,EAEArD,oBAAoB,iBACjBpC,MAAA,CAAAmC,OAAA,CAAAyD,aAAA,CAACtF,iBAAA,CAAAgG,gBAAgB,EAAAC,MAAA,CAAAC,MAAA,KACT/E,KAAK;IACTgF,QAAQ,EAAE,KAAM;IAChBnC,MAAM,EAAE5C,IAAI,CAAC6C,KAAK,GAAG,CAAC7C,IAAI,CAAC6C,KAAK,CAAC,GAAG,EAAG;IACvCmC,YAAY,EAAEtE,oBAAqB;IACnCiD,WAAW,EAAEA,WAAY;IACzBsB,aAAa,EAAExC;EAAuB,EACzC,CAEE,CACb,CAAC;AAEX,CAAC;AAACyC,OAAA,CAAApF,4BAAA,GAAAA,4BAAA"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_Options","_useReferences2","_Entry","_ReferencesDialog","_styled","_interopRequireDefault","_hooks","GQL","_appAdmin","_Loader","_NewReferencedEntryDialog","Container","styled","target","label","FieldLabel","fontSize","fontWeight","borderBottom","marginBottom","paddingBottom","AdvancedSingleReferenceField","props","bind","field","_useSnackbar","useSnackbar","showSnackbar","_useState","useState","_useState2","_slicedToArray2","default","linkEntryDialogModel","setLinkEntryDialogModel","_useState3","_useState4","newEntryDialogModel","setNewEntryDialogModel","_useState5","_useState6","loadedModels","setLoadedModels","requestContext","useModelFieldGraphqlContext","_useQuery","useQuery","LIST_CONTENT_MODELS","context","data","loadingModels","loading","useEffect","_data$listContentMode","listContentModels","error","message","onNewRecord","useCallback","modelId","model","find","console","log","concat","onNewEntryDialogClose","onExistingRecord","onLinkEntryDialogClose","_useReferences","useReferences","values","value","entries","loadingEntries","onRemove","onChange","models","useMemo","_field$settings","_field$settings2","settings","map","_ref","filter","Boolean","storeValues","_values$","length","id","onNewEntryCreate","initialValue","entry","createElement","Fragment","Loader","Entry","placement","index","Options","onLinkExistingRecord","NewReferencedEntryDialog","onClose","ReferencesDialog","Object","assign","multiple","contentModel","onDialogClose","exports"],"sources":["AdvancedSingleReferenceField.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n BindComponentRenderProp,\n CmsContentEntry,\n CmsModelFieldRendererProps,\n CmsModel\n} from \"~/types\";\nimport { Options } from \"./Options\";\nimport { useReferences } from \"../hooks/useReferences\";\nimport { Entry } from \"./Entry\";\nimport { ReferencesDialog } from \"./ReferencesDialog\";\nimport styled from \"@emotion/styled\";\nimport { useQuery, useModelFieldGraphqlContext } from \"~/admin/hooks\";\nimport { ListCmsModelsQueryResponse } from \"~/admin/viewsGraphql\";\nimport * as GQL from \"~/admin/viewsGraphql\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { CmsReferenceValue } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport { Loader } from \"./Loader\";\nimport { NewReferencedEntryDialog } from \"~/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog\";\n\nconst Container = styled(\"div\")({});\n\nconst FieldLabel = styled(\"h3\")({\n fontSize: 24,\n fontWeight: \"normal\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n marginBottom: \"20px\",\n paddingBottom: \"5px\"\n});\n\ninterface Props extends CmsModelFieldRendererProps {\n bind: BindComponentRenderProp<CmsReferenceValue | null>;\n}\n\nexport const AdvancedSingleReferenceField: React.VFC<Props> = props => {\n const { bind, field } = props;\n const { showSnackbar } = useSnackbar();\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 return (\n <>\n <FieldLabel>{field.label}</FieldLabel>\n <Container>\n {loading && <Loader />}\n {initialValue && (\n <Entry\n model={initialValue.model}\n placement=\"singleRefField\"\n index={0}\n entry={initialValue.entry}\n onRemove={onRemove}\n />\n )}\n <Options\n models={models}\n onNewRecord={onNewRecord}\n onLinkExistingRecord={onExistingRecord}\n />\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 </Container>\n </>\n );\n};\n"],"mappings":"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"}
@@ -2,8 +2,9 @@ import { CmsReferenceContentEntry, CmsReferenceValue as BaseCmsReferenceValue }
2
2
  interface UseReferencesParams {
3
3
  values?: BaseCmsReferenceValue[] | BaseCmsReferenceValue | null;
4
4
  perPage?: number;
5
+ requestContext?: Record<string, any>;
5
6
  }
6
- export declare const useReferences: ({ values: initialValues, perPage }: UseReferencesParams) => {
7
+ export declare const useReferences: ({ values: initialValues, perPage, requestContext }: UseReferencesParams) => {
7
8
  loading: boolean;
8
9
  entries: CmsReferenceContentEntry[];
9
10
  error: string | null | undefined;
@@ -18,11 +18,11 @@ var _graphql = require("./graphql");
18
18
  var _utils = require("@webiny/utils");
19
19
  var executeSearch = /*#__PURE__*/function () {
20
20
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(params) {
21
- var setLoading, setError, setEntries, client, values, _result$data$entries, result, _error, _entries;
21
+ var setLoading, setError, setEntries, client, values, _params$requestContex, requestContext, _result$data$entries, result, _error, _entries;
22
22
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
23
23
  while (1) switch (_context.prev = _context.next) {
24
24
  case 0:
25
- setLoading = params.setLoading, setError = params.setError, setEntries = params.setEntries, client = params.client, values = params.values;
25
+ setLoading = params.setLoading, setError = params.setError, setEntries = params.setEntries, client = params.client, values = params.values, _params$requestContex = params.requestContext, requestContext = _params$requestContex === void 0 ? {} : _params$requestContex;
26
26
  setLoading(true);
27
27
  _context.prev = 2;
28
28
  _context.next = 5;
@@ -35,7 +35,8 @@ var executeSearch = /*#__PURE__*/function () {
35
35
  modelId: value.modelId
36
36
  };
37
37
  })
38
- }
38
+ },
39
+ context: requestContext
39
40
  });
40
41
  case 5:
41
42
  result = _context.sent;
@@ -76,7 +77,9 @@ var executeSearch = /*#__PURE__*/function () {
76
77
  var useReferences = function useReferences(_ref2) {
77
78
  var initialValues = _ref2.values,
78
79
  _ref2$perPage = _ref2.perPage,
79
- perPage = _ref2$perPage === void 0 ? 10 : _ref2$perPage;
80
+ perPage = _ref2$perPage === void 0 ? 10 : _ref2$perPage,
81
+ _ref2$requestContext = _ref2.requestContext,
82
+ requestContext = _ref2$requestContext === void 0 ? {} : _ref2$requestContext;
80
83
  var client = (0, _hooks.useApolloClient)();
81
84
  var _useState = (0, _react.useState)({}),
82
85
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -160,6 +163,7 @@ var useReferences = function useReferences(_ref2) {
160
163
  }
161
164
  executeSearch({
162
165
  client: client,
166
+ requestContext: requestContext,
163
167
  values: entriesToLoad,
164
168
  setLoading: setLoading,
165
169
  setError: setError,
@@ -1 +1 @@
1
- {"version":3,"names":["_chunk","_interopRequireDefault","require","_react","_hooks","_graphql","_utils","executeSearch","_ref","_asyncToGenerator2","default","_regeneratorRuntime2","mark","_callee","params","setLoading","setError","setEntries","client","values","_result$data$entries","result","_error","_entries","wrap","_callee$","_context","prev","next","query","LIST_LATEST_CONTENT_ENTRIES","variables","entries","map","value","id","modelId","sent","error","data","message","abrupt","reduce","collection","entry","entryId","t0","finish","stop","_x","apply","arguments","useReferences","_ref2","initialValues","_ref2$perPage","perPage","useApolloClient","_useState","useState","_useState2","_slicedToArray2","_useState3","_useState4","loading","_useState5","_useState6","_useState7","_useState8","hash","setHash","_useState9","_useState10","currentPage","setCurrentPage","pages","useMemo","Array","isArray","lodashChunk","_parseIdentifier","parseIdentifier","_objectSpread2","entriesToLoad","toLoad","p","page","length","push","_toConsumableArray2","filter","item","useEffect","_window$crypto","sort","join","window","crypto","subtle","digest","TextEncoder","encode","then","encoded","decoded","TextDecoder","decode","items","loadMore","useCallback","nextPage","loadedEntries","_iterator","_createForOfIteratorHelper2","_step","s","n","done","err","e","f","exports"],"sources":["useReferences.ts"],"sourcesContent":["import ApolloClient from \"apollo-client\";\nimport lodashChunk from \"lodash/chunk\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport {\n CmsReferenceContentEntry,\n CmsReferenceValue as BaseCmsReferenceValue\n} from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport {\n LIST_LATEST_CONTENT_ENTRIES,\n ListLatestCmsEntriesResponse,\n ListLatestCmsEntriesVariables\n} from \"~/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\ninterface ExecuteSearchParams {\n setLoading: (loading: boolean) => void;\n setError: (error: string | undefined | null) => void;\n setEntries: (entries: Record<string, CmsReferenceContentEntry>) => void;\n client: ApolloClient<any>;\n values: CmsReferenceValue[];\n}\n\nconst executeSearch = async (params: ExecuteSearchParams): Promise<void> => {\n const { setLoading, setError, setEntries, client, values } = params;\n setLoading(true);\n try {\n const result = await client.query<\n ListLatestCmsEntriesResponse,\n ListLatestCmsEntriesVariables\n >({\n query: LIST_LATEST_CONTENT_ENTRIES,\n variables: {\n entries: values.map(value => {\n return {\n id: value.id,\n modelId: value.modelId\n };\n })\n }\n });\n const error = result.data.entries?.error;\n if (error) {\n setError(error.message);\n return;\n }\n const entries = result.data.entries.data.reduce<Record<string, CmsReferenceContentEntry>>(\n (collection, entry) => {\n collection[entry.entryId] = entry;\n return collection;\n },\n {}\n );\n setError(null);\n setEntries(entries);\n } catch (ex) {\n setError(ex.message);\n } finally {\n setLoading(false);\n }\n};\n\ninterface CmsReferenceValue extends BaseCmsReferenceValue {\n entryId: string;\n}\n\ninterface UseReferencesParams {\n values?: BaseCmsReferenceValue[] | BaseCmsReferenceValue | null;\n perPage?: number;\n}\n\nexport const useReferences = ({ values: initialValues, perPage = 10 }: UseReferencesParams) => {\n const client = useApolloClient();\n const [entries, setEntries] = useState<Record<string, CmsReferenceContentEntry>>({});\n const [loading, setLoading] = useState<boolean>(false);\n const [error, setError] = useState<string | undefined | null>(null);\n const [hash, setHash] = useState<string | null>(null);\n const [currentPage, setCurrentPage] = useState<number>(0);\n const pages = useMemo(() => {\n const values = Array.isArray(initialValues)\n ? initialValues\n : initialValues\n ? [initialValues]\n : [];\n return lodashChunk<CmsReferenceValue>(\n values.map(value => {\n const { id: entryId } = parseIdentifier(value.id);\n return {\n ...value,\n entryId\n };\n }),\n perPage\n );\n }, [initialValues, perPage]);\n\n const entriesToLoad = useMemo(() => {\n /**\n * We need to make sure that all the previous page entries are loaded\n * And we add the current page entries to the list.\n */\n const toLoad: CmsReferenceValue[] = [];\n for (let p = 0; p <= currentPage; p++) {\n const page = pages[p];\n if (!page || page.length === 0) {\n return toLoad;\n }\n toLoad.push(\n ...page.filter(item => {\n return !entries[item.entryId];\n })\n );\n }\n return toLoad;\n }, [pages, currentPage]);\n\n useEffect(() => {\n if (entriesToLoad.length === 0) {\n return;\n }\n const value = entriesToLoad\n .map(item => {\n return item.id;\n })\n .sort()\n .join(\"-\");\n if (value.length === 0) {\n return;\n }\n /**\n * If there is no crypto.subtle, lets skip this - but at this point the hash will be enormous.\n */\n if (!window.crypto?.subtle) {\n if (hash === value) {\n return;\n }\n setHash(value);\n return;\n }\n\n window.crypto.subtle.digest(\"SHA-1\", new TextEncoder().encode(value)).then(encoded => {\n const decoded = new TextDecoder().decode(encoded);\n if (hash === decoded) {\n return;\n }\n setHash(decoded);\n });\n }, [entriesToLoad]);\n\n useEffect(() => {\n if (!hash || entriesToLoad.length === 0) {\n return;\n }\n executeSearch({\n client,\n values: entriesToLoad,\n setLoading,\n setError,\n setEntries: items => {\n setEntries(prev => {\n return {\n ...prev,\n ...items\n };\n });\n }\n });\n }, [hash]);\n\n const loadMore = useCallback(() => {\n const nextPage = currentPage + 1;\n if (!pages[nextPage] || pages[nextPage].length === 0) {\n return;\n }\n setCurrentPage(nextPage);\n }, [pages, currentPage]);\n\n /**\n * This variable contains all the pages with entries, up to the current page, which is inlcuded.\n */\n const loadedEntries = useMemo<CmsReferenceContentEntry[]>(() => {\n const collection: CmsReferenceContentEntry[] = [];\n for (let page = 0; page <= currentPage; page++) {\n const items = pages[page] || [];\n for (const item of items) {\n const entry = entries[item.entryId];\n if (!entry) {\n continue;\n }\n collection.push(entry);\n }\n }\n return collection;\n }, [currentPage, entries, pages]);\n\n return {\n loading,\n entries: loadedEntries,\n error,\n loadMore\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_chunk","_interopRequireDefault","require","_react","_hooks","_graphql","_utils","executeSearch","_ref","_asyncToGenerator2","default","_regeneratorRuntime2","mark","_callee","params","setLoading","setError","setEntries","client","values","_params$requestContex","requestContext","_result$data$entries","result","_error","_entries","wrap","_callee$","_context","prev","next","query","LIST_LATEST_CONTENT_ENTRIES","variables","entries","map","value","id","modelId","context","sent","error","data","message","abrupt","reduce","collection","entry","entryId","t0","finish","stop","_x","apply","arguments","useReferences","_ref2","initialValues","_ref2$perPage","perPage","_ref2$requestContext","useApolloClient","_useState","useState","_useState2","_slicedToArray2","_useState3","_useState4","loading","_useState5","_useState6","_useState7","_useState8","hash","setHash","_useState9","_useState10","currentPage","setCurrentPage","pages","useMemo","Array","isArray","lodashChunk","_parseIdentifier","parseIdentifier","_objectSpread2","entriesToLoad","toLoad","p","page","length","push","_toConsumableArray2","filter","item","useEffect","_window$crypto","sort","join","window","crypto","subtle","digest","TextEncoder","encode","then","encoded","decoded","TextDecoder","decode","items","loadMore","useCallback","nextPage","loadedEntries","_iterator","_createForOfIteratorHelper2","_step","s","n","done","err","e","f","exports"],"sources":["useReferences.ts"],"sourcesContent":["import ApolloClient from \"apollo-client\";\nimport lodashChunk from \"lodash/chunk\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport {\n CmsReferenceContentEntry,\n CmsReferenceValue as BaseCmsReferenceValue\n} from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport {\n LIST_LATEST_CONTENT_ENTRIES,\n ListLatestCmsEntriesResponse,\n ListLatestCmsEntriesVariables\n} from \"~/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\ninterface ExecuteSearchParams {\n setLoading: (loading: boolean) => void;\n setError: (error: string | undefined | null) => void;\n setEntries: (entries: Record<string, CmsReferenceContentEntry>) => void;\n client: ApolloClient<any>;\n values: CmsReferenceValue[];\n requestContext?: Record<string, any>;\n}\n\nconst executeSearch = async (params: ExecuteSearchParams): Promise<void> => {\n const { setLoading, setError, setEntries, client, values, requestContext = {} } = params;\n setLoading(true);\n try {\n const result = await client.query<\n ListLatestCmsEntriesResponse,\n ListLatestCmsEntriesVariables\n >({\n query: LIST_LATEST_CONTENT_ENTRIES,\n variables: {\n entries: values.map(value => {\n return {\n id: value.id,\n modelId: value.modelId\n };\n })\n },\n context: requestContext\n });\n const error = result.data.entries?.error;\n if (error) {\n setError(error.message);\n return;\n }\n const entries = result.data.entries.data.reduce<Record<string, CmsReferenceContentEntry>>(\n (collection, entry) => {\n collection[entry.entryId] = entry;\n return collection;\n },\n {}\n );\n setError(null);\n setEntries(entries);\n } catch (ex) {\n setError(ex.message);\n } finally {\n setLoading(false);\n }\n};\n\ninterface CmsReferenceValue extends BaseCmsReferenceValue {\n entryId: string;\n}\n\ninterface UseReferencesParams {\n values?: BaseCmsReferenceValue[] | BaseCmsReferenceValue | null;\n perPage?: number;\n requestContext?: Record<string, any>;\n}\n\nexport const useReferences = ({\n values: initialValues,\n perPage = 10,\n requestContext = {}\n}: UseReferencesParams) => {\n const client = useApolloClient();\n const [entries, setEntries] = useState<Record<string, CmsReferenceContentEntry>>({});\n const [loading, setLoading] = useState<boolean>(false);\n const [error, setError] = useState<string | undefined | null>(null);\n const [hash, setHash] = useState<string | null>(null);\n const [currentPage, setCurrentPage] = useState<number>(0);\n const pages = useMemo(() => {\n const values = Array.isArray(initialValues)\n ? initialValues\n : initialValues\n ? [initialValues]\n : [];\n return lodashChunk<CmsReferenceValue>(\n values.map(value => {\n const { id: entryId } = parseIdentifier(value.id);\n return {\n ...value,\n entryId\n };\n }),\n perPage\n );\n }, [initialValues, perPage]);\n\n const entriesToLoad = useMemo(() => {\n /**\n * We need to make sure that all the previous page entries are loaded\n * And we add the current page entries to the list.\n */\n const toLoad: CmsReferenceValue[] = [];\n for (let p = 0; p <= currentPage; p++) {\n const page = pages[p];\n if (!page || page.length === 0) {\n return toLoad;\n }\n toLoad.push(\n ...page.filter(item => {\n return !entries[item.entryId];\n })\n );\n }\n return toLoad;\n }, [pages, currentPage]);\n\n useEffect(() => {\n if (entriesToLoad.length === 0) {\n return;\n }\n const value = entriesToLoad\n .map(item => {\n return item.id;\n })\n .sort()\n .join(\"-\");\n if (value.length === 0) {\n return;\n }\n /**\n * If there is no crypto.subtle, lets skip this - but at this point the hash will be enormous.\n */\n if (!window.crypto?.subtle) {\n if (hash === value) {\n return;\n }\n setHash(value);\n return;\n }\n\n window.crypto.subtle.digest(\"SHA-1\", new TextEncoder().encode(value)).then(encoded => {\n const decoded = new TextDecoder().decode(encoded);\n if (hash === decoded) {\n return;\n }\n setHash(decoded);\n });\n }, [entriesToLoad]);\n\n useEffect(() => {\n if (!hash || entriesToLoad.length === 0) {\n return;\n }\n executeSearch({\n client,\n requestContext,\n values: entriesToLoad,\n setLoading,\n setError,\n setEntries: items => {\n setEntries(prev => {\n return {\n ...prev,\n ...items\n };\n });\n }\n });\n }, [hash]);\n\n const loadMore = useCallback(() => {\n const nextPage = currentPage + 1;\n if (!pages[nextPage] || pages[nextPage].length === 0) {\n return;\n }\n setCurrentPage(nextPage);\n }, [pages, currentPage]);\n\n /**\n * This variable contains all the pages with entries, up to the current page, which is inlcuded.\n */\n const loadedEntries = useMemo<CmsReferenceContentEntry[]>(() => {\n const collection: CmsReferenceContentEntry[] = [];\n for (let page = 0; page <= currentPage; page++) {\n const items = pages[page] || [];\n for (const item of items) {\n const entry = entries[item.entryId];\n if (!entry) {\n continue;\n }\n collection.push(entry);\n }\n }\n return collection;\n }, [currentPage, entries, pages]);\n\n return {\n loading,\n entries: loadedEntries,\n error,\n loadMore\n };\n};\n"],"mappings":"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"}
@@ -50,6 +50,7 @@ var useReference = function useReference(_ref) {
50
50
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
51
51
  valueEntry = _useState10[0],
52
52
  setValueEntry = _useState10[1];
53
+ var requestContext = (0, _hooks.useModelFieldGraphqlContext)();
53
54
  var models = field.settings ? field.settings.models || [] : [];
54
55
  var modelsHash = models.map(function (model) {
55
56
  return model.modelId;
@@ -78,7 +79,8 @@ var useReference = function useReference(_ref) {
78
79
  }),
79
80
  query: search,
80
81
  limit: 10
81
- }
82
+ },
83
+ context: requestContext
82
84
  });
83
85
  case 5:
84
86
  _yield$client$query = _context.sent;
@@ -119,7 +121,8 @@ var useReference = function useReference(_ref) {
119
121
  * We cannot update this query response in cache after a reference entry being created/deleted,
120
122
  * which result in cached response being stale, therefore, we're setting the fetchPolicy to "network-only" to by passing cache.
121
123
  */
122
- fetchPolicy: "network-only"
124
+ fetchPolicy: "network-only",
125
+ context: requestContext
123
126
  }).then(function (_ref3) {
124
127
  var data = _ref3.data;
125
128
  var latestEntryData = (0, _helpers.convertReferenceEntriesToOptionCollection)(data.content.data);
@@ -159,7 +162,8 @@ var useReference = function useReference(_ref) {
159
162
  modelId: value.modelId,
160
163
  id: value.id
161
164
  }
162
- }
165
+ },
166
+ context: requestContext
163
167
  }).then(function (res) {
164
168
  setLoading(false);
165
169
  var dataEntry = res.data.latest.data;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_hooks","_graphql","_helpers","_utils","getValueHash","value","id","entryId","_parseIdentifier","parseIdentifier","useReference","_ref","bind","field","allEntries","useRef","client","useApolloClient","_useState","useState","_useState2","_slicedToArray2","default","search","setSearch","_useState3","_useState4","loading","setLoading","_useState5","_useState6","entries","setEntries","_useState7","_useState8","latestEntries","setLatestEntries","_useState9","_useState10","valueEntry","setValueEntry","models","settings","modelsHash","map","model","modelId","join","valueHash","searchEntries","_ref2","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","_yield$client$query","data","collection","wrap","_callee$","_context","prev","next","abrupt","query","SEARCH_CONTENT_ENTRIES","variables","modelIds","m","limit","sent","convertReferenceEntriesToOptionCollection","content","current","_objectSpread3","stop","apply","arguments","useEffect","length","fetchPolicy","then","_ref3","latestEntryData","entry","GET_CONTENT_ENTRY","res","dataEntry","latest","option","convertReferenceEntryToOption","published","_defineProperty2","onChange","useCallback","options","useMemo","Object","values","defaultOptions","outputOptions","some","opt","push","exports"],"sources":["useReference.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRY,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n} from \"./graphql\";\nimport { CmsModelField, CmsModel } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"./helpers\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\ninterface UseReferenceHookArgs {\n bind: BindComponentRenderProp;\n field: CmsModelField;\n}\n\ninterface UseReferenceHookValue {\n onChange: (value: any, entry: OptionItem) => void;\n setSearch: (value: string) => void;\n value: OptionItem | null;\n loading: boolean;\n options: OptionItem[];\n}\n\ntype UseReferenceHook = (args: UseReferenceHookArgs) => UseReferenceHookValue;\n\nconst getValueHash = (value: any): string | null => {\n if (!value || (!value.id && !value.entryId)) {\n return null;\n } else if (value.entryId) {\n return value.entryId;\n }\n const { id } = parseIdentifier(value.id);\n return id;\n};\n\nexport const useReference: UseReferenceHook = ({ bind, field }) => {\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItemCollection>({});\n const [valueEntry, setValueEntry] = useState<OptionItem | null>(null);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\" | \"name\"\n >[];\n const modelsHash = models.map(model => model.modelId).join(\",\");\n\n const value = bind.value;\n const valueHash = getValueHash(value);\n\n const searchEntries = async () => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search,\n limit: 10\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n if (valueEntry) {\n collection[valueEntry.entryId] = valueEntry;\n }\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n if (models.length === 0) {\n return;\n }\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n const latestEntryData = convertReferenceEntriesToOptionCollection(\n data.content.data\n );\n if (valueEntry) {\n latestEntryData[valueEntry.entryId] = valueEntry;\n }\n\n setLatestEntries(latestEntryData);\n allEntries.current = {\n ...allEntries.current,\n ...latestEntryData\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!value || !models) {\n setValueEntry(() => null);\n return;\n }\n\n const entry = valueHash ? allEntries.current[valueHash] : null;\n if (entry) {\n /**\n * if entry exists set valueEntry to that one so we do not load new one\n */\n setValueEntry(() => {\n return entry;\n });\n return;\n }\n\n setLoading(true);\n /**\n * Query loads both latest and published entries.\n * We do this in a single query because there might not be a published entry so we can use the latest one.\n */\n client\n .query<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>({\n query: GET_CONTENT_ENTRY,\n variables: {\n entry: {\n modelId: value.modelId,\n id: value.id\n }\n }\n })\n .then(res => {\n setLoading(false);\n const dataEntry = res.data.latest.data;\n if (!dataEntry) {\n return;\n }\n const option: OptionItem = {\n ...convertReferenceEntryToOption(dataEntry),\n latest: dataEntry.id,\n published: res.data.published.data ? res.data.published.data.id : null\n };\n allEntries.current[option.entryId] = option;\n setLatestEntries(prev => {\n return {\n ...prev,\n [option.entryId]: {\n ...option\n }\n };\n });\n /**\n * Calculate a couple of props for the Autocomplete component.\n */\n setValueEntry(() => {\n return option;\n });\n });\n }, [valueHash, modelsHash]);\n\n const onChange = useCallback((value: string, entry: OptionItem) => {\n if (value !== null) {\n setSearch(\"\");\n\n setValueEntry(() => {\n return entry;\n });\n\n bind.onChange({\n modelId: entry.modelId,\n id: entry.id\n });\n return;\n }\n\n setValueEntry(() => null);\n bind.onChange(null);\n }, []);\n\n /**\n * Format options for the Autocomplete component.\n */\n const options = useMemo(() => Object.values(entries), [valueHash, entries]);\n\n /**\n * Format default options for the Autocomplete component.\n */\n const defaultOptions = useMemo(() => {\n return Object.values(latestEntries);\n }, [valueHash, latestEntries]);\n\n const outputOptions: OptionItem[] = (search && options ? options : defaultOptions) || [];\n\n if (valueEntry && outputOptions.some(opt => opt.entryId === valueEntry.entryId) === false) {\n outputOptions.push(valueEntry);\n }\n\n return {\n onChange,\n setSearch,\n value: valueEntry,\n loading,\n options: outputOptions\n };\n};\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAWA,IAAAG,QAAA,GAAAH,OAAA;AAIA,IAAAI,MAAA,GAAAJ,OAAA;AAiBA,IAAMK,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAU,EAAoB;EAChD,IAAI,CAACA,KAAK,IAAK,CAACA,KAAK,CAACC,EAAE,IAAI,CAACD,KAAK,CAACE,OAAQ,EAAE;IACzC,OAAO,IAAI;EACf,CAAC,MAAM,IAAIF,KAAK,CAACE,OAAO,EAAE;IACtB,OAAOF,KAAK,CAACE,OAAO;EACxB;EACA,IAAAC,gBAAA,GAAe,IAAAC,sBAAe,EAACJ,KAAK,CAACC,EAAE,CAAC;IAAhCA,EAAE,GAAAE,gBAAA,CAAFF,EAAE;EACV,OAAOA,EAAE;AACb,CAAC;AAEM,IAAMI,YAA8B,GAAG,SAAjCA,YAA8BA,CAAAC,IAAA,EAAwB;EAAA,IAAlBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;EACxD,IAAMC,UAAU,GAAG,IAAAC,aAAM,EAAuB,CAAC,CAAC,CAAC;EACnD,IAAMC,MAAM,GAAG,IAAAC,sBAAe,EAAC,CAAC;EAChC,IAAAC,SAAA,GAA4B,IAAAC,eAAQ,EAAS,EAAE,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,SAAA;IAAzCK,MAAM,GAAAH,UAAA;IAAEI,SAAS,GAAAJ,UAAA;EACxB,IAAAK,UAAA,GAA8B,IAAAN,eAAQ,EAAU,KAAK,CAAC;IAAAO,UAAA,OAAAL,eAAA,CAAAC,OAAA,EAAAG,UAAA;IAA/CE,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;EAC1B,IAAAG,UAAA,GAA8B,IAAAV,eAAQ,EAAuB,CAAC,CAAC,CAAC;IAAAW,UAAA,OAAAT,eAAA,CAAAC,OAAA,EAAAO,UAAA;IAAzDE,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;EAC1B,IAAAG,UAAA,GAA0C,IAAAd,eAAQ,EAAuB,CAAC,CAAC,CAAC;IAAAe,UAAA,OAAAb,eAAA,CAAAC,OAAA,EAAAW,UAAA;IAArEE,aAAa,GAAAD,UAAA;IAAEE,gBAAgB,GAAAF,UAAA;EACtC,IAAAG,UAAA,GAAoC,IAAAlB,eAAQ,EAAoB,IAAI,CAAC;IAAAmB,WAAA,OAAAjB,eAAA,CAAAC,OAAA,EAAAe,UAAA;IAA9DE,UAAU,GAAAD,WAAA;IAAEE,aAAa,GAAAF,WAAA;EAEhC,IAAMG,MAAM,GAAI5B,KAAK,CAAC6B,QAAQ,GAAG7B,KAAK,CAAC6B,QAAQ,CAACD,MAAM,IAAI,EAAE,GAAG,EAG5D;EACH,IAAME,UAAU,GAAGF,MAAM,CAACG,GAAG,CAAC,UAAAC,KAAK;IAAA,OAAIA,KAAK,CAACC,OAAO;EAAA,EAAC,CAACC,IAAI,CAAC,GAAG,CAAC;EAE/D,IAAM1C,KAAK,GAAGO,IAAI,CAACP,KAAK;EACxB,IAAM2C,SAAS,GAAG5C,YAAY,CAACC,KAAK,CAAC;EAErC,IAAM4C,aAAa;IAAA,IAAAC,KAAA,OAAAC,kBAAA,CAAA7B,OAAA,oBAAA8B,oBAAA,CAAA9B,OAAA,IAAA+B,IAAA,CAAG,SAAAC,QAAA;MAAA,IAAAC,mBAAA,EAAAC,IAAA,EAAAC,UAAA;MAAA,WAAAL,oBAAA,CAAA9B,OAAA,IAAAoC,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,IACbvC,MAAM;cAAAqC,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA;UAAA;YAIXnC,UAAU,CAAC,IAAI,CAAC;YAACgC,QAAA,CAAAE,IAAA;YAAA,OACM9C,MAAM,CAACgD,KAAK,CAGjC;cACEA,KAAK,EAAEC,+BAAsB;cAC7BC,SAAS,EAAE;gBACPC,QAAQ,EAAE1B,MAAM,CAACG,GAAG,CAAC,UAAAwB,CAAC;kBAAA,OAAIA,CAAC,CAACtB,OAAO;gBAAA,EAAC;gBACpCkB,KAAK,EAAEzC,MAAM;gBACb8C,KAAK,EAAE;cACX;YACJ,CAAC,CAAC;UAAA;YAAAd,mBAAA,GAAAK,QAAA,CAAAU,IAAA;YAVMd,IAAI,GAAAD,mBAAA,CAAJC,IAAI;YAWZ5B,UAAU,CAAC,KAAK,CAAC;YAEX6B,UAAU,GAAG,IAAAc,kDAAyC,EAACf,IAAI,CAACgB,OAAO,CAAChB,IAAI,CAAC;YAC/E,IAAIjB,UAAU,EAAE;cACZkB,UAAU,CAAClB,UAAU,CAAChC,OAAO,CAAC,GAAGgC,UAAU;YAC/C;YACAzB,UAAU,CAAC2D,OAAO,OAAAC,cAAA,CAAApD,OAAA,MAAAoD,cAAA,CAAApD,OAAA,MACXR,UAAU,CAAC2D,OAAO,GAClBhB,UAAU,CAChB;YAEDzB,UAAU,CAACyB,UAAU,CAAC;UAAC;UAAA;YAAA,OAAAG,QAAA,CAAAe,IAAA;QAAA;MAAA,GAAArB,OAAA;IAAA,CAC1B;IAAA,gBA7BKL,aAAaA,CAAA;MAAA,OAAAC,KAAA,CAAA0B,KAAA,OAAAC,SAAA;IAAA;EAAA,GA6BlB;EAED,IAAAC,gBAAS,EAAC,YAAM;IACZ7B,aAAa,CAAC,CAAC;EACnB,CAAC,EAAE,CAAC1B,MAAM,CAAC,CAAC;EAEZ,IAAAuD,gBAAS,EAAC,YAAM;IACZ,IAAIrC,MAAM,CAACsC,MAAM,KAAK,CAAC,EAAE;MACrB;IACJ;IACA/D,MAAM,CACDgD,KAAK,CAA4D;MAC9DA,KAAK,EAAEC,+BAAsB;MAC7BC,SAAS,EAAE;QACPC,QAAQ,EAAE1B,MAAM,CAACG,GAAG,CAAC,UAAAwB,CAAC;UAAA,OAAIA,CAAC,CAACtB,OAAO;QAAA,EAAC;QACpCuB,KAAK,EAAE;MACX,CAAC;MACD;AAChB;AACA;AACA;MACgBW,WAAW,EAAE;IACjB,CAAC,CAAC,CACDC,IAAI,CAAC,UAAAC,KAAA,EAAc;MAAA,IAAX1B,IAAI,GAAA0B,KAAA,CAAJ1B,IAAI;MACT,IAAM2B,eAAe,GAAG,IAAAZ,kDAAyC,EAC7Df,IAAI,CAACgB,OAAO,CAAChB,IACjB,CAAC;MACD,IAAIjB,UAAU,EAAE;QACZ4C,eAAe,CAAC5C,UAAU,CAAChC,OAAO,CAAC,GAAGgC,UAAU;MACpD;MAEAH,gBAAgB,CAAC+C,eAAe,CAAC;MACjCrE,UAAU,CAAC2D,OAAO,OAAAC,cAAA,CAAApD,OAAA,MAAAoD,cAAA,CAAApD,OAAA,MACXR,UAAU,CAAC2D,OAAO,GAClBU,eAAe,CACrB;IACL,CAAC,CAAC;EACV,CAAC,EAAE,CAACxC,UAAU,CAAC,CAAC;EAEhB,IAAAmC,gBAAS,EAAC,YAAM;IACZ,IAAI,CAACzE,KAAK,IAAI,CAACoC,MAAM,EAAE;MACnBD,aAAa,CAAC;QAAA,OAAM,IAAI;MAAA,EAAC;MACzB;IACJ;IAEA,IAAM4C,KAAK,GAAGpC,SAAS,GAAGlC,UAAU,CAAC2D,OAAO,CAACzB,SAAS,CAAC,GAAG,IAAI;IAC9D,IAAIoC,KAAK,EAAE;MACP;AACZ;AACA;MACY5C,aAAa,CAAC,YAAM;QAChB,OAAO4C,KAAK;MAChB,CAAC,CAAC;MACF;IACJ;IAEAxD,UAAU,CAAC,IAAI,CAAC;IAChB;AACR;AACA;AACA;IACQZ,MAAM,CACDgD,KAAK,CAAsD;MACxDA,KAAK,EAAEqB,0BAAiB;MACxBnB,SAAS,EAAE;QACPkB,KAAK,EAAE;UACHtC,OAAO,EAAEzC,KAAK,CAACyC,OAAO;UACtBxC,EAAE,EAAED,KAAK,CAACC;QACd;MACJ;IACJ,CAAC,CAAC,CACD2E,IAAI,CAAC,UAAAK,GAAG,EAAI;MACT1D,UAAU,CAAC,KAAK,CAAC;MACjB,IAAM2D,SAAS,GAAGD,GAAG,CAAC9B,IAAI,CAACgC,MAAM,CAAChC,IAAI;MACtC,IAAI,CAAC+B,SAAS,EAAE;QACZ;MACJ;MACA,IAAME,MAAkB,OAAAf,cAAA,CAAApD,OAAA,MAAAoD,cAAA,CAAApD,OAAA,MACjB,IAAAoE,sCAA6B,EAACH,SAAS,CAAC;QAC3CC,MAAM,EAAED,SAAS,CAACjF,EAAE;QACpBqF,SAAS,EAAEL,GAAG,CAAC9B,IAAI,CAACmC,SAAS,CAACnC,IAAI,GAAG8B,GAAG,CAAC9B,IAAI,CAACmC,SAAS,CAACnC,IAAI,CAAClD,EAAE,GAAG;MAAI,EACzE;MACDQ,UAAU,CAAC2D,OAAO,CAACgB,MAAM,CAAClF,OAAO,CAAC,GAAGkF,MAAM;MAC3CrD,gBAAgB,CAAC,UAAAyB,IAAI,EAAI;QACrB,WAAAa,cAAA,CAAApD,OAAA,MAAAoD,cAAA,CAAApD,OAAA,MACOuC,IAAI,WAAA+B,gBAAA,CAAAtE,OAAA,MACNmE,MAAM,CAAClF,OAAO,MAAAmE,cAAA,CAAApD,OAAA,MACRmE,MAAM;MAGrB,CAAC,CAAC;MACF;AAChB;AACA;MACgBjD,aAAa,CAAC,YAAM;QAChB,OAAOiD,MAAM;MACjB,CAAC,CAAC;IACN,CAAC,CAAC;EACV,CAAC,EAAE,CAACzC,SAAS,EAAEL,UAAU,CAAC,CAAC;EAE3B,IAAMkD,QAAQ,GAAG,IAAAC,kBAAW,EAAC,UAACzF,KAAa,EAAE+E,KAAiB,EAAK;IAC/D,IAAI/E,KAAK,KAAK,IAAI,EAAE;MAChBmB,SAAS,CAAC,EAAE,CAAC;MAEbgB,aAAa,CAAC,YAAM;QAChB,OAAO4C,KAAK;MAChB,CAAC,CAAC;MAEFxE,IAAI,CAACiF,QAAQ,CAAC;QACV/C,OAAO,EAAEsC,KAAK,CAACtC,OAAO;QACtBxC,EAAE,EAAE8E,KAAK,CAAC9E;MACd,CAAC,CAAC;MACF;IACJ;IAEAkC,aAAa,CAAC;MAAA,OAAM,IAAI;IAAA,EAAC;IACzB5B,IAAI,CAACiF,QAAQ,CAAC,IAAI,CAAC;EACvB,CAAC,EAAE,EAAE,CAAC;;EAEN;AACJ;AACA;EACI,IAAME,OAAO,GAAG,IAAAC,cAAO,EAAC;IAAA,OAAMC,MAAM,CAACC,MAAM,CAACnE,OAAO,CAAC;EAAA,GAAE,CAACiB,SAAS,EAAEjB,OAAO,CAAC,CAAC;;EAE3E;AACJ;AACA;EACI,IAAMoE,cAAc,GAAG,IAAAH,cAAO,EAAC,YAAM;IACjC,OAAOC,MAAM,CAACC,MAAM,CAAC/D,aAAa,CAAC;EACvC,CAAC,EAAE,CAACa,SAAS,EAAEb,aAAa,CAAC,CAAC;EAE9B,IAAMiE,aAA2B,GAAG,CAAC7E,MAAM,IAAIwE,OAAO,GAAGA,OAAO,GAAGI,cAAc,KAAK,EAAE;EAExF,IAAI5D,UAAU,IAAI6D,aAAa,CAACC,IAAI,CAAC,UAAAC,GAAG;IAAA,OAAIA,GAAG,CAAC/F,OAAO,KAAKgC,UAAU,CAAChC,OAAO;EAAA,EAAC,KAAK,KAAK,EAAE;IACvF6F,aAAa,CAACG,IAAI,CAAChE,UAAU,CAAC;EAClC;EAEA,OAAO;IACHsD,QAAQ,EAARA,QAAQ;IACRrE,SAAS,EAATA,SAAS;IACTnB,KAAK,EAAEkC,UAAU;IACjBZ,OAAO,EAAPA,OAAO;IACPoE,OAAO,EAAEK;EACb,CAAC;AACL,CAAC;AAACI,OAAA,CAAA9F,YAAA,GAAAA,YAAA"}
1
+ {"version":3,"names":["_react","require","_hooks","_graphql","_helpers","_utils","getValueHash","value","id","entryId","_parseIdentifier","parseIdentifier","useReference","_ref","bind","field","allEntries","useRef","client","useApolloClient","_useState","useState","_useState2","_slicedToArray2","default","search","setSearch","_useState3","_useState4","loading","setLoading","_useState5","_useState6","entries","setEntries","_useState7","_useState8","latestEntries","setLatestEntries","_useState9","_useState10","valueEntry","setValueEntry","requestContext","useModelFieldGraphqlContext","models","settings","modelsHash","map","model","modelId","join","valueHash","searchEntries","_ref2","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","_yield$client$query","data","collection","wrap","_callee$","_context","prev","next","abrupt","query","SEARCH_CONTENT_ENTRIES","variables","modelIds","m","limit","context","sent","convertReferenceEntriesToOptionCollection","content","current","_objectSpread3","stop","apply","arguments","useEffect","length","fetchPolicy","then","_ref3","latestEntryData","entry","GET_CONTENT_ENTRY","res","dataEntry","latest","option","convertReferenceEntryToOption","published","_defineProperty2","onChange","useCallback","options","useMemo","Object","values","defaultOptions","outputOptions","some","opt","push","exports"],"sources":["useReference.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient, useModelFieldGraphqlContext } from \"~/admin/hooks\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRY,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n} from \"./graphql\";\nimport { CmsModelField, CmsModel } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"./helpers\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\ninterface UseReferenceHookArgs {\n bind: BindComponentRenderProp;\n field: CmsModelField;\n}\n\ninterface UseReferenceHookValue {\n onChange: (value: any, entry: OptionItem) => void;\n setSearch: (value: string) => void;\n value: OptionItem | null;\n loading: boolean;\n options: OptionItem[];\n}\n\ntype UseReferenceHook = (args: UseReferenceHookArgs) => UseReferenceHookValue;\n\nconst getValueHash = (value: any): string | null => {\n if (!value || (!value.id && !value.entryId)) {\n return null;\n } else if (value.entryId) {\n return value.entryId;\n }\n const { id } = parseIdentifier(value.id);\n return id;\n};\n\nexport const useReference: UseReferenceHook = ({ bind, field }) => {\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItemCollection>({});\n const [valueEntry, setValueEntry] = useState<OptionItem | null>(null);\n const requestContext = useModelFieldGraphqlContext();\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\" | \"name\"\n >[];\n const modelsHash = models.map(model => model.modelId).join(\",\");\n\n const value = bind.value;\n const valueHash = getValueHash(value);\n\n const searchEntries = async () => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search,\n limit: 10\n },\n context: requestContext\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n if (valueEntry) {\n collection[valueEntry.entryId] = valueEntry;\n }\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n if (models.length === 0) {\n return;\n }\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\",\n context: requestContext\n })\n .then(({ data }) => {\n const latestEntryData = convertReferenceEntriesToOptionCollection(\n data.content.data\n );\n if (valueEntry) {\n latestEntryData[valueEntry.entryId] = valueEntry;\n }\n\n setLatestEntries(latestEntryData);\n allEntries.current = {\n ...allEntries.current,\n ...latestEntryData\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!value || !models) {\n setValueEntry(() => null);\n return;\n }\n\n const entry = valueHash ? allEntries.current[valueHash] : null;\n if (entry) {\n /**\n * if entry exists set valueEntry to that one so we do not load new one\n */\n setValueEntry(() => {\n return entry;\n });\n return;\n }\n\n setLoading(true);\n /**\n * Query loads both latest and published entries.\n * We do this in a single query because there might not be a published entry so we can use the latest one.\n */\n client\n .query<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>({\n query: GET_CONTENT_ENTRY,\n variables: {\n entry: {\n modelId: value.modelId,\n id: value.id\n }\n },\n context: requestContext\n })\n .then(res => {\n setLoading(false);\n const dataEntry = res.data.latest.data;\n if (!dataEntry) {\n return;\n }\n const option: OptionItem = {\n ...convertReferenceEntryToOption(dataEntry),\n latest: dataEntry.id,\n published: res.data.published.data ? res.data.published.data.id : null\n };\n allEntries.current[option.entryId] = option;\n setLatestEntries(prev => {\n return {\n ...prev,\n [option.entryId]: {\n ...option\n }\n };\n });\n /**\n * Calculate a couple of props for the Autocomplete component.\n */\n setValueEntry(() => {\n return option;\n });\n });\n }, [valueHash, modelsHash]);\n\n const onChange = useCallback((value: string, entry: OptionItem) => {\n if (value !== null) {\n setSearch(\"\");\n\n setValueEntry(() => {\n return entry;\n });\n\n bind.onChange({\n modelId: entry.modelId,\n id: entry.id\n });\n return;\n }\n\n setValueEntry(() => null);\n bind.onChange(null);\n }, []);\n\n /**\n * Format options for the Autocomplete component.\n */\n const options = useMemo(() => Object.values(entries), [valueHash, entries]);\n\n /**\n * Format default options for the Autocomplete component.\n */\n const defaultOptions = useMemo(() => {\n return Object.values(latestEntries);\n }, [valueHash, latestEntries]);\n\n const outputOptions: OptionItem[] = (search && options ? options : defaultOptions) || [];\n\n if (valueEntry && outputOptions.some(opt => opt.entryId === valueEntry.entryId) === false) {\n outputOptions.push(valueEntry);\n }\n\n return {\n onChange,\n setSearch,\n value: valueEntry,\n loading,\n options: outputOptions\n };\n};\n"],"mappings":"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"}
@@ -39,6 +39,7 @@ var useReferences = function useReferences(_ref) {
39
39
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
40
40
  valueEntries = _useState10[0],
41
41
  setValueEntries = _useState10[1];
42
+ var requestContext = (0, _hooks.useModelFieldGraphqlContext)();
42
43
  var models = field.settings ? field.settings.models || [] : [];
43
44
  var modelsHash = models.join(",");
44
45
  var values = bind.value ? bind.value : [];
@@ -63,7 +64,8 @@ var useReferences = function useReferences(_ref) {
63
64
  return m.modelId;
64
65
  }),
65
66
  query: search
66
- }
67
+ },
68
+ context: requestContext
67
69
  });
68
70
  case 5:
69
71
  _yield$client$query = _context.sent;
@@ -103,7 +105,8 @@ var useReferences = function useReferences(_ref) {
103
105
  * We cannot update this query response in cache after a reference entry being created/deleted,
104
106
  * which result in cached response being stale, therefore, we're setting the fetchPolicy to "network-only" to by passing cache.
105
107
  */
106
- fetchPolicy: "network-only"
108
+ fetchPolicy: "network-only",
109
+ context: requestContext
107
110
  }).then(function (_ref3) {
108
111
  var data = _ref3.data;
109
112
  if (!isMounted.current) {
@@ -131,7 +134,8 @@ var useReferences = function useReferences(_ref) {
131
134
  id: value.id
132
135
  };
133
136
  })
134
- }
137
+ },
138
+ context: requestContext
135
139
  }).then(function (res) {
136
140
  if (!isMounted.current) {
137
141
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_hooks","_graphql","_helpers","useReferences","_ref","bind","field","isMounted","useRef","allEntries","client","useApolloClient","_useState","useState","_useState2","_slicedToArray2","default","search","setSearch","_useState3","_useState4","loading","setLoading","_useState5","_useState6","entries","setEntries","_useState7","_useState8","latestEntries","setLatestEntries","_useState9","_useState10","valueEntries","setValueEntries","models","settings","modelsHash","join","values","value","searchEntries","_ref2","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","_yield$client$query","data","collection","wrap","_callee$","_context","prev","next","abrupt","query","SEARCH_CONTENT_ENTRIES","variables","modelIds","map","m","modelId","sent","convertReferenceEntriesToOptionCollection","content","current","_objectSpread2","stop","apply","arguments","useEffect","limit","fetchPolicy","then","_ref3","Object","length","GET_CONTENT_ENTRIES","id","res","latest","reduce","item","entryId","published","existingItem","title","convertReferenceEntryToOption","onChange","useCallback","options","useMemo","defaultOptions","exports"],"sources":["useReferences.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport { CmsModelField, CmsModel } from \"~/types\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRIES,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables,\n CmsEntryGetListResponse,\n CmsEntryGetListVariables,\n CmsEntryGetEntryVariable\n} from \"./graphql\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { CmsReferenceContentEntry, OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"~/admin/plugins/fieldRenderers/ref/components/helpers\";\n\ninterface UseReferencesParams {\n bind: BindComponentRenderProp;\n field: CmsModelField;\n}\nexport const useReferences = ({ bind, field }: UseReferencesParams) => {\n const isMounted = useRef(true);\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItem[]>([]);\n const [valueEntries, setValueEntries] = useState<OptionItem[]>([]);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\"\n >[];\n const modelsHash = models.join(\",\");\n const values: CmsEntryGetEntryVariable[] = bind.value ? bind.value : [];\n\n const searchEntries = async (): Promise<void> => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n if (!isMounted.current) {\n return;\n }\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n setLatestEntries(Object.values(collection));\n allEntries.current = {\n ...collection\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!values || values.length == 0) {\n return;\n }\n\n setLoading(true);\n\n client\n .query<CmsEntryGetListResponse, CmsEntryGetListVariables>({\n query: GET_CONTENT_ENTRIES,\n variables: {\n /**\n * We need make sure nothing else other than modelId and id is passed to entries variable.\n */\n entries: values.map(value => {\n return {\n modelId: value.modelId,\n id: value.id\n };\n })\n }\n })\n .then(res => {\n if (!isMounted.current) {\n return;\n }\n\n setLoading(false);\n\n const latest = (res.data.latest.data || []).reduce((collection, item) => {\n collection[item.entryId] = item;\n return collection;\n }, {} as Record<string, CmsReferenceContentEntry>);\n\n const entries = (res.data.published.data || []).reduce((collection, item) => {\n const entryId = item.entryId;\n const existingItem = latest[entryId];\n if (existingItem) {\n collection[entryId] = {\n ...existingItem,\n published: {\n id: item.id,\n entryId: item.entryId,\n title: item.title\n }\n };\n return collection;\n }\n collection[entryId] = item;\n return collection;\n }, latest);\n\n // Calculate a couple of props for the Autocomplete component.\n setValueEntries(Object.values(entries).map(convertReferenceEntryToOption));\n });\n }, []);\n\n /**\n * onChange callback will update internal component state using the previously loaded entries by IDs.\n * It will also format the value to store to the DB.\n */\n const onChange = useCallback((values: OptionItem[]): void => {\n setSearch(\"\");\n setValueEntries(values);\n\n // Update parent form\n bind.onChange(\n values.map(item => ({\n modelId: item.modelId,\n id: item.id\n }))\n );\n }, []);\n\n // Format options for the Autocomplete component.\n const options = useMemo(() => Object.values(entries), [entries]);\n\n // Format default options for the Autocomplete component.\n const defaultOptions = useMemo(() => Object.values(latestEntries), [latestEntries]);\n\n return {\n onChange,\n loading,\n setSearch,\n // Selected entries\n entries: valueEntries,\n // Options to show when the autocomplete dropdown is visible\n options: search ? options : defaultOptions || []\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_hooks","_graphql","_helpers","useReferences","_ref","bind","field","isMounted","useRef","allEntries","client","useApolloClient","_useState","useState","_useState2","_slicedToArray2","default","search","setSearch","_useState3","_useState4","loading","setLoading","_useState5","_useState6","entries","setEntries","_useState7","_useState8","latestEntries","setLatestEntries","_useState9","_useState10","valueEntries","setValueEntries","requestContext","useModelFieldGraphqlContext","models","settings","modelsHash","join","values","value","searchEntries","_ref2","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","_yield$client$query","data","collection","wrap","_callee$","_context","prev","next","abrupt","query","SEARCH_CONTENT_ENTRIES","variables","modelIds","map","m","modelId","context","sent","convertReferenceEntriesToOptionCollection","content","current","_objectSpread2","stop","apply","arguments","useEffect","limit","fetchPolicy","then","_ref3","Object","length","GET_CONTENT_ENTRIES","id","res","latest","reduce","item","entryId","published","existingItem","title","convertReferenceEntryToOption","onChange","useCallback","options","useMemo","defaultOptions","exports"],"sources":["useReferences.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient, useModelFieldGraphqlContext } from \"~/admin/hooks\";\nimport { CmsModelField, CmsModel } from \"~/types\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRIES,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables,\n CmsEntryGetListResponse,\n CmsEntryGetListVariables,\n CmsEntryGetEntryVariable\n} from \"./graphql\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { CmsReferenceContentEntry, OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"~/admin/plugins/fieldRenderers/ref/components/helpers\";\n\ninterface UseReferencesParams {\n bind: BindComponentRenderProp;\n field: CmsModelField;\n}\nexport const useReferences = ({ bind, field }: UseReferencesParams) => {\n const isMounted = useRef(true);\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItem[]>([]);\n const [valueEntries, setValueEntries] = useState<OptionItem[]>([]);\n const requestContext = useModelFieldGraphqlContext();\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\"\n >[];\n const modelsHash = models.join(\",\");\n const values: CmsEntryGetEntryVariable[] = bind.value ? bind.value : [];\n\n const searchEntries = async (): Promise<void> => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search\n },\n context: requestContext\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\",\n context: requestContext\n })\n .then(({ data }) => {\n if (!isMounted.current) {\n return;\n }\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n setLatestEntries(Object.values(collection));\n allEntries.current = {\n ...collection\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!values || values.length == 0) {\n return;\n }\n\n setLoading(true);\n\n client\n .query<CmsEntryGetListResponse, CmsEntryGetListVariables>({\n query: GET_CONTENT_ENTRIES,\n variables: {\n /**\n * We need make sure nothing else other than modelId and id is passed to entries variable.\n */\n entries: values.map(value => {\n return {\n modelId: value.modelId,\n id: value.id\n };\n })\n },\n context: requestContext\n })\n .then(res => {\n if (!isMounted.current) {\n return;\n }\n\n setLoading(false);\n\n const latest = (res.data.latest.data || []).reduce((collection, item) => {\n collection[item.entryId] = item;\n return collection;\n }, {} as Record<string, CmsReferenceContentEntry>);\n\n const entries = (res.data.published.data || []).reduce((collection, item) => {\n const entryId = item.entryId;\n const existingItem = latest[entryId];\n if (existingItem) {\n collection[entryId] = {\n ...existingItem,\n published: {\n id: item.id,\n entryId: item.entryId,\n title: item.title\n }\n };\n return collection;\n }\n collection[entryId] = item;\n return collection;\n }, latest);\n\n // Calculate a couple of props for the Autocomplete component.\n setValueEntries(Object.values(entries).map(convertReferenceEntryToOption));\n });\n }, []);\n\n /**\n * onChange callback will update internal component state using the previously loaded entries by IDs.\n * It will also format the value to store to the DB.\n */\n const onChange = useCallback((values: OptionItem[]): void => {\n setSearch(\"\");\n setValueEntries(values);\n\n // Update parent form\n bind.onChange(\n values.map(item => ({\n modelId: item.modelId,\n id: item.id\n }))\n );\n }, []);\n\n // Format options for the Autocomplete component.\n const options = useMemo(() => Object.values(entries), [entries]);\n\n // Format default options for the Autocomplete component.\n const defaultOptions = useMemo(() => Object.values(latestEntries), [latestEntries]);\n\n return {\n onChange,\n loading,\n setSearch,\n // Selected entries\n entries: valueEntries,\n // Options to show when the autocomplete dropdown is visible\n options: search ? options : defaultOptions || []\n };\n};\n"],"mappings":"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"}
@@ -13,11 +13,11 @@ var _hooks = require("../../../../../hooks");
13
13
  var _graphql = require("../../components/graphql");
14
14
  var executeSearch = /*#__PURE__*/function () {
15
15
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(params) {
16
- var setLoading, setError, setEntries, client, models, _result$data$content, result, _error;
16
+ var setLoading, setError, setEntries, client, models, _params$requestContex, requestContext, _result$data$content, result, _error;
17
17
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
18
18
  while (1) switch (_context.prev = _context.next) {
19
19
  case 0:
20
- setLoading = params.setLoading, setError = params.setError, setEntries = params.setEntries, client = params.client, models = params.models;
20
+ setLoading = params.setLoading, setError = params.setError, setEntries = params.setEntries, client = params.client, models = params.models, _params$requestContex = params.requestContext, requestContext = _params$requestContex === void 0 ? {} : _params$requestContex;
21
21
  setLoading(true);
22
22
  _context.prev = 2;
23
23
  _context.next = 5;
@@ -28,7 +28,8 @@ var executeSearch = /*#__PURE__*/function () {
28
28
  return model.modelId;
29
29
  }),
30
30
  limit: 10000
31
- }
31
+ },
32
+ context: requestContext
32
33
  });
33
34
  case 5:
34
35
  result = _context.sent;
@@ -77,12 +78,14 @@ var useReferences = function useReferences(_ref2) {
77
78
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
78
79
  error = _useState6[0],
79
80
  setError = _useState6[1];
81
+ var requestContext = (0, _hooks.useModelFieldGraphqlContext)();
80
82
  (0, _react.useEffect)(function () {
81
83
  if (!models || models.length === 0) {
82
84
  return;
83
85
  }
84
86
  executeSearch({
85
87
  client: client,
88
+ requestContext: requestContext,
86
89
  models: models,
87
90
  setLoading: setLoading,
88
91
  setError: setError,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_hooks","_graphql","executeSearch","_ref","_asyncToGenerator2","default","_regeneratorRuntime2","mark","_callee","params","setLoading","setError","setEntries","client","models","_result$data$content","result","_error","wrap","_callee$","_context","prev","next","query","SEARCH_CONTENT_ENTRIES","variables","modelIds","map","model","modelId","limit","sent","error","data","content","message","abrupt","t0","finish","stop","_x","apply","arguments","useReferences","_ref2","useApolloClient","_useState","useState","_useState2","_slicedToArray2","entries","_useState3","_useState4","loading","_useState5","_useState6","useEffect","length","exports"],"sources":["useReferences.ts"],"sourcesContent":["import ApolloClient from \"apollo-client\";\nimport { useEffect, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport { CmsReferenceContentEntry } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport {\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables,\n SEARCH_CONTENT_ENTRIES\n} from \"~/admin/plugins/fieldRenderers/ref/components/graphql\";\nimport { CmsModel } from \"~/types\";\n\ninterface ExecuteSearchParams {\n setLoading: (loading: boolean) => void;\n setError: (error: string | undefined | null) => void;\n setEntries: (entries: CmsReferenceContentEntry[]) => void;\n client: ApolloClient<any>;\n models: CmsModel[];\n}\n\nconst executeSearch = async (params: ExecuteSearchParams): Promise<void> => {\n const { setLoading, setError, setEntries, client, models } = params;\n setLoading(true);\n try {\n const result = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(model => model.modelId),\n limit: 10000\n }\n });\n const error = result.data.content?.error;\n if (error) {\n setError(error.message);\n return;\n }\n\n setError(null);\n setEntries(result.data.content.data);\n } catch (ex) {\n setError(ex.message);\n } finally {\n setLoading(false);\n }\n};\n\ninterface UseReferencesParams {\n models?: CmsModel[];\n}\n\nexport const useReferences = ({ models }: UseReferencesParams) => {\n const client = useApolloClient();\n const [entries, setEntries] = useState<CmsReferenceContentEntry[]>([]);\n const [loading, setLoading] = useState<boolean>(false);\n const [error, setError] = useState<string | undefined | null>(null);\n\n useEffect(() => {\n if (!models || models.length === 0) {\n return;\n }\n executeSearch({\n client,\n models,\n setLoading,\n setError,\n setEntries\n });\n }, [models]);\n\n return {\n loading,\n entries,\n error\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_hooks","_graphql","executeSearch","_ref","_asyncToGenerator2","default","_regeneratorRuntime2","mark","_callee","params","setLoading","setError","setEntries","client","models","_params$requestContex","requestContext","_result$data$content","result","_error","wrap","_callee$","_context","prev","next","query","SEARCH_CONTENT_ENTRIES","variables","modelIds","map","model","modelId","limit","context","sent","error","data","content","message","abrupt","t0","finish","stop","_x","apply","arguments","useReferences","_ref2","useApolloClient","_useState","useState","_useState2","_slicedToArray2","entries","_useState3","_useState4","loading","_useState5","_useState6","useModelFieldGraphqlContext","useEffect","length","exports"],"sources":["useReferences.ts"],"sourcesContent":["import ApolloClient from \"apollo-client\";\nimport { useEffect, useState } from \"react\";\nimport { useApolloClient, useModelFieldGraphqlContext } from \"~/admin/hooks\";\nimport { CmsReferenceContentEntry } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport {\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables,\n SEARCH_CONTENT_ENTRIES\n} from \"~/admin/plugins/fieldRenderers/ref/components/graphql\";\nimport { CmsModel } from \"~/types\";\n\ninterface ExecuteSearchParams {\n setLoading: (loading: boolean) => void;\n setError: (error: string | undefined | null) => void;\n setEntries: (entries: CmsReferenceContentEntry[]) => void;\n client: ApolloClient<any>;\n models: CmsModel[];\n requestContext: Record<string, any>;\n}\n\nconst executeSearch = async (params: ExecuteSearchParams): Promise<void> => {\n const { setLoading, setError, setEntries, client, models, requestContext = {} } = params;\n setLoading(true);\n try {\n const result = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(model => model.modelId),\n limit: 10000\n },\n context: requestContext\n });\n const error = result.data.content?.error;\n if (error) {\n setError(error.message);\n return;\n }\n\n setError(null);\n setEntries(result.data.content.data);\n } catch (ex) {\n setError(ex.message);\n } finally {\n setLoading(false);\n }\n};\n\ninterface UseReferencesParams {\n models?: CmsModel[];\n}\n\nexport const useReferences = ({ models }: UseReferencesParams) => {\n const client = useApolloClient();\n const [entries, setEntries] = useState<CmsReferenceContentEntry[]>([]);\n const [loading, setLoading] = useState<boolean>(false);\n const [error, setError] = useState<string | undefined | null>(null);\n const requestContext = useModelFieldGraphqlContext();\n\n useEffect(() => {\n if (!models || models.length === 0) {\n return;\n }\n executeSearch({\n client,\n requestContext,\n models,\n setLoading,\n setError,\n setEntries\n });\n }, [models]);\n\n return {\n loading,\n entries,\n error\n };\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-headless-cms",
3
- "version": "5.37.5",
3
+ "version": "5.37.6-beta.1",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,26 +27,26 @@
27
27
  "@material-design-icons/svg": "0.14.2",
28
28
  "@svgr/webpack": "6.5.1",
29
29
  "@types/react": "17.0.39",
30
- "@webiny/app": "5.37.5",
31
- "@webiny/app-aco": "5.37.5",
32
- "@webiny/app-admin": "5.37.5",
33
- "@webiny/app-graphql-playground": "5.37.5",
34
- "@webiny/app-headless-cms-common": "5.37.5",
35
- "@webiny/app-i18n": "5.37.5",
36
- "@webiny/app-plugin-admin-welcome-screen": "5.37.5",
37
- "@webiny/app-security": "5.37.5",
38
- "@webiny/error": "5.37.5",
39
- "@webiny/feature-flags": "5.37.5",
40
- "@webiny/form": "5.37.5",
41
- "@webiny/lexical-editor": "5.37.5",
42
- "@webiny/plugins": "5.37.5",
43
- "@webiny/react-composition": "5.37.5",
44
- "@webiny/react-properties": "5.37.5",
45
- "@webiny/react-router": "5.37.5",
46
- "@webiny/theme": "5.37.5",
47
- "@webiny/ui": "5.37.5",
48
- "@webiny/utils": "5.37.5",
49
- "@webiny/validation": "5.37.5",
30
+ "@webiny/app": "5.37.6-beta.1",
31
+ "@webiny/app-aco": "5.37.6-beta.1",
32
+ "@webiny/app-admin": "5.37.6-beta.1",
33
+ "@webiny/app-graphql-playground": "5.37.6-beta.1",
34
+ "@webiny/app-headless-cms-common": "5.37.6-beta.1",
35
+ "@webiny/app-i18n": "5.37.6-beta.1",
36
+ "@webiny/app-plugin-admin-welcome-screen": "5.37.6-beta.1",
37
+ "@webiny/app-security": "5.37.6-beta.1",
38
+ "@webiny/error": "5.37.6-beta.1",
39
+ "@webiny/feature-flags": "5.37.6-beta.1",
40
+ "@webiny/form": "5.37.6-beta.1",
41
+ "@webiny/lexical-editor": "5.37.6-beta.1",
42
+ "@webiny/plugins": "5.37.6-beta.1",
43
+ "@webiny/react-composition": "5.37.6-beta.1",
44
+ "@webiny/react-properties": "5.37.6-beta.1",
45
+ "@webiny/react-router": "5.37.6-beta.1",
46
+ "@webiny/theme": "5.37.6-beta.1",
47
+ "@webiny/ui": "5.37.6-beta.1",
48
+ "@webiny/utils": "5.37.6-beta.1",
49
+ "@webiny/validation": "5.37.6-beta.1",
50
50
  "apollo-cache": "1.3.5",
51
51
  "apollo-client": "2.6.10",
52
52
  "apollo-link": "1.2.14",
@@ -76,8 +76,8 @@
76
76
  "@babel/preset-env": "7.22.7",
77
77
  "@babel/preset-react": "7.22.5",
78
78
  "@babel/preset-typescript": "7.22.5",
79
- "@webiny/cli": "5.37.5",
80
- "@webiny/project-utils": "5.37.5",
79
+ "@webiny/cli": "5.37.6-beta.1",
80
+ "@webiny/project-utils": "5.37.6-beta.1",
81
81
  "babel-plugin-emotion": "9.2.11",
82
82
  "babel-plugin-module-resolver": "4.1.0",
83
83
  "rimraf": "3.0.2",
@@ -107,5 +107,5 @@
107
107
  ]
108
108
  }
109
109
  },
110
- "gitHead": "88829ab0c5d875491d6b260f184b7b7fe3a6d449"
110
+ "gitHead": "53e962c150c2732178d0431d7dfb0f6e9caa3381"
111
111
  }