@webiny/app-headless-cms 5.40.0-beta.5 → 5.40.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/admin/components/ContentEntries/TrashBin/components/TrashBin.js +4 -3
  2. package/admin/components/ContentEntries/TrashBin/components/TrashBin.js.map +1 -1
  3. package/admin/components/ContentEntryForm/ParentValue.js +1 -1
  4. package/admin/components/ContentEntryForm/ParentValue.js.map +1 -1
  5. package/admin/hooks/index.d.ts +1 -1
  6. package/admin/hooks/index.js +2 -2
  7. package/admin/hooks/index.js.map +1 -1
  8. package/admin/hooks/usePermission.d.ts +33 -1
  9. package/admin/hooks/usePermission.js +4 -2
  10. package/admin/hooks/usePermission.js.map +1 -1
  11. package/admin/plugins/fieldRenderers/AccordionRenderSettings.d.ts +7 -0
  12. package/admin/plugins/fieldRenderers/AccordionRenderSettings.js +34 -0
  13. package/admin/plugins/fieldRenderers/AccordionRenderSettings.js.map +1 -0
  14. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.d.ts +1 -2
  15. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js +31 -31
  16. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -1
  17. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js +11 -1
  18. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js.map +1 -1
  19. package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js +11 -1
  20. package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js.map +1 -1
  21. package/admin/plugins/fieldRenderers/object/singleObjectAccordion.js +11 -1
  22. package/admin/plugins/fieldRenderers/object/singleObjectAccordion.js.map +1 -1
  23. package/admin/plugins/fieldRenderers/text/index.js +2 -1
  24. package/admin/plugins/fieldRenderers/text/index.js.map +1 -1
  25. package/admin/plugins/fieldRenderers/text/tags.d.ts +2 -0
  26. package/admin/plugins/fieldRenderers/text/tags.js +36 -0
  27. package/admin/plugins/fieldRenderers/text/tags.js.map +1 -0
  28. package/admin/views/contentEntries/ContentEntry/RevisionsList/RevisionListItem.js +2 -1
  29. package/admin/views/contentEntries/ContentEntry/RevisionsList/RevisionListItem.js.map +1 -1
  30. package/package.json +27 -27
@@ -34,6 +34,9 @@ var TrashBin = exports.TrashBin = function TrashBin() {
34
34
  var itemMapper = (0, _react.useMemo)(function () {
35
35
  return new _adapters.TrashBinItemMapper();
36
36
  }, []);
37
+ var handleItemAfterRestore = (0, _react.useCallback)(async function (item) {
38
+ navigateToFolder(item.location.folderId);
39
+ }, [navigateToFolder]);
37
40
  if (!canDeleteEntries("cms.contentEntry")) {
38
41
  return null;
39
42
  }
@@ -48,9 +51,7 @@ var TrashBin = exports.TrashBin = function TrashBin() {
48
51
  deleteGateway: deleteGateway,
49
52
  restoreGateway: restoreGateway,
50
53
  itemMapper: itemMapper,
51
- onItemAfterRestore: async function onItemAfterRestore(item) {
52
- return navigateToFolder(item.location.folderId);
53
- },
54
+ onItemAfterRestore: handleItemAfterRestore,
54
55
  nameColumnId: model.titleFieldId || "id",
55
56
  title: "Trash - ".concat(model.name)
56
57
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_hooks","_appTrashBin","_adapters","_TrashBinButton","_appAco","TrashBin","exports","client","useApolloClient","_usePermission","usePermission","canDeleteEntries","_useNavigateFolder","useNavigateFolder","navigateToFolder","_useRecords","useRecords","getRecord","_useModel","useModel","model","listGateway","useMemo","TrashBinListGraphQLGateway","deleteGateway","TrashBinDeleteItemGraphQLGateway","restoreGateway","TrashBinRestoreItemGraphQLGateway","TrashBinRestoreItemGraphQLGatewayWithCallback","itemMapper","TrashBinItemMapper","default","createElement","render","_ref","showTrashBin","TrashBinButton","onClick","onItemAfterRestore","item","location","folderId","nameColumnId","titleFieldId","title","concat","name"],"sources":["TrashBin.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { useApolloClient, useModel, usePermission } from \"~/admin/hooks\";\nimport { TrashBin as BaseTrashBin } from \"@webiny/app-trash-bin\";\nimport {\n TrashBinDeleteItemGraphQLGateway,\n TrashBinItemMapper,\n TrashBinListGraphQLGateway,\n TrashBinRestoreItemGraphQLGateway,\n TrashBinRestoreItemGraphQLGatewayWithCallback\n} from \"../adapters\";\n\nimport { TrashBinButton } from \"./TrashBinButton\";\nimport { useNavigateFolder, useRecords } from \"@webiny/app-aco\";\n\nexport const TrashBin = () => {\n const client = useApolloClient();\n const { canDeleteEntries } = usePermission();\n const { navigateToFolder } = useNavigateFolder();\n const { getRecord } = useRecords();\n const { model } = useModel();\n\n const listGateway = useMemo(() => {\n return new TrashBinListGraphQLGateway(client, model);\n }, [client, model]);\n\n const deleteGateway = useMemo(() => {\n return new TrashBinDeleteItemGraphQLGateway(client, model);\n }, [client, model]);\n\n const restoreGateway = useMemo(() => {\n const restoreGateway = new TrashBinRestoreItemGraphQLGateway(client, model);\n return new TrashBinRestoreItemGraphQLGatewayWithCallback(getRecord, restoreGateway);\n }, [client, model]);\n\n const itemMapper = useMemo(() => {\n return new TrashBinItemMapper();\n }, []);\n\n if (!canDeleteEntries(\"cms.contentEntry\")) {\n return null;\n }\n\n return (\n <BaseTrashBin\n render={({ showTrashBin }) => {\n return <TrashBinButton onClick={showTrashBin} />;\n }}\n listGateway={listGateway}\n deleteGateway={deleteGateway}\n restoreGateway={restoreGateway}\n itemMapper={itemMapper}\n onItemAfterRestore={async item => navigateToFolder(item.location.folderId)}\n nameColumnId={model.titleFieldId || \"id\"}\n title={`Trash - ${model.name}`}\n />\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAQA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAEO,IAAMM,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG,SAAXA,QAAQA,CAAA,EAAS;EAC1B,IAAME,MAAM,GAAG,IAAAC,sBAAe,EAAC,CAAC;EAChC,IAAAC,cAAA,GAA6B,IAAAC,oBAAa,EAAC,CAAC;IAApCC,gBAAgB,GAAAF,cAAA,CAAhBE,gBAAgB;EACxB,IAAAC,kBAAA,GAA6B,IAAAC,yBAAiB,EAAC,CAAC;IAAxCC,gBAAgB,GAAAF,kBAAA,CAAhBE,gBAAgB;EACxB,IAAAC,WAAA,GAAsB,IAAAC,kBAAU,EAAC,CAAC;IAA1BC,SAAS,GAAAF,WAAA,CAATE,SAAS;EACjB,IAAAC,SAAA,GAAkB,IAAAC,eAAQ,EAAC,CAAC;IAApBC,KAAK,GAAAF,SAAA,CAALE,KAAK;EAEb,IAAMC,WAAW,GAAG,IAAAC,cAAO,EAAC,YAAM;IAC9B,OAAO,IAAIC,oCAA0B,CAAChB,MAAM,EAAEa,KAAK,CAAC;EACxD,CAAC,EAAE,CAACb,MAAM,EAAEa,KAAK,CAAC,CAAC;EAEnB,IAAMI,aAAa,GAAG,IAAAF,cAAO,EAAC,YAAM;IAChC,OAAO,IAAIG,0CAAgC,CAAClB,MAAM,EAAEa,KAAK,CAAC;EAC9D,CAAC,EAAE,CAACb,MAAM,EAAEa,KAAK,CAAC,CAAC;EAEnB,IAAMM,cAAc,GAAG,IAAAJ,cAAO,EAAC,YAAM;IACjC,IAAMI,cAAc,GAAG,IAAIC,2CAAiC,CAACpB,MAAM,EAAEa,KAAK,CAAC;IAC3E,OAAO,IAAIQ,uDAA6C,CAACX,SAAS,EAAES,cAAc,CAAC;EACvF,CAAC,EAAE,CAACnB,MAAM,EAAEa,KAAK,CAAC,CAAC;EAEnB,IAAMS,UAAU,GAAG,IAAAP,cAAO,EAAC,YAAM;IAC7B,OAAO,IAAIQ,4BAAkB,CAAC,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAI,CAACnB,gBAAgB,CAAC,kBAAkB,CAAC,EAAE;IACvC,OAAO,IAAI;EACf;EAEA,oBACId,MAAA,CAAAkC,OAAA,CAAAC,aAAA,CAAC/B,YAAA,CAAAI,QAAY;IACT4B,MAAM,EAAE,SAAAA,OAAAC,IAAA,EAAsB;MAAA,IAAnBC,YAAY,GAAAD,IAAA,CAAZC,YAAY;MACnB,oBAAOtC,MAAA,CAAAkC,OAAA,CAAAC,aAAA,CAAC7B,eAAA,CAAAiC,cAAc;QAACC,OAAO,EAAEF;MAAa,CAAE,CAAC;IACpD,CAAE;IACFd,WAAW,EAAEA,WAAY;IACzBG,aAAa,EAAEA,aAAc;IAC7BE,cAAc,EAAEA,cAAe;IAC/BG,UAAU,EAAEA,UAAW;IACvBS,kBAAkB,EAAE,eAAAA,mBAAMC,IAAI;MAAA,OAAIzB,gBAAgB,CAACyB,IAAI,CAACC,QAAQ,CAACC,QAAQ,CAAC;IAAA,CAAC;IAC3EC,YAAY,EAAEtB,KAAK,CAACuB,YAAY,IAAI,IAAK;IACzCC,KAAK,aAAAC,MAAA,CAAazB,KAAK,CAAC0B,IAAI;EAAG,CAClC,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_hooks","_appTrashBin","_adapters","_TrashBinButton","_appAco","TrashBin","exports","client","useApolloClient","_usePermission","usePermission","canDeleteEntries","_useNavigateFolder","useNavigateFolder","navigateToFolder","_useRecords","useRecords","getRecord","_useModel","useModel","model","listGateway","useMemo","TrashBinListGraphQLGateway","deleteGateway","TrashBinDeleteItemGraphQLGateway","restoreGateway","TrashBinRestoreItemGraphQLGateway","TrashBinRestoreItemGraphQLGatewayWithCallback","itemMapper","TrashBinItemMapper","handleItemAfterRestore","useCallback","item","location","folderId","default","createElement","render","_ref","showTrashBin","TrashBinButton","onClick","onItemAfterRestore","nameColumnId","titleFieldId","title","concat","name"],"sources":["TrashBin.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from \"react\";\nimport { useApolloClient, useModel, usePermission } from \"~/admin/hooks\";\nimport { TrashBin as BaseTrashBin } from \"@webiny/app-trash-bin\";\nimport {\n TrashBinDeleteItemGraphQLGateway,\n TrashBinItemMapper,\n TrashBinListGraphQLGateway,\n TrashBinRestoreItemGraphQLGateway,\n TrashBinRestoreItemGraphQLGatewayWithCallback\n} from \"../adapters\";\n\nimport { TrashBinButton } from \"./TrashBinButton\";\nimport { useNavigateFolder, useRecords } from \"@webiny/app-aco\";\n\nexport const TrashBin = () => {\n const client = useApolloClient();\n const { canDeleteEntries } = usePermission();\n const { navigateToFolder } = useNavigateFolder();\n const { getRecord } = useRecords();\n const { model } = useModel();\n\n const listGateway = useMemo(() => {\n return new TrashBinListGraphQLGateway(client, model);\n }, [client, model]);\n\n const deleteGateway = useMemo(() => {\n return new TrashBinDeleteItemGraphQLGateway(client, model);\n }, [client, model]);\n\n const restoreGateway = useMemo(() => {\n const restoreGateway = new TrashBinRestoreItemGraphQLGateway(client, model);\n return new TrashBinRestoreItemGraphQLGatewayWithCallback(getRecord, restoreGateway);\n }, [client, model]);\n\n const itemMapper = useMemo(() => {\n return new TrashBinItemMapper();\n }, []);\n\n const handleItemAfterRestore = useCallback(\n async (item: { location: { folderId: string | undefined } }) => {\n navigateToFolder(item.location.folderId);\n },\n [navigateToFolder]\n );\n\n if (!canDeleteEntries(\"cms.contentEntry\")) {\n return null;\n }\n\n return (\n <BaseTrashBin\n render={({ showTrashBin }) => {\n return <TrashBinButton onClick={showTrashBin} />;\n }}\n listGateway={listGateway}\n deleteGateway={deleteGateway}\n restoreGateway={restoreGateway}\n itemMapper={itemMapper}\n onItemAfterRestore={handleItemAfterRestore}\n nameColumnId={model.titleFieldId || \"id\"}\n title={`Trash - ${model.name}`}\n />\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAQA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAEO,IAAMM,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG,SAAXA,QAAQA,CAAA,EAAS;EAC1B,IAAME,MAAM,GAAG,IAAAC,sBAAe,EAAC,CAAC;EAChC,IAAAC,cAAA,GAA6B,IAAAC,oBAAa,EAAC,CAAC;IAApCC,gBAAgB,GAAAF,cAAA,CAAhBE,gBAAgB;EACxB,IAAAC,kBAAA,GAA6B,IAAAC,yBAAiB,EAAC,CAAC;IAAxCC,gBAAgB,GAAAF,kBAAA,CAAhBE,gBAAgB;EACxB,IAAAC,WAAA,GAAsB,IAAAC,kBAAU,EAAC,CAAC;IAA1BC,SAAS,GAAAF,WAAA,CAATE,SAAS;EACjB,IAAAC,SAAA,GAAkB,IAAAC,eAAQ,EAAC,CAAC;IAApBC,KAAK,GAAAF,SAAA,CAALE,KAAK;EAEb,IAAMC,WAAW,GAAG,IAAAC,cAAO,EAAC,YAAM;IAC9B,OAAO,IAAIC,oCAA0B,CAAChB,MAAM,EAAEa,KAAK,CAAC;EACxD,CAAC,EAAE,CAACb,MAAM,EAAEa,KAAK,CAAC,CAAC;EAEnB,IAAMI,aAAa,GAAG,IAAAF,cAAO,EAAC,YAAM;IAChC,OAAO,IAAIG,0CAAgC,CAAClB,MAAM,EAAEa,KAAK,CAAC;EAC9D,CAAC,EAAE,CAACb,MAAM,EAAEa,KAAK,CAAC,CAAC;EAEnB,IAAMM,cAAc,GAAG,IAAAJ,cAAO,EAAC,YAAM;IACjC,IAAMI,cAAc,GAAG,IAAIC,2CAAiC,CAACpB,MAAM,EAAEa,KAAK,CAAC;IAC3E,OAAO,IAAIQ,uDAA6C,CAACX,SAAS,EAAES,cAAc,CAAC;EACvF,CAAC,EAAE,CAACnB,MAAM,EAAEa,KAAK,CAAC,CAAC;EAEnB,IAAMS,UAAU,GAAG,IAAAP,cAAO,EAAC,YAAM;IAC7B,OAAO,IAAIQ,4BAAkB,CAAC,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMC,sBAAsB,GAAG,IAAAC,kBAAW,EACtC,gBAAOC,IAAoD,EAAK;IAC5DnB,gBAAgB,CAACmB,IAAI,CAACC,QAAQ,CAACC,QAAQ,CAAC;EAC5C,CAAC,EACD,CAACrB,gBAAgB,CACrB,CAAC;EAED,IAAI,CAACH,gBAAgB,CAAC,kBAAkB,CAAC,EAAE;IACvC,OAAO,IAAI;EACf;EAEA,oBACId,MAAA,CAAAuC,OAAA,CAAAC,aAAA,CAACpC,YAAA,CAAAI,QAAY;IACTiC,MAAM,EAAE,SAAAA,OAAAC,IAAA,EAAsB;MAAA,IAAnBC,YAAY,GAAAD,IAAA,CAAZC,YAAY;MACnB,oBAAO3C,MAAA,CAAAuC,OAAA,CAAAC,aAAA,CAAClC,eAAA,CAAAsC,cAAc;QAACC,OAAO,EAAEF;MAAa,CAAE,CAAC;IACpD,CAAE;IACFnB,WAAW,EAAEA,WAAY;IACzBG,aAAa,EAAEA,aAAc;IAC7BE,cAAc,EAAEA,cAAe;IAC/BG,UAAU,EAAEA,UAAW;IACvBc,kBAAkB,EAAEZ,sBAAuB;IAC3Ca,YAAY,EAAExB,KAAK,CAACyB,YAAY,IAAI,IAAK;IACzCC,KAAK,aAAAC,MAAA,CAAa3B,KAAK,CAAC4B,IAAI;EAAG,CAClC,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -18,7 +18,7 @@ function useParentField() {
18
18
  if (!parent) {
19
19
  return undefined;
20
20
  }
21
- return level === 0 ? parent : parent.getParentField(level);
21
+ return level === 0 ? parent : parent.getParentField(level - 1);
22
22
  }
23
23
  var ParentFieldProvider = exports.ParentFieldProvider = function ParentFieldProvider(_ref) {
24
24
  var path = _ref.path,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_get","_interopRequireDefault","_ModelFieldProvider","_form","ParentField","createContext","undefined","useParentField","level","arguments","length","parent","useContext","getParentField","ParentFieldProvider","exports","_ref","path","value","children","form","useForm","formRef","useRef","field","fieldContext","useModelField","_unused","useEffect","current","data","setValue","useCallback","fieldId","cb","fieldPath","concat","get","context","default","createElement","type","Provider"],"sources":["ParentValue.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useRef } from \"react\";\nimport get from \"lodash/get\";\nimport { CmsModelField } from \"@webiny/app-headless-cms-common/types\";\nimport { useModelField } from \"~/admin/components/ModelFieldProvider\";\nimport { useForm, FormAPI } from \"@webiny/form\";\n\ndeclare global {\n // eslint-disable-next-line\n namespace JSX {\n interface IntrinsicElements {\n \"hcms-parent-field-provider\": React.HTMLProps<HTMLDivElement>;\n }\n }\n}\n\ninterface ParentField {\n value: any;\n setValue: (fieldId: string, cb: (prevValue: any) => any) => void;\n field: CmsModelField;\n getParentField(level: number): ParentField | undefined;\n path: string;\n}\n\nconst ParentField = createContext<ParentField | undefined>(undefined);\n\nexport function useParentField(level = 0): ParentField | undefined {\n const parent = useContext(ParentField);\n\n if (!parent) {\n return undefined;\n }\n\n return level === 0 ? parent : parent.getParentField(level);\n}\n\ninterface ParentFieldProviderProps {\n value: any;\n path: string;\n children: React.ReactNode;\n}\n\nexport const ParentFieldProvider = ({ path, value, children }: ParentFieldProviderProps) => {\n const parent = useContext(ParentField);\n const form = useForm();\n const formRef = useRef<FormAPI>();\n\n let field: CmsModelField | undefined;\n try {\n const fieldContext = useModelField();\n field = fieldContext.field;\n } catch {\n field = undefined;\n }\n\n const getParentField = (level = 0) => {\n return parent ? (level === 0 ? parent : parent.getParentField(level - 1)) : undefined;\n };\n\n useEffect(() => {\n formRef.current = form;\n }, [form.data]);\n\n const setValue = useCallback<ParentField[\"setValue\"]>((fieldId, cb) => {\n const fieldPath = `${path}.${fieldId}`;\n if (!path || !formRef.current) {\n return;\n }\n\n formRef.current.setValue(fieldPath, cb(get(formRef.current.data, fieldPath)));\n }, []);\n\n const context: ParentField | undefined = field\n ? {\n value,\n field,\n getParentField,\n path,\n setValue\n }\n : undefined;\n\n return (\n <hcms-parent-field-provider data-path={path} data-field-type={field?.type}>\n <ParentField.Provider value={context}>{children}</ParentField.Provider>\n </hcms-parent-field-provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_get","_interopRequireDefault","_ModelFieldProvider","_form","ParentField","createContext","undefined","useParentField","level","arguments","length","parent","useContext","getParentField","ParentFieldProvider","exports","_ref","path","value","children","form","useForm","formRef","useRef","field","fieldContext","useModelField","_unused","useEffect","current","data","setValue","useCallback","fieldId","cb","fieldPath","concat","get","context","default","createElement","type","Provider"],"sources":["ParentValue.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useRef } from \"react\";\nimport get from \"lodash/get\";\nimport { CmsModelField } from \"@webiny/app-headless-cms-common/types\";\nimport { useModelField } from \"~/admin/components/ModelFieldProvider\";\nimport { useForm, FormAPI } from \"@webiny/form\";\n\ndeclare global {\n // eslint-disable-next-line\n namespace JSX {\n interface IntrinsicElements {\n \"hcms-parent-field-provider\": React.HTMLProps<HTMLDivElement>;\n }\n }\n}\n\ninterface ParentField {\n value: any;\n setValue: (fieldId: string, cb: (prevValue: any) => any) => void;\n field: CmsModelField;\n getParentField(level: number): ParentField | undefined;\n path: string;\n}\n\nconst ParentField = createContext<ParentField | undefined>(undefined);\n\nexport function useParentField(level = 0): ParentField | undefined {\n const parent = useContext(ParentField);\n\n if (!parent) {\n return undefined;\n }\n\n return level === 0 ? parent : parent.getParentField(level - 1);\n}\n\ninterface ParentFieldProviderProps {\n value: any;\n path: string;\n children: React.ReactNode;\n}\n\nexport const ParentFieldProvider = ({ path, value, children }: ParentFieldProviderProps) => {\n const parent = useContext(ParentField);\n const form = useForm();\n const formRef = useRef<FormAPI>();\n\n let field: CmsModelField | undefined;\n try {\n const fieldContext = useModelField();\n field = fieldContext.field;\n } catch {\n field = undefined;\n }\n\n const getParentField = (level = 0) => {\n return parent ? (level === 0 ? parent : parent.getParentField(level - 1)) : undefined;\n };\n\n useEffect(() => {\n formRef.current = form;\n }, [form.data]);\n\n const setValue = useCallback<ParentField[\"setValue\"]>((fieldId, cb) => {\n const fieldPath = `${path}.${fieldId}`;\n if (!path || !formRef.current) {\n return;\n }\n\n formRef.current.setValue(fieldPath, cb(get(formRef.current.data, fieldPath)));\n }, []);\n\n const context: ParentField | undefined = field\n ? {\n value,\n field,\n getParentField,\n path,\n setValue\n }\n : undefined;\n\n return (\n <hcms-parent-field-provider data-path={path} data-field-type={field?.type}>\n <ParentField.Provider value={context}>{children}</ParentField.Provider>\n </hcms-parent-field-provider>\n );\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAmBA,IAAMK,WAAW,gBAAG,IAAAC,oBAAa,EAA0BC,SAAS,CAAC;AAE9D,SAASC,cAAcA,CAAA,EAAqC;EAAA,IAApCC,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAH,SAAA,GAAAG,SAAA,MAAG,CAAC;EACpC,IAAME,MAAM,GAAG,IAAAC,iBAAU,EAACR,WAAW,CAAC;EAEtC,IAAI,CAACO,MAAM,EAAE;IACT,OAAOL,SAAS;EACpB;EAEA,OAAOE,KAAK,KAAK,CAAC,GAAGG,MAAM,GAAGA,MAAM,CAACE,cAAc,CAACL,KAAK,GAAG,CAAC,CAAC;AAClE;AAQO,IAAMM,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,SAAtBA,mBAAmBA,CAAAE,IAAA,EAA4D;EAAA,IAAtDC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;EACvD,IAAMR,MAAM,GAAG,IAAAC,iBAAU,EAACR,WAAW,CAAC;EACtC,IAAMgB,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EACtB,IAAMC,OAAO,GAAG,IAAAC,aAAM,EAAU,CAAC;EAEjC,IAAIC,KAAgC;EACpC,IAAI;IACA,IAAMC,YAAY,GAAG,IAAAC,iCAAa,EAAC,CAAC;IACpCF,KAAK,GAAGC,YAAY,CAACD,KAAK;EAC9B,CAAC,CAAC,OAAAG,OAAA,EAAM;IACJH,KAAK,GAAGlB,SAAS;EACrB;EAEA,IAAMO,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAkB;IAAA,IAAdL,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAH,SAAA,GAAAG,SAAA,MAAG,CAAC;IAC7B,OAAOE,MAAM,GAAIH,KAAK,KAAK,CAAC,GAAGG,MAAM,GAAGA,MAAM,CAACE,cAAc,CAACL,KAAK,GAAG,CAAC,CAAC,GAAIF,SAAS;EACzF,CAAC;EAED,IAAAsB,gBAAS,EAAC,YAAM;IACZN,OAAO,CAACO,OAAO,GAAGT,IAAI;EAC1B,CAAC,EAAE,CAACA,IAAI,CAACU,IAAI,CAAC,CAAC;EAEf,IAAMC,QAAQ,GAAG,IAAAC,kBAAW,EAA0B,UAACC,OAAO,EAAEC,EAAE,EAAK;IACnE,IAAMC,SAAS,MAAAC,MAAA,CAAMnB,IAAI,OAAAmB,MAAA,CAAIH,OAAO,CAAE;IACtC,IAAI,CAAChB,IAAI,IAAI,CAACK,OAAO,CAACO,OAAO,EAAE;MAC3B;IACJ;IAEAP,OAAO,CAACO,OAAO,CAACE,QAAQ,CAACI,SAAS,EAAED,EAAE,CAAC,IAAAG,YAAG,EAACf,OAAO,CAACO,OAAO,CAACC,IAAI,EAAEK,SAAS,CAAC,CAAC,CAAC;EACjF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMG,OAAgC,GAAGd,KAAK,GACxC;IACIN,KAAK,EAALA,KAAK;IACLM,KAAK,EAALA,KAAK;IACLX,cAAc,EAAdA,cAAc;IACdI,IAAI,EAAJA,IAAI;IACJc,QAAQ,EAARA;EACJ,CAAC,GACDzB,SAAS;EAEf,oBACIT,MAAA,CAAA0C,OAAA,CAAAC,aAAA;IAA4B,aAAWvB,IAAK;IAAC,mBAAiBO,KAAK,EAAEiB;EAAK,gBACtE5C,MAAA,CAAA0C,OAAA,CAAAC,aAAA,CAACpC,WAAW,CAACsC,QAAQ;IAACxB,KAAK,EAAEoB;EAAQ,GAAEnB,QAA+B,CAC9C,CAAC;AAErC,CAAC","ignoreList":[]}
@@ -4,7 +4,7 @@ export * from "./useQueryLocale";
4
4
  export { default as useLazyQuery } from "./useLazyQuery";
5
5
  export { default as useMutation } from "./useMutation";
6
6
  export { default as useApolloClient } from "./useApolloClient";
7
- export { default as usePermission } from "./usePermission";
7
+ export { usePermission } from "./usePermission";
8
8
  export { useModel } from "../components/ModelProvider";
9
9
  export { useModelEditor } from "../components/ContentModelEditor";
10
10
  export { useParentField, ParentFieldProvider } from "../components/ContentEntryForm/ParentValue";
@@ -88,7 +88,7 @@ Object.defineProperty(exports, "useParentField", {
88
88
  Object.defineProperty(exports, "usePermission", {
89
89
  enumerable: true,
90
90
  get: function get() {
91
- return _usePermission.default;
91
+ return _usePermission.usePermission;
92
92
  }
93
93
  });
94
94
  Object.defineProperty(exports, "useQuery", {
@@ -114,7 +114,7 @@ Object.keys(_useQueryLocale).forEach(function (key) {
114
114
  var _useLazyQuery = _interopRequireDefault(require("./useLazyQuery"));
115
115
  var _useMutation = _interopRequireDefault(require("./useMutation"));
116
116
  var _useApolloClient = _interopRequireDefault(require("./useApolloClient"));
117
- var _usePermission = _interopRequireDefault(require("./usePermission"));
117
+ var _usePermission = require("./usePermission");
118
118
  var _ModelProvider = require("../components/ModelProvider");
119
119
  var _ContentModelEditor = require("../components/ContentModelEditor");
120
120
  var _ParentValue = require("../components/ContentEntryForm/ParentValue");
@@ -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","_ParentValue","_ModelFieldProvider","_FieldEditor","_useEntry","_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 { useParentField, ParentFieldProvider } from \"../components/ContentEntryForm/ParentValue\";\nexport { useModelField } from \"../components/ModelFieldProvider\";\nexport { useModelFieldEditor } from \"../components/FieldEditor\";\nexport { useEntry } from \"~/admin/hooks/useEntry\";\nexport * from \"./useContentModels\";\nexport * from \"~/admin/views/contentEntries/hooks\";\nexport * from \"./useModelFieldGraphqlContext\";\n"],"mappings":"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","ignoreList":[]}
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","_ParentValue","_ModelFieldProvider","_FieldEditor","_useEntry","_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 { usePermission } from \"./usePermission\";\nexport { useModel } from \"../components/ModelProvider\";\nexport { useModelEditor } from \"../components/ContentModelEditor\";\nexport { useParentField, ParentFieldProvider } from \"../components/ContentEntryForm/ParentValue\";\nexport { useModelField } from \"../components/ModelFieldProvider\";\nexport { useModelFieldEditor } from \"../components/FieldEditor\";\nexport { useEntry } from \"~/admin/hooks/useEntry\";\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,GAAAlB,OAAA;AACA,IAAAmB,cAAA,GAAAnB,OAAA;AACA,IAAAoB,mBAAA,GAAApB,OAAA;AACA,IAAAqB,YAAA,GAAArB,OAAA;AACA,IAAAsB,mBAAA,GAAAtB,OAAA;AACA,IAAAuB,YAAA,GAAAvB,OAAA;AACA,IAAAwB,SAAA,GAAAxB,OAAA;AACA,IAAAyB,iBAAA,GAAAzB,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAqB,iBAAA,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,iBAAA,CAAAnB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAW,iBAAA,CAAAnB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAoB,MAAA,GAAA1B,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAsB,MAAA,EAAArB,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,MAAAoB,MAAA,CAAApB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAY,MAAA,CAAApB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAqB,4BAAA,GAAA3B,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAuB,4BAAA,EAAAtB,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,MAAAqB,4BAAA,CAAArB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAa,4BAAA,CAAArB,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CmsGroup, CmsIdentity, CmsModel } from "../../types";
2
3
  export interface CreatableItem {
3
4
  createdBy?: Pick<CmsIdentity, "id">;
@@ -7,7 +8,7 @@ interface CanReadEntriesCallableParams {
7
8
  contentModelGroup: CmsGroup;
8
9
  contentModel: CmsModel;
9
10
  }
10
- export declare const usePermission: () => {
11
+ export declare const usePermission: import("@webiny/react-composition").GenericHook<unknown, {
11
12
  canReadEntries: ({ contentModelGroup, contentModel }: CanReadEntriesCallableParams) => boolean;
12
13
  canEdit: (item: CreatableItem, permissionName: string) => boolean;
13
14
  canCreate: (permissionName: string) => boolean;
@@ -20,6 +21,37 @@ export declare const usePermission: () => {
20
21
  canCreateContentModels: boolean;
21
22
  canCreateContentModelGroups: boolean;
22
23
  canAccessManageEndpoint: boolean;
24
+ }> & {
25
+ original: import("@webiny/react-composition").GenericHook<unknown, {
26
+ canReadEntries: ({ contentModelGroup, contentModel }: CanReadEntriesCallableParams) => boolean;
27
+ canEdit: (item: CreatableItem, permissionName: string) => boolean;
28
+ canCreate: (permissionName: string) => boolean;
29
+ canDelete: (item: CreatableItem, permissionName: string) => boolean;
30
+ canDeleteEntries: (permissionName: string) => boolean;
31
+ canPublish: (permissionName: string) => boolean;
32
+ canUnpublish: (permissionName: string) => boolean;
33
+ canReadContentModels: boolean;
34
+ canReadContentModelGroups: boolean;
35
+ canCreateContentModels: boolean;
36
+ canCreateContentModelGroups: boolean;
37
+ canAccessManageEndpoint: boolean;
38
+ }>;
39
+ originalName: string;
40
+ } & {
41
+ createDecorator: (decorator: import("@webiny/react-composition").Decorator<() => {
42
+ canReadEntries: ({ contentModelGroup, contentModel }: CanReadEntriesCallableParams) => boolean;
43
+ canEdit: (item: CreatableItem, permissionName: string) => boolean;
44
+ canCreate: (permissionName: string) => boolean;
45
+ canDelete: (item: CreatableItem, permissionName: string) => boolean;
46
+ canDeleteEntries: (permissionName: string) => boolean;
47
+ canPublish: (permissionName: string) => boolean;
48
+ canUnpublish: (permissionName: string) => boolean;
49
+ canReadContentModels: boolean;
50
+ canReadContentModelGroups: boolean;
51
+ canCreateContentModels: boolean;
52
+ canCreateContentModelGroups: boolean;
53
+ canAccessManageEndpoint: boolean;
54
+ }>) => () => import("react").JSX.Element;
23
55
  };
24
56
  /**
25
57
  * Default export is deprecated, use the named one.
@@ -9,7 +9,8 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
9
9
  var _react = require("react");
10
10
  var _appSecurity = require("@webiny/app-security");
11
11
  var _useI18N2 = require("@webiny/app-i18n/hooks/useI18N");
12
- var usePermission = exports.usePermission = function usePermission() {
12
+ var _reactComposition = require("@webiny/react-composition");
13
+ var usePermission = exports.usePermission = (0, _reactComposition.makeDecoratable)(function () {
13
14
  var _useSecurity = (0, _appSecurity.useSecurity)(),
14
15
  identity = _useSecurity.identity,
15
16
  getIdentityId = _useSecurity.getIdentityId,
@@ -229,7 +230,8 @@ var usePermission = exports.usePermission = function usePermission() {
229
230
  canCreateContentModelGroups: canCreateContentModelGroups,
230
231
  canAccessManageEndpoint: canAccessManageEndpoint
231
232
  };
232
- };
233
+ });
234
+
233
235
  /**
234
236
  * Default export is deprecated, use the named one.
235
237
  * @deprecated
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_appSecurity","_useI18N2","usePermission","exports","_useSecurity","useSecurity","identity","getIdentityId","getPermission","getPermissions","_useI18N","useI18N","getCurrentLocale","currentLocale","hasFullAccess","useMemo","canRead","useCallback","permissionName","permissions","length","some","permission","rwd","includes","canReadEntries","_ref","contentModelGroup","contentModel","contentModelPermissions","allowedModels","i","permissionAllowedModels","models","allModelsAllowed","Array","isArray","concat","_toConsumableArray2","default","modelId","contentModelGroupPermissions","allowedModelGroups","permissionAllowedModelGroups","allModelGroupsAllowed","id","rwdGivesReadAccess","canEdit","item","own","createdBy","canCreate","canDelete","canDeleteEntries","canPublish","pw","canUnpublish","canReadContentModels","canReadContentModelGroups","canCreateContentModels","canCreateContentModelGroups","canAccessManageEndpoint","undefined","_default"],"sources":["usePermission.ts"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { useI18N } from \"@webiny/app-i18n/hooks/useI18N\";\nimport { CmsGroup, CmsIdentity, CmsModel, CmsSecurityPermission } from \"~/types\";\n\nexport interface CreatableItem {\n createdBy?: Pick<CmsIdentity, \"id\">;\n}\n\nexport type EditableItem = CreatableItem;\n\ninterface CanReadEntriesCallableParams {\n contentModelGroup: CmsGroup;\n contentModel: CmsModel;\n}\n\nexport const usePermission = () => {\n const { identity, getIdentityId, getPermission, getPermissions } = useSecurity();\n const { getCurrentLocale } = useI18N();\n\n const currentLocale = getCurrentLocale(\"content\");\n\n const hasFullAccess = useMemo(() => !!getPermission(\"cms.*\"), [identity]);\n\n const canRead = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n\n if (!permissions.length) {\n return false;\n }\n\n return permissions.some(permission => {\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"r\");\n });\n },\n [identity, hasFullAccess]\n );\n\n const canReadEntries = useCallback(\n ({ contentModelGroup, contentModel }: CanReadEntriesCallableParams): boolean => {\n if (hasFullAccess) {\n return true;\n }\n\n const permissions = getPermissions<CmsSecurityPermission>(\"cms.contentEntry\");\n if (!permissions.length) {\n return false;\n }\n\n // Check \"contentModel\" list.\n const contentModelPermissions = getPermissions(\"cms.contentModel\");\n\n // \"all\" means user has access to all models.\n let allowedModels: \"all\" | string[] = [];\n\n for (let i = 0; i < contentModelPermissions.length; i++) {\n const permission = contentModelPermissions[i];\n const permissionAllowedModels = permission?.models?.[currentLocale!];\n // The moment we encounter a permission that gives access to all models,\n // we can stop checking other permissions.\n const allModelsAllowed = !Array.isArray(permissionAllowedModels);\n if (allModelsAllowed) {\n allowedModels = \"all\";\n break;\n }\n\n allowedModels = [...allowedModels, ...permissionAllowedModels];\n }\n\n if (Array.isArray(allowedModels)) {\n return allowedModels.includes(contentModel.modelId);\n }\n\n // Check \"contentModelGroup\" list.\n const contentModelGroupPermissions = getPermissions(\"cms.contentModelGroup\");\n\n // \"all\" means user has access to all models.\n let allowedModelGroups: \"all\" | string[] = [];\n\n for (let i = 0; i < contentModelGroupPermissions.length; i++) {\n const permission = contentModelGroupPermissions[i];\n const permissionAllowedModelGroups = permission?.models?.[currentLocale!];\n // The moment we encounter a permission that gives access to all models,\n // we can stop checking other permissions.\n const allModelGroupsAllowed = !Array.isArray(permissionAllowedModelGroups);\n if (allModelGroupsAllowed) {\n allowedModelGroups = \"all\";\n break;\n }\n\n allowedModelGroups = [...allowedModelGroups, ...permissionAllowedModelGroups];\n }\n\n if (Array.isArray(allowedModelGroups)) {\n return allowedModelGroups.includes(contentModelGroup.id);\n }\n\n for (let i = 0; i < permissions.length; i++) {\n const permission = permissions[i];\n\n // If no RWD restrictions are set, we can return true.\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n const rwdGivesReadAccess = permission.rwd.includes(\"r\");\n if (rwdGivesReadAccess) {\n return true;\n }\n }\n\n return false;\n },\n [identity, hasFullAccess, currentLocale]\n );\n\n const canEdit = useCallback(\n (item: CreatableItem, permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n\n if (!permissions.length || !identity) {\n return false;\n }\n\n return permissions.some(permission => {\n if (permission.own) {\n /**\n * There will be no \"createdBy\" field for a new entry therefore we enable the access.\n */\n if (!item.createdBy) {\n return true;\n }\n\n if (item?.createdBy?.id === getIdentityId()) {\n return true;\n }\n }\n\n if (typeof permission.rwd === \"string\") {\n if (permission.rwd.includes(\"w\")) {\n return true;\n }\n }\n\n return false;\n });\n },\n [identity]\n );\n\n /**\n * @description This checks whether the user has the \"write\" access for given permission;\n * without talking the \"own\" property in account.\n * @param {string} permissionName\n * */\n const canCreate = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n if (!permissions.length) {\n return false;\n }\n\n return permissions.some(permission => {\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"w\");\n });\n },\n [identity]\n );\n\n const canDelete = useCallback(\n (item: CreatableItem, permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n\n if (!permissions.length) {\n return false;\n }\n\n return permissions.some(permission => {\n if (permission.own) {\n // Using optional chaining here because there might be cases where the item\n // or its `createdBy` property is not defined. In that case, we want to\n // return `false` and not throw an error.\n return item?.createdBy?.id === getIdentityId();\n }\n\n if (typeof permission.rwd === \"string\") {\n return permission.rwd.includes(\"d\");\n }\n\n return false;\n });\n },\n [identity]\n );\n\n const canDeleteEntries = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n\n if (!permissions.length) {\n return false;\n }\n\n return permissions.some(permission => {\n return permission.rwd?.includes(\"d\");\n });\n },\n [identity, hasFullAccess]\n );\n\n const canPublish = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n\n if (!permissions.length) {\n return false;\n }\n\n return permissions.some(permission => {\n return permission.pw?.includes(\"p\");\n });\n },\n [identity, hasFullAccess]\n );\n\n const canUnpublish = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n\n if (!permissions.length) {\n return false;\n }\n\n return permissions.some(permission => {\n return permission.pw?.includes(\"u\");\n });\n },\n [identity, hasFullAccess]\n );\n\n const canReadContentModels = canRead(\"cms.contentModel\");\n const canReadContentModelGroups = canRead(\"cms.contentModelGroup\");\n const canCreateContentModels = canCreate(\"cms.contentModel\");\n const canCreateContentModelGroups = canCreate(\"cms.contentModelGroup\");\n const canAccessManageEndpoint = useMemo(() => {\n return getPermission(\"cms.endpoint.manage\") !== undefined;\n }, [identity]);\n\n return {\n canReadEntries,\n canEdit,\n canCreate,\n canDelete,\n canDeleteEntries,\n canPublish,\n canUnpublish,\n canReadContentModels,\n canReadContentModelGroups,\n canCreateContentModels,\n canCreateContentModelGroups,\n canAccessManageEndpoint\n };\n};\n/**\n * Default export is deprecated, use the named one.\n * @deprecated\n */\nexport default usePermission;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_appSecurity","_useI18N2","_reactComposition","usePermission","exports","makeDecoratable","_useSecurity","useSecurity","identity","getIdentityId","getPermission","getPermissions","_useI18N","useI18N","getCurrentLocale","currentLocale","hasFullAccess","useMemo","canRead","useCallback","permissionName","permissions","length","some","permission","rwd","includes","canReadEntries","_ref","contentModelGroup","contentModel","contentModelPermissions","allowedModels","i","permissionAllowedModels","models","allModelsAllowed","Array","isArray","concat","_toConsumableArray2","default","modelId","contentModelGroupPermissions","allowedModelGroups","permissionAllowedModelGroups","allModelGroupsAllowed","id","rwdGivesReadAccess","canEdit","item","own","createdBy","canCreate","canDelete","canDeleteEntries","canPublish","pw","canUnpublish","canReadContentModels","canReadContentModelGroups","canCreateContentModels","canCreateContentModelGroups","canAccessManageEndpoint","undefined","_default"],"sources":["usePermission.ts"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { useI18N } from \"@webiny/app-i18n/hooks/useI18N\";\nimport { CmsGroup, CmsIdentity, CmsModel, CmsSecurityPermission } from \"~/types\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\n\nexport interface CreatableItem {\n createdBy?: Pick<CmsIdentity, \"id\">;\n}\n\nexport type EditableItem = CreatableItem;\n\ninterface CanReadEntriesCallableParams {\n contentModelGroup: CmsGroup;\n contentModel: CmsModel;\n}\n\nexport const usePermission = makeDecoratable(() => {\n const { identity, getIdentityId, getPermission, getPermissions } = useSecurity();\n const { getCurrentLocale } = useI18N();\n\n const currentLocale = getCurrentLocale(\"content\");\n\n const hasFullAccess = useMemo(() => !!getPermission(\"cms.*\"), [identity]);\n\n const canRead = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n\n if (!permissions.length) {\n return false;\n }\n\n return permissions.some(permission => {\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"r\");\n });\n },\n [identity, hasFullAccess]\n );\n\n const canReadEntries = useCallback(\n ({ contentModelGroup, contentModel }: CanReadEntriesCallableParams): boolean => {\n if (hasFullAccess) {\n return true;\n }\n\n const permissions = getPermissions<CmsSecurityPermission>(\"cms.contentEntry\");\n if (!permissions.length) {\n return false;\n }\n\n // Check \"contentModel\" list.\n const contentModelPermissions = getPermissions(\"cms.contentModel\");\n\n // \"all\" means user has access to all models.\n let allowedModels: \"all\" | string[] = [];\n\n for (let i = 0; i < contentModelPermissions.length; i++) {\n const permission = contentModelPermissions[i];\n const permissionAllowedModels = permission?.models?.[currentLocale!];\n // The moment we encounter a permission that gives access to all models,\n // we can stop checking other permissions.\n const allModelsAllowed = !Array.isArray(permissionAllowedModels);\n if (allModelsAllowed) {\n allowedModels = \"all\";\n break;\n }\n\n allowedModels = [...allowedModels, ...permissionAllowedModels];\n }\n\n if (Array.isArray(allowedModels)) {\n return allowedModels.includes(contentModel.modelId);\n }\n\n // Check \"contentModelGroup\" list.\n const contentModelGroupPermissions = getPermissions(\"cms.contentModelGroup\");\n\n // \"all\" means user has access to all models.\n let allowedModelGroups: \"all\" | string[] = [];\n\n for (let i = 0; i < contentModelGroupPermissions.length; i++) {\n const permission = contentModelGroupPermissions[i];\n const permissionAllowedModelGroups = permission?.models?.[currentLocale!];\n // The moment we encounter a permission that gives access to all models,\n // we can stop checking other permissions.\n const allModelGroupsAllowed = !Array.isArray(permissionAllowedModelGroups);\n if (allModelGroupsAllowed) {\n allowedModelGroups = \"all\";\n break;\n }\n\n allowedModelGroups = [...allowedModelGroups, ...permissionAllowedModelGroups];\n }\n\n if (Array.isArray(allowedModelGroups)) {\n return allowedModelGroups.includes(contentModelGroup.id);\n }\n\n for (let i = 0; i < permissions.length; i++) {\n const permission = permissions[i];\n\n // If no RWD restrictions are set, we can return true.\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n const rwdGivesReadAccess = permission.rwd.includes(\"r\");\n if (rwdGivesReadAccess) {\n return true;\n }\n }\n\n return false;\n },\n [identity, hasFullAccess, currentLocale]\n );\n\n const canEdit = useCallback(\n (item: CreatableItem, permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n\n if (!permissions.length || !identity) {\n return false;\n }\n\n return permissions.some(permission => {\n if (permission.own) {\n /**\n * There will be no \"createdBy\" field for a new entry therefore we enable the access.\n */\n if (!item.createdBy) {\n return true;\n }\n\n if (item?.createdBy?.id === getIdentityId()) {\n return true;\n }\n }\n\n if (typeof permission.rwd === \"string\") {\n if (permission.rwd.includes(\"w\")) {\n return true;\n }\n }\n\n return false;\n });\n },\n [identity]\n );\n\n /**\n * @description This checks whether the user has the \"write\" access for given permission;\n * without talking the \"own\" property in account.\n * @param {string} permissionName\n * */\n const canCreate = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n if (!permissions.length) {\n return false;\n }\n\n return permissions.some(permission => {\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"w\");\n });\n },\n [identity]\n );\n\n const canDelete = useCallback(\n (item: CreatableItem, permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n\n if (!permissions.length) {\n return false;\n }\n\n return permissions.some(permission => {\n if (permission.own) {\n // Using optional chaining here because there might be cases where the item\n // or its `createdBy` property is not defined. In that case, we want to\n // return `false` and not throw an error.\n return item?.createdBy?.id === getIdentityId();\n }\n\n if (typeof permission.rwd === \"string\") {\n return permission.rwd.includes(\"d\");\n }\n\n return false;\n });\n },\n [identity]\n );\n\n const canDeleteEntries = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n\n if (!permissions.length) {\n return false;\n }\n\n return permissions.some(permission => {\n return permission.rwd?.includes(\"d\");\n });\n },\n [identity, hasFullAccess]\n );\n\n const canPublish = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n\n if (!permissions.length) {\n return false;\n }\n\n return permissions.some(permission => {\n return permission.pw?.includes(\"p\");\n });\n },\n [identity, hasFullAccess]\n );\n\n const canUnpublish = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permissions = getPermissions<CmsSecurityPermission>(permissionName);\n\n if (!permissions.length) {\n return false;\n }\n\n return permissions.some(permission => {\n return permission.pw?.includes(\"u\");\n });\n },\n [identity, hasFullAccess]\n );\n\n const canReadContentModels = canRead(\"cms.contentModel\");\n const canReadContentModelGroups = canRead(\"cms.contentModelGroup\");\n const canCreateContentModels = canCreate(\"cms.contentModel\");\n const canCreateContentModelGroups = canCreate(\"cms.contentModelGroup\");\n const canAccessManageEndpoint = useMemo(() => {\n return getPermission(\"cms.endpoint.manage\") !== undefined;\n }, [identity]);\n\n return {\n canReadEntries,\n canEdit,\n canCreate,\n canDelete,\n canDeleteEntries,\n canPublish,\n canUnpublish,\n canReadContentModels,\n canReadContentModelGroups,\n canCreateContentModels,\n canCreateContentModelGroups,\n canAccessManageEndpoint\n };\n});\n\n/**\n * Default export is deprecated, use the named one.\n * @deprecated\n */\nexport default usePermission;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEA,IAAAG,iBAAA,GAAAH,OAAA;AAaO,IAAMI,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,IAAAE,iCAAe,EAAC,YAAM;EAC/C,IAAAC,YAAA,GAAmE,IAAAC,wBAAW,EAAC,CAAC;IAAxEC,QAAQ,GAAAF,YAAA,CAARE,QAAQ;IAAEC,aAAa,GAAAH,YAAA,CAAbG,aAAa;IAAEC,aAAa,GAAAJ,YAAA,CAAbI,aAAa;IAAEC,cAAc,GAAAL,YAAA,CAAdK,cAAc;EAC9D,IAAAC,QAAA,GAA6B,IAAAC,iBAAO,EAAC,CAAC;IAA9BC,gBAAgB,GAAAF,QAAA,CAAhBE,gBAAgB;EAExB,IAAMC,aAAa,GAAGD,gBAAgB,CAAC,SAAS,CAAC;EAEjD,IAAME,aAAa,GAAG,IAAAC,cAAO,EAAC;IAAA,OAAM,CAAC,CAACP,aAAa,CAAC,OAAO,CAAC;EAAA,GAAE,CAACF,QAAQ,CAAC,CAAC;EAEzE,IAAMU,OAAO,GAAG,IAAAC,kBAAW,EACvB,UAACC,cAAsB,EAAc;IACjC,IAAIJ,aAAa,EAAE;MACf,OAAO,IAAI;IACf;IACA,IAAMK,WAAW,GAAGV,cAAc,CAAwBS,cAAc,CAAC;IAEzE,IAAI,CAACC,WAAW,CAACC,MAAM,EAAE;MACrB,OAAO,KAAK;IAChB;IAEA,OAAOD,WAAW,CAACE,IAAI,CAAC,UAAAC,UAAU,EAAI;MAClC,IAAI,OAAOA,UAAU,CAACC,GAAG,KAAK,QAAQ,EAAE;QACpC,OAAO,IAAI;MACf;MAEA,OAAOD,UAAU,CAACC,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC;IACvC,CAAC,CAAC;EACN,CAAC,EACD,CAAClB,QAAQ,EAAEQ,aAAa,CAC5B,CAAC;EAED,IAAMW,cAAc,GAAG,IAAAR,kBAAW,EAC9B,UAAAS,IAAA,EAAgF;IAAA,IAA7EC,iBAAiB,GAAAD,IAAA,CAAjBC,iBAAiB;MAAEC,YAAY,GAAAF,IAAA,CAAZE,YAAY;IAC9B,IAAId,aAAa,EAAE;MACf,OAAO,IAAI;IACf;IAEA,IAAMK,WAAW,GAAGV,cAAc,CAAwB,kBAAkB,CAAC;IAC7E,IAAI,CAACU,WAAW,CAACC,MAAM,EAAE;MACrB,OAAO,KAAK;IAChB;;IAEA;IACA,IAAMS,uBAAuB,GAAGpB,cAAc,CAAC,kBAAkB,CAAC;;IAElE;IACA,IAAIqB,aAA+B,GAAG,EAAE;IAExC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,uBAAuB,CAACT,MAAM,EAAEW,CAAC,EAAE,EAAE;MACrD,IAAMT,UAAU,GAAGO,uBAAuB,CAACE,CAAC,CAAC;MAC7C,IAAMC,uBAAuB,GAAGV,UAAU,EAAEW,MAAM,GAAGpB,aAAa,CAAE;MACpE;MACA;MACA,IAAMqB,gBAAgB,GAAG,CAACC,KAAK,CAACC,OAAO,CAACJ,uBAAuB,CAAC;MAChE,IAAIE,gBAAgB,EAAE;QAClBJ,aAAa,GAAG,KAAK;QACrB;MACJ;MAEAA,aAAa,MAAAO,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAAOT,aAAa,OAAAQ,mBAAA,CAAAC,OAAA,EAAKP,uBAAuB,EAAC;IAClE;IAEA,IAAIG,KAAK,CAACC,OAAO,CAACN,aAAa,CAAC,EAAE;MAC9B,OAAOA,aAAa,CAACN,QAAQ,CAACI,YAAY,CAACY,OAAO,CAAC;IACvD;;IAEA;IACA,IAAMC,4BAA4B,GAAGhC,cAAc,CAAC,uBAAuB,CAAC;;IAE5E;IACA,IAAIiC,kBAAoC,GAAG,EAAE;IAE7C,KAAK,IAAIX,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAGU,4BAA4B,CAACrB,MAAM,EAAEW,EAAC,EAAE,EAAE;MAC1D,IAAMT,WAAU,GAAGmB,4BAA4B,CAACV,EAAC,CAAC;MAClD,IAAMY,4BAA4B,GAAGrB,WAAU,EAAEW,MAAM,GAAGpB,aAAa,CAAE;MACzE;MACA;MACA,IAAM+B,qBAAqB,GAAG,CAACT,KAAK,CAACC,OAAO,CAACO,4BAA4B,CAAC;MAC1E,IAAIC,qBAAqB,EAAE;QACvBF,kBAAkB,GAAG,KAAK;QAC1B;MACJ;MAEAA,kBAAkB,MAAAL,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAAOG,kBAAkB,OAAAJ,mBAAA,CAAAC,OAAA,EAAKI,4BAA4B,EAAC;IACjF;IAEA,IAAIR,KAAK,CAACC,OAAO,CAACM,kBAAkB,CAAC,EAAE;MACnC,OAAOA,kBAAkB,CAAClB,QAAQ,CAACG,iBAAiB,CAACkB,EAAE,CAAC;IAC5D;IAEA,KAAK,IAAId,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAGZ,WAAW,CAACC,MAAM,EAAEW,GAAC,EAAE,EAAE;MACzC,IAAMT,YAAU,GAAGH,WAAW,CAACY,GAAC,CAAC;;MAEjC;MACA,IAAI,OAAOT,YAAU,CAACC,GAAG,KAAK,QAAQ,EAAE;QACpC,OAAO,IAAI;MACf;MAEA,IAAMuB,kBAAkB,GAAGxB,YAAU,CAACC,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC;MACvD,IAAIsB,kBAAkB,EAAE;QACpB,OAAO,IAAI;MACf;IACJ;IAEA,OAAO,KAAK;EAChB,CAAC,EACD,CAACxC,QAAQ,EAAEQ,aAAa,EAAED,aAAa,CAC3C,CAAC;EAED,IAAMkC,OAAO,GAAG,IAAA9B,kBAAW,EACvB,UAAC+B,IAAmB,EAAE9B,cAAsB,EAAc;IACtD,IAAIJ,aAAa,EAAE;MACf,OAAO,IAAI;IACf;IAEA,IAAMK,WAAW,GAAGV,cAAc,CAAwBS,cAAc,CAAC;IAEzE,IAAI,CAACC,WAAW,CAACC,MAAM,IAAI,CAACd,QAAQ,EAAE;MAClC,OAAO,KAAK;IAChB;IAEA,OAAOa,WAAW,CAACE,IAAI,CAAC,UAAAC,UAAU,EAAI;MAClC,IAAIA,UAAU,CAAC2B,GAAG,EAAE;QAChB;AACpB;AACA;QACoB,IAAI,CAACD,IAAI,CAACE,SAAS,EAAE;UACjB,OAAO,IAAI;QACf;QAEA,IAAIF,IAAI,EAAEE,SAAS,EAAEL,EAAE,KAAKtC,aAAa,CAAC,CAAC,EAAE;UACzC,OAAO,IAAI;QACf;MACJ;MAEA,IAAI,OAAOe,UAAU,CAACC,GAAG,KAAK,QAAQ,EAAE;QACpC,IAAID,UAAU,CAACC,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;UAC9B,OAAO,IAAI;QACf;MACJ;MAEA,OAAO,KAAK;IAChB,CAAC,CAAC;EACN,CAAC,EACD,CAAClB,QAAQ,CACb,CAAC;;EAED;AACJ;AACA;AACA;AACA;EACI,IAAM6C,SAAS,GAAG,IAAAlC,kBAAW,EACzB,UAACC,cAAsB,EAAc;IACjC,IAAIJ,aAAa,EAAE;MACf,OAAO,IAAI;IACf;IAEA,IAAMK,WAAW,GAAGV,cAAc,CAAwBS,cAAc,CAAC;IACzE,IAAI,CAACC,WAAW,CAACC,MAAM,EAAE;MACrB,OAAO,KAAK;IAChB;IAEA,OAAOD,WAAW,CAACE,IAAI,CAAC,UAAAC,UAAU,EAAI;MAClC,IAAI,OAAOA,UAAU,CAACC,GAAG,KAAK,QAAQ,EAAE;QACpC,OAAO,IAAI;MACf;MAEA,OAAOD,UAAU,CAACC,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC;IACvC,CAAC,CAAC;EACN,CAAC,EACD,CAAClB,QAAQ,CACb,CAAC;EAED,IAAM8C,SAAS,GAAG,IAAAnC,kBAAW,EACzB,UAAC+B,IAAmB,EAAE9B,cAAsB,EAAc;IACtD,IAAIJ,aAAa,EAAE;MACf,OAAO,IAAI;IACf;IAEA,IAAMK,WAAW,GAAGV,cAAc,CAAwBS,cAAc,CAAC;IAEzE,IAAI,CAACC,WAAW,CAACC,MAAM,EAAE;MACrB,OAAO,KAAK;IAChB;IAEA,OAAOD,WAAW,CAACE,IAAI,CAAC,UAAAC,UAAU,EAAI;MAClC,IAAIA,UAAU,CAAC2B,GAAG,EAAE;QAChB;QACA;QACA;QACA,OAAOD,IAAI,EAAEE,SAAS,EAAEL,EAAE,KAAKtC,aAAa,CAAC,CAAC;MAClD;MAEA,IAAI,OAAOe,UAAU,CAACC,GAAG,KAAK,QAAQ,EAAE;QACpC,OAAOD,UAAU,CAACC,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC;MACvC;MAEA,OAAO,KAAK;IAChB,CAAC,CAAC;EACN,CAAC,EACD,CAAClB,QAAQ,CACb,CAAC;EAED,IAAM+C,gBAAgB,GAAG,IAAApC,kBAAW,EAChC,UAACC,cAAsB,EAAc;IACjC,IAAIJ,aAAa,EAAE;MACf,OAAO,IAAI;IACf;IACA,IAAMK,WAAW,GAAGV,cAAc,CAAwBS,cAAc,CAAC;IAEzE,IAAI,CAACC,WAAW,CAACC,MAAM,EAAE;MACrB,OAAO,KAAK;IAChB;IAEA,OAAOD,WAAW,CAACE,IAAI,CAAC,UAAAC,UAAU,EAAI;MAClC,OAAOA,UAAU,CAACC,GAAG,EAAEC,QAAQ,CAAC,GAAG,CAAC;IACxC,CAAC,CAAC;EACN,CAAC,EACD,CAAClB,QAAQ,EAAEQ,aAAa,CAC5B,CAAC;EAED,IAAMwC,UAAU,GAAG,IAAArC,kBAAW,EAC1B,UAACC,cAAsB,EAAc;IACjC,IAAIJ,aAAa,EAAE;MACf,OAAO,IAAI;IACf;IACA,IAAMK,WAAW,GAAGV,cAAc,CAAwBS,cAAc,CAAC;IAEzE,IAAI,CAACC,WAAW,CAACC,MAAM,EAAE;MACrB,OAAO,KAAK;IAChB;IAEA,OAAOD,WAAW,CAACE,IAAI,CAAC,UAAAC,UAAU,EAAI;MAClC,OAAOA,UAAU,CAACiC,EAAE,EAAE/B,QAAQ,CAAC,GAAG,CAAC;IACvC,CAAC,CAAC;EACN,CAAC,EACD,CAAClB,QAAQ,EAAEQ,aAAa,CAC5B,CAAC;EAED,IAAM0C,YAAY,GAAG,IAAAvC,kBAAW,EAC5B,UAACC,cAAsB,EAAc;IACjC,IAAIJ,aAAa,EAAE;MACf,OAAO,IAAI;IACf;IACA,IAAMK,WAAW,GAAGV,cAAc,CAAwBS,cAAc,CAAC;IAEzE,IAAI,CAACC,WAAW,CAACC,MAAM,EAAE;MACrB,OAAO,KAAK;IAChB;IAEA,OAAOD,WAAW,CAACE,IAAI,CAAC,UAAAC,UAAU,EAAI;MAClC,OAAOA,UAAU,CAACiC,EAAE,EAAE/B,QAAQ,CAAC,GAAG,CAAC;IACvC,CAAC,CAAC;EACN,CAAC,EACD,CAAClB,QAAQ,EAAEQ,aAAa,CAC5B,CAAC;EAED,IAAM2C,oBAAoB,GAAGzC,OAAO,CAAC,kBAAkB,CAAC;EACxD,IAAM0C,yBAAyB,GAAG1C,OAAO,CAAC,uBAAuB,CAAC;EAClE,IAAM2C,sBAAsB,GAAGR,SAAS,CAAC,kBAAkB,CAAC;EAC5D,IAAMS,2BAA2B,GAAGT,SAAS,CAAC,uBAAuB,CAAC;EACtE,IAAMU,uBAAuB,GAAG,IAAA9C,cAAO,EAAC,YAAM;IAC1C,OAAOP,aAAa,CAAC,qBAAqB,CAAC,KAAKsD,SAAS;EAC7D,CAAC,EAAE,CAACxD,QAAQ,CAAC,CAAC;EAEd,OAAO;IACHmB,cAAc,EAAdA,cAAc;IACdsB,OAAO,EAAPA,OAAO;IACPI,SAAS,EAATA,SAAS;IACTC,SAAS,EAATA,SAAS;IACTC,gBAAgB,EAAhBA,gBAAgB;IAChBC,UAAU,EAAVA,UAAU;IACVE,YAAY,EAAZA,YAAY;IACZC,oBAAoB,EAApBA,oBAAoB;IACpBC,yBAAyB,EAAzBA,yBAAyB;IACzBC,sBAAsB,EAAtBA,sBAAsB;IACtBC,2BAA2B,EAA3BA,2BAA2B;IAC3BC,uBAAuB,EAAvBA;EACJ,CAAC;AACL,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AAHA,IAAAE,QAAA,GAAA7D,OAAA,CAAAqC,OAAA,GAIetC,aAAa","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { CmsModelField, CmsModelFieldRendererSettingsProps } from "@webiny/app-headless-cms-common/types";
3
+ export interface IAccordionRenderSettings {
4
+ open: boolean;
5
+ }
6
+ export declare const getAccordionRenderSettings: (field: CmsModelField) => IAccordionRenderSettings;
7
+ export declare const AccordionRenderSettings: ({ field }: CmsModelFieldRendererSettingsProps) => React.JSX.Element;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getAccordionRenderSettings = exports.AccordionRenderSettings = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _form = require("@webiny/form");
10
+ var _Grid = require("@webiny/ui/Grid");
11
+ var _Switch = require("@webiny/ui/Switch");
12
+ var DEFAULT_ACCORDION_RENDER_SETTINGS = {
13
+ open: false
14
+ };
15
+ var getAccordionRenderSettings = exports.getAccordionRenderSettings = function getAccordionRenderSettings(field) {
16
+ if (typeof field.renderer === "function") {
17
+ return DEFAULT_ACCORDION_RENDER_SETTINGS;
18
+ }
19
+ return field.renderer.settings ?? {};
20
+ };
21
+ var AccordionRenderSettings = exports.AccordionRenderSettings = function AccordionRenderSettings(_ref) {
22
+ var field = _ref.field;
23
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
24
+ span: 12
25
+ }, /*#__PURE__*/_react.default.createElement(_form.Bind, {
26
+ name: "renderer.settings.open",
27
+ defaultValue: false
28
+ }, /*#__PURE__*/_react.default.createElement(_Switch.Switch, {
29
+ label: "Expand Accordion",
30
+ description: "Enable if \"".concat(field.label, "\" is to be expanded by default.")
31
+ }))));
32
+ };
33
+
34
+ //# sourceMappingURL=AccordionRenderSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_form","_Grid","_Switch","DEFAULT_ACCORDION_RENDER_SETTINGS","open","getAccordionRenderSettings","exports","field","renderer","settings","AccordionRenderSettings","_ref","default","createElement","Fragment","Cell","span","Bind","name","defaultValue","Switch","label","description","concat"],"sources":["AccordionRenderSettings.tsx"],"sourcesContent":["import React from \"react\";\nimport { Bind } from \"@webiny/form\";\nimport { Cell } from \"@webiny/ui/Grid\";\nimport { Switch } from \"@webiny/ui/Switch\";\nimport {\n CmsModelField,\n CmsModelFieldRendererSettingsProps\n} from \"@webiny/app-headless-cms-common/types\";\n\nexport interface IAccordionRenderSettings {\n open: boolean;\n}\n\nconst DEFAULT_ACCORDION_RENDER_SETTINGS: IAccordionRenderSettings = {\n open: false\n};\n\nexport const getAccordionRenderSettings = (field: CmsModelField) => {\n if (typeof field.renderer === \"function\") {\n return DEFAULT_ACCORDION_RENDER_SETTINGS;\n }\n\n return (field.renderer.settings ?? {}) as IAccordionRenderSettings;\n};\n\nexport const AccordionRenderSettings = ({ field }: CmsModelFieldRendererSettingsProps) => {\n return (\n <>\n <Cell span={12}>\n <Bind name={\"renderer.settings.open\"} defaultValue={false}>\n <Switch\n label={\"Expand Accordion\"}\n description={`Enable if \"${field.label}\" is to be expanded by default.`}\n />\n </Bind>\n </Cell>\n </>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAUA,IAAMI,iCAA2D,GAAG;EAChEC,IAAI,EAAE;AACV,CAAC;AAEM,IAAMC,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG,SAA7BA,0BAA0BA,CAAIE,KAAoB,EAAK;EAChE,IAAI,OAAOA,KAAK,CAACC,QAAQ,KAAK,UAAU,EAAE;IACtC,OAAOL,iCAAiC;EAC5C;EAEA,OAAQI,KAAK,CAACC,QAAQ,CAACC,QAAQ,IAAI,CAAC,CAAC;AACzC,CAAC;AAEM,IAAMC,uBAAuB,GAAAJ,OAAA,CAAAI,uBAAA,GAAG,SAA1BA,uBAAuBA,CAAAC,IAAA,EAAsD;EAAA,IAAhDJ,KAAK,GAAAI,IAAA,CAALJ,KAAK;EAC3C,oBACIV,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAAAhB,MAAA,CAAAe,OAAA,CAAAE,QAAA,qBACIjB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACZ,KAAA,CAAAc,IAAI;IAACC,IAAI,EAAE;EAAG,gBACXnB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACb,KAAA,CAAAiB,IAAI;IAACC,IAAI,EAAE,wBAAyB;IAACC,YAAY,EAAE;EAAM,gBACtDtB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACX,OAAA,CAAAkB,MAAM;IACHC,KAAK,EAAE,kBAAmB;IAC1BC,WAAW,iBAAAC,MAAA,CAAgBhB,KAAK,CAACc,KAAK;EAAkC,CAC3E,CACC,CACJ,CACR,CAAC;AAEX,CAAC","ignoreList":[]}
@@ -9,11 +9,10 @@ export interface MultiValueItemContainerProps {
9
9
  onMoveUp: () => void;
10
10
  onMoveDown: () => void;
11
11
  onDelete: () => void;
12
- onClone: () => void;
12
+ onClone: (value: TemplateValue) => void;
13
13
  title: React.ReactNode;
14
14
  description: string;
15
15
  icon: JSX.Element;
16
- actions: JSX.Element;
17
16
  template: CmsDynamicZoneTemplate;
18
17
  children: React.ReactNode;
19
18
  }
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.MultiValueItemContainer = exports.MultiValueItem = exports.MultiValueDynamicZone = exports.MultiValueContainer = void 0;
8
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
8
9
  var _base = _interopRequireDefault(require("@emotion/styled/base"));
9
10
  var _react = _interopRequireDefault(require("react"));
10
11
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
@@ -20,6 +21,7 @@ var _Fields = require("../../../components/ContentEntryForm/Fields");
20
21
  var _reactComposition = require("@webiny/react-composition");
21
22
  var _TemplateProvider = require("./TemplateProvider");
22
23
  var _ModelFieldProvider = require("../../../components/ModelFieldProvider");
24
+ var _excluded = ["children"];
23
25
  function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
24
26
  var BottomMargin = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
25
27
  target: "e1mhu37c0"
@@ -32,19 +34,33 @@ var BottomMargin = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV =
32
34
  } : {
33
35
  name: "1azpx8r",
34
36
  styles: "margin-bottom:20px",
35
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk11bHRpVmFsdWVEeW5hbWljWm9uZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUIrQiIsImZpbGUiOiJNdWx0aVZhbHVlRHluYW1pY1pvbmUudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gXCJsb2Rhc2gvY2xvbmVEZWVwXCI7XG5pbXBvcnQgeyBBY2NvcmRpb24sIEFjY29yZGlvbkl0ZW0gfSBmcm9tIFwiQHdlYmlueS91aS9BY2NvcmRpb25cIjtcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIERlbGV0ZUljb24gfSBmcm9tIFwiQG1hdGVyaWFsLWRlc2lnbi1pY29ucy9zdmcvb3V0bGluZWQvZGVsZXRlX291dGxpbmUuc3ZnXCI7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBDbG9uZUljb24gfSBmcm9tIFwiQG1hdGVyaWFsLWRlc2lnbi1pY29ucy9zdmcvb3V0bGluZWQvbGlicmFyeV9hZGQuc3ZnXCI7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBBcnJvd1VwSWNvbiB9IGZyb20gXCJAbWF0ZXJpYWwtZGVzaWduLWljb25zL3N2Zy9yb3VuZC9leHBhbmRfbGVzcy5zdmdcIjtcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIEFycm93RG93bkljb24gfSBmcm9tIFwiQG1hdGVyaWFsLWRlc2lnbi1pY29ucy9zdmcvcm91bmQvZXhwYW5kX21vcmUuc3ZnXCI7XG5pbXBvcnQgeyBBZGRUZW1wbGF0ZUJ1dHRvbiwgQWRkVGVtcGxhdGVJY29uIH0gZnJvbSBcIi4vQWRkVGVtcGxhdGVcIjtcbmltcG9ydCB7IFRlbXBsYXRlSWNvbiB9IGZyb20gXCIuL1RlbXBsYXRlSWNvblwiO1xuaW1wb3J0IHsgUGFyZW50RmllbGRQcm92aWRlciwgdXNlTW9kZWxGaWVsZCB9IGZyb20gXCJ+L2FkbWluL2hvb2tzXCI7XG5pbXBvcnQgeyBGaWVsZHMgfSBmcm9tIFwifi9hZG1pbi9jb21wb25lbnRzL0NvbnRlbnRFbnRyeUZvcm0vRmllbGRzXCI7XG5pbXBvcnQge1xuICAgIEJpbmRDb21wb25lbnQsXG4gICAgQmluZENvbXBvbmVudFJlbmRlclByb3AsXG4gICAgQ21zRHluYW1pY1pvbmVUZW1wbGF0ZSxcbiAgICBDbXNNb2RlbEZpZWxkUmVuZGVyZXJQcm9wcyxcbiAgICBDbXNNb2RlbCxcbiAgICBDbXNNb2RlbEZpZWxkLFxuICAgIENtc0R5bmFtaWNab25lVGVtcGxhdGVXaXRoVHlwZW5hbWVcbn0gZnJvbSBcIn4vdHlwZXNcIjtcbmltcG9ydCB7IG1ha2VEZWNvcmF0YWJsZSB9IGZyb20gXCJAd2ViaW55L3JlYWN0LWNvbXBvc2l0aW9uXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVByb3ZpZGVyIH0gZnJvbSBcIn4vYWRtaW4vcGx1Z2lucy9maWVsZFJlbmRlcmVycy9keW5hbWljWm9uZS9UZW1wbGF0ZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBQYXJlbnRWYWx1ZUluZGV4UHJvdmlkZXIgfSBmcm9tIFwifi9hZG1pbi9jb21wb25lbnRzL01vZGVsRmllbGRQcm92aWRlclwiO1xuXG5jb25zdCBCb3R0b21NYXJnaW4gPSBzdHlsZWQuZGl2YFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5gO1xuXG50eXBlIEdldEJpbmQgPSBDbXNNb2RlbEZpZWxkUmVuZGVyZXJQcm9wc1tcImdldEJpbmRcIl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlWYWx1ZUl0ZW1Db250YWluZXJQcm9wcyB7XG4gICAgdmFsdWU6IFRlbXBsYXRlVmFsdWU7XG4gICAgY29udGVudE1vZGVsOiBDbXNNb2RlbDtcbiAgICBpc0ZpcnN0OiBib29sZWFuO1xuICAgIGlzTGFzdDogYm9vbGVhbjtcbiAgICBvbk1vdmVVcDogKCkgPT4gdm9pZDtcbiAgICBvbk1vdmVEb3duOiAoKSA9PiB2b2lkO1xuICAgIG9uRGVsZXRlOiAoKSA9PiB2b2lkO1xuICAgIG9uQ2xvbmU6ICgpID0+IHZvaWQ7XG4gICAgdGl0bGU6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGljb246IEpTWC5FbGVtZW50O1xuICAgIGFjdGlvbnM6IEpTWC5FbGVtZW50O1xuICAgIHRlbXBsYXRlOiBDbXNEeW5hbWljWm9uZVRlbXBsYXRlO1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBjb25zdCBNdWx0aVZhbHVlSXRlbUNvbnRhaW5lciA9IG1ha2VEZWNvcmF0YWJsZShcbiAgICBcIk11bHRpVmFsdWVJdGVtQ29udGFpbmVyXCIsXG4gICAgKHsgdGl0bGUsIGRlc2NyaXB0aW9uLCBpY29uLCBhY3Rpb25zLCBjaGlsZHJlbiB9OiBNdWx0aVZhbHVlSXRlbUNvbnRhaW5lclByb3BzKSA9PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QWNjb3JkaW9uSXRlbSB0aXRsZT17dGl0bGV9IGRlc2NyaXB0aW9uPXtkZXNjcmlwdGlvbn0gaWNvbj17aWNvbn0gYWN0aW9ucz17YWN0aW9uc30+XG4gICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9BY2NvcmRpb25JdGVtPlxuICAgICAgICApO1xuICAgIH1cbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlWYWx1ZUl0ZW1JdGVtUHJvcHMge1xuICAgIHRlbXBsYXRlOiBDbXNEeW5hbWljWm9uZVRlbXBsYXRlO1xuICAgIGNvbnRlbnRNb2RlbDogQ21zTW9kZWw7XG4gICAgQmluZDogQmluZENvbXBvbmVudDtcbn1cblxuZXhwb3J0IGNvbnN0IE11bHRpVmFsdWVJdGVtID0gbWFrZURlY29yYXRhYmxlKFxuICAgIFwiTXVsdGlWYWx1ZUl0ZW1cIixcbiAgICAocHJvcHM6IE11bHRpVmFsdWVJdGVtSXRlbVByb3BzKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgdGVtcGxhdGUsIEJpbmQsIGNvbnRlbnRNb2RlbCB9ID0gcHJvcHM7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxUZW1wbGF0ZVByb3ZpZGVyIHRlbXBsYXRlPXt0ZW1wbGF0ZX0+XG4gICAgICAgICAgICAgICAgPEZpZWxkc1xuICAgICAgICAgICAgICAgICAgICBmaWVsZHM9e3RlbXBsYXRlLmZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgbGF5b3V0PXt0ZW1wbGF0ZS5sYXlvdXQgfHwgW119XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRNb2RlbD17Y29udGVudE1vZGVsfVxuICAgICAgICAgICAgICAgICAgICBCaW5kPXtCaW5kfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1RlbXBsYXRlUHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgfVxuKTtcblxuaW50ZXJmYWNlIFRlbXBsYXRlVmFsdWUge1xuICAgIF90ZW1wbGF0ZUlkOiBzdHJpbmc7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5pbnRlcmZhY2UgVGVtcGxhdGVWYWx1ZUZvcm1Qcm9wcyB7XG4gICAgdmFsdWU6IFRlbXBsYXRlVmFsdWU7XG4gICAgY29udGVudE1vZGVsOiBDbXNNb2RlbDtcbiAgICBCaW5kOiBCaW5kQ29tcG9uZW50O1xuICAgIGlzRmlyc3Q6IGJvb2xlYW47XG4gICAgaXNMYXN0OiBib29sZWFuO1xuICAgIG9uTW92ZVVwOiAoKSA9PiB2b2lkO1xuICAgIG9uTW92ZURvd246ICgpID0+IHZvaWQ7XG4gICAgb25EZWxldGU6ICgpID0+IHZvaWQ7XG4gICAgb25DbG9uZTogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgVGVtcGxhdGVWYWx1ZUZvcm0gPSAoe1xuICAgIHZhbHVlLFxuICAgIGNvbnRlbnRNb2RlbCxcbiAgICBCaW5kLFxuICAgIGlzTGFzdCxcbiAgICBpc0ZpcnN0LFxuICAgIG9uTW92ZVVwLFxuICAgIG9uTW92ZURvd24sXG4gICAgb25EZWxldGUsXG4gICAgb25DbG9uZVxufTogVGVtcGxhdGVWYWx1ZUZvcm1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgZmllbGQgfSA9IHVzZU1vZGVsRmllbGQoKTtcbiAgICBjb25zdCB0ZW1wbGF0ZXMgPSBmaWVsZC5zZXR0aW5ncz8udGVtcGxhdGVzIHx8IFtdO1xuXG4gICAgY29uc3QgdGVtcGxhdGU6IENtc0R5bmFtaWNab25lVGVtcGxhdGUgfCB1bmRlZmluZWQgPSB0ZW1wbGF0ZXMuZmluZChcbiAgICAgICAgdHBsID0+IHRwbC5pZCA9PT0gdmFsdWUuX3RlbXBsYXRlSWRcbiAgICApO1xuXG4gICAgaWYgKCF0ZW1wbGF0ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8TXVsdGlWYWx1ZUl0ZW1Db250YWluZXJcbiAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgIGNvbnRlbnRNb2RlbD17Y29udGVudE1vZGVsfVxuICAgICAgICAgICAgb25DbG9uZT17b25DbG9uZX1cbiAgICAgICAgICAgIGlzRmlyc3Q9e2lzRmlyc3R9XG4gICAgICAgICAgICBpc0xhc3Q9e2lzTGFzdH1cbiAgICAgICAgICAgIG9uRGVsZXRlPXtvbkRlbGV0ZX1cbiAgICAgICAgICAgIG9uTW92ZVVwPXtvbk1vdmVVcH1cbiAgICAgICAgICAgIG9uTW92ZURvd249e29uTW92ZURvd259XG4gICAgICAgICAgICB0aXRsZT17dGVtcGxhdGUubmFtZX1cbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0ZW1wbGF0ZS5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAgIGljb249ezxUZW1wbGF0ZUljb24gaWNvbj17dGVtcGxhdGUuaWNvbn0gLz59XG4gICAgICAgICAgICB0ZW1wbGF0ZT17dGVtcGxhdGV9XG4gICAgICAgICAgICBhY3Rpb25zPXtcbiAgICAgICAgICAgICAgICA8QWNjb3JkaW9uSXRlbS5BY3Rpb25zPlxuICAgICAgICAgICAgICAgICAgICA8QWNjb3JkaW9uSXRlbS5BY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249ezxBcnJvd1VwSWNvbiAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uTW92ZVVwfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzRmlyc3R9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxBY2NvcmRpb25JdGVtLkFjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PEFycm93RG93bkljb24gLz59XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbk1vdmVEb3dufVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzTGFzdH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPEFjY29yZGlvbkl0ZW0uRGl2aWRlciAvPlxuICAgICAgICAgICAgICAgICAgICA8QWNjb3JkaW9uSXRlbS5BY3Rpb24gaWNvbj17PENsb25lSWNvbiAvPn0gb25DbGljaz17b25DbG9uZX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPEFjY29yZGlvbkl0ZW0uQWN0aW9uIGljb249ezxEZWxldGVJY29uIC8+fSBvbkNsaWNrPXtvbkRlbGV0ZX0gLz5cbiAgICAgICAgICAgICAgICA8L0FjY29yZGlvbkl0ZW0uQWN0aW9ucz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgICAgPE11bHRpVmFsdWVJdGVtIHRlbXBsYXRlPXt0ZW1wbGF0ZX0gY29udGVudE1vZGVsPXtjb250ZW50TW9kZWx9IEJpbmQ9e0JpbmR9IC8+XG4gICAgICAgIDwvTXVsdGlWYWx1ZUl0ZW1Db250YWluZXI+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlWYWx1ZUNvbnRhaW5lclByb3BzIGV4dGVuZHMgTXVsdGlWYWx1ZUR5bmFtaWNab25lUHJvcHMge1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBjb25zdCBNdWx0aVZhbHVlQ29udGFpbmVyID0gbWFrZURlY29yYXRhYmxlKFxuICAgIFwiTXVsdGlWYWx1ZUNvbnRhaW5lclwiLFxuICAgICh7IGNoaWxkcmVuIH06IE11bHRpVmFsdWVDb250YWluZXJQcm9wcykgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEFjY29yZGlvbj5cbiAgICAgICAgICAgICAgICA8PntjaGlsZHJlbn08Lz5cbiAgICAgICAgICAgIDwvQWNjb3JkaW9uPlxuICAgICAgICApO1xuICAgIH1cbik7XG5cbmludGVyZmFjZSBNdWx0aVZhbHVlRHluYW1pY1pvbmVQcm9wcyB7XG4gICAgLy8gVE9ETzogdGhpcyBwcm9wIG1pZ2h0IGJlIHVzZWxlc3MsIGJlY2F1c2Ugd2Ugbm93IGhhdmUgYSBgdXNlTW9kZWxGaWVsZGAgaG9vay5cbiAgICBmaWVsZDogQ21zTW9kZWxGaWVsZDtcbiAgICBiaW5kOiBCaW5kQ29tcG9uZW50UmVuZGVyUHJvcDtcbiAgICBjb250ZW50TW9kZWw6IENtc01vZGVsO1xuICAgIGdldEJpbmQ6IEdldEJpbmQ7XG59XG5cbmV4cG9ydCBjb25zdCBNdWx0aVZhbHVlRHluYW1pY1pvbmUgPSAocHJvcHM6IE11bHRpVmFsdWVEeW5hbWljWm9uZVByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBiaW5kLCBnZXRCaW5kLCBjb250ZW50TW9kZWwgfSA9IHByb3BzO1xuICAgIGNvbnN0IG9uVGVtcGxhdGUgPSAodGVtcGxhdGU6IENtc0R5bmFtaWNab25lVGVtcGxhdGVXaXRoVHlwZW5hbWUpID0+IHtcbiAgICAgICAgYmluZC5hcHBlbmRWYWx1ZSh7IF90ZW1wbGF0ZUlkOiB0ZW1wbGF0ZS5pZCwgX190eXBlbmFtZTogdGVtcGxhdGUuX190eXBlbmFtZSB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2xvbmVWYWx1ZSA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY2xvbmVEZWVwKGJpbmQudmFsdWVbaW5kZXhdKTtcbiAgICAgICAgYmluZC5hcHBlbmRWYWx1ZShuZXdWYWx1ZSwgaW5kZXggKyAxKTtcbiAgICB9O1xuXG4gICAgY29uc3QgdmFsdWVzOiBUZW1wbGF0ZVZhbHVlW10gPSBiaW5kLnZhbHVlIHx8IFtdO1xuICAgIGNvbnN0IGhhc1ZhbHVlcyA9IHZhbHVlcy5sZW5ndGggPiAwO1xuXG4gICAgY29uc3QgQmluZCA9IGdldEJpbmQoKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICB7aGFzVmFsdWVzID8gKFxuICAgICAgICAgICAgICAgIDxQYXJlbnRGaWVsZFByb3ZpZGVyIHZhbHVlPXtiaW5kLnZhbHVlfSBwYXRoPXtCaW5kLnBhcmVudE5hbWV9PlxuICAgICAgICAgICAgICAgICAgICA8TXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9PlxuICAgICAgICAgICAgICAgICAgICAgICAge3ZhbHVlcy5tYXAoKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJpbmQgPSBnZXRCaW5kKGluZGV4KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQYXJlbnRWYWx1ZUluZGV4UHJvdmlkZXIga2V5PXtpbmRleH0gaW5kZXg9e2luZGV4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZW1wbGF0ZVZhbHVlRm9ybVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50TW9kZWw9e2NvbnRlbnRNb2RlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaW5kPXtCaW5kfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRmlyc3Q9e2luZGV4ID09PSAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTGFzdD17aW5kZXggPT09IHZhbHVlcy5sZW5ndGggLSAxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW92ZVVwPXsoKSA9PiBiaW5kLm1vdmVWYWx1ZVVwKGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdmVEb3duPXsoKSA9PiBiaW5kLm1vdmVWYWx1ZURvd24oaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRGVsZXRlPXsoKSA9PiBiaW5kLnJlbW92ZVZhbHVlKGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsb25lPXsoKSA9PiBjbG9uZVZhbHVlKGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUGFyZW50VmFsdWVJbmRleFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgPC9NdWx0aVZhbHVlQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvUGFyZW50RmllbGRQcm92aWRlcj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc1ZhbHVlcyA/IChcbiAgICAgICAgICAgICAgICA8QWRkVGVtcGxhdGVJY29uIG9uVGVtcGxhdGU9e29uVGVtcGxhdGV9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxCb3R0b21NYXJnaW4+XG4gICAgICAgICAgICAgICAgICAgIDxBZGRUZW1wbGF0ZUJ1dHRvbiBvblRlbXBsYXRlPXtvblRlbXBsYXRlfSAvPlxuICAgICAgICAgICAgICAgIDwvQm90dG9tTWFyZ2luPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgPC8+XG4gICAgKTtcbn07XG4iXX0= */",
37
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk11bHRpVmFsdWVEeW5hbWljWm9uZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUIrQiIsImZpbGUiOiJNdWx0aVZhbHVlRHluYW1pY1pvbmUudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gXCJsb2Rhc2gvY2xvbmVEZWVwXCI7XG5pbXBvcnQgeyBBY2NvcmRpb24sIEFjY29yZGlvbkl0ZW0gfSBmcm9tIFwiQHdlYmlueS91aS9BY2NvcmRpb25cIjtcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIERlbGV0ZUljb24gfSBmcm9tIFwiQG1hdGVyaWFsLWRlc2lnbi1pY29ucy9zdmcvb3V0bGluZWQvZGVsZXRlX291dGxpbmUuc3ZnXCI7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBDbG9uZUljb24gfSBmcm9tIFwiQG1hdGVyaWFsLWRlc2lnbi1pY29ucy9zdmcvb3V0bGluZWQvbGlicmFyeV9hZGQuc3ZnXCI7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBBcnJvd1VwSWNvbiB9IGZyb20gXCJAbWF0ZXJpYWwtZGVzaWduLWljb25zL3N2Zy9yb3VuZC9leHBhbmRfbGVzcy5zdmdcIjtcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIEFycm93RG93bkljb24gfSBmcm9tIFwiQG1hdGVyaWFsLWRlc2lnbi1pY29ucy9zdmcvcm91bmQvZXhwYW5kX21vcmUuc3ZnXCI7XG5pbXBvcnQgeyBBZGRUZW1wbGF0ZUJ1dHRvbiwgQWRkVGVtcGxhdGVJY29uIH0gZnJvbSBcIi4vQWRkVGVtcGxhdGVcIjtcbmltcG9ydCB7IFRlbXBsYXRlSWNvbiB9IGZyb20gXCIuL1RlbXBsYXRlSWNvblwiO1xuaW1wb3J0IHsgUGFyZW50RmllbGRQcm92aWRlciwgdXNlTW9kZWxGaWVsZCB9IGZyb20gXCJ+L2FkbWluL2hvb2tzXCI7XG5pbXBvcnQgeyBGaWVsZHMgfSBmcm9tIFwifi9hZG1pbi9jb21wb25lbnRzL0NvbnRlbnRFbnRyeUZvcm0vRmllbGRzXCI7XG5pbXBvcnQge1xuICAgIEJpbmRDb21wb25lbnQsXG4gICAgQmluZENvbXBvbmVudFJlbmRlclByb3AsXG4gICAgQ21zRHluYW1pY1pvbmVUZW1wbGF0ZSxcbiAgICBDbXNNb2RlbEZpZWxkUmVuZGVyZXJQcm9wcyxcbiAgICBDbXNNb2RlbCxcbiAgICBDbXNNb2RlbEZpZWxkLFxuICAgIENtc0R5bmFtaWNab25lVGVtcGxhdGVXaXRoVHlwZW5hbWVcbn0gZnJvbSBcIn4vdHlwZXNcIjtcbmltcG9ydCB7IG1ha2VEZWNvcmF0YWJsZSB9IGZyb20gXCJAd2ViaW55L3JlYWN0LWNvbXBvc2l0aW9uXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVByb3ZpZGVyIH0gZnJvbSBcIn4vYWRtaW4vcGx1Z2lucy9maWVsZFJlbmRlcmVycy9keW5hbWljWm9uZS9UZW1wbGF0ZVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBQYXJlbnRWYWx1ZUluZGV4UHJvdmlkZXIgfSBmcm9tIFwifi9hZG1pbi9jb21wb25lbnRzL01vZGVsRmllbGRQcm92aWRlclwiO1xuXG5jb25zdCBCb3R0b21NYXJnaW4gPSBzdHlsZWQuZGl2YFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5gO1xuXG50eXBlIEdldEJpbmQgPSBDbXNNb2RlbEZpZWxkUmVuZGVyZXJQcm9wc1tcImdldEJpbmRcIl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlWYWx1ZUl0ZW1Db250YWluZXJQcm9wcyB7XG4gICAgdmFsdWU6IFRlbXBsYXRlVmFsdWU7XG4gICAgY29udGVudE1vZGVsOiBDbXNNb2RlbDtcbiAgICBpc0ZpcnN0OiBib29sZWFuO1xuICAgIGlzTGFzdDogYm9vbGVhbjtcbiAgICBvbk1vdmVVcDogKCkgPT4gdm9pZDtcbiAgICBvbk1vdmVEb3duOiAoKSA9PiB2b2lkO1xuICAgIG9uRGVsZXRlOiAoKSA9PiB2b2lkO1xuICAgIG9uQ2xvbmU6ICh2YWx1ZTogVGVtcGxhdGVWYWx1ZSkgPT4gdm9pZDtcbiAgICB0aXRsZTogUmVhY3QuUmVhY3ROb2RlO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgaWNvbjogSlNYLkVsZW1lbnQ7XG4gICAgdGVtcGxhdGU6IENtc0R5bmFtaWNab25lVGVtcGxhdGU7XG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IE11bHRpVmFsdWVJdGVtQ29udGFpbmVyID0gbWFrZURlY29yYXRhYmxlKFxuICAgIFwiTXVsdGlWYWx1ZUl0ZW1Db250YWluZXJcIixcbiAgICAoeyBjaGlsZHJlbiwgLi4ucHJvcHMgfTogTXVsdGlWYWx1ZUl0ZW1Db250YWluZXJQcm9wcykgPT4ge1xuICAgICAgICBjb25zdCBhY3Rpb25zID0gKFxuICAgICAgICAgICAgPEFjY29yZGlvbkl0ZW0uQWN0aW9ucz5cbiAgICAgICAgICAgICAgICA8QWNjb3JkaW9uSXRlbS5BY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgaWNvbj17PEFycm93VXBJY29uIC8+fVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtwcm9wcy5vbk1vdmVVcH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3Byb3BzLmlzRmlyc3R9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8QWNjb3JkaW9uSXRlbS5BY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgaWNvbj17PEFycm93RG93bkljb24gLz59XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uTW92ZURvd259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtwcm9wcy5pc0xhc3R9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8QWNjb3JkaW9uSXRlbS5EaXZpZGVyIC8+XG4gICAgICAgICAgICAgICAgPEFjY29yZGlvbkl0ZW0uQWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIGljb249ezxDbG9uZUljb24gLz59XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHByb3BzLm9uQ2xvbmUocHJvcHMudmFsdWUpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEFjY29yZGlvbkl0ZW0uQWN0aW9uIGljb249ezxEZWxldGVJY29uIC8+fSBvbkNsaWNrPXtwcm9wcy5vbkRlbGV0ZX0gLz5cbiAgICAgICAgICAgIDwvQWNjb3JkaW9uSXRlbS5BY3Rpb25zPlxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QWNjb3JkaW9uSXRlbVxuICAgICAgICAgICAgICAgIHRpdGxlPXtwcm9wcy50aXRsZX1cbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17cHJvcHMuZGVzY3JpcHRpb259XG4gICAgICAgICAgICAgICAgaWNvbj17cHJvcHMuaWNvbn1cbiAgICAgICAgICAgICAgICBhY3Rpb25zPXthY3Rpb25zfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgIDwvQWNjb3JkaW9uSXRlbT5cbiAgICAgICAgKTtcbiAgICB9XG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpVmFsdWVJdGVtSXRlbVByb3BzIHtcbiAgICB0ZW1wbGF0ZTogQ21zRHluYW1pY1pvbmVUZW1wbGF0ZTtcbiAgICBjb250ZW50TW9kZWw6IENtc01vZGVsO1xuICAgIEJpbmQ6IEJpbmRDb21wb25lbnQ7XG59XG5cbmV4cG9ydCBjb25zdCBNdWx0aVZhbHVlSXRlbSA9IG1ha2VEZWNvcmF0YWJsZShcbiAgICBcIk11bHRpVmFsdWVJdGVtXCIsXG4gICAgKHByb3BzOiBNdWx0aVZhbHVlSXRlbUl0ZW1Qcm9wcykgPT4ge1xuICAgICAgICBjb25zdCB7IHRlbXBsYXRlLCBCaW5kLCBjb250ZW50TW9kZWwgfSA9IHByb3BzO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8VGVtcGxhdGVQcm92aWRlciB0ZW1wbGF0ZT17dGVtcGxhdGV9PlxuICAgICAgICAgICAgICAgIDxGaWVsZHNcbiAgICAgICAgICAgICAgICAgICAgZmllbGRzPXt0ZW1wbGF0ZS5maWVsZHN9XG4gICAgICAgICAgICAgICAgICAgIGxheW91dD17dGVtcGxhdGUubGF5b3V0IHx8IFtdfVxuICAgICAgICAgICAgICAgICAgICBjb250ZW50TW9kZWw9e2NvbnRlbnRNb2RlbH1cbiAgICAgICAgICAgICAgICAgICAgQmluZD17QmluZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9UZW1wbGF0ZVByb3ZpZGVyPlxuICAgICAgICApO1xuICAgIH1cbik7XG5cbmludGVyZmFjZSBUZW1wbGF0ZVZhbHVlIHtcbiAgICBfdGVtcGxhdGVJZDogc3RyaW5nO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuaW50ZXJmYWNlIFRlbXBsYXRlVmFsdWVGb3JtUHJvcHMge1xuICAgIHZhbHVlOiBUZW1wbGF0ZVZhbHVlO1xuICAgIGNvbnRlbnRNb2RlbDogQ21zTW9kZWw7XG4gICAgQmluZDogQmluZENvbXBvbmVudDtcbiAgICBpc0ZpcnN0OiBib29sZWFuO1xuICAgIGlzTGFzdDogYm9vbGVhbjtcbiAgICBvbk1vdmVVcDogKCkgPT4gdm9pZDtcbiAgICBvbk1vdmVEb3duOiAoKSA9PiB2b2lkO1xuICAgIG9uRGVsZXRlOiAoKSA9PiB2b2lkO1xuICAgIG9uQ2xvbmU6ICh2YWx1ZTogVGVtcGxhdGVWYWx1ZSkgPT4gdm9pZDtcbn1cblxuY29uc3QgVGVtcGxhdGVWYWx1ZUZvcm0gPSAoe1xuICAgIHZhbHVlLFxuICAgIGNvbnRlbnRNb2RlbCxcbiAgICBCaW5kLFxuICAgIGlzTGFzdCxcbiAgICBpc0ZpcnN0LFxuICAgIG9uTW92ZVVwLFxuICAgIG9uTW92ZURvd24sXG4gICAgb25EZWxldGUsXG4gICAgb25DbG9uZVxufTogVGVtcGxhdGVWYWx1ZUZvcm1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgZmllbGQgfSA9IHVzZU1vZGVsRmllbGQoKTtcbiAgICBjb25zdCB0ZW1wbGF0ZXMgPSBmaWVsZC5zZXR0aW5ncz8udGVtcGxhdGVzIHx8IFtdO1xuXG4gICAgY29uc3QgdGVtcGxhdGU6IENtc0R5bmFtaWNab25lVGVtcGxhdGUgfCB1bmRlZmluZWQgPSB0ZW1wbGF0ZXMuZmluZChcbiAgICAgICAgdHBsID0+IHRwbC5pZCA9PT0gdmFsdWUuX3RlbXBsYXRlSWRcbiAgICApO1xuXG4gICAgaWYgKCF0ZW1wbGF0ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8TXVsdGlWYWx1ZUl0ZW1Db250YWluZXJcbiAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgIGNvbnRlbnRNb2RlbD17Y29udGVudE1vZGVsfVxuICAgICAgICAgICAgaXNGaXJzdD17aXNGaXJzdH1cbiAgICAgICAgICAgIGlzTGFzdD17aXNMYXN0fVxuICAgICAgICAgICAgb25DbG9uZT17b25DbG9uZX1cbiAgICAgICAgICAgIG9uRGVsZXRlPXtvbkRlbGV0ZX1cbiAgICAgICAgICAgIG9uTW92ZVVwPXtvbk1vdmVVcH1cbiAgICAgICAgICAgIG9uTW92ZURvd249e29uTW92ZURvd259XG4gICAgICAgICAgICB0aXRsZT17dGVtcGxhdGUubmFtZX1cbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0ZW1wbGF0ZS5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAgIGljb249ezxUZW1wbGF0ZUljb24gaWNvbj17dGVtcGxhdGUuaWNvbn0gLz59XG4gICAgICAgICAgICB0ZW1wbGF0ZT17dGVtcGxhdGV9XG4gICAgICAgID5cbiAgICAgICAgICAgIDxNdWx0aVZhbHVlSXRlbSB0ZW1wbGF0ZT17dGVtcGxhdGV9IGNvbnRlbnRNb2RlbD17Y29udGVudE1vZGVsfSBCaW5kPXtCaW5kfSAvPlxuICAgICAgICA8L011bHRpVmFsdWVJdGVtQ29udGFpbmVyPlxuICAgICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpVmFsdWVDb250YWluZXJQcm9wcyBleHRlbmRzIE11bHRpVmFsdWVEeW5hbWljWm9uZVByb3BzIHtcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IG1ha2VEZWNvcmF0YWJsZShcbiAgICBcIk11bHRpVmFsdWVDb250YWluZXJcIixcbiAgICAoeyBjaGlsZHJlbiB9OiBNdWx0aVZhbHVlQ29udGFpbmVyUHJvcHMpID0+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxBY2NvcmRpb24+XG4gICAgICAgICAgICAgICAgPD57Y2hpbGRyZW59PC8+XG4gICAgICAgICAgICA8L0FjY29yZGlvbj5cbiAgICAgICAgKTtcbiAgICB9XG4pO1xuXG5pbnRlcmZhY2UgTXVsdGlWYWx1ZUR5bmFtaWNab25lUHJvcHMge1xuICAgIC8vIFRPRE86IHRoaXMgcHJvcCBtaWdodCBiZSB1c2VsZXNzLCBiZWNhdXNlIHdlIG5vdyBoYXZlIGEgYHVzZU1vZGVsRmllbGRgIGhvb2suXG4gICAgZmllbGQ6IENtc01vZGVsRmllbGQ7XG4gICAgYmluZDogQmluZENvbXBvbmVudFJlbmRlclByb3A7XG4gICAgY29udGVudE1vZGVsOiBDbXNNb2RlbDtcbiAgICBnZXRCaW5kOiBHZXRCaW5kO1xufVxuXG5leHBvcnQgY29uc3QgTXVsdGlWYWx1ZUR5bmFtaWNab25lID0gKHByb3BzOiBNdWx0aVZhbHVlRHluYW1pY1pvbmVQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgYmluZCwgZ2V0QmluZCwgY29udGVudE1vZGVsIH0gPSBwcm9wcztcbiAgICBjb25zdCBvblRlbXBsYXRlID0gKHRlbXBsYXRlOiBDbXNEeW5hbWljWm9uZVRlbXBsYXRlV2l0aFR5cGVuYW1lKSA9PiB7XG4gICAgICAgIGJpbmQuYXBwZW5kVmFsdWUoeyBfdGVtcGxhdGVJZDogdGVtcGxhdGUuaWQsIF9fdHlwZW5hbWU6IHRlbXBsYXRlLl9fdHlwZW5hbWUgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNsb25lVmFsdWUgPSAodmFsdWU6IFRlbXBsYXRlVmFsdWUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgYmluZC5hcHBlbmRWYWx1ZShjbG9uZURlZXAodmFsdWUpLCBpbmRleCArIDEpO1xuICAgIH07XG5cbiAgICBjb25zdCB2YWx1ZXM6IFRlbXBsYXRlVmFsdWVbXSA9IGJpbmQudmFsdWUgfHwgW107XG4gICAgY29uc3QgaGFzVmFsdWVzID0gdmFsdWVzLmxlbmd0aCA+IDA7XG5cbiAgICBjb25zdCBCaW5kID0gZ2V0QmluZCgpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICAgIHtoYXNWYWx1ZXMgPyAoXG4gICAgICAgICAgICAgICAgPFBhcmVudEZpZWxkUHJvdmlkZXIgdmFsdWU9e2JpbmQudmFsdWV9IHBhdGg9e0JpbmQucGFyZW50TmFtZX0+XG4gICAgICAgICAgICAgICAgICAgIDxNdWx0aVZhbHVlQ29udGFpbmVyIHsuLi5wcm9wc30+XG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsdWVzLm1hcCgodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmluZCA9IGdldEJpbmQoaW5kZXgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBhcmVudFZhbHVlSW5kZXhQcm92aWRlciBrZXk9e2luZGV4fSBpbmRleD17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRlbXBsYXRlVmFsdWVGb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRNb2RlbD17Y29udGVudE1vZGVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpbmQ9e0JpbmR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGaXJzdD17aW5kZXggPT09IDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMYXN0PXtpbmRleCA9PT0gdmFsdWVzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3ZlVXA9eygpID0+IGJpbmQubW92ZVZhbHVlVXAoaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW92ZURvd249eygpID0+IGJpbmQubW92ZVZhbHVlRG93bihpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25EZWxldGU9eygpID0+IGJpbmQucmVtb3ZlVmFsdWUoaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xvbmU9e3ZhbHVlID0+IGNsb25lVmFsdWUodmFsdWUsIGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUGFyZW50VmFsdWVJbmRleFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgPC9NdWx0aVZhbHVlQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvUGFyZW50RmllbGRQcm92aWRlcj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc1ZhbHVlcyA/IChcbiAgICAgICAgICAgICAgICA8QWRkVGVtcGxhdGVJY29uIG9uVGVtcGxhdGU9e29uVGVtcGxhdGV9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxCb3R0b21NYXJnaW4+XG4gICAgICAgICAgICAgICAgICAgIDxBZGRUZW1wbGF0ZUJ1dHRvbiBvblRlbXBsYXRlPXtvblRlbXBsYXRlfSAvPlxuICAgICAgICAgICAgICAgIDwvQm90dG9tTWFyZ2luPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgPC8+XG4gICAgKTtcbn07XG4iXX0= */",
36
38
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
37
39
  });
38
40
  var MultiValueItemContainer = exports.MultiValueItemContainer = (0, _reactComposition.makeDecoratable)("MultiValueItemContainer", function (_ref) {
39
- var title = _ref.title,
40
- description = _ref.description,
41
- icon = _ref.icon,
42
- actions = _ref.actions,
43
- children = _ref.children;
41
+ var children = _ref.children,
42
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
43
+ var actions = /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Actions, null, /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Action, {
44
+ icon: /*#__PURE__*/_react.default.createElement(_expand_less.ReactComponent, null),
45
+ onClick: props.onMoveUp,
46
+ disabled: props.isFirst
47
+ }), /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Action, {
48
+ icon: /*#__PURE__*/_react.default.createElement(_expand_more.ReactComponent, null),
49
+ onClick: props.onMoveDown,
50
+ disabled: props.isLast
51
+ }), /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Divider, null), /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Action, {
52
+ icon: /*#__PURE__*/_react.default.createElement(_library_add.ReactComponent, null),
53
+ onClick: function onClick() {
54
+ return props.onClone(props.value);
55
+ }
56
+ }), /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Action, {
57
+ icon: /*#__PURE__*/_react.default.createElement(_delete_outline.ReactComponent, null),
58
+ onClick: props.onDelete
59
+ }));
44
60
  return /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem, {
45
- title: title,
46
- description: description,
47
- icon: icon,
61
+ title: props.title,
62
+ description: props.description,
63
+ icon: props.icon,
48
64
  actions: actions
49
65
  }, children);
50
66
  });
@@ -83,9 +99,9 @@ var TemplateValueForm = function TemplateValueForm(_ref2) {
83
99
  return /*#__PURE__*/_react.default.createElement(MultiValueItemContainer, {
84
100
  value: value,
85
101
  contentModel: contentModel,
86
- onClone: onClone,
87
102
  isFirst: isFirst,
88
103
  isLast: isLast,
104
+ onClone: onClone,
89
105
  onDelete: onDelete,
90
106
  onMoveUp: onMoveUp,
91
107
  onMoveDown: onMoveDown,
@@ -94,22 +110,7 @@ var TemplateValueForm = function TemplateValueForm(_ref2) {
94
110
  icon: /*#__PURE__*/_react.default.createElement(_TemplateIcon.TemplateIcon, {
95
111
  icon: template.icon
96
112
  }),
97
- template: template,
98
- actions: /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Actions, null, /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Action, {
99
- icon: /*#__PURE__*/_react.default.createElement(_expand_less.ReactComponent, null),
100
- onClick: onMoveUp,
101
- disabled: isFirst
102
- }), /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Action, {
103
- icon: /*#__PURE__*/_react.default.createElement(_expand_more.ReactComponent, null),
104
- onClick: onMoveDown,
105
- disabled: isLast
106
- }), /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Divider, null), /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Action, {
107
- icon: /*#__PURE__*/_react.default.createElement(_library_add.ReactComponent, null),
108
- onClick: onClone
109
- }), /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Action, {
110
- icon: /*#__PURE__*/_react.default.createElement(_delete_outline.ReactComponent, null),
111
- onClick: onDelete
112
- }))
113
+ template: template
113
114
  }, /*#__PURE__*/_react.default.createElement(MultiValueItem, {
114
115
  template: template,
115
116
  contentModel: contentModel,
@@ -130,9 +131,8 @@ var MultiValueDynamicZone = exports.MultiValueDynamicZone = function MultiValueD
130
131
  __typename: template.__typename
131
132
  });
132
133
  };
133
- var cloneValue = function cloneValue(index) {
134
- var newValue = (0, _cloneDeep.default)(bind.value[index]);
135
- bind.appendValue(newValue, index + 1);
134
+ var cloneValue = function cloneValue(value, index) {
135
+ bind.appendValue((0, _cloneDeep.default)(value), index + 1);
136
136
  };
137
137
  var values = bind.value || [];
138
138
  var hasValues = values.length > 0;
@@ -160,8 +160,8 @@ var MultiValueDynamicZone = exports.MultiValueDynamicZone = function MultiValueD
160
160
  onDelete: function onDelete() {
161
161
  return bind.removeValue(index);
162
162
  },
163
- onClone: function onClone() {
164
- return cloneValue(index);
163
+ onClone: function onClone(value) {
164
+ return cloneValue(value, index);
165
165
  }
166
166
  }));
167
167
  }))) : null, hasValues ? /*#__PURE__*/_react.default.createElement(_AddTemplate.AddTemplateIcon, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_cloneDeep","_Accordion","_delete_outline","_library_add","_expand_less","_expand_more","_AddTemplate","_TemplateIcon","_hooks","_Fields","_reactComposition","_TemplateProvider","_ModelFieldProvider","_EMOTION_STRINGIFIED_CSS_ERROR__","BottomMargin","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","MultiValueItemContainer","exports","makeDecoratable","_ref","title","description","icon","actions","children","createElement","AccordionItem","MultiValueItem","props","template","Bind","contentModel","TemplateProvider","Fields","fields","layout","TemplateValueForm","_ref2","value","isLast","isFirst","onMoveUp","onMoveDown","onDelete","onClone","_useModelField","useModelField","field","templates","settings","find","tpl","id","_templateId","TemplateIcon","Actions","Action","ReactComponent","onClick","disabled","Divider","MultiValueContainer","_ref3","Accordion","Fragment","MultiValueDynamicZone","bind","getBind","onTemplate","appendValue","__typename","cloneValue","index","newValue","cloneDeep","values","hasValues","length","ParentFieldProvider","path","parentName","ParentValueIndexProvider","key","moveValueUp","moveValueDown","removeValue","AddTemplateIcon","AddTemplateButton"],"sources":["MultiValueDynamicZone.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { Accordion, AccordionItem } from \"@webiny/ui/Accordion\";\nimport { ReactComponent as DeleteIcon } from \"@material-design-icons/svg/outlined/delete_outline.svg\";\nimport { ReactComponent as CloneIcon } from \"@material-design-icons/svg/outlined/library_add.svg\";\nimport { ReactComponent as ArrowUpIcon } from \"@material-design-icons/svg/round/expand_less.svg\";\nimport { ReactComponent as ArrowDownIcon } from \"@material-design-icons/svg/round/expand_more.svg\";\nimport { AddTemplateButton, AddTemplateIcon } from \"./AddTemplate\";\nimport { TemplateIcon } from \"./TemplateIcon\";\nimport { ParentFieldProvider, useModelField } from \"~/admin/hooks\";\nimport { Fields } from \"~/admin/components/ContentEntryForm/Fields\";\nimport {\n BindComponent,\n BindComponentRenderProp,\n CmsDynamicZoneTemplate,\n CmsModelFieldRendererProps,\n CmsModel,\n CmsModelField,\n CmsDynamicZoneTemplateWithTypename\n} from \"~/types\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport { TemplateProvider } from \"~/admin/plugins/fieldRenderers/dynamicZone/TemplateProvider\";\nimport { ParentValueIndexProvider } from \"~/admin/components/ModelFieldProvider\";\n\nconst BottomMargin = styled.div`\n margin-bottom: 20px;\n`;\n\ntype GetBind = CmsModelFieldRendererProps[\"getBind\"];\n\nexport interface MultiValueItemContainerProps {\n value: TemplateValue;\n contentModel: CmsModel;\n isFirst: boolean;\n isLast: boolean;\n onMoveUp: () => void;\n onMoveDown: () => void;\n onDelete: () => void;\n onClone: () => void;\n title: React.ReactNode;\n description: string;\n icon: JSX.Element;\n actions: JSX.Element;\n template: CmsDynamicZoneTemplate;\n children: React.ReactNode;\n}\n\nexport const MultiValueItemContainer = makeDecoratable(\n \"MultiValueItemContainer\",\n ({ title, description, icon, actions, children }: MultiValueItemContainerProps) => {\n return (\n <AccordionItem title={title} description={description} icon={icon} actions={actions}>\n {children}\n </AccordionItem>\n );\n }\n);\n\nexport interface MultiValueItemItemProps {\n template: CmsDynamicZoneTemplate;\n contentModel: CmsModel;\n Bind: BindComponent;\n}\n\nexport const MultiValueItem = makeDecoratable(\n \"MultiValueItem\",\n (props: MultiValueItemItemProps) => {\n const { template, Bind, contentModel } = props;\n\n return (\n <TemplateProvider template={template}>\n <Fields\n fields={template.fields}\n layout={template.layout || []}\n contentModel={contentModel}\n Bind={Bind}\n />\n </TemplateProvider>\n );\n }\n);\n\ninterface TemplateValue {\n _templateId: string;\n [key: string]: any;\n}\n\ninterface TemplateValueFormProps {\n value: TemplateValue;\n contentModel: CmsModel;\n Bind: BindComponent;\n isFirst: boolean;\n isLast: boolean;\n onMoveUp: () => void;\n onMoveDown: () => void;\n onDelete: () => void;\n onClone: () => void;\n}\n\nconst TemplateValueForm = ({\n value,\n contentModel,\n Bind,\n isLast,\n isFirst,\n onMoveUp,\n onMoveDown,\n onDelete,\n onClone\n}: TemplateValueFormProps) => {\n const { field } = useModelField();\n const templates = field.settings?.templates || [];\n\n const template: CmsDynamicZoneTemplate | undefined = templates.find(\n tpl => tpl.id === value._templateId\n );\n\n if (!template) {\n return null;\n }\n\n return (\n <MultiValueItemContainer\n value={value}\n contentModel={contentModel}\n onClone={onClone}\n isFirst={isFirst}\n isLast={isLast}\n onDelete={onDelete}\n onMoveUp={onMoveUp}\n onMoveDown={onMoveDown}\n title={template.name}\n description={template.description}\n icon={<TemplateIcon icon={template.icon} />}\n template={template}\n actions={\n <AccordionItem.Actions>\n <AccordionItem.Action\n icon={<ArrowUpIcon />}\n onClick={onMoveUp}\n disabled={isFirst}\n />\n <AccordionItem.Action\n icon={<ArrowDownIcon />}\n onClick={onMoveDown}\n disabled={isLast}\n />\n <AccordionItem.Divider />\n <AccordionItem.Action icon={<CloneIcon />} onClick={onClone} />\n <AccordionItem.Action icon={<DeleteIcon />} onClick={onDelete} />\n </AccordionItem.Actions>\n }\n >\n <MultiValueItem template={template} contentModel={contentModel} Bind={Bind} />\n </MultiValueItemContainer>\n );\n};\n\nexport interface MultiValueContainerProps extends MultiValueDynamicZoneProps {\n children: React.ReactNode;\n}\n\nexport const MultiValueContainer = makeDecoratable(\n \"MultiValueContainer\",\n ({ children }: MultiValueContainerProps) => {\n return (\n <Accordion>\n <>{children}</>\n </Accordion>\n );\n }\n);\n\ninterface MultiValueDynamicZoneProps {\n // TODO: this prop might be useless, because we now have a `useModelField` hook.\n field: CmsModelField;\n bind: BindComponentRenderProp;\n contentModel: CmsModel;\n getBind: GetBind;\n}\n\nexport const MultiValueDynamicZone = (props: MultiValueDynamicZoneProps) => {\n const { bind, getBind, contentModel } = props;\n const onTemplate = (template: CmsDynamicZoneTemplateWithTypename) => {\n bind.appendValue({ _templateId: template.id, __typename: template.__typename });\n };\n\n const cloneValue = (index: number) => {\n const newValue = cloneDeep(bind.value[index]);\n bind.appendValue(newValue, index + 1);\n };\n\n const values: TemplateValue[] = bind.value || [];\n const hasValues = values.length > 0;\n\n const Bind = getBind();\n\n return (\n <>\n {hasValues ? (\n <ParentFieldProvider value={bind.value} path={Bind.parentName}>\n <MultiValueContainer {...props}>\n {values.map((value, index) => {\n const Bind = getBind(index);\n\n return (\n <ParentValueIndexProvider key={index} index={index}>\n <TemplateValueForm\n value={value}\n contentModel={contentModel}\n Bind={Bind}\n isFirst={index === 0}\n isLast={index === values.length - 1}\n onMoveUp={() => bind.moveValueUp(index)}\n onMoveDown={() => bind.moveValueDown(index)}\n onDelete={() => bind.removeValue(index)}\n onClone={() => cloneValue(index)}\n />\n </ParentValueIndexProvider>\n );\n })}\n </MultiValueContainer>\n </ParentFieldProvider>\n ) : null}\n {hasValues ? (\n <AddTemplateIcon onTemplate={onTemplate} />\n ) : (\n <BottomMargin>\n <AddTemplateButton onTemplate={onTemplate} />\n </BottomMargin>\n )}\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_cloneDeep","_Accordion","_delete_outline","_library_add","_expand_less","_expand_more","_AddTemplate","_TemplateIcon","_hooks","_Fields","_reactComposition","_TemplateProvider","_ModelFieldProvider","_excluded","_EMOTION_STRINGIFIED_CSS_ERROR__","BottomMargin","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","MultiValueItemContainer","exports","makeDecoratable","_ref","children","props","_objectWithoutProperties2","actions","createElement","AccordionItem","Actions","Action","icon","ReactComponent","onClick","onMoveUp","disabled","isFirst","onMoveDown","isLast","Divider","onClone","value","onDelete","title","description","MultiValueItem","template","Bind","contentModel","TemplateProvider","Fields","fields","layout","TemplateValueForm","_ref2","_useModelField","useModelField","field","templates","settings","find","tpl","id","_templateId","TemplateIcon","MultiValueContainer","_ref3","Accordion","Fragment","MultiValueDynamicZone","bind","getBind","onTemplate","appendValue","__typename","cloneValue","index","cloneDeep","values","hasValues","length","ParentFieldProvider","path","parentName","ParentValueIndexProvider","key","moveValueUp","moveValueDown","removeValue","AddTemplateIcon","AddTemplateButton"],"sources":["MultiValueDynamicZone.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { Accordion, AccordionItem } from \"@webiny/ui/Accordion\";\nimport { ReactComponent as DeleteIcon } from \"@material-design-icons/svg/outlined/delete_outline.svg\";\nimport { ReactComponent as CloneIcon } from \"@material-design-icons/svg/outlined/library_add.svg\";\nimport { ReactComponent as ArrowUpIcon } from \"@material-design-icons/svg/round/expand_less.svg\";\nimport { ReactComponent as ArrowDownIcon } from \"@material-design-icons/svg/round/expand_more.svg\";\nimport { AddTemplateButton, AddTemplateIcon } from \"./AddTemplate\";\nimport { TemplateIcon } from \"./TemplateIcon\";\nimport { ParentFieldProvider, useModelField } from \"~/admin/hooks\";\nimport { Fields } from \"~/admin/components/ContentEntryForm/Fields\";\nimport {\n BindComponent,\n BindComponentRenderProp,\n CmsDynamicZoneTemplate,\n CmsModelFieldRendererProps,\n CmsModel,\n CmsModelField,\n CmsDynamicZoneTemplateWithTypename\n} from \"~/types\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport { TemplateProvider } from \"~/admin/plugins/fieldRenderers/dynamicZone/TemplateProvider\";\nimport { ParentValueIndexProvider } from \"~/admin/components/ModelFieldProvider\";\n\nconst BottomMargin = styled.div`\n margin-bottom: 20px;\n`;\n\ntype GetBind = CmsModelFieldRendererProps[\"getBind\"];\n\nexport interface MultiValueItemContainerProps {\n value: TemplateValue;\n contentModel: CmsModel;\n isFirst: boolean;\n isLast: boolean;\n onMoveUp: () => void;\n onMoveDown: () => void;\n onDelete: () => void;\n onClone: (value: TemplateValue) => void;\n title: React.ReactNode;\n description: string;\n icon: JSX.Element;\n template: CmsDynamicZoneTemplate;\n children: React.ReactNode;\n}\n\nexport const MultiValueItemContainer = makeDecoratable(\n \"MultiValueItemContainer\",\n ({ children, ...props }: MultiValueItemContainerProps) => {\n const actions = (\n <AccordionItem.Actions>\n <AccordionItem.Action\n icon={<ArrowUpIcon />}\n onClick={props.onMoveUp}\n disabled={props.isFirst}\n />\n <AccordionItem.Action\n icon={<ArrowDownIcon />}\n onClick={props.onMoveDown}\n disabled={props.isLast}\n />\n <AccordionItem.Divider />\n <AccordionItem.Action\n icon={<CloneIcon />}\n onClick={() => props.onClone(props.value)}\n />\n <AccordionItem.Action icon={<DeleteIcon />} onClick={props.onDelete} />\n </AccordionItem.Actions>\n );\n\n return (\n <AccordionItem\n title={props.title}\n description={props.description}\n icon={props.icon}\n actions={actions}\n >\n {children}\n </AccordionItem>\n );\n }\n);\n\nexport interface MultiValueItemItemProps {\n template: CmsDynamicZoneTemplate;\n contentModel: CmsModel;\n Bind: BindComponent;\n}\n\nexport const MultiValueItem = makeDecoratable(\n \"MultiValueItem\",\n (props: MultiValueItemItemProps) => {\n const { template, Bind, contentModel } = props;\n\n return (\n <TemplateProvider template={template}>\n <Fields\n fields={template.fields}\n layout={template.layout || []}\n contentModel={contentModel}\n Bind={Bind}\n />\n </TemplateProvider>\n );\n }\n);\n\ninterface TemplateValue {\n _templateId: string;\n [key: string]: any;\n}\n\ninterface TemplateValueFormProps {\n value: TemplateValue;\n contentModel: CmsModel;\n Bind: BindComponent;\n isFirst: boolean;\n isLast: boolean;\n onMoveUp: () => void;\n onMoveDown: () => void;\n onDelete: () => void;\n onClone: (value: TemplateValue) => void;\n}\n\nconst TemplateValueForm = ({\n value,\n contentModel,\n Bind,\n isLast,\n isFirst,\n onMoveUp,\n onMoveDown,\n onDelete,\n onClone\n}: TemplateValueFormProps) => {\n const { field } = useModelField();\n const templates = field.settings?.templates || [];\n\n const template: CmsDynamicZoneTemplate | undefined = templates.find(\n tpl => tpl.id === value._templateId\n );\n\n if (!template) {\n return null;\n }\n\n return (\n <MultiValueItemContainer\n value={value}\n contentModel={contentModel}\n isFirst={isFirst}\n isLast={isLast}\n onClone={onClone}\n onDelete={onDelete}\n onMoveUp={onMoveUp}\n onMoveDown={onMoveDown}\n title={template.name}\n description={template.description}\n icon={<TemplateIcon icon={template.icon} />}\n template={template}\n >\n <MultiValueItem template={template} contentModel={contentModel} Bind={Bind} />\n </MultiValueItemContainer>\n );\n};\n\nexport interface MultiValueContainerProps extends MultiValueDynamicZoneProps {\n children: React.ReactNode;\n}\n\nexport const MultiValueContainer = makeDecoratable(\n \"MultiValueContainer\",\n ({ children }: MultiValueContainerProps) => {\n return (\n <Accordion>\n <>{children}</>\n </Accordion>\n );\n }\n);\n\ninterface MultiValueDynamicZoneProps {\n // TODO: this prop might be useless, because we now have a `useModelField` hook.\n field: CmsModelField;\n bind: BindComponentRenderProp;\n contentModel: CmsModel;\n getBind: GetBind;\n}\n\nexport const MultiValueDynamicZone = (props: MultiValueDynamicZoneProps) => {\n const { bind, getBind, contentModel } = props;\n const onTemplate = (template: CmsDynamicZoneTemplateWithTypename) => {\n bind.appendValue({ _templateId: template.id, __typename: template.__typename });\n };\n\n const cloneValue = (value: TemplateValue, index: number) => {\n bind.appendValue(cloneDeep(value), index + 1);\n };\n\n const values: TemplateValue[] = bind.value || [];\n const hasValues = values.length > 0;\n\n const Bind = getBind();\n\n return (\n <>\n {hasValues ? (\n <ParentFieldProvider value={bind.value} path={Bind.parentName}>\n <MultiValueContainer {...props}>\n {values.map((value, index) => {\n const Bind = getBind(index);\n\n return (\n <ParentValueIndexProvider key={index} index={index}>\n <TemplateValueForm\n value={value}\n contentModel={contentModel}\n Bind={Bind}\n isFirst={index === 0}\n isLast={index === values.length - 1}\n onMoveUp={() => bind.moveValueUp(index)}\n onMoveDown={() => bind.moveValueDown(index)}\n onDelete={() => bind.removeValue(index)}\n onClone={value => cloneValue(value, index)}\n />\n </ParentValueIndexProvider>\n );\n })}\n </MultiValueContainer>\n </ParentFieldProvider>\n ) : null}\n {hasValues ? (\n <AddTemplateIcon onTemplate={onTemplate} />\n ) : (\n <BottomMargin>\n <AddTemplateButton onTemplate={onTemplate} />\n </BottomMargin>\n )}\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -11,6 +11,7 @@ var _emotion = require("emotion");
11
11
  var _Accordion = require("@webiny/ui/Accordion");
12
12
  var _SingleValueDynamicZone = require("./SingleValueDynamicZone");
13
13
  var _MultiValueDynamicZone = require("./MultiValueDynamicZone");
14
+ var _AccordionRenderSettings = require("../AccordionRenderSettings");
14
15
  var _FormElementMessage = require("@webiny/ui/FormElementMessage");
15
16
  var _reactComposition = require("@webiny/react-composition");
16
17
  var _templateObject;
@@ -27,10 +28,13 @@ var DynamicZoneContainer = exports.DynamicZoneContainer = (0, _reactComposition.
27
28
  className = props.className,
28
29
  children = props.children;
29
30
  var defaultClassName = field.multipleValues ? noBottomPadding : undefined;
31
+ var _getAccordionRenderSe = (0, _AccordionRenderSettings.getAccordionRenderSettings)(field),
32
+ open = _getAccordionRenderSe.open;
30
33
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Accordion.Accordion, null, /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem, {
31
34
  title: title,
32
35
  description: description,
33
- className: className || defaultClassName
36
+ className: className || defaultClassName,
37
+ open: open
34
38
  }, children)), isValid === false && /*#__PURE__*/_react.default.createElement(_FormElementMessage.FormElementMessage, {
35
39
  error: true
36
40
  }, message));
@@ -73,6 +77,12 @@ var dynamicZoneFieldRenderer = exports.dynamicZoneFieldRenderer = {
73
77
  },
74
78
  render: function render(props) {
75
79
  return /*#__PURE__*/_react.default.createElement(DynamicZoneContent, props);
80
+ },
81
+ renderSettings: function renderSettings(_ref3) {
82
+ var field = _ref3.field;
83
+ return /*#__PURE__*/_react.default.createElement(_AccordionRenderSettings.AccordionRenderSettings, {
84
+ field: field
85
+ });
76
86
  }
77
87
  }
78
88
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_emotion","_Accordion","_SingleValueDynamicZone","_MultiValueDynamicZone","_FormElementMessage","_reactComposition","_templateObject","noBottomPadding","css","_taggedTemplateLiteral2","default","DynamicZoneContainer","exports","makeDecoratable","props","field","_props$bind$validatio","bind","validation","isValid","message","_props$title","title","label","_props$description","description","helpText","className","children","defaultClassName","multipleValues","undefined","createElement","Fragment","Accordion","AccordionItem","FormElementMessage","error","DynamicZoneContent","_ref","getBind","contentModel","templates","settings","length","console","info","concat","fieldId","Bind","Component","MultiValueDynamicZone","SingleValueDynamicZone","dynamicZoneFieldRenderer","type","name","renderer","rendererName","canUse","_ref2","render"],"sources":["dynamicZoneRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Accordion, AccordionItem } from \"@webiny/ui/Accordion\";\nimport {\n BindComponent,\n BindComponentRenderProp,\n CmsModel,\n CmsModelField,\n CmsModelFieldRendererPlugin,\n CmsModelFieldRendererProps\n} from \"~/types\";\nimport { SingleValueDynamicZone } from \"./SingleValueDynamicZone\";\nimport { MultiValueDynamicZone } from \"./MultiValueDynamicZone\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\n\nconst noBottomPadding = css`\n > .webiny-ui-accordion-item__content {\n padding-bottom: 0 !important;\n }\n`;\n\nexport type DynamicZoneContainerProps = {\n field: CmsModelField;\n getBind: (index?: number, key?: string) => BindComponent;\n contentModel: CmsModel;\n bind: BindComponentRenderProp;\n children: React.ReactNode;\n title?: string;\n description?: string;\n className?: string;\n};\n\nexport const DynamicZoneContainer = makeDecoratable(\n \"DynamicZoneContainer\",\n (props: DynamicZoneContainerProps) => {\n const {\n field,\n bind: {\n validation: { isValid, message }\n },\n title = field.label,\n description = field.helpText,\n className,\n children\n } = props;\n\n const defaultClassName = field.multipleValues ? noBottomPadding : undefined;\n\n return (\n <>\n <Accordion>\n <AccordionItem\n title={title}\n description={description}\n className={className || defaultClassName}\n >\n {children}\n </AccordionItem>\n </Accordion>\n {isValid === false && (\n <FormElementMessage error={true}>{message}</FormElementMessage>\n )}\n </>\n );\n }\n);\n\nconst DynamicZoneContent = ({ field, getBind, contentModel }: CmsModelFieldRendererProps) => {\n const templates = field.settings?.templates || [];\n if (!templates.length) {\n console.info(\n `Skipping \"${field.fieldId}\" field. There are no templates defined for this dynamic zone.`\n );\n return null;\n }\n\n const Bind = getBind();\n\n const Component = field.multipleValues ? MultiValueDynamicZone : SingleValueDynamicZone;\n\n return (\n <Bind>\n {bind => {\n return (\n <DynamicZoneContainer\n field={field}\n bind={bind}\n getBind={getBind}\n contentModel={contentModel}\n >\n <Component\n bind={bind}\n field={field}\n getBind={getBind}\n contentModel={contentModel}\n />\n </DynamicZoneContainer>\n );\n }}\n </Bind>\n );\n};\n\nexport const dynamicZoneFieldRenderer: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-dynamic-zone\",\n renderer: {\n rendererName: \"dynamicZone\",\n name: \"Dynamic Zone\",\n description: \"Renders a dynamic zone.\",\n canUse({ field }) {\n return field.type === \"dynamicZone\";\n },\n render(props) {\n return <DynamicZoneContent {...props} />;\n }\n }\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_emotion","_Accordion","_SingleValueDynamicZone","_MultiValueDynamicZone","_AccordionRenderSettings","_FormElementMessage","_reactComposition","_templateObject","noBottomPadding","css","_taggedTemplateLiteral2","default","DynamicZoneContainer","exports","makeDecoratable","props","field","_props$bind$validatio","bind","validation","isValid","message","_props$title","title","label","_props$description","description","helpText","className","children","defaultClassName","multipleValues","undefined","_getAccordionRenderSe","getAccordionRenderSettings","open","createElement","Fragment","Accordion","AccordionItem","FormElementMessage","error","DynamicZoneContent","_ref","getBind","contentModel","templates","settings","length","console","info","concat","fieldId","Bind","Component","MultiValueDynamicZone","SingleValueDynamicZone","dynamicZoneFieldRenderer","type","name","renderer","rendererName","canUse","_ref2","render","renderSettings","_ref3","AccordionRenderSettings"],"sources":["dynamicZoneRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Accordion, AccordionItem } from \"@webiny/ui/Accordion\";\nimport {\n BindComponent,\n BindComponentRenderProp,\n CmsModel,\n CmsModelField,\n CmsModelFieldRendererPlugin,\n CmsModelFieldRendererProps\n} from \"~/types\";\nimport { SingleValueDynamicZone } from \"./SingleValueDynamicZone\";\nimport { MultiValueDynamicZone } from \"./MultiValueDynamicZone\";\nimport { AccordionRenderSettings, getAccordionRenderSettings } from \"../AccordionRenderSettings\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\n\nconst noBottomPadding = css`\n > .webiny-ui-accordion-item__content {\n padding-bottom: 0 !important;\n }\n`;\n\nexport type DynamicZoneContainerProps = {\n field: CmsModelField;\n getBind: (index?: number, key?: string) => BindComponent;\n contentModel: CmsModel;\n bind: BindComponentRenderProp;\n children: React.ReactNode;\n title?: string;\n description?: string;\n className?: string;\n};\n\nexport const DynamicZoneContainer = makeDecoratable(\n \"DynamicZoneContainer\",\n (props: DynamicZoneContainerProps) => {\n const {\n field,\n bind: {\n validation: { isValid, message }\n },\n title = field.label,\n description = field.helpText,\n className,\n children\n } = props;\n\n const defaultClassName = field.multipleValues ? noBottomPadding : undefined;\n const { open } = getAccordionRenderSettings(field);\n\n return (\n <>\n <Accordion>\n <AccordionItem\n title={title}\n description={description}\n className={className || defaultClassName}\n open={open}\n >\n {children}\n </AccordionItem>\n </Accordion>\n {isValid === false && (\n <FormElementMessage error={true}>{message}</FormElementMessage>\n )}\n </>\n );\n }\n);\n\nconst DynamicZoneContent = ({ field, getBind, contentModel }: CmsModelFieldRendererProps) => {\n const templates = field.settings?.templates || [];\n if (!templates.length) {\n console.info(\n `Skipping \"${field.fieldId}\" field. There are no templates defined for this dynamic zone.`\n );\n return null;\n }\n\n const Bind = getBind();\n\n const Component = field.multipleValues ? MultiValueDynamicZone : SingleValueDynamicZone;\n\n return (\n <Bind>\n {bind => {\n return (\n <DynamicZoneContainer\n field={field}\n bind={bind}\n getBind={getBind}\n contentModel={contentModel}\n >\n <Component\n bind={bind}\n field={field}\n getBind={getBind}\n contentModel={contentModel}\n />\n </DynamicZoneContainer>\n );\n }}\n </Bind>\n );\n};\n\nexport const dynamicZoneFieldRenderer: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-dynamic-zone\",\n renderer: {\n rendererName: \"dynamicZone\",\n name: \"Dynamic Zone\",\n description: \"Renders a dynamic zone.\",\n canUse({ field }) {\n return field.type === \"dynamicZone\";\n },\n render(props) {\n return <DynamicZoneContent {...props} />;\n },\n renderSettings({ field }) {\n return <AccordionRenderSettings field={field} />;\n }\n }\n};\n"],"mappings":"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","ignoreList":[]}
@@ -24,6 +24,7 @@ var _Accordion2 = _interopRequireDefault(require("../Accordion"));
24
24
  var _StyledComponents = require("./StyledComponents");
25
25
  var _utils = require("@webiny/utils");
26
26
  var _FieldSettings = require("./FieldSettings");
27
+ var _AccordionRenderSettings = require("../AccordionRenderSettings");
27
28
  var _templateObject, _templateObject2;
28
29
  var t = _i18n.i18n.ns("app-headless-cms/admin/fields/text");
29
30
  var Actions = function Actions(_ref) {
@@ -73,9 +74,12 @@ var ObjectsRenderer = function ObjectsRenderer(props) {
73
74
  return null;
74
75
  }
75
76
  var settings = fieldSettings.getSettings();
77
+ var _getAccordionRenderSe = (0, _AccordionRenderSettings.getAccordionRenderSettings)(field),
78
+ open = _getAccordionRenderSe.open;
76
79
  return /*#__PURE__*/_react.default.createElement(_Accordion.Accordion, null, /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem, {
77
80
  title: field.label,
78
- description: field.helpText
81
+ description: field.helpText,
82
+ open: open
79
83
  }, /*#__PURE__*/_react.default.createElement(_DynamicSection.default, Object.assign({}, props, {
80
84
  emptyValue: {},
81
85
  showLabel: false,
@@ -121,6 +125,12 @@ var plugin = {
121
125
  },
122
126
  render: function render(props) {
123
127
  return /*#__PURE__*/_react.default.createElement(ObjectsRenderer, props);
128
+ },
129
+ renderSettings: function renderSettings(_ref4) {
130
+ var field = _ref4.field;
131
+ return /*#__PURE__*/_react.default.createElement(_AccordionRenderSettings.AccordionRenderSettings, {
132
+ field: field
133
+ });
124
134
  }
125
135
  }
126
136
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_i18n","_Button","_Grid","_Accordion","_DynamicSection","_interopRequireDefault","_Fields","_close","_arrow_drop_up","_arrow_drop_down","_Accordion2","_StyledComponents","_utils","_FieldSettings","_templateObject","_templateObject2","t","i18n","ns","Actions","_ref","setHighlightIndex","bind","index","_bind$field","field","moveValueDown","moveValueUp","onDown","useCallback","ev","stopPropagation","map","_objectSpread4","default","_defineProperty2","generateAlphaNumericLowerCaseId","onUp","createElement","Fragment","IconButton","icon","ReactComponent","onClick","removeValue","ObjectsRenderer","props","_useState","useState","_useState2","_slicedToArray2","highlightMap","contentModel","fieldSettings","FieldSettings","createFrom","hasFields","logMissingFields","settings","getSettings","Accordion","AccordionItem","title","label","description","helpText","Object","assign","emptyValue","showLabel","gridClassName","dynamicSectionGridStyle","_ref2","Bind","ObjectItem","ItemHighLight","key","concat","action","defaultValue","Cell","span","className","fieldsWrapperStyle","Fields","fields","layout","fieldsGridStyle","plugin","type","name","renderer","rendererName","_taggedTemplateLiteral2","canUse","_ref3","Boolean","multipleValues","render","_default","exports"],"sources":["multipleObjectsAccordion.tsx"],"sourcesContent":["import React, { Dispatch, SetStateAction, useState, useCallback } from \"react\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Cell } from \"@webiny/ui/Grid\";\nimport { Accordion as RootAccordion, AccordionItem } from \"@webiny/ui/Accordion\";\nimport {\n BindComponentRenderProp,\n CmsModelFieldRendererPlugin,\n CmsModelFieldRendererProps\n} from \"~/types\";\nimport DynamicSection from \"../DynamicSection\";\nimport { Fields } from \"~/admin/components/ContentEntryForm/Fields\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/close.svg\";\nimport { ReactComponent as ArrowUp } from \"./arrow_drop_up.svg\";\nimport { ReactComponent as ArrowDown } from \"./arrow_drop_down.svg\";\nimport Accordion from \"~/admin/plugins/fieldRenderers/Accordion\";\nimport {\n fieldsWrapperStyle,\n dynamicSectionGridStyle,\n fieldsGridStyle,\n ItemHighLight,\n ObjectItem\n} from \"./StyledComponents\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport { FieldSettings } from \"./FieldSettings\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/text\");\n\ninterface ActionsProps {\n setHighlightIndex: Dispatch<SetStateAction<{ [key: number]: string }>>;\n index: number;\n bind: {\n index: BindComponentRenderProp;\n field: BindComponentRenderProp;\n };\n}\n\nconst Actions = ({ setHighlightIndex, bind, index }: ActionsProps) => {\n const { moveValueDown, moveValueUp } = bind.field;\n\n const onDown = useCallback(\n (ev: React.BaseSyntheticEvent) => {\n ev.stopPropagation();\n moveValueDown(index);\n setHighlightIndex(map => ({\n ...map,\n [index + 1]: generateAlphaNumericLowerCaseId(12)\n }));\n },\n [moveValueDown, index]\n );\n\n const onUp = useCallback(\n (ev: React.BaseSyntheticEvent) => {\n ev.stopPropagation();\n moveValueUp(index);\n setHighlightIndex(map => ({\n ...map,\n [index - 1]: generateAlphaNumericLowerCaseId(12)\n }));\n },\n [moveValueUp, index]\n );\n\n return index > 0 ? (\n <>\n <IconButton icon={<ArrowDown />} onClick={onDown} />\n <IconButton icon={<ArrowUp />} onClick={onUp} />\n <IconButton icon={<DeleteIcon />} onClick={() => bind.field.removeValue(index)} />\n </>\n ) : null;\n};\n\nconst ObjectsRenderer = (props: CmsModelFieldRendererProps) => {\n const [highlightMap, setHighlightIndex] = useState<{ [key: number]: string }>({});\n const { field, contentModel } = props;\n\n const fieldSettings = FieldSettings.createFrom(field);\n\n if (!fieldSettings.hasFields()) {\n fieldSettings.logMissingFields();\n return null;\n }\n\n const settings = fieldSettings.getSettings();\n\n return (\n <RootAccordion>\n <AccordionItem title={field.label} description={field.helpText}>\n <DynamicSection\n {...props}\n emptyValue={{}}\n showLabel={false}\n gridClassName={dynamicSectionGridStyle}\n >\n {({ Bind, bind, index }) => (\n <ObjectItem>\n {highlightMap[index] ? (\n <ItemHighLight key={highlightMap[index]} />\n ) : null}\n <Accordion\n title={`${props.field.label} #${index + 1}`}\n action={\n <Actions\n setHighlightIndex={setHighlightIndex}\n index={index}\n bind={bind}\n />\n }\n // Open first Accordion by default\n defaultValue={index === 0}\n >\n <Cell span={12} className={fieldsWrapperStyle}>\n <Fields\n Bind={Bind}\n contentModel={contentModel}\n fields={settings.fields}\n layout={settings.layout}\n gridClassName={fieldsGridStyle}\n />\n </Cell>\n </Accordion>\n </ObjectItem>\n )}\n </DynamicSection>\n </AccordionItem>\n </RootAccordion>\n );\n};\n\nconst plugin: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-objects-accordion\",\n renderer: {\n rendererName: \"objects-accordion\",\n name: t`Accordion`,\n description: t`Renders fields within an accordion.`,\n canUse({ field }) {\n return field.type === \"object\" && Boolean(field.multipleValues);\n },\n render(props) {\n return <ObjectsRenderer {...props} />;\n }\n }\n};\n\nexport default plugin;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_i18n","_Button","_Grid","_Accordion","_DynamicSection","_interopRequireDefault","_Fields","_close","_arrow_drop_up","_arrow_drop_down","_Accordion2","_StyledComponents","_utils","_FieldSettings","_AccordionRenderSettings","_templateObject","_templateObject2","t","i18n","ns","Actions","_ref","setHighlightIndex","bind","index","_bind$field","field","moveValueDown","moveValueUp","onDown","useCallback","ev","stopPropagation","map","_objectSpread4","default","_defineProperty2","generateAlphaNumericLowerCaseId","onUp","createElement","Fragment","IconButton","icon","ReactComponent","onClick","removeValue","ObjectsRenderer","props","_useState","useState","_useState2","_slicedToArray2","highlightMap","contentModel","fieldSettings","FieldSettings","createFrom","hasFields","logMissingFields","settings","getSettings","_getAccordionRenderSe","getAccordionRenderSettings","open","Accordion","AccordionItem","title","label","description","helpText","Object","assign","emptyValue","showLabel","gridClassName","dynamicSectionGridStyle","_ref2","Bind","ObjectItem","ItemHighLight","key","concat","action","defaultValue","Cell","span","className","fieldsWrapperStyle","Fields","fields","layout","fieldsGridStyle","plugin","type","name","renderer","rendererName","_taggedTemplateLiteral2","canUse","_ref3","Boolean","multipleValues","render","renderSettings","_ref4","AccordionRenderSettings","_default","exports"],"sources":["multipleObjectsAccordion.tsx"],"sourcesContent":["import React, { Dispatch, SetStateAction, useState, useCallback } from \"react\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Cell } from \"@webiny/ui/Grid\";\nimport { Accordion as RootAccordion, AccordionItem } from \"@webiny/ui/Accordion\";\nimport {\n BindComponentRenderProp,\n CmsModelFieldRendererPlugin,\n CmsModelFieldRendererProps\n} from \"~/types\";\nimport DynamicSection from \"../DynamicSection\";\nimport { Fields } from \"~/admin/components/ContentEntryForm/Fields\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/close.svg\";\nimport { ReactComponent as ArrowUp } from \"./arrow_drop_up.svg\";\nimport { ReactComponent as ArrowDown } from \"./arrow_drop_down.svg\";\nimport Accordion from \"~/admin/plugins/fieldRenderers/Accordion\";\nimport {\n fieldsWrapperStyle,\n dynamicSectionGridStyle,\n fieldsGridStyle,\n ItemHighLight,\n ObjectItem\n} from \"./StyledComponents\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport { FieldSettings } from \"./FieldSettings\";\nimport { AccordionRenderSettings, getAccordionRenderSettings } from \"../AccordionRenderSettings\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/text\");\n\ninterface ActionsProps {\n setHighlightIndex: Dispatch<SetStateAction<{ [key: number]: string }>>;\n index: number;\n bind: {\n index: BindComponentRenderProp;\n field: BindComponentRenderProp;\n };\n}\n\nconst Actions = ({ setHighlightIndex, bind, index }: ActionsProps) => {\n const { moveValueDown, moveValueUp } = bind.field;\n\n const onDown = useCallback(\n (ev: React.BaseSyntheticEvent) => {\n ev.stopPropagation();\n moveValueDown(index);\n setHighlightIndex(map => ({\n ...map,\n [index + 1]: generateAlphaNumericLowerCaseId(12)\n }));\n },\n [moveValueDown, index]\n );\n\n const onUp = useCallback(\n (ev: React.BaseSyntheticEvent) => {\n ev.stopPropagation();\n moveValueUp(index);\n setHighlightIndex(map => ({\n ...map,\n [index - 1]: generateAlphaNumericLowerCaseId(12)\n }));\n },\n [moveValueUp, index]\n );\n\n return index > 0 ? (\n <>\n <IconButton icon={<ArrowDown />} onClick={onDown} />\n <IconButton icon={<ArrowUp />} onClick={onUp} />\n <IconButton icon={<DeleteIcon />} onClick={() => bind.field.removeValue(index)} />\n </>\n ) : null;\n};\n\nconst ObjectsRenderer = (props: CmsModelFieldRendererProps) => {\n const [highlightMap, setHighlightIndex] = useState<{ [key: number]: string }>({});\n const { field, contentModel } = props;\n\n const fieldSettings = FieldSettings.createFrom(field);\n\n if (!fieldSettings.hasFields()) {\n fieldSettings.logMissingFields();\n return null;\n }\n\n const settings = fieldSettings.getSettings();\n const { open } = getAccordionRenderSettings(field);\n\n return (\n <RootAccordion>\n <AccordionItem title={field.label} description={field.helpText} open={open}>\n <DynamicSection\n {...props}\n emptyValue={{}}\n showLabel={false}\n gridClassName={dynamicSectionGridStyle}\n >\n {({ Bind, bind, index }) => (\n <ObjectItem>\n {highlightMap[index] ? (\n <ItemHighLight key={highlightMap[index]} />\n ) : null}\n <Accordion\n title={`${props.field.label} #${index + 1}`}\n action={\n <Actions\n setHighlightIndex={setHighlightIndex}\n index={index}\n bind={bind}\n />\n }\n // Open first Accordion by default\n defaultValue={index === 0}\n >\n <Cell span={12} className={fieldsWrapperStyle}>\n <Fields\n Bind={Bind}\n contentModel={contentModel}\n fields={settings.fields}\n layout={settings.layout}\n gridClassName={fieldsGridStyle}\n />\n </Cell>\n </Accordion>\n </ObjectItem>\n )}\n </DynamicSection>\n </AccordionItem>\n </RootAccordion>\n );\n};\n\nconst plugin: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-objects-accordion\",\n renderer: {\n rendererName: \"objects-accordion\",\n name: t`Accordion`,\n description: t`Renders fields within an accordion.`,\n canUse({ field }) {\n return field.type === \"object\" && Boolean(field.multipleValues);\n },\n render(props) {\n return <ObjectsRenderer {...props} />;\n },\n renderSettings({ field }) {\n return <AccordionRenderSettings field={field} />;\n }\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAMA,IAAAK,eAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,gBAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAL,sBAAA,CAAAN,OAAA;AACA,IAAAY,iBAAA,GAAAZ,OAAA;AAOA,IAAAa,MAAA,GAAAb,OAAA;AACA,IAAAc,cAAA,GAAAd,OAAA;AACA,IAAAe,wBAAA,GAAAf,OAAA;AAAiG,IAAAgB,eAAA,EAAAC,gBAAA;AAEjG,IAAMC,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,oCAAoC,CAAC;AAWvD,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAAC,IAAA,EAAyD;EAAA,IAAnDC,iBAAiB,GAAAD,IAAA,CAAjBC,iBAAiB;IAAEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;EAC7C,IAAAC,WAAA,GAAuCF,IAAI,CAACG,KAAK;IAAzCC,aAAa,GAAAF,WAAA,CAAbE,aAAa;IAAEC,WAAW,GAAAH,WAAA,CAAXG,WAAW;EAElC,IAAMC,MAAM,GAAG,IAAAC,kBAAW,EACtB,UAACC,EAA4B,EAAK;IAC9BA,EAAE,CAACC,eAAe,CAAC,CAAC;IACpBL,aAAa,CAACH,KAAK,CAAC;IACpBF,iBAAiB,CAAC,UAAAW,GAAG;MAAA,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACdF,GAAG,WAAAG,gBAAA,CAAAD,OAAA,MACLX,KAAK,GAAG,CAAC,EAAG,IAAAa,sCAA+B,EAAC,EAAE,CAAC;IAAA,CAClD,CAAC;EACP,CAAC,EACD,CAACV,aAAa,EAAEH,KAAK,CACzB,CAAC;EAED,IAAMc,IAAI,GAAG,IAAAR,kBAAW,EACpB,UAACC,EAA4B,EAAK;IAC9BA,EAAE,CAACC,eAAe,CAAC,CAAC;IACpBJ,WAAW,CAACJ,KAAK,CAAC;IAClBF,iBAAiB,CAAC,UAAAW,GAAG;MAAA,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACdF,GAAG,WAAAG,gBAAA,CAAAD,OAAA,MACLX,KAAK,GAAG,CAAC,EAAG,IAAAa,sCAA+B,EAAC,EAAE,CAAC;IAAA,CAClD,CAAC;EACP,CAAC,EACD,CAACT,WAAW,EAAEJ,KAAK,CACvB,CAAC;EAED,OAAOA,KAAK,GAAG,CAAC,gBACZ3B,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAAA1C,MAAA,CAAAsC,OAAA,CAAAK,QAAA,qBACI3C,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAACtC,OAAA,CAAAwC,UAAU;IAACC,IAAI,eAAE7C,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAAC9B,gBAAA,CAAAkC,cAAS,MAAE,CAAE;IAACC,OAAO,EAAEf;EAAO,CAAE,CAAC,eACpDhC,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAACtC,OAAA,CAAAwC,UAAU;IAACC,IAAI,eAAE7C,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAAC/B,cAAA,CAAAmC,cAAO,MAAE,CAAE;IAACC,OAAO,EAAEN;EAAK,CAAE,CAAC,eAChDzC,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAACtC,OAAA,CAAAwC,UAAU;IAACC,IAAI,eAAE7C,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAAChC,MAAA,CAAAoC,cAAU,MAAE,CAAE;IAACC,OAAO,EAAE,SAAAA,QAAA;MAAA,OAAMrB,IAAI,CAACG,KAAK,CAACmB,WAAW,CAACrB,KAAK,CAAC;IAAA;EAAC,CAAE,CACnF,CAAC,GACH,IAAI;AACZ,CAAC;AAED,IAAMsB,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,KAAiC,EAAK;EAC3D,IAAAC,SAAA,GAA0C,IAAAC,eAAQ,EAA4B,CAAC,CAAC,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAAhB,OAAA,EAAAa,SAAA;IAA1EI,YAAY,GAAAF,UAAA;IAAE5B,iBAAiB,GAAA4B,UAAA;EACtC,IAAQxB,KAAK,GAAmBqB,KAAK,CAA7BrB,KAAK;IAAE2B,YAAY,GAAKN,KAAK,CAAtBM,YAAY;EAE3B,IAAMC,aAAa,GAAGC,4BAAa,CAACC,UAAU,CAAC9B,KAAK,CAAC;EAErD,IAAI,CAAC4B,aAAa,CAACG,SAAS,CAAC,CAAC,EAAE;IAC5BH,aAAa,CAACI,gBAAgB,CAAC,CAAC;IAChC,OAAO,IAAI;EACf;EAEA,IAAMC,QAAQ,GAAGL,aAAa,CAACM,WAAW,CAAC,CAAC;EAC5C,IAAAC,qBAAA,GAAiB,IAAAC,mDAA0B,EAACpC,KAAK,CAAC;IAA1CqC,IAAI,GAAAF,qBAAA,CAAJE,IAAI;EAEZ,oBACIlE,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAACpC,UAAA,CAAA6D,SAAa,qBACVnE,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAACpC,UAAA,CAAA8D,aAAa;IAACC,KAAK,EAAExC,KAAK,CAACyC,KAAM;IAACC,WAAW,EAAE1C,KAAK,CAAC2C,QAAS;IAACN,IAAI,EAAEA;EAAK,gBACvElE,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAACnC,eAAA,CAAA+B,OAAc,EAAAmC,MAAA,CAAAC,MAAA,KACPxB,KAAK;IACTyB,UAAU,EAAE,CAAC,CAAE;IACfC,SAAS,EAAE,KAAM;IACjBC,aAAa,EAAEC;EAAwB,IAEtC,UAAAC,KAAA;IAAA,IAAGC,IAAI,GAAAD,KAAA,CAAJC,IAAI;MAAEtD,IAAI,GAAAqD,KAAA,CAAJrD,IAAI;MAAEC,KAAK,GAAAoD,KAAA,CAALpD,KAAK;IAAA,oBACjB3B,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAAC5B,iBAAA,CAAAmE,UAAU,QACN1B,YAAY,CAAC5B,KAAK,CAAC,gBAChB3B,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAAC5B,iBAAA,CAAAoE,aAAa;MAACC,GAAG,EAAE5B,YAAY,CAAC5B,KAAK;IAAE,CAAE,CAAC,GAC3C,IAAI,eACR3B,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAAC7B,WAAA,CAAAyB,OAAS;MACN+B,KAAK,KAAAe,MAAA,CAAKlC,KAAK,CAACrB,KAAK,CAACyC,KAAK,QAAAc,MAAA,CAAKzD,KAAK,GAAG,CAAC,CAAG;MAC5C0D,MAAM,eACFrF,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAACnB,OAAO;QACJE,iBAAiB,EAAEA,iBAAkB;QACrCE,KAAK,EAAEA,KAAM;QACbD,IAAI,EAAEA;MAAK,CACd;MAEL;MAAA;MACA4D,YAAY,EAAE3D,KAAK,KAAK;IAAE,gBAE1B3B,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAACrC,KAAA,CAAAkF,IAAI;MAACC,IAAI,EAAE,EAAG;MAACC,SAAS,EAAEC;IAAmB,gBAC1C1F,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAACjC,OAAA,CAAAkF,MAAM;MACHX,IAAI,EAAEA,IAAK;MACXxB,YAAY,EAAEA,YAAa;MAC3BoC,MAAM,EAAE9B,QAAQ,CAAC8B,MAAO;MACxBC,MAAM,EAAE/B,QAAQ,CAAC+B,MAAO;MACxBhB,aAAa,EAAEiB;IAAgB,CAClC,CACC,CACC,CACH,CAAC;EAAA,CAEL,CACL,CACJ,CAAC;AAExB,CAAC;AAED,IAAMC,MAAmC,GAAG;EACxCC,IAAI,EAAE,2BAA2B;EACjCC,IAAI,EAAE,6CAA6C;EACnDC,QAAQ,EAAE;IACNC,YAAY,EAAE,mBAAmB;IACjCF,IAAI,EAAE7E,CAAC,CAAAF,eAAA,KAAAA,eAAA,OAAAkF,uBAAA,CAAA9D,OAAA,kBAAW;IAClBiC,WAAW,EAAEnD,CAAC,CAAAD,gBAAA,KAAAA,gBAAA,OAAAiF,uBAAA,CAAA9D,OAAA,4CAAqC;IACnD+D,MAAM,WAAAA,OAAAC,KAAA,EAAY;MAAA,IAATzE,KAAK,GAAAyE,KAAA,CAALzE,KAAK;MACV,OAAOA,KAAK,CAACmE,IAAI,KAAK,QAAQ,IAAIO,OAAO,CAAC1E,KAAK,CAAC2E,cAAc,CAAC;IACnE,CAAC;IACDC,MAAM,WAAAA,OAACvD,KAAK,EAAE;MACV,oBAAOlD,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAACO,eAAe,EAAKC,KAAQ,CAAC;IACzC,CAAC;IACDwD,cAAc,WAAAA,eAAAC,KAAA,EAAY;MAAA,IAAT9E,KAAK,GAAA8E,KAAA,CAAL9E,KAAK;MAClB,oBAAO7B,MAAA,CAAAsC,OAAA,CAAAI,aAAA,CAACzB,wBAAA,CAAA2F,uBAAuB;QAAC/E,KAAK,EAAEA;MAAM,CAAE,CAAC;IACpD;EACJ;AACJ,CAAC;AAAC,IAAAgF,QAAA,GAAAC,OAAA,CAAAxE,OAAA,GAEayD,MAAM","ignoreList":[]}
@@ -13,6 +13,7 @@ var _Fields = require("../../../components/ContentEntryForm/Fields");
13
13
  var _FieldSettings = require("./FieldSettings");
14
14
  var _hooks = require("../../../hooks");
15
15
  var _ModelFieldProvider = require("../../../components/ModelFieldProvider");
16
+ var _AccordionRenderSettings = require("../AccordionRenderSettings");
16
17
  var _templateObject, _templateObject2;
17
18
  var t = _i18n.i18n.ns("app-headless-cms/admin/fields/text");
18
19
  var plugin = {
@@ -37,6 +38,8 @@ var plugin = {
37
38
  return null;
38
39
  }
39
40
  var settings = fieldSettings.getSettings();
41
+ var _getAccordionRenderSe = (0, _AccordionRenderSettings.getAccordionRenderSettings)(field),
42
+ open = _getAccordionRenderSe.open;
40
43
  return /*#__PURE__*/_react.default.createElement(Bind, null, function (bindProps) {
41
44
  return /*#__PURE__*/_react.default.createElement(_hooks.ParentFieldProvider, {
42
45
  value: bindProps.value,
@@ -45,7 +48,8 @@ var plugin = {
45
48
  index: -1
46
49
  }, /*#__PURE__*/_react.default.createElement(_Accordion.Accordion, null, /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem, {
47
50
  title: field.label,
48
- description: field.helpText
51
+ description: field.helpText,
52
+ open: open
49
53
  }, /*#__PURE__*/_react.default.createElement(_Fields.Fields, {
50
54
  Bind: Bind,
51
55
  contentModel: contentModel,
@@ -53,6 +57,12 @@ var plugin = {
53
57
  layout: settings.layout || []
54
58
  })))));
55
59
  });
60
+ },
61
+ renderSettings: function renderSettings(_ref3) {
62
+ var field = _ref3.field;
63
+ return /*#__PURE__*/_react.default.createElement(_AccordionRenderSettings.AccordionRenderSettings, {
64
+ field: field
65
+ });
56
66
  }
57
67
  }
58
68
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_i18n","_Accordion","_Fields","_FieldSettings","_hooks","_ModelFieldProvider","_templateObject","_templateObject2","t","i18n","ns","plugin","type","name","renderer","rendererName","_taggedTemplateLiteral2","default","description","canUse","_ref","field","multipleValues","render","_ref2","getBind","contentModel","Bind","fieldSettings","FieldSettings","createFrom","hasFields","logMissingFields","settings","getSettings","createElement","bindProps","ParentFieldProvider","value","path","parentName","ParentValueIndexProvider","index","Accordion","AccordionItem","title","label","helpText","Fields","fields","layout","_default","exports"],"sources":["singleObjectAccordion.tsx"],"sourcesContent":["import React from \"react\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Accordion, AccordionItem } from \"@webiny/ui/Accordion\";\nimport { CmsModelFieldRendererPlugin } from \"~/types\";\nimport { Fields } from \"~/admin/components/ContentEntryForm/Fields\";\nimport { FieldSettings } from \"./FieldSettings\";\nimport { ParentFieldProvider } from \"~/admin/hooks\";\nimport { ParentValueIndexProvider } from \"~/admin/components/ModelFieldProvider\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/text\");\n\nconst plugin: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-object-accordion\",\n renderer: {\n rendererName: \"object-accordion\",\n name: t`Accordion`,\n description: t`Renders fields within an accordion.`,\n canUse({ field }) {\n return field.type === \"object\" && !field.multipleValues;\n },\n render({ field, getBind, contentModel }) {\n const Bind = getBind();\n\n const fieldSettings = FieldSettings.createFrom(field);\n\n if (!fieldSettings.hasFields()) {\n fieldSettings.logMissingFields();\n return null;\n }\n\n const settings = fieldSettings.getSettings();\n\n return (\n <Bind>\n {bindProps => (\n <ParentFieldProvider value={bindProps.value} path={Bind.parentName}>\n <ParentValueIndexProvider index={-1}>\n <Accordion>\n <AccordionItem title={field.label} description={field.helpText}>\n <Fields\n Bind={Bind}\n contentModel={contentModel}\n fields={settings.fields || []}\n layout={settings.layout || []}\n />\n </AccordionItem>\n </Accordion>\n </ParentValueIndexProvider>\n </ParentFieldProvider>\n )}\n </Bind>\n );\n }\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAN,OAAA;AAAiF,IAAAO,eAAA,EAAAC,gBAAA;AAEjF,IAAMC,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,oCAAoC,CAAC;AAEvD,IAAMC,MAAmC,GAAG;EACxCC,IAAI,EAAE,2BAA2B;EACjCC,IAAI,EAAE,4CAA4C;EAClDC,QAAQ,EAAE;IACNC,YAAY,EAAE,kBAAkB;IAChCF,IAAI,EAAEL,CAAC,CAAAF,eAAA,KAAAA,eAAA,OAAAU,uBAAA,CAAAC,OAAA,kBAAW;IAClBC,WAAW,EAAEV,CAAC,CAAAD,gBAAA,KAAAA,gBAAA,OAAAS,uBAAA,CAAAC,OAAA,4CAAqC;IACnDE,MAAM,WAAAA,OAAAC,IAAA,EAAY;MAAA,IAATC,KAAK,GAAAD,IAAA,CAALC,KAAK;MACV,OAAOA,KAAK,CAACT,IAAI,KAAK,QAAQ,IAAI,CAACS,KAAK,CAACC,cAAc;IAC3D,CAAC;IACDC,MAAM,WAAAA,OAAAC,KAAA,EAAmC;MAAA,IAAhCH,KAAK,GAAAG,KAAA,CAALH,KAAK;QAAEI,OAAO,GAAAD,KAAA,CAAPC,OAAO;QAAEC,YAAY,GAAAF,KAAA,CAAZE,YAAY;MACjC,IAAMC,IAAI,GAAGF,OAAO,CAAC,CAAC;MAEtB,IAAMG,aAAa,GAAGC,4BAAa,CAACC,UAAU,CAACT,KAAK,CAAC;MAErD,IAAI,CAACO,aAAa,CAACG,SAAS,CAAC,CAAC,EAAE;QAC5BH,aAAa,CAACI,gBAAgB,CAAC,CAAC;QAChC,OAAO,IAAI;MACf;MAEA,IAAMC,QAAQ,GAAGL,aAAa,CAACM,WAAW,CAAC,CAAC;MAE5C,oBACIrC,MAAA,CAAAoB,OAAA,CAAAkB,aAAA,CAACR,IAAI,QACA,UAAAS,SAAS;QAAA,oBACNvC,MAAA,CAAAoB,OAAA,CAAAkB,aAAA,CAAC/B,MAAA,CAAAiC,mBAAmB;UAACC,KAAK,EAAEF,SAAS,CAACE,KAAM;UAACC,IAAI,EAAEZ,IAAI,CAACa;QAAW,gBAC/D3C,MAAA,CAAAoB,OAAA,CAAAkB,aAAA,CAAC9B,mBAAA,CAAAoC,wBAAwB;UAACC,KAAK,EAAE,CAAC;QAAE,gBAChC7C,MAAA,CAAAoB,OAAA,CAAAkB,aAAA,CAAClC,UAAA,CAAA0C,SAAS,qBACN9C,MAAA,CAAAoB,OAAA,CAAAkB,aAAA,CAAClC,UAAA,CAAA2C,aAAa;UAACC,KAAK,EAAExB,KAAK,CAACyB,KAAM;UAAC5B,WAAW,EAAEG,KAAK,CAAC0B;QAAS,gBAC3DlD,MAAA,CAAAoB,OAAA,CAAAkB,aAAA,CAACjC,OAAA,CAAA8C,MAAM;UACHrB,IAAI,EAAEA,IAAK;UACXD,YAAY,EAAEA,YAAa;UAC3BuB,MAAM,EAAEhB,QAAQ,CAACgB,MAAM,IAAI,EAAG;UAC9BC,MAAM,EAAEjB,QAAQ,CAACiB,MAAM,IAAI;QAAG,CACjC,CACU,CACR,CACW,CACT,CAAC;MAAA,CAExB,CAAC;IAEf;EACJ;AACJ,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAnC,OAAA,GAEaN,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_i18n","_Accordion","_Fields","_FieldSettings","_hooks","_ModelFieldProvider","_AccordionRenderSettings","_templateObject","_templateObject2","t","i18n","ns","plugin","type","name","renderer","rendererName","_taggedTemplateLiteral2","default","description","canUse","_ref","field","multipleValues","render","_ref2","getBind","contentModel","Bind","fieldSettings","FieldSettings","createFrom","hasFields","logMissingFields","settings","getSettings","_getAccordionRenderSe","getAccordionRenderSettings","open","createElement","bindProps","ParentFieldProvider","value","path","parentName","ParentValueIndexProvider","index","Accordion","AccordionItem","title","label","helpText","Fields","fields","layout","renderSettings","_ref3","AccordionRenderSettings","_default","exports"],"sources":["singleObjectAccordion.tsx"],"sourcesContent":["import React from \"react\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Accordion, AccordionItem } from \"@webiny/ui/Accordion\";\nimport { CmsModelFieldRendererPlugin } from \"~/types\";\nimport { Fields } from \"~/admin/components/ContentEntryForm/Fields\";\nimport { FieldSettings } from \"./FieldSettings\";\nimport { ParentFieldProvider } from \"~/admin/hooks\";\nimport { ParentValueIndexProvider } from \"~/admin/components/ModelFieldProvider\";\nimport {\n AccordionRenderSettings,\n getAccordionRenderSettings\n} from \"~/admin/plugins/fieldRenderers/AccordionRenderSettings\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/text\");\n\nconst plugin: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-object-accordion\",\n renderer: {\n rendererName: \"object-accordion\",\n name: t`Accordion`,\n description: t`Renders fields within an accordion.`,\n canUse({ field }) {\n return field.type === \"object\" && !field.multipleValues;\n },\n render({ field, getBind, contentModel }) {\n const Bind = getBind();\n\n const fieldSettings = FieldSettings.createFrom(field);\n\n if (!fieldSettings.hasFields()) {\n fieldSettings.logMissingFields();\n return null;\n }\n\n const settings = fieldSettings.getSettings();\n const { open } = getAccordionRenderSettings(field);\n\n return (\n <Bind>\n {bindProps => (\n <ParentFieldProvider value={bindProps.value} path={Bind.parentName}>\n <ParentValueIndexProvider index={-1}>\n <Accordion>\n <AccordionItem\n title={field.label}\n description={field.helpText}\n open={open}\n >\n <Fields\n Bind={Bind}\n contentModel={contentModel}\n fields={settings.fields || []}\n layout={settings.layout || []}\n />\n </AccordionItem>\n </Accordion>\n </ParentValueIndexProvider>\n </ParentFieldProvider>\n )}\n </Bind>\n );\n },\n renderSettings({ field }) {\n return <AccordionRenderSettings field={field} />;\n }\n }\n};\n\nexport default plugin;\n"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _textInput = _interopRequireDefault(require("./textInput"));
9
9
  var _textInputs = _interopRequireDefault(require("./textInputs"));
10
- var _default = exports.default = [_textInput.default, _textInputs.default];
10
+ var _tags = require("./tags");
11
+ var _default = exports.default = [_textInput.default, _textInputs.default, _tags.tags];
11
12
 
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_textInput","_interopRequireDefault","require","_textInputs","_default","exports","default","textInput","textInputs"],"sources":["index.ts"],"sourcesContent":["import textInput from \"./textInput\";\nimport textInputs from \"./textInputs\";\n\nexport default [textInput, textInputs];\n"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAsC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEvB,CAACC,kBAAS,EAAEC,mBAAU,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_textInput","_interopRequireDefault","require","_textInputs","_tags","_default","exports","default","textInput","textInputs","tags"],"sources":["index.ts"],"sourcesContent":["import textInput from \"./textInput\";\nimport textInputs from \"./textInputs\";\nimport { tags } from \"./tags\";\n\nexport default [textInput, textInputs, tags];\n"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAA8B,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEf,CAACC,kBAAS,EAAEC,mBAAU,EAAEC,UAAI,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { CmsModelFieldRendererPlugin } from "../../../../types";
2
+ export declare const tags: CmsModelFieldRendererPlugin;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.tags = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _Tags = require("@webiny/ui/Tags");
10
+ var tags = exports.tags = {
11
+ type: "cms-editor-field-renderer",
12
+ name: "cms-editor-field-renderer-tags",
13
+ renderer: {
14
+ rendererName: "tags",
15
+ name: "Tags",
16
+ description: "Renders a tags component.",
17
+ canUse: function canUse(_ref) {
18
+ var field = _ref.field;
19
+ return field.type === "text" && field.multipleValues === true && !field.predefinedValues?.enabled;
20
+ },
21
+ render: function render(_ref2) {
22
+ var field = _ref2.field,
23
+ getBind = _ref2.getBind;
24
+ var Bind = getBind();
25
+ return /*#__PURE__*/_react.default.createElement(Bind, {
26
+ defaultValue: []
27
+ }, /*#__PURE__*/_react.default.createElement(_Tags.Tags, {
28
+ label: field.label,
29
+ placeholder: field.placeholderText || "Add values",
30
+ description: field.helpText
31
+ }));
32
+ }
33
+ }
34
+ };
35
+
36
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_Tags","tags","exports","type","name","renderer","rendererName","description","canUse","_ref","field","multipleValues","predefinedValues","enabled","render","_ref2","getBind","Bind","default","createElement","defaultValue","Tags","label","placeholder","placeholderText","helpText"],"sources":["tags.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tags } from \"@webiny/ui/Tags\";\nimport { CmsModelFieldRendererPlugin } from \"~/types\";\n\nexport const tags: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-tags\",\n renderer: {\n rendererName: \"tags\",\n name: \"Tags\",\n description: `Renders a tags component.`,\n canUse({ field }) {\n return (\n field.type === \"text\" &&\n field.multipleValues === true &&\n !field.predefinedValues?.enabled\n );\n },\n render({ field, getBind }) {\n const Bind = getBind();\n\n return (\n <Bind defaultValue={[]}>\n <Tags\n label={field.label}\n placeholder={field.placeholderText || \"Add values\"}\n description={field.helpText}\n />\n </Bind>\n );\n }\n }\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAGO,IAAME,IAAiC,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAC7CE,IAAI,EAAE,2BAA2B;EACjCC,IAAI,EAAE,gCAAgC;EACtCC,QAAQ,EAAE;IACNC,YAAY,EAAE,MAAM;IACpBF,IAAI,EAAE,MAAM;IACZG,WAAW,6BAA6B;IACxCC,MAAM,WAAAA,OAAAC,IAAA,EAAY;MAAA,IAATC,KAAK,GAAAD,IAAA,CAALC,KAAK;MACV,OACIA,KAAK,CAACP,IAAI,KAAK,MAAM,IACrBO,KAAK,CAACC,cAAc,KAAK,IAAI,IAC7B,CAACD,KAAK,CAACE,gBAAgB,EAAEC,OAAO;IAExC,CAAC;IACDC,MAAM,WAAAA,OAAAC,KAAA,EAAqB;MAAA,IAAlBL,KAAK,GAAAK,KAAA,CAALL,KAAK;QAAEM,OAAO,GAAAD,KAAA,CAAPC,OAAO;MACnB,IAAMC,IAAI,GAAGD,OAAO,CAAC,CAAC;MAEtB,oBACInB,MAAA,CAAAqB,OAAA,CAAAC,aAAA,CAACF,IAAI;QAACG,YAAY,EAAE;MAAG,gBACnBvB,MAAA,CAAAqB,OAAA,CAAAC,aAAA,CAACnB,KAAA,CAAAqB,IAAI;QACDC,KAAK,EAAEZ,KAAK,CAACY,KAAM;QACnBC,WAAW,EAAEb,KAAK,CAACc,eAAe,IAAI,YAAa;QACnDjB,WAAW,EAAEG,KAAK,CAACe;MAAS,CAC/B,CACC,CAAC;IAEf;EACJ;AACJ,CAAC","ignoreList":[]}
@@ -91,7 +91,8 @@ var RevisionListItem = function RevisionListItem(_ref) {
91
91
  content: tooltipText,
92
92
  placement: "bottom"
93
93
  }, icon)), /*#__PURE__*/_react.default.createElement(_List.ListItemText, null, /*#__PURE__*/_react.default.createElement(_List.ListItemTextPrimary, null, revision.meta.title || t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["N/A"])))), /*#__PURE__*/_react.default.createElement(_List.ListItemTextSecondary, null, t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Last modified by {author} on {time} (#{version})"])))({
94
- author: revision.revisionCreatedBy.displayName,
94
+ // Added this because revisionCreatedBy can be returned as null from GraphQL.
95
+ author: revision.revisionCreatedBy?.displayName,
95
96
  time: /*#__PURE__*/_react.default.createElement(_DateTime.Date, {
96
97
  date: revision.revisionCreatedOn
97
98
  }),
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_emotion","_DateTime","_List","_Button","_Icon","_Menu","_Tooltip","_more_vert","_lock","_beenhere","_gesture","_add","_edit","_unpublish","_delete","_i18n","_useRevision2","_usePermission2","_useContentEntry2","_PublishEntryRevisionListItem","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","t","i18n","ns","primaryColor","css","color","revisionsMenu","width","right","left","getIcon","rev","meta","locked","status","icon","default","createElement","Icon","ReactComponent","text","className","RevisionListItem","_ref","revision","_useRevision","useRevision","createRevision","deleteRevision","publishRevision","unpublishRevision","editRevision","_useContentEntry","useContentEntry","entry","setActiveTab","_usePermission","usePermission","canEdit","canDelete","canPublish","canUnpublish","_getIcon","tooltipText","ListItem","ListItemGraphic","Tooltip","content","placement","ListItemText","ListItemTextPrimary","title","_taggedTemplateLiteral2","ListItemTextSecondary","author","revisionCreatedBy","displayName","time","Date","date","revisionCreatedOn","version","ListItemMeta","Menu","handle","IconButton","MenuItem","onClick","PublishEntryRevisionListItem","MenuDivider","_default","exports"],"sources":["RevisionListItem.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Date } from \"@webiny/ui/DateTime\";\nimport {\n ListItem,\n ListItemText,\n ListItemTextPrimary,\n ListItemTextSecondary,\n ListItemGraphic,\n ListItemMeta\n} from \"@webiny/ui/List\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { MenuItem, Menu, MenuDivider } from \"@webiny/ui/Menu\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { ReactComponent as LockIcon } from \"~/admin/icons/lock.svg\";\nimport { ReactComponent as BeenHereIcon } from \"~/admin/icons/beenhere.svg\";\nimport { ReactComponent as GestureIcon } from \"~/admin/icons/gesture.svg\";\nimport { ReactComponent as AddIcon } from \"~/admin/icons/add.svg\";\nimport { ReactComponent as EditIcon } from \"~/admin/icons/edit.svg\";\nimport { ReactComponent as UnpublishIcon } from \"~/admin/icons/unpublish.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { CmsContentEntryRevision } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useRevision } from \"./useRevision\";\nimport { usePermission } from \"~/admin/hooks/usePermission\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { PublishEntryRevisionListItem } from \"./PublishEntryRevisionListItem\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/plugins/content-details/content-revisions\");\n\nconst primaryColor = css({ color: \"var(--mdc-theme-primary)\" });\n\nconst revisionsMenu = css({\n width: 250,\n right: -105,\n left: \"auto !important\"\n});\n\nconst getIcon = (rev: CmsContentEntryRevision) => {\n switch (true) {\n case rev.meta.locked && rev.meta.status !== \"published\":\n return {\n icon: <Icon icon={<LockIcon />} data-testid={\"cms.revision.status.locked\"} />,\n text: \"This revision is locked (it has already been published)\"\n };\n case rev.meta.status === \"published\":\n return {\n icon: (\n <Icon\n icon={<BeenHereIcon />}\n className={primaryColor}\n data-testid={\"cms.revision.status.published\"}\n />\n ),\n text: \"This revision is currently published!\"\n };\n default:\n return {\n icon: <Icon icon={<GestureIcon />} data-testid={\"cms.revision.status.draft\"} />,\n text: \"This is a draft\"\n };\n }\n};\n\ninterface RevisionListItemProps {\n revision: CmsContentEntryRevision;\n}\n\nconst RevisionListItem = ({ revision }: RevisionListItemProps) => {\n const { createRevision, deleteRevision, publishRevision, unpublishRevision, editRevision } =\n useRevision({\n revision\n });\n\n const { entry, setActiveTab } = useContentEntry();\n const { canEdit, canDelete, canPublish, canUnpublish } = usePermission();\n const { icon, text: tooltipText } = getIcon(revision);\n\n return (\n <ListItem>\n <ListItemGraphic>\n <Tooltip content={tooltipText} placement={\"bottom\"}>\n {icon}\n </Tooltip>\n </ListItemGraphic>\n <ListItemText>\n <ListItemTextPrimary>{revision.meta.title || t`N/A`}</ListItemTextPrimary>\n <ListItemTextSecondary>\n {t`Last modified by {author} on {time} (#{version})`({\n author: revision.revisionCreatedBy.displayName,\n time: <Date date={revision.revisionCreatedOn} />,\n version: revision.meta.version\n })}\n </ListItemTextSecondary>\n </ListItemText>\n <ListItemMeta>\n <Menu\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n className={revisionsMenu}\n data-testid={\"cms.content-form.revisions.more-options\"}\n >\n {canEdit(entry, \"cms.contentEntry\") && (\n <MenuItem\n onClick={() => createRevision()}\n data-testid={\"cms.revision.create-revision\"}\n >\n <ListItemGraphic>\n <Icon icon={<AddIcon />} />\n </ListItemGraphic>\n {t`New from current`}\n </MenuItem>\n )}\n\n {!revision.meta.locked && canEdit(entry, \"cms.contentEntry\") && (\n <MenuItem\n onClick={() => {\n editRevision();\n setActiveTab(0);\n }}\n >\n <ListItemGraphic>\n <Icon icon={<EditIcon />} />\n </ListItemGraphic>\n {t`Edit`}\n </MenuItem>\n )}\n\n {revision.meta.status !== \"published\" && canPublish(\"cms.contentEntry\") && (\n <MenuItem onClick={() => publishRevision()}>\n <PublishEntryRevisionListItem />\n </MenuItem>\n )}\n\n {revision.meta.status === \"published\" && canUnpublish(\"cms.contentEntry\") && (\n <MenuItem\n onClick={() => unpublishRevision()}\n data-testid={\"cms.revision.unpublish\"}\n >\n <ListItemGraphic>\n <Icon icon={<UnpublishIcon />} />\n </ListItemGraphic>\n {t`Unpublish`}\n </MenuItem>\n )}\n\n {!revision.meta.locked && canDelete(entry, \"cms.contentEntry\") && (\n <div>\n <MenuDivider />\n <MenuItem onClick={() => deleteRevision()}>\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {t` Delete`}\n </MenuItem>\n </div>\n )}\n </Menu>\n </ListItemMeta>\n </ListItem>\n );\n};\n\nexport default RevisionListItem;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_emotion","_DateTime","_List","_Button","_Icon","_Menu","_Tooltip","_more_vert","_lock","_beenhere","_gesture","_add","_edit","_unpublish","_delete","_i18n","_useRevision2","_usePermission2","_useContentEntry2","_PublishEntryRevisionListItem","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","t","i18n","ns","primaryColor","css","color","revisionsMenu","width","right","left","getIcon","rev","meta","locked","status","icon","default","createElement","Icon","ReactComponent","text","className","RevisionListItem","_ref","revision","_useRevision","useRevision","createRevision","deleteRevision","publishRevision","unpublishRevision","editRevision","_useContentEntry","useContentEntry","entry","setActiveTab","_usePermission","usePermission","canEdit","canDelete","canPublish","canUnpublish","_getIcon","tooltipText","ListItem","ListItemGraphic","Tooltip","content","placement","ListItemText","ListItemTextPrimary","title","_taggedTemplateLiteral2","ListItemTextSecondary","author","revisionCreatedBy","displayName","time","Date","date","revisionCreatedOn","version","ListItemMeta","Menu","handle","IconButton","MenuItem","onClick","PublishEntryRevisionListItem","MenuDivider","_default","exports"],"sources":["RevisionListItem.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Date } from \"@webiny/ui/DateTime\";\nimport {\n ListItem,\n ListItemText,\n ListItemTextPrimary,\n ListItemTextSecondary,\n ListItemGraphic,\n ListItemMeta\n} from \"@webiny/ui/List\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { MenuItem, Menu, MenuDivider } from \"@webiny/ui/Menu\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { ReactComponent as LockIcon } from \"~/admin/icons/lock.svg\";\nimport { ReactComponent as BeenHereIcon } from \"~/admin/icons/beenhere.svg\";\nimport { ReactComponent as GestureIcon } from \"~/admin/icons/gesture.svg\";\nimport { ReactComponent as AddIcon } from \"~/admin/icons/add.svg\";\nimport { ReactComponent as EditIcon } from \"~/admin/icons/edit.svg\";\nimport { ReactComponent as UnpublishIcon } from \"~/admin/icons/unpublish.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { CmsContentEntryRevision } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useRevision } from \"./useRevision\";\nimport { usePermission } from \"~/admin/hooks/usePermission\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { PublishEntryRevisionListItem } from \"./PublishEntryRevisionListItem\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/plugins/content-details/content-revisions\");\n\nconst primaryColor = css({ color: \"var(--mdc-theme-primary)\" });\n\nconst revisionsMenu = css({\n width: 250,\n right: -105,\n left: \"auto !important\"\n});\n\nconst getIcon = (rev: CmsContentEntryRevision) => {\n switch (true) {\n case rev.meta.locked && rev.meta.status !== \"published\":\n return {\n icon: <Icon icon={<LockIcon />} data-testid={\"cms.revision.status.locked\"} />,\n text: \"This revision is locked (it has already been published)\"\n };\n case rev.meta.status === \"published\":\n return {\n icon: (\n <Icon\n icon={<BeenHereIcon />}\n className={primaryColor}\n data-testid={\"cms.revision.status.published\"}\n />\n ),\n text: \"This revision is currently published!\"\n };\n default:\n return {\n icon: <Icon icon={<GestureIcon />} data-testid={\"cms.revision.status.draft\"} />,\n text: \"This is a draft\"\n };\n }\n};\n\ninterface RevisionListItemProps {\n revision: CmsContentEntryRevision;\n}\n\nconst RevisionListItem = ({ revision }: RevisionListItemProps) => {\n const { createRevision, deleteRevision, publishRevision, unpublishRevision, editRevision } =\n useRevision({\n revision\n });\n\n const { entry, setActiveTab } = useContentEntry();\n const { canEdit, canDelete, canPublish, canUnpublish } = usePermission();\n const { icon, text: tooltipText } = getIcon(revision);\n\n return (\n <ListItem>\n <ListItemGraphic>\n <Tooltip content={tooltipText} placement={\"bottom\"}>\n {icon}\n </Tooltip>\n </ListItemGraphic>\n <ListItemText>\n <ListItemTextPrimary>{revision.meta.title || t`N/A`}</ListItemTextPrimary>\n <ListItemTextSecondary>\n {t`Last modified by {author} on {time} (#{version})`({\n // Added this because revisionCreatedBy can be returned as null from GraphQL.\n author: revision.revisionCreatedBy?.displayName,\n time: <Date date={revision.revisionCreatedOn} />,\n version: revision.meta.version\n })}\n </ListItemTextSecondary>\n </ListItemText>\n <ListItemMeta>\n <Menu\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n className={revisionsMenu}\n data-testid={\"cms.content-form.revisions.more-options\"}\n >\n {canEdit(entry, \"cms.contentEntry\") && (\n <MenuItem\n onClick={() => createRevision()}\n data-testid={\"cms.revision.create-revision\"}\n >\n <ListItemGraphic>\n <Icon icon={<AddIcon />} />\n </ListItemGraphic>\n {t`New from current`}\n </MenuItem>\n )}\n\n {!revision.meta.locked && canEdit(entry, \"cms.contentEntry\") && (\n <MenuItem\n onClick={() => {\n editRevision();\n setActiveTab(0);\n }}\n >\n <ListItemGraphic>\n <Icon icon={<EditIcon />} />\n </ListItemGraphic>\n {t`Edit`}\n </MenuItem>\n )}\n\n {revision.meta.status !== \"published\" && canPublish(\"cms.contentEntry\") && (\n <MenuItem onClick={() => publishRevision()}>\n <PublishEntryRevisionListItem />\n </MenuItem>\n )}\n\n {revision.meta.status === \"published\" && canUnpublish(\"cms.contentEntry\") && (\n <MenuItem\n onClick={() => unpublishRevision()}\n data-testid={\"cms.revision.unpublish\"}\n >\n <ListItemGraphic>\n <Icon icon={<UnpublishIcon />} />\n </ListItemGraphic>\n {t`Unpublish`}\n </MenuItem>\n )}\n\n {!revision.meta.locked && canDelete(entry, \"cms.contentEntry\") && (\n <div>\n <MenuDivider />\n <MenuItem onClick={() => deleteRevision()}>\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {t` Delete`}\n </MenuItem>\n </div>\n )}\n </Menu>\n </ListItemMeta>\n </ListItem>\n );\n};\n\nexport default RevisionListItem;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-headless-cms",
3
- "version": "5.40.0-beta.5",
3
+ "version": "5.40.0-beta.6",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,29 +28,29 @@
28
28
  "@material-design-icons/svg": "0.14.13",
29
29
  "@svgr/webpack": "6.5.1",
30
30
  "@types/react": "18.2.79",
31
- "@webiny/app": "5.40.0-beta.5",
32
- "@webiny/app-aco": "5.40.0-beta.5",
33
- "@webiny/app-admin": "5.40.0-beta.5",
34
- "@webiny/app-graphql-playground": "5.40.0-beta.5",
35
- "@webiny/app-headless-cms-common": "5.40.0-beta.5",
36
- "@webiny/app-i18n": "5.40.0-beta.5",
37
- "@webiny/app-plugin-admin-welcome-screen": "5.40.0-beta.5",
38
- "@webiny/app-security": "5.40.0-beta.5",
39
- "@webiny/app-trash-bin": "5.40.0-beta.5",
40
- "@webiny/error": "5.40.0-beta.5",
41
- "@webiny/feature-flags": "5.40.0-beta.5",
42
- "@webiny/form": "5.40.0-beta.5",
43
- "@webiny/lexical-editor": "5.40.0-beta.5",
44
- "@webiny/lexical-nodes": "5.40.0-beta.5",
45
- "@webiny/lexical-theme": "5.40.0-beta.5",
46
- "@webiny/plugins": "5.40.0-beta.5",
47
- "@webiny/react-composition": "5.40.0-beta.5",
48
- "@webiny/react-properties": "5.40.0-beta.5",
49
- "@webiny/react-router": "5.40.0-beta.5",
50
- "@webiny/theme": "5.40.0-beta.5",
51
- "@webiny/ui": "5.40.0-beta.5",
52
- "@webiny/utils": "5.40.0-beta.5",
53
- "@webiny/validation": "5.40.0-beta.5",
31
+ "@webiny/app": "5.40.0-beta.6",
32
+ "@webiny/app-aco": "5.40.0-beta.6",
33
+ "@webiny/app-admin": "5.40.0-beta.6",
34
+ "@webiny/app-graphql-playground": "5.40.0-beta.6",
35
+ "@webiny/app-headless-cms-common": "5.40.0-beta.6",
36
+ "@webiny/app-i18n": "5.40.0-beta.6",
37
+ "@webiny/app-plugin-admin-welcome-screen": "5.40.0-beta.6",
38
+ "@webiny/app-security": "5.40.0-beta.6",
39
+ "@webiny/app-trash-bin": "5.40.0-beta.6",
40
+ "@webiny/error": "5.40.0-beta.6",
41
+ "@webiny/feature-flags": "5.40.0-beta.6",
42
+ "@webiny/form": "5.40.0-beta.6",
43
+ "@webiny/lexical-editor": "5.40.0-beta.6",
44
+ "@webiny/lexical-nodes": "5.40.0-beta.6",
45
+ "@webiny/lexical-theme": "5.40.0-beta.6",
46
+ "@webiny/plugins": "5.40.0-beta.6",
47
+ "@webiny/react-composition": "5.40.0-beta.6",
48
+ "@webiny/react-properties": "5.40.0-beta.6",
49
+ "@webiny/react-router": "5.40.0-beta.6",
50
+ "@webiny/theme": "5.40.0-beta.6",
51
+ "@webiny/ui": "5.40.0-beta.6",
52
+ "@webiny/utils": "5.40.0-beta.6",
53
+ "@webiny/validation": "5.40.0-beta.6",
54
54
  "apollo-cache": "1.3.5",
55
55
  "apollo-client": "2.6.10",
56
56
  "apollo-link": "1.2.14",
@@ -84,8 +84,8 @@
84
84
  "@babel/preset-react": "7.24.1",
85
85
  "@babel/preset-typescript": "7.24.1",
86
86
  "@emotion/babel-plugin": "11.11.0",
87
- "@webiny/cli": "5.40.0-beta.5",
88
- "@webiny/project-utils": "5.40.0-beta.5",
87
+ "@webiny/cli": "5.40.0-beta.6",
88
+ "@webiny/project-utils": "5.40.0-beta.6",
89
89
  "babel-plugin-module-resolver": "5.0.0",
90
90
  "rimraf": "5.0.5",
91
91
  "ttypescript": "1.5.15",
@@ -114,5 +114,5 @@
114
114
  ]
115
115
  }
116
116
  },
117
- "gitHead": "04482b686c63fdadebd4c6c1db7595af1140cfc7"
117
+ "gitHead": "e6ce53a387a9b1ab39aa8d15e4ed9be2359f17aa"
118
118
  }