@webiny/app-headless-cms 6.0.0-rc.2 → 6.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/components/ContentEntries/Header/ButtonRefresh/ButtonRefresh.d.ts +2 -0
- package/admin/components/ContentEntries/Header/ButtonRefresh/ButtonRefresh.js +18 -0
- package/admin/components/ContentEntries/Header/ButtonRefresh/ButtonRefresh.js.map +1 -0
- package/admin/components/ContentEntries/Header/ButtonRefresh/index.d.ts +1 -0
- package/admin/components/ContentEntries/Header/ButtonRefresh/index.js +3 -0
- package/admin/components/ContentEntries/Header/ButtonRefresh/index.js.map +1 -0
- package/admin/components/ContentEntries/Header/Header.js +2 -1
- package/admin/components/ContentEntries/Header/Header.js.map +1 -1
- package/admin/components/ContentEntries/SidebarContent/SidebarContent.js +1 -1
- package/admin/components/ContentEntries/SidebarContent/SidebarContent.js.map +1 -1
- package/admin/components/ContentEntries/SidebarHeader/SidebarHeader.js +1 -1
- package/admin/components/ContentEntries/SidebarHeader/SidebarHeader.js.map +1 -1
- package/admin/components/ContentModelEditor/ContentModelEditor.js +1 -6
- package/admin/components/ContentModelEditor/ContentModelEditor.js.map +1 -1
- package/admin/components/ContentModelEditor/ContentModelEditorProvider.d.ts +2 -0
- package/admin/components/ContentModelEditor/ContentModelEditorProvider.js +14 -2
- package/admin/components/ContentModelEditor/ContentModelEditorProvider.js.map +1 -1
- package/admin/components/ContentModelEditor/FieldsSidebar.js +51 -2
- package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -1
- package/admin/components/Droppable.d.ts +1 -1
- package/admin/components/Droppable.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js +3 -3
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/FieldSettingsTabs.d.ts +10 -0
- package/admin/components/FieldEditor/EditFieldDialog/FieldSettingsTabs.js +69 -0
- package/admin/components/FieldEditor/EditFieldDialog/FieldSettingsTabs.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +27 -9
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/CannotUsePermissions.d.ts +2 -0
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/CannotUsePermissions.js +14 -0
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/CannotUsePermissions.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/FieldPermissionsSelection.d.ts +15 -0
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/FieldPermissionsSelection.js +131 -0
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/FieldPermissionsSelection.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/PermissionsTab.d.ts +4 -0
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/PermissionsTab.js +74 -0
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/PermissionsTab.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/RulesTab/RulesTab.d.ts +13 -0
- package/admin/components/FieldEditor/EditFieldDialog/RulesTab/RulesTab.js +203 -0
- package/admin/components/FieldEditor/EditFieldDialog/RulesTab/RulesTab.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/RulesTab/index.d.ts +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/RulesTab/index.js +3 -0
- package/admin/components/FieldEditor/EditFieldDialog/RulesTab/index.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog.js +13 -56
- package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialogContainer.d.ts +12 -0
- package/admin/components/FieldEditor/EditFieldDialogContainer.js +40 -0
- package/admin/components/FieldEditor/EditFieldDialogContainer.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDrawerContainer.d.ts +12 -0
- package/admin/components/FieldEditor/EditFieldDrawerContainer.js +40 -0
- package/admin/components/FieldEditor/EditFieldDrawerContainer.js.map +1 -0
- package/admin/components/FieldEditor/FieldEditor.js +148 -88
- package/admin/components/FieldEditor/FieldEditor.js.map +1 -1
- package/admin/components/FieldEditor/FieldEditorContext.d.ts +33 -3
- package/admin/components/FieldEditor/FieldEditorContext.js +225 -6
- package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -1
- package/admin/components/FieldEditor/LayoutCell.d.ts +9 -0
- package/admin/components/FieldEditor/LayoutCell.js +33 -0
- package/admin/components/FieldEditor/LayoutCell.js.map +1 -0
- package/admin/components/FieldEditor/utils/deleteField.js +12 -4
- package/admin/components/FieldEditor/utils/deleteField.js.map +1 -1
- package/admin/components/FieldEditor/utils/getFieldPosition.js +6 -1
- package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -1
- package/admin/graphql/contentModels.d.ts +2 -2
- package/admin/graphql/contentModels.js +7 -0
- package/admin/graphql/contentModels.js.map +1 -1
- package/admin/hooks/useModelFieldGraphqlContext.d.ts +1 -0
- package/admin/plugins/fieldRenderers/DynamicSection.d.ts +2 -1
- package/admin/plugins/fieldRenderers/DynamicSection.js +3 -1
- package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js +7 -1
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js.map +1 -1
- package/admin/plugins/fieldRenderers/checkboxes.js +7 -1
- package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Input.js +9 -2
- package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Select.js +7 -0
- package/admin/plugins/fieldRenderers/dateTime/Select.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.d.ts +1 -0
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js +9 -5
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.d.ts +2 -1
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js +18 -10
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.js +13 -4
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js +10 -4
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/longText.js +7 -1
- package/admin/plugins/fieldRenderers/longText/longText.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/longTexts.js +12 -3
- package/admin/plugins/fieldRenderers/longText/longTexts.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/numberInput.js +7 -1
- package/admin/plugins/fieldRenderers/number/numberInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/numberInputs.js +11 -3
- package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/FieldSettings.d.ts +2 -1
- package/admin/plugins/fieldRenderers/object/MultiValueContainer.js +5 -0
- package/admin/plugins/fieldRenderers/object/MultiValueContainer.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/MultiValueItemContainer.d.ts +1 -0
- package/admin/plugins/fieldRenderers/object/MultiValueItemContainer.js +3 -2
- package/admin/plugins/fieldRenderers/object/MultiValueItemContainer.js.map +1 -1
- package/admin/plugins/fieldRenderers/radioButtons.js +7 -1
- package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js +15 -7
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js +14 -7
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.d.ts +3 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.js +7 -6
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js +9 -3
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js +9 -3
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js +7 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js +7 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/select.js +7 -1
- package/admin/plugins/fieldRenderers/select.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/tags.js +7 -1
- package/admin/plugins/fieldRenderers/text/tags.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/textInput.js +7 -1
- package/admin/plugins/fieldRenderers/text/textInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/textInputs.js +12 -3
- package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -1
- package/admin/plugins/fields/ui/TabsLayoutEditor.d.ts +9 -0
- package/admin/plugins/fields/ui/TabsLayoutEditor.js +470 -0
- package/admin/plugins/fields/ui/TabsLayoutEditor.js.map +1 -0
- package/admin/plugins/fields/ui/alert.d.ts +2 -2
- package/admin/plugins/fields/ui/alert.js +144 -17
- package/admin/plugins/fields/ui/alert.js.map +1 -1
- package/admin/plugins/fields/ui/index.d.ts +1 -0
- package/admin/plugins/fields/ui/index.js +1 -0
- package/admin/plugins/fields/ui/index.js.map +1 -1
- package/admin/plugins/fields/ui/separator.d.ts +2 -2
- package/admin/plugins/fields/ui/separator.js +131 -17
- package/admin/plugins/fields/ui/separator.js.map +1 -1
- package/admin/plugins/fields/ui/tabs.d.ts +2 -0
- package/admin/plugins/fields/ui/tabs.js +89 -0
- package/admin/plugins/fields/ui/tabs.js.map +1 -0
- package/admin/plugins/index.d.ts +1 -0
- package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +1 -0
- package/admin/views/contentEntries/hooks/useContentEntriesList.js +4 -2
- package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
- package/admin/views/contentModels/importing/graphql.d.ts +2 -2
- package/admin/views/contentModels/importing/graphql.js.map +1 -1
- package/allPlugins.d.ts +2 -1
- package/allPlugins.js +2 -3
- package/allPlugins.js.map +1 -1
- package/exports/admin/cms/model.d.ts +1 -0
- package/exports/admin/cms/model.js +3 -0
- package/exports/admin/cms/model.js.map +1 -0
- package/package.json +23 -23
- package/types.d.ts +1 -0
- package/types.js +5 -1
- package/types.js.map +1 -1
- package/admin/plugins/fieldRenderers/ui/alert.d.ts +0 -2
- package/admin/plugins/fieldRenderers/ui/alert.js +0 -32
- package/admin/plugins/fieldRenderers/ui/alert.js.map +0 -1
- package/admin/plugins/fieldRenderers/ui/index.d.ts +0 -2
- package/admin/plugins/fieldRenderers/ui/index.js +0 -4
- package/admin/plugins/fieldRenderers/ui/index.js.map +0 -1
- package/admin/plugins/fieldRenderers/ui/separator.d.ts +0 -2
- package/admin/plugins/fieldRenderers/ui/separator.js +0 -31
- package/admin/plugins/fieldRenderers/ui/separator.js.map +0 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { IconButton, Tooltip } from "@webiny/admin-ui";
|
|
3
|
+
import { ReactComponent as RefreshIcon } from "@webiny/icons/autorenew.svg";
|
|
4
|
+
import { useContentEntriesList } from "../../../../views/contentEntries/hooks/index.js";
|
|
5
|
+
export const ButtonRefresh = () => {
|
|
6
|
+
const list = useContentEntriesList();
|
|
7
|
+
return /*#__PURE__*/React.createElement(Tooltip, {
|
|
8
|
+
side: "bottom",
|
|
9
|
+
content: "Refresh list",
|
|
10
|
+
trigger: /*#__PURE__*/React.createElement(IconButton, {
|
|
11
|
+
variant: "ghost",
|
|
12
|
+
icon: /*#__PURE__*/React.createElement(RefreshIcon, null),
|
|
13
|
+
onClick: list.refresh
|
|
14
|
+
})
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=ButtonRefresh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","IconButton","Tooltip","ReactComponent","RefreshIcon","useContentEntriesList","ButtonRefresh","list","createElement","side","content","trigger","variant","icon","onClick","refresh"],"sources":["ButtonRefresh.tsx"],"sourcesContent":["import React from \"react\";\nimport { IconButton, Tooltip } from \"@webiny/admin-ui\";\nimport { ReactComponent as RefreshIcon } from \"@webiny/icons/autorenew.svg\";\nimport { useContentEntriesList } from \"~/admin/views/contentEntries/hooks/index.js\";\n\nexport const ButtonRefresh = () => {\n const list = useContentEntriesList();\n\n return (\n <Tooltip\n side={\"bottom\"}\n content={\"Refresh list\"}\n trigger={<IconButton variant={\"ghost\"} icon={<RefreshIcon />} onClick={list.refresh} />}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,OAAO,QAAQ,kBAAkB;AACtD,SAASC,cAAc,IAAIC,WAAW,QAAQ,6BAA6B;AAC3E,SAASC,qBAAqB;AAE9B,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EAC/B,MAAMC,IAAI,GAAGF,qBAAqB,CAAC,CAAC;EAEpC,oBACIL,KAAA,CAAAQ,aAAA,CAACN,OAAO;IACJO,IAAI,EAAE,QAAS;IACfC,OAAO,EAAE,cAAe;IACxBC,OAAO,eAAEX,KAAA,CAAAQ,aAAA,CAACP,UAAU;MAACW,OAAO,EAAE,OAAQ;MAACC,IAAI,eAAEb,KAAA,CAAAQ,aAAA,CAACJ,WAAW,MAAE,CAAE;MAACU,OAAO,EAAEP,IAAI,CAACQ;IAAQ,CAAE;EAAE,CAC3F,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./ButtonRefresh.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["export * from \"./ButtonRefresh.js\";\n"],"mappings":"AAAA","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ import { Separator } from "@webiny/admin-ui";
|
|
|
3
3
|
import { Search } from "@webiny/app-aco";
|
|
4
4
|
import { ButtonFilters } from "./ButtonFilters/index.js";
|
|
5
5
|
import { ButtonsCreate } from "./ButtonsCreate/index.js";
|
|
6
|
+
import { ButtonRefresh } from "./ButtonRefresh/index.js";
|
|
6
7
|
import { Title } from "./Title/index.js";
|
|
7
8
|
export const Header = props => {
|
|
8
9
|
const {
|
|
@@ -32,7 +33,7 @@ export const Header = props => {
|
|
|
32
33
|
placeholder: searchPlaceholder || "Search entries..."
|
|
33
34
|
})), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
34
35
|
className: "flex gap-sm"
|
|
35
|
-
}, /*#__PURE__*/React.createElement(ButtonFilters, null), /*#__PURE__*/React.createElement(ButtonsCreate, {
|
|
36
|
+
}, /*#__PURE__*/React.createElement(ButtonRefresh, null), /*#__PURE__*/React.createElement(ButtonFilters, null), /*#__PURE__*/React.createElement(ButtonsCreate, {
|
|
36
37
|
canCreateFolder: canCreateFolder,
|
|
37
38
|
canCreateContent: canCreateContent,
|
|
38
39
|
onCreateFolder: onCreateFolder,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Separator","Search","ButtonFilters","ButtonsCreate","Title","Header","props","canCreateFolder","canCreateContent","onCreateEntry","onCreateFolder","title","searchValue","searchPlaceholder","onSearchChange","createElement","Fragment","className","isRoot","value","onChange","placeholder"],"sources":["Header.tsx"],"sourcesContent":["import React from \"react\";\nimport { Separator } from \"@webiny/admin-ui\";\nimport { Search } from \"@webiny/app-aco\";\nimport { ButtonFilters } from \"./ButtonFilters/index.js\";\nimport { ButtonsCreate } from \"./ButtonsCreate/index.js\";\nimport { Title } from \"./Title/index.js\";\n\ninterface HeaderProps {\n isRoot: boolean;\n title?: string;\n canCreateFolder: boolean;\n canCreateContent: boolean;\n onCreateEntry: (event?: React.SyntheticEvent) => void;\n onCreateFolder: (event?: React.SyntheticEvent) => void;\n searchValue: string;\n searchPlaceholder: string;\n onSearchChange: (value: string) => void;\n}\n\nexport const Header = (props: HeaderProps) => {\n const {\n canCreateFolder,\n canCreateContent,\n onCreateEntry,\n onCreateFolder,\n title,\n searchValue,\n searchPlaceholder,\n onSearchChange\n } = props;\n\n return (\n <>\n <div className={\"flex flex-col gap-md\"}>\n <Title title={title} isRoot={props.isRoot} />\n <div className={\"px-md pb-sm\"}>\n <div className={\"flex items-center gap-sm w-full\"}>\n <div className={\"flex-1\"}>\n <Search\n value={searchValue}\n onChange={onSearchChange}\n placeholder={searchPlaceholder || \"Search entries...\"}\n />\n </div>\n <div>\n <div className={\"flex gap-sm\"}>\n <ButtonFilters />\n <ButtonsCreate\n canCreateFolder={canCreateFolder}\n canCreateContent={canCreateContent}\n onCreateFolder={onCreateFolder}\n onCreateEntry={onCreateEntry}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n <Separator />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,MAAM,QAAQ,iBAAiB;AACxC,SAASC,aAAa;AACtB,SAASC,aAAa;AACtB,SAASC,KAAK;AAcd,OAAO,MAAMC,MAAM,GAAIC,KAAkB,IAAK;EAC1C,MAAM;IACFC,eAAe;IACfC,gBAAgB;IAChBC,aAAa;IACbC,cAAc;IACdC,KAAK;IACLC,WAAW;IACXC,iBAAiB;IACjBC;EACJ,CAAC,GAAGR,KAAK;EAET,
|
|
1
|
+
{"version":3,"names":["React","Separator","Search","ButtonFilters","ButtonsCreate","ButtonRefresh","Title","Header","props","canCreateFolder","canCreateContent","onCreateEntry","onCreateFolder","title","searchValue","searchPlaceholder","onSearchChange","createElement","Fragment","className","isRoot","value","onChange","placeholder"],"sources":["Header.tsx"],"sourcesContent":["import React from \"react\";\nimport { Separator } from \"@webiny/admin-ui\";\nimport { Search } from \"@webiny/app-aco\";\nimport { ButtonFilters } from \"./ButtonFilters/index.js\";\nimport { ButtonsCreate } from \"./ButtonsCreate/index.js\";\nimport { ButtonRefresh } from \"./ButtonRefresh/index.js\";\nimport { Title } from \"./Title/index.js\";\n\ninterface HeaderProps {\n isRoot: boolean;\n title?: string;\n canCreateFolder: boolean;\n canCreateContent: boolean;\n onCreateEntry: (event?: React.SyntheticEvent) => void;\n onCreateFolder: (event?: React.SyntheticEvent) => void;\n searchValue: string;\n searchPlaceholder: string;\n onSearchChange: (value: string) => void;\n}\n\nexport const Header = (props: HeaderProps) => {\n const {\n canCreateFolder,\n canCreateContent,\n onCreateEntry,\n onCreateFolder,\n title,\n searchValue,\n searchPlaceholder,\n onSearchChange\n } = props;\n\n return (\n <>\n <div className={\"flex flex-col gap-md\"}>\n <Title title={title} isRoot={props.isRoot} />\n <div className={\"px-md pb-sm\"}>\n <div className={\"flex items-center gap-sm w-full\"}>\n <div className={\"flex-1\"}>\n <Search\n value={searchValue}\n onChange={onSearchChange}\n placeholder={searchPlaceholder || \"Search entries...\"}\n />\n </div>\n <div>\n <div className={\"flex gap-sm\"}>\n <ButtonRefresh />\n <ButtonFilters />\n <ButtonsCreate\n canCreateFolder={canCreateFolder}\n canCreateContent={canCreateContent}\n onCreateFolder={onCreateFolder}\n onCreateEntry={onCreateEntry}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n <Separator />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,MAAM,QAAQ,iBAAiB;AACxC,SAASC,aAAa;AACtB,SAASC,aAAa;AACtB,SAASC,aAAa;AACtB,SAASC,KAAK;AAcd,OAAO,MAAMC,MAAM,GAAIC,KAAkB,IAAK;EAC1C,MAAM;IACFC,eAAe;IACfC,gBAAgB;IAChBC,aAAa;IACbC,cAAc;IACdC,KAAK;IACLC,WAAW;IACXC,iBAAiB;IACjBC;EACJ,CAAC,GAAGR,KAAK;EAET,oBACIR,KAAA,CAAAiB,aAAA,CAAAjB,KAAA,CAAAkB,QAAA,qBACIlB,KAAA,CAAAiB,aAAA;IAAKE,SAAS,EAAE;EAAuB,gBACnCnB,KAAA,CAAAiB,aAAA,CAACX,KAAK;IAACO,KAAK,EAAEA,KAAM;IAACO,MAAM,EAAEZ,KAAK,CAACY;EAAO,CAAE,CAAC,eAC7CpB,KAAA,CAAAiB,aAAA;IAAKE,SAAS,EAAE;EAAc,gBAC1BnB,KAAA,CAAAiB,aAAA;IAAKE,SAAS,EAAE;EAAkC,gBAC9CnB,KAAA,CAAAiB,aAAA;IAAKE,SAAS,EAAE;EAAS,gBACrBnB,KAAA,CAAAiB,aAAA,CAACf,MAAM;IACHmB,KAAK,EAAEP,WAAY;IACnBQ,QAAQ,EAAEN,cAAe;IACzBO,WAAW,EAAER,iBAAiB,IAAI;EAAoB,CACzD,CACA,CAAC,eACNf,KAAA,CAAAiB,aAAA,2BACIjB,KAAA,CAAAiB,aAAA;IAAKE,SAAS,EAAE;EAAc,gBAC1BnB,KAAA,CAAAiB,aAAA,CAACZ,aAAa,MAAE,CAAC,eACjBL,KAAA,CAAAiB,aAAA,CAACd,aAAa,MAAE,CAAC,eACjBH,KAAA,CAAAiB,aAAA,CAACb,aAAa;IACVK,eAAe,EAAEA,eAAgB;IACjCC,gBAAgB,EAAEA,gBAAiB;IACnCE,cAAc,EAAEA,cAAe;IAC/BD,aAAa,EAAEA;EAAc,CAChC,CACA,CACJ,CACJ,CACJ,CACJ,CAAC,eACNX,KAAA,CAAAiB,aAAA,CAAChB,SAAS,MAAE,CACd,CAAC;AAEX,CAAC","ignoreList":[]}
|
|
@@ -10,7 +10,7 @@ export const SidebarContent = () => {
|
|
|
10
10
|
currentFolderId
|
|
11
11
|
} = useNavigateFolder();
|
|
12
12
|
return /*#__PURE__*/React.createElement("div", {
|
|
13
|
-
className: "
|
|
13
|
+
className: "flex-1 overflow-y-scroll"
|
|
14
14
|
}, /*#__PURE__*/React.createElement(FolderTree, {
|
|
15
15
|
folderActions: browser.folder.actions,
|
|
16
16
|
focusedFolderId: currentFolderId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","FolderTree","useNavigateFolder","useContentEntryListConfig","SidebarContent","browser","navigateToFolder","currentFolderId","createElement","className","folderActions","folder","actions","focusedFolderId","onFolderClick","data","id","enableActions","enableCreate"],"sources":["SidebarContent.tsx"],"sourcesContent":["import React from \"react\";\nimport { FolderTree, useNavigateFolder } from \"@webiny/app-aco\";\nimport { useContentEntryListConfig } from \"~/admin/config/contentEntries/index.js\";\n\nexport const SidebarContent = () => {\n const { browser } = useContentEntryListConfig();\n const { navigateToFolder, currentFolderId } = useNavigateFolder();\n\n return (\n <div className={\"
|
|
1
|
+
{"version":3,"names":["React","FolderTree","useNavigateFolder","useContentEntryListConfig","SidebarContent","browser","navigateToFolder","currentFolderId","createElement","className","folderActions","folder","actions","focusedFolderId","onFolderClick","data","id","enableActions","enableCreate"],"sources":["SidebarContent.tsx"],"sourcesContent":["import React from \"react\";\nimport { FolderTree, useNavigateFolder } from \"@webiny/app-aco\";\nimport { useContentEntryListConfig } from \"~/admin/config/contentEntries/index.js\";\n\nexport const SidebarContent = () => {\n const { browser } = useContentEntryListConfig();\n const { navigateToFolder, currentFolderId } = useNavigateFolder();\n\n return (\n <div className={\"flex-1 overflow-y-scroll\"}>\n <FolderTree\n folderActions={browser.folder.actions}\n focusedFolderId={currentFolderId}\n onFolderClick={data => navigateToFolder(data.id)}\n enableActions={true}\n enableCreate={true}\n />\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,iBAAiB,QAAQ,iBAAiB;AAC/D,SAASC,yBAAyB;AAElC,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAM;EAChC,MAAM;IAAEC;EAAQ,CAAC,GAAGF,yBAAyB,CAAC,CAAC;EAC/C,MAAM;IAAEG,gBAAgB;IAAEC;EAAgB,CAAC,GAAGL,iBAAiB,CAAC,CAAC;EAEjE,oBACIF,KAAA,CAAAQ,aAAA;IAAKC,SAAS,EAAE;EAA2B,gBACvCT,KAAA,CAAAQ,aAAA,CAACP,UAAU;IACPS,aAAa,EAAEL,OAAO,CAACM,MAAM,CAACC,OAAQ;IACtCC,eAAe,EAAEN,eAAgB;IACjCO,aAAa,EAAEC,IAAI,IAAIT,gBAAgB,CAACS,IAAI,CAACC,EAAE,CAAE;IACjDC,aAAa,EAAE,IAAK;IACpBC,YAAY,EAAE;EAAK,CACtB,CACA,CAAC;AAEd,CAAC","ignoreList":[]}
|
|
@@ -7,7 +7,7 @@ export const SidebarHeader = () => {
|
|
|
7
7
|
model
|
|
8
8
|
} = useModel();
|
|
9
9
|
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
10
|
-
className: "
|
|
10
|
+
className: "py-sm px-md"
|
|
11
11
|
}, /*#__PURE__*/React.createElement(Heading, {
|
|
12
12
|
level: 5
|
|
13
13
|
}, model.pluralApiName), /*#__PURE__*/React.createElement(IsModelPublishable, null, /*#__PURE__*/React.createElement(Text, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Heading","Link","Separator","Text","Tooltip","useModel","IsModelPublishable","SidebarHeader","model","createElement","className","level","pluralApiName","size","plugin","side","content","trigger","modelId","to","variant"],"sources":["SidebarHeader.tsx"],"sourcesContent":["import React from \"react\";\nimport { Heading, Link, Separator, Text, Tooltip } from \"@webiny/admin-ui\";\nimport { useModel } from \"@webiny/app-headless-cms-common\";\nimport { IsModelPublishable } from \"~/admin/components/IsModelPublishable.js\";\n\nexport const SidebarHeader = () => {\n const { model } = useModel();\n\n return (\n <div>\n <div className={\"
|
|
1
|
+
{"version":3,"names":["React","Heading","Link","Separator","Text","Tooltip","useModel","IsModelPublishable","SidebarHeader","model","createElement","className","level","pluralApiName","size","plugin","side","content","trigger","modelId","to","variant"],"sources":["SidebarHeader.tsx"],"sourcesContent":["import React from \"react\";\nimport { Heading, Link, Separator, Text, Tooltip } from \"@webiny/admin-ui\";\nimport { useModel } from \"@webiny/app-headless-cms-common\";\nimport { IsModelPublishable } from \"~/admin/components/IsModelPublishable.js\";\n\nexport const SidebarHeader = () => {\n const { model } = useModel();\n\n return (\n <div>\n <div className={\"py-sm px-md\"}>\n <Heading level={5}>{model.pluralApiName}</Heading>\n <IsModelPublishable>\n <Text size={\"sm\"} className={\"text-neutral-muted\"}>\n Model ID:{\" \"}\n {model.plugin ? (\n <Tooltip\n side={\"top\"}\n content={\"Content model is registered via a plugin.\"}\n trigger={model.modelId}\n />\n ) : (\n <Tooltip\n content={\"Edit content model\"}\n side={\"top\"}\n trigger={\n <Link\n to={`/cms/content-models/${model.modelId}`}\n variant={\"secondary\"}\n className={\"text-neutral-muted hover:text-neutral-strong\"}\n >\n {model.modelId}\n </Link>\n }\n />\n )}\n </Text>\n </IsModelPublishable>\n </div>\n <Separator />\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,EAAEC,IAAI,EAAEC,SAAS,EAAEC,IAAI,EAAEC,OAAO,QAAQ,kBAAkB;AAC1E,SAASC,QAAQ,QAAQ,iCAAiC;AAC1D,SAASC,kBAAkB;AAE3B,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EAC/B,MAAM;IAAEC;EAAM,CAAC,GAAGH,QAAQ,CAAC,CAAC;EAE5B,oBACIN,KAAA,CAAAU,aAAA,2BACIV,KAAA,CAAAU,aAAA;IAAKC,SAAS,EAAE;EAAc,gBAC1BX,KAAA,CAAAU,aAAA,CAACT,OAAO;IAACW,KAAK,EAAE;EAAE,GAAEH,KAAK,CAACI,aAAuB,CAAC,eAClDb,KAAA,CAAAU,aAAA,CAACH,kBAAkB,qBACfP,KAAA,CAAAU,aAAA,CAACN,IAAI;IAACU,IAAI,EAAE,IAAK;IAACH,SAAS,EAAE;EAAqB,GAAC,WACtC,EAAC,GAAG,EACZF,KAAK,CAACM,MAAM,gBACTf,KAAA,CAAAU,aAAA,CAACL,OAAO;IACJW,IAAI,EAAE,KAAM;IACZC,OAAO,EAAE,2CAA4C;IACrDC,OAAO,EAAET,KAAK,CAACU;EAAQ,CAC1B,CAAC,gBAEFnB,KAAA,CAAAU,aAAA,CAACL,OAAO;IACJY,OAAO,EAAE,oBAAqB;IAC9BD,IAAI,EAAE,KAAM;IACZE,OAAO,eACHlB,KAAA,CAAAU,aAAA,CAACR,IAAI;MACDkB,EAAE,EAAE,uBAAuBX,KAAK,CAACU,OAAO,EAAG;MAC3CE,OAAO,EAAE,WAAY;MACrBV,SAAS,EAAE;IAA+C,GAEzDF,KAAK,CAACU,OACL;EACT,CACJ,CAEH,CACU,CACnB,CAAC,eACNnB,KAAA,CAAAU,aAAA,CAACP,SAAS,MAAE,CACX,CAAC;AAEd,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useState, useEffect } from "react";
|
|
2
2
|
import { makeDecoratable, NavigationPrompt, LeftPanel, RightPanel, SplitView } from "@webiny/app-admin";
|
|
3
3
|
import { i18n } from "@webiny/app/i18n/index.js";
|
|
4
|
-
import { Heading, OverlayLoader,
|
|
4
|
+
import { Heading, OverlayLoader, Tabs, Text, TimeAgo } from "@webiny/admin-ui";
|
|
5
5
|
import { ReactComponent as EditIcon } from "@webiny/icons/edit.svg";
|
|
6
6
|
import { ReactComponent as PreviewIcon } from "@webiny/icons/fullscreen.svg";
|
|
7
7
|
import { FieldsSidebar } from "./FieldsSidebar.js";
|
|
@@ -62,11 +62,6 @@ export const ContentModelEditor = makeDecoratable("ContentModelEditor", () => {
|
|
|
62
62
|
span: 4,
|
|
63
63
|
className: "bg-neutral-light"
|
|
64
64
|
}, /*#__PURE__*/React.createElement("div", {
|
|
65
|
-
className: "px-lg py-md"
|
|
66
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
67
|
-
as: "div",
|
|
68
|
-
className: "uppercase font-semibold text-neutral-xstrong"
|
|
69
|
-
}, "Fields")), /*#__PURE__*/React.createElement(Separator, null), /*#__PURE__*/React.createElement("div", {
|
|
70
65
|
className: "px-lg py-md h-[calc(100vh-98px)] overflow-y-scroll"
|
|
71
66
|
}, /*#__PURE__*/React.createElement(FieldsSidebar, {
|
|
72
67
|
onFieldDragStart: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useEffect","makeDecoratable","NavigationPrompt","LeftPanel","RightPanel","SplitView","i18n","Heading","OverlayLoader","Separator","Tabs","Text","TimeAgo","ReactComponent","EditIcon","PreviewIcon","FieldsSidebar","FieldEditor","PreviewTab","Header","DragPreview","useModelEditor","ContentEntryEditorWithConfig","ContentEntryProvider","ContentEntriesProvider","ModelIsBeingDeletedError","t","ns","prompt","ContentModelEditor","data","setData","isPristine","contentModel","document","body","classList","add","remove","activeTab","setActiveTab","onChange","fields","layout","createElement","text","isBeingDeleted","model","className","when","message","span","as","onFieldDragStart","level","name","size","createdBy","displayName","datetime","savedOn","spacing","separator","value","String","onValueChange","tabs","Tab","key","trigger","icon","content","readonly"],"sources":["ContentModelEditor.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport {\n makeDecoratable,\n NavigationPrompt,\n LeftPanel,\n RightPanel,\n SplitView\n} from \"@webiny/app-admin\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Heading, OverlayLoader, Separator, Tabs, Text, TimeAgo } from \"@webiny/admin-ui\";\nimport { ReactComponent as EditIcon } from \"@webiny/icons/edit.svg\";\nimport { ReactComponent as PreviewIcon } from \"@webiny/icons/fullscreen.svg\";\nimport { FieldsSidebar } from \"./FieldsSidebar.js\";\nimport { FieldEditor } from \"../FieldEditor/index.js\";\nimport { PreviewTab } from \"./PreviewTab.js\";\nimport Header from \"./Header.js\";\nimport DragPreview from \"../DragPreview.js\";\nimport { useModelEditor } from \"./useModelEditor.js\";\nimport type { CmsEditorFieldsLayout, CmsModelField } from \"~/types.js\";\nimport { ContentEntryEditorWithConfig } from \"~/admin/config/contentEntries/index.js\";\nimport { ContentEntryProvider } from \"~/admin/views/contentEntries/ContentEntry/ContentEntryContext.js\";\nimport { ContentEntriesProvider } from \"~/admin/views/contentEntries/ContentEntriesContext.js\";\nimport { ModelIsBeingDeletedError } from \"~/admin/components/ContentModelEditor/ModelIsBeingDeletedError/index.js\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/editor\");\n\nconst prompt = t`There are some unsaved changes! Are you sure you want to navigate away and discard all changes?`;\n\ninterface OnChangeParams {\n fields: CmsModelField[];\n layout: CmsEditorFieldsLayout;\n}\n\nexport const ContentModelEditor = makeDecoratable(\"ContentModelEditor\", () => {\n const { data, setData, isPristine, contentModel } = useModelEditor();\n\n // Add a class to <body> to trigger global styles while this component is active\n useEffect(() => {\n document.body.classList.add(\"overflow-hidden\");\n\n return () => {\n document.body.classList.remove(\"overflow-hidden\");\n };\n }, []);\n\n const [activeTab, setActiveTab] = useState<string>(\"edit\");\n\n const onChange = ({ fields, layout }: OnChangeParams) => {\n setData(data => ({ ...data, fields, layout }));\n };\n\n if (!data) {\n return <OverlayLoader text={\"Loading content model...\"} />;\n } else if (data.isBeingDeleted) {\n return <ModelIsBeingDeletedError model={data} />;\n }\n\n return (\n <div className={\"content-model-editor flex-1\"}>\n <NavigationPrompt when={!isPristine} message={prompt} />\n <Header />\n <div className={\"w-full overflow-y-auto h-main-content\"}>\n <SplitView>\n <LeftPanel span={4} className={\"bg-neutral-light\"}>\n <div className={\"px-lg py-md\"}>\n <Text\n as={\"div\"}\n className={\"uppercase font-semibold text-neutral-xstrong\"}\n >\n {\"Fields\"}\n </Text>\n </div>\n <Separator />\n <div className={\"px-lg py-md h-[calc(100vh-98px)] overflow-y-scroll\"}>\n <FieldsSidebar\n onFieldDragStart={() => {\n setActiveTab(\"edit\");\n }}\n />\n </div>\n </LeftPanel>\n <RightPanel span={8} className={\"bg-neutral-base\"}>\n <div className={\"h-full overflow-y-scroll\"}>\n {contentModel && (\n <div className={\"px-xl pt-lg pb-md-extra\"}>\n <Heading level={4}>{contentModel.name}</Heading>\n <Text size={\"sm\"} className={\"text-neutral-muted\"}>\n {`Created by ${contentModel.createdBy.displayName}. Last modified: `}\n <TimeAgo datetime={contentModel.savedOn} />.\n </Text>\n </div>\n )}\n <Tabs\n size={\"md\"}\n spacing={\"xl\"}\n separator={true}\n value={String(activeTab)}\n onValueChange={setActiveTab}\n tabs={[\n <Tabs.Tab\n key={\"edit\"}\n value={\"edit\"}\n trigger={\"Edit\"}\n icon={<EditIcon />}\n data-testid={\"cms.editor.tab.edit\"}\n content={\n <div className={\"relative mb-lg\"}>\n <FieldEditor\n fields={data.fields}\n layout={data.layout || []}\n onChange={onChange}\n />\n </div>\n }\n />,\n <Tabs.Tab\n key={\"preview\"}\n value={\"preview\"}\n trigger={\"Preview\"}\n icon={<PreviewIcon />}\n data-testid={\"cms.editor.tab.preview\"}\n content={\n <ContentEntryEditorWithConfig>\n <ContentEntriesProvider contentModel={data}>\n <ContentEntryProvider readonly={true}>\n <PreviewTab\n activeTab={activeTab === \"preview\"}\n />\n </ContentEntryProvider>\n </ContentEntriesProvider>\n </ContentEntryEditorWithConfig>\n }\n />\n ]}\n />\n </div>\n </RightPanel>\n </SplitView>\n <DragPreview />\n </div>\n </div>\n );\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","makeDecoratable","NavigationPrompt","LeftPanel","RightPanel","SplitView","i18n","Heading","OverlayLoader","Tabs","Text","TimeAgo","ReactComponent","EditIcon","PreviewIcon","FieldsSidebar","FieldEditor","PreviewTab","Header","DragPreview","useModelEditor","ContentEntryEditorWithConfig","ContentEntryProvider","ContentEntriesProvider","ModelIsBeingDeletedError","t","ns","prompt","ContentModelEditor","data","setData","isPristine","contentModel","document","body","classList","add","remove","activeTab","setActiveTab","onChange","fields","layout","createElement","text","isBeingDeleted","model","className","when","message","span","onFieldDragStart","level","name","size","createdBy","displayName","datetime","savedOn","spacing","separator","value","String","onValueChange","tabs","Tab","key","trigger","icon","content","readonly"],"sources":["ContentModelEditor.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport {\n makeDecoratable,\n NavigationPrompt,\n LeftPanel,\n RightPanel,\n SplitView\n} from \"@webiny/app-admin\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Heading, OverlayLoader, Tabs, Text, TimeAgo } from \"@webiny/admin-ui\";\nimport { ReactComponent as EditIcon } from \"@webiny/icons/edit.svg\";\nimport { ReactComponent as PreviewIcon } from \"@webiny/icons/fullscreen.svg\";\nimport { FieldsSidebar } from \"./FieldsSidebar.js\";\nimport { FieldEditor } from \"../FieldEditor/index.js\";\nimport { PreviewTab } from \"./PreviewTab.js\";\nimport Header from \"./Header.js\";\nimport DragPreview from \"../DragPreview.js\";\nimport { useModelEditor } from \"./useModelEditor.js\";\nimport type { CmsEditorFieldsLayout, CmsModelField } from \"~/types.js\";\nimport { ContentEntryEditorWithConfig } from \"~/admin/config/contentEntries/index.js\";\nimport { ContentEntryProvider } from \"~/admin/views/contentEntries/ContentEntry/ContentEntryContext.js\";\nimport { ContentEntriesProvider } from \"~/admin/views/contentEntries/ContentEntriesContext.js\";\nimport { ModelIsBeingDeletedError } from \"~/admin/components/ContentModelEditor/ModelIsBeingDeletedError/index.js\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/editor\");\n\nconst prompt = t`There are some unsaved changes! Are you sure you want to navigate away and discard all changes?`;\n\ninterface OnChangeParams {\n fields: CmsModelField[];\n layout: CmsEditorFieldsLayout;\n}\n\nexport const ContentModelEditor = makeDecoratable(\"ContentModelEditor\", () => {\n const { data, setData, isPristine, contentModel } = useModelEditor();\n\n // Add a class to <body> to trigger global styles while this component is active\n useEffect(() => {\n document.body.classList.add(\"overflow-hidden\");\n\n return () => {\n document.body.classList.remove(\"overflow-hidden\");\n };\n }, []);\n\n const [activeTab, setActiveTab] = useState<string>(\"edit\");\n\n const onChange = ({ fields, layout }: OnChangeParams) => {\n setData(data => ({ ...data, fields, layout }));\n };\n\n if (!data) {\n return <OverlayLoader text={\"Loading content model...\"} />;\n } else if (data.isBeingDeleted) {\n return <ModelIsBeingDeletedError model={data} />;\n }\n\n return (\n <div className={\"content-model-editor flex-1\"}>\n <NavigationPrompt when={!isPristine} message={prompt} />\n <Header />\n <div className={\"w-full overflow-y-auto h-main-content\"}>\n <SplitView>\n <LeftPanel span={4} className={\"bg-neutral-light\"}>\n <div className={\"px-lg py-md h-[calc(100vh-98px)] overflow-y-scroll\"}>\n <FieldsSidebar\n onFieldDragStart={() => {\n setActiveTab(\"edit\");\n }}\n />\n </div>\n </LeftPanel>\n <RightPanel span={8} className={\"bg-neutral-base\"}>\n <div className={\"h-full overflow-y-scroll\"}>\n {contentModel && (\n <div className={\"px-xl pt-lg pb-md-extra\"}>\n <Heading level={4}>{contentModel.name}</Heading>\n <Text size={\"sm\"} className={\"text-neutral-muted\"}>\n {`Created by ${contentModel.createdBy.displayName}. Last modified: `}\n <TimeAgo datetime={contentModel.savedOn} />.\n </Text>\n </div>\n )}\n <Tabs\n size={\"md\"}\n spacing={\"xl\"}\n separator={true}\n value={String(activeTab)}\n onValueChange={setActiveTab}\n tabs={[\n <Tabs.Tab\n key={\"edit\"}\n value={\"edit\"}\n trigger={\"Edit\"}\n icon={<EditIcon />}\n data-testid={\"cms.editor.tab.edit\"}\n content={\n <div className={\"relative mb-lg\"}>\n <FieldEditor\n fields={data.fields}\n layout={data.layout || []}\n onChange={onChange}\n />\n </div>\n }\n />,\n <Tabs.Tab\n key={\"preview\"}\n value={\"preview\"}\n trigger={\"Preview\"}\n icon={<PreviewIcon />}\n data-testid={\"cms.editor.tab.preview\"}\n content={\n <ContentEntryEditorWithConfig>\n <ContentEntriesProvider contentModel={data}>\n <ContentEntryProvider readonly={true}>\n <PreviewTab\n activeTab={activeTab === \"preview\"}\n />\n </ContentEntryProvider>\n </ContentEntriesProvider>\n </ContentEntryEditorWithConfig>\n }\n />\n ]}\n />\n </div>\n </RightPanel>\n </SplitView>\n <DragPreview />\n </div>\n </div>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,SACIC,eAAe,EACfC,gBAAgB,EAChBC,SAAS,EACTC,UAAU,EACVC,SAAS,QACN,mBAAmB;AAC1B,SAASC,IAAI,QAAQ,2BAA2B;AAChD,SAASC,OAAO,EAAEC,aAAa,EAAEC,IAAI,EAAEC,IAAI,EAAEC,OAAO,QAAQ,kBAAkB;AAC9E,SAASC,cAAc,IAAIC,QAAQ,QAAQ,wBAAwB;AACnE,SAASD,cAAc,IAAIE,WAAW,QAAQ,8BAA8B;AAC5E,SAASC,aAAa;AACtB,SAASC,WAAW;AACpB,SAASC,UAAU;AACnB,OAAOC,MAAM;AACb,OAAOC,WAAW;AAClB,SAASC,cAAc;AAEvB,SAASC,4BAA4B;AACrC,SAASC,oBAAoB;AAC7B,SAASC,sBAAsB;AAC/B,SAASC,wBAAwB;AAEjC,MAAMC,CAAC,GAAGnB,IAAI,CAACoB,EAAE,CAAC,+BAA+B,CAAC;AAElD,MAAMC,MAAM,GAAGF,CAAC,iGAAiG;AAOjH,OAAO,MAAMG,kBAAkB,GAAG3B,eAAe,CAAC,oBAAoB,EAAE,MAAM;EAC1E,MAAM;IAAE4B,IAAI;IAAEC,OAAO;IAAEC,UAAU;IAAEC;EAAa,CAAC,GAAGZ,cAAc,CAAC,CAAC;;EAEpE;EACApB,SAAS,CAAC,MAAM;IACZiC,QAAQ,CAACC,IAAI,CAACC,SAAS,CAACC,GAAG,CAAC,iBAAiB,CAAC;IAE9C,OAAO,MAAM;MACTH,QAAQ,CAACC,IAAI,CAACC,SAAS,CAACE,MAAM,CAAC,iBAAiB,CAAC;IACrD,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGxC,QAAQ,CAAS,MAAM,CAAC;EAE1D,MAAMyC,QAAQ,GAAGA,CAAC;IAAEC,MAAM;IAAEC;EAAuB,CAAC,KAAK;IACrDZ,OAAO,CAACD,IAAI,KAAK;MAAE,GAAGA,IAAI;MAAEY,MAAM;MAAEC;IAAO,CAAC,CAAC,CAAC;EAClD,CAAC;EAED,IAAI,CAACb,IAAI,EAAE;IACP,oBAAO/B,KAAA,CAAA6C,aAAA,CAACnC,aAAa;MAACoC,IAAI,EAAE;IAA2B,CAAE,CAAC;EAC9D,CAAC,MAAM,IAAIf,IAAI,CAACgB,cAAc,EAAE;IAC5B,oBAAO/C,KAAA,CAAA6C,aAAA,CAACnB,wBAAwB;MAACsB,KAAK,EAAEjB;IAAK,CAAE,CAAC;EACpD;EAEA,oBACI/B,KAAA,CAAA6C,aAAA;IAAKI,SAAS,EAAE;EAA8B,gBAC1CjD,KAAA,CAAA6C,aAAA,CAACzC,gBAAgB;IAAC8C,IAAI,EAAE,CAACjB,UAAW;IAACkB,OAAO,EAAEtB;EAAO,CAAE,CAAC,eACxD7B,KAAA,CAAA6C,aAAA,CAACzB,MAAM,MAAE,CAAC,eACVpB,KAAA,CAAA6C,aAAA;IAAKI,SAAS,EAAE;EAAwC,gBACpDjD,KAAA,CAAA6C,aAAA,CAACtC,SAAS,qBACNP,KAAA,CAAA6C,aAAA,CAACxC,SAAS;IAAC+C,IAAI,EAAE,CAAE;IAACH,SAAS,EAAE;EAAmB,gBAC9CjD,KAAA,CAAA6C,aAAA;IAAKI,SAAS,EAAE;EAAqD,gBACjEjD,KAAA,CAAA6C,aAAA,CAAC5B,aAAa;IACVoC,gBAAgB,EAAEA,CAAA,KAAM;MACpBZ,YAAY,CAAC,MAAM,CAAC;IACxB;EAAE,CACL,CACA,CACE,CAAC,eACZzC,KAAA,CAAA6C,aAAA,CAACvC,UAAU;IAAC8C,IAAI,EAAE,CAAE;IAACH,SAAS,EAAE;EAAkB,gBAC9CjD,KAAA,CAAA6C,aAAA;IAAKI,SAAS,EAAE;EAA2B,GACtCf,YAAY,iBACTlC,KAAA,CAAA6C,aAAA;IAAKI,SAAS,EAAE;EAA0B,gBACtCjD,KAAA,CAAA6C,aAAA,CAACpC,OAAO;IAAC6C,KAAK,EAAE;EAAE,GAAEpB,YAAY,CAACqB,IAAc,CAAC,eAChDvD,KAAA,CAAA6C,aAAA,CAACjC,IAAI;IAAC4C,IAAI,EAAE,IAAK;IAACP,SAAS,EAAE;EAAqB,GAC7C,cAAcf,YAAY,CAACuB,SAAS,CAACC,WAAW,mBAAmB,eACpE1D,KAAA,CAAA6C,aAAA,CAAChC,OAAO;IAAC8C,QAAQ,EAAEzB,YAAY,CAAC0B;EAAQ,CAAE,CAAC,KACzC,CACL,CACR,eACD5D,KAAA,CAAA6C,aAAA,CAAClC,IAAI;IACD6C,IAAI,EAAE,IAAK;IACXK,OAAO,EAAE,IAAK;IACdC,SAAS,EAAE,IAAK;IAChBC,KAAK,EAAEC,MAAM,CAACxB,SAAS,CAAE;IACzByB,aAAa,EAAExB,YAAa;IAC5ByB,IAAI,EAAE,cACFlE,KAAA,CAAA6C,aAAA,CAAClC,IAAI,CAACwD,GAAG;MACLC,GAAG,EAAE,MAAO;MACZL,KAAK,EAAE,MAAO;MACdM,OAAO,EAAE,MAAO;MAChBC,IAAI,eAAEtE,KAAA,CAAA6C,aAAA,CAAC9B,QAAQ,MAAE,CAAE;MACnB,eAAa,qBAAsB;MACnCwD,OAAO,eACHvE,KAAA,CAAA6C,aAAA;QAAKI,SAAS,EAAE;MAAiB,gBAC7BjD,KAAA,CAAA6C,aAAA,CAAC3B,WAAW;QACRyB,MAAM,EAAEZ,IAAI,CAACY,MAAO;QACpBC,MAAM,EAAEb,IAAI,CAACa,MAAM,IAAI,EAAG;QAC1BF,QAAQ,EAAEA;MAAS,CACtB,CACA;IACR,CACJ,CAAC,eACF1C,KAAA,CAAA6C,aAAA,CAAClC,IAAI,CAACwD,GAAG;MACLC,GAAG,EAAE,SAAU;MACfL,KAAK,EAAE,SAAU;MACjBM,OAAO,EAAE,SAAU;MACnBC,IAAI,eAAEtE,KAAA,CAAA6C,aAAA,CAAC7B,WAAW,MAAE,CAAE;MACtB,eAAa,wBAAyB;MACtCuD,OAAO,eACHvE,KAAA,CAAA6C,aAAA,CAACtB,4BAA4B,qBACzBvB,KAAA,CAAA6C,aAAA,CAACpB,sBAAsB;QAACS,YAAY,EAAEH;MAAK,gBACvC/B,KAAA,CAAA6C,aAAA,CAACrB,oBAAoB;QAACgD,QAAQ,EAAE;MAAK,gBACjCxE,KAAA,CAAA6C,aAAA,CAAC1B,UAAU;QACPqB,SAAS,EAAEA,SAAS,KAAK;MAAU,CACtC,CACiB,CACF,CACE;IACjC,CACJ,CAAC;EACJ,CACL,CACA,CACG,CACL,CAAC,eACZxC,KAAA,CAAA6C,aAAA,CAACxB,WAAW,MAAE,CACb,CACJ,CAAC;AAEd,CAAC,CAAC","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ import type { ApolloClient } from "apollo-client";
|
|
|
3
3
|
import type { GetCmsModelQueryResponse, UpdateCmsModelMutationResponse } from "../../../admin/graphql/contentModels.js";
|
|
4
4
|
import type { CmsModel } from "../../../types.js";
|
|
5
5
|
import type { FetchResult } from "apollo-link";
|
|
6
|
+
import type { FieldOption } from "@webiny/app-headless-cms-common/Fields/fieldOptions.js";
|
|
6
7
|
export interface ContentModelEditorProviderContext {
|
|
7
8
|
apolloClient: ApolloClient<any>;
|
|
8
9
|
data: CmsModel;
|
|
@@ -13,6 +14,7 @@ export interface ContentModelEditorProviderContext {
|
|
|
13
14
|
setData: (setter: (model: CmsModel) => void, saveContentModel?: boolean) => Promise<any>;
|
|
14
15
|
activeTabIndex: number;
|
|
15
16
|
setActiveTabIndex: (index: number) => void;
|
|
17
|
+
fieldOptions: FieldOption[];
|
|
16
18
|
}
|
|
17
19
|
export declare const contentModelEditorContext: React.Context<ContentModelEditorProviderContext | undefined>;
|
|
18
20
|
interface State {
|
|
@@ -7,6 +7,8 @@ import { LIST_MENU_CONTENT_GROUPS_MODELS } from "../../viewsGraphql.js";
|
|
|
7
7
|
import { ModelProvider } from "../ModelProvider/index.js";
|
|
8
8
|
import { createHashing } from "@webiny/app/utils/index.js";
|
|
9
9
|
import { Routes } from "../../../routes.js";
|
|
10
|
+
import { buildFieldOptions, buildFieldLabelPrefixes } from "@webiny/app-headless-cms-common/Fields/fieldOptions.js";
|
|
11
|
+
import { plugins } from "@webiny/plugins";
|
|
10
12
|
export const contentModelEditorContext = /*#__PURE__*/React.createContext(undefined);
|
|
11
13
|
export const contentModelEditorReducer = (prev, action) => {
|
|
12
14
|
const {
|
|
@@ -176,6 +178,15 @@ export const ContentModelEditorProvider = ({
|
|
|
176
178
|
showSnackbar(`Could not load content model with given ID.`);
|
|
177
179
|
});
|
|
178
180
|
}, [modelId]);
|
|
181
|
+
const layoutFieldPlugins = plugins.byType("cms-editor-layout-field-type");
|
|
182
|
+
const fieldOptions = useMemo(() => {
|
|
183
|
+
const model = state.data;
|
|
184
|
+
if (!model) {
|
|
185
|
+
return [];
|
|
186
|
+
}
|
|
187
|
+
const prefixes = model.layout ? buildFieldLabelPrefixes(model.layout, layoutFieldPlugins) : undefined;
|
|
188
|
+
return buildFieldOptions(model.fields ?? [], "", "", prefixes, layoutFieldPlugins);
|
|
189
|
+
}, [state.data?.fields, state.data?.layout]);
|
|
179
190
|
const value = useMemo(() => ({
|
|
180
191
|
// Keeping `data` for compatibility
|
|
181
192
|
data: state.data,
|
|
@@ -188,8 +199,9 @@ export const ContentModelEditorProvider = ({
|
|
|
188
199
|
saveContentModel,
|
|
189
200
|
setData,
|
|
190
201
|
activeTabIndex: state.activeTabIndex,
|
|
191
|
-
setActiveTabIndex
|
|
192
|
-
|
|
202
|
+
setActiveTabIndex,
|
|
203
|
+
fieldOptions
|
|
204
|
+
}), [state, apolloClient, fieldOptions]);
|
|
193
205
|
const {
|
|
194
206
|
Provider
|
|
195
207
|
} = contentModelEditorContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","useReducer","get","pick","useSnackbar","useRouter","GET_CONTENT_MODEL","UPDATE_CONTENT_MODEL","LIST_MENU_CONTENT_GROUPS_MODELS","ModelProvider","createHashing","Routes","contentModelEditorContext","createContext","undefined","contentModelEditorReducer","prev","action","data","type","hashModel","cleanupModelDataFields","fields","map","field","predefinedValues","enabled","values","label","value","selected","String","cleanupModelData","createDefaultState","modelId","isPristine","activeTabIndex","ContentModelEditorProvider","children","apolloClient","state","dispatch","goToRoute","showSnackbar","setPristine","flag","saveContentModel","modelData","response","mutate","mutation","variables","refetchQueries","query","updateContentModel","error","setActiveTabIndex","setData","setter","saveModel","existingHash","newHash","getContentModel","Error","message","catch","ContentModels","List","contentModel","Provider","createElement","model"],"sources":["ContentModelEditorProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useReducer } from \"react\";\nimport get from \"lodash/get.js\";\nimport pick from \"lodash/pick.js\";\nimport type { ApolloClient } from \"apollo-client\";\nimport { useSnackbar, useRouter } from \"@webiny/app-admin\";\nimport type {\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables,\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n} from \"~/admin/graphql/contentModels.js\";\nimport { GET_CONTENT_MODEL, UPDATE_CONTENT_MODEL } from \"~/admin/graphql/contentModels.js\";\nimport { LIST_MENU_CONTENT_GROUPS_MODELS } from \"~/admin/viewsGraphql.js\";\nimport type { CmsModel, CmsModelField } from \"~/types.js\";\nimport type { FetchResult } from \"apollo-link\";\nimport { ModelProvider } from \"~/admin/components/ModelProvider/index.js\";\nimport { createHashing } from \"@webiny/app/utils/index.js\";\nimport { Routes } from \"~/routes.js\";\n\nexport interface ContentModelEditorProviderContext {\n apolloClient: ApolloClient<any>;\n data: CmsModel;\n contentModel: CmsModel;\n isPristine: boolean;\n getContentModel: (modelId: string) => Promise<FetchResult<GetCmsModelQueryResponse>>;\n saveContentModel: (\n data?: CmsModel\n ) => Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]>;\n setData: (setter: (model: CmsModel) => void, saveContentModel?: boolean) => Promise<any>;\n activeTabIndex: number;\n setActiveTabIndex: (index: number) => void;\n}\n\nexport const contentModelEditorContext = React.createContext<\n ContentModelEditorProviderContext | undefined\n>(undefined);\n\ntype PickedCmsModel = Pick<\n CmsModel,\n \"layout\" | \"fields\" | \"name\" | \"settings\" | \"description\" | \"titleFieldId\" | \"group\"\n>;\ninterface State {\n modelId: string | null;\n isPristine: boolean;\n data: CmsModel;\n activeTabIndex: number;\n}\ninterface Action {\n data: Partial<State> | Partial<CmsModel>;\n type: \"state\" | \"data\";\n}\ninterface Reducer {\n (prev: State, action: Action): State;\n}\nexport const contentModelEditorReducer: Reducer = (prev: State, action: Action): State => {\n const { data, type } = action;\n switch (type) {\n case \"state\":\n return { ...prev, ...data };\n\n case \"data\":\n return { ...prev, data: data as CmsModel };\n default:\n return prev;\n }\n};\n\nconst hashModel = createHashing(\"SHA-256\");\n\n/**\n * Cleanup is required because backend always expects string value in predefined values entries\n */\nconst cleanupModelDataFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.map(field => {\n const { predefinedValues } = field;\n const { enabled = false, values = [] } = predefinedValues || {};\n return {\n ...field,\n predefinedValues: {\n enabled,\n values: values.map(({ label, value, selected }) => {\n return {\n label,\n selected: selected || false,\n value: String(value)\n };\n })\n }\n };\n });\n};\n\nconst cleanupModelData = (data: PickedCmsModel): PickedCmsModel => {\n return {\n ...data,\n fields: cleanupModelDataFields(data.fields)\n };\n};\n\ninterface ContentModelEditorProviderProps {\n apolloClient: ApolloClient<any>;\n modelId?: string;\n children: React.ReactElement;\n}\n\nconst createDefaultState = (modelId?: string): State => {\n return {\n modelId: modelId || null,\n isPristine: true,\n data: null as unknown as CmsModel,\n activeTabIndex: 0\n };\n};\n\nexport const ContentModelEditorProvider = ({\n children,\n apolloClient,\n modelId\n}: ContentModelEditorProviderProps) => {\n const [state, dispatch] = useReducer(contentModelEditorReducer, createDefaultState(modelId));\n\n const { goToRoute } = useRouter();\n const { showSnackbar } = useSnackbar();\n\n const setPristine = (flag: boolean): void => {\n dispatch({ type: \"state\", data: { isPristine: flag } });\n };\n\n const saveContentModel = async (\n data?: CmsModel\n ): Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]> => {\n if (!data) {\n data = state.data;\n }\n const modelData: PickedCmsModel = pick(data, [\n \"group\",\n \"layout\",\n \"fields\",\n \"tags\",\n \"name\",\n \"settings\",\n \"description\",\n \"titleFieldId\",\n \"descriptionFieldId\",\n \"imageFieldId\",\n \"icon\"\n ]);\n const response = await apolloClient.mutate<\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n >({\n mutation: UPDATE_CONTENT_MODEL,\n variables: {\n modelId: data.modelId,\n data: cleanupModelData(modelData)\n },\n refetchQueries: [\n {\n query: LIST_MENU_CONTENT_GROUPS_MODELS\n }\n ]\n });\n\n setPristine(true);\n\n if (!response.data || !response.data.updateContentModel) {\n return {\n data: null,\n error: null\n };\n }\n\n return response.data.updateContentModel;\n };\n\n const setActiveTabIndex = useCallback((activeTabIndex: number) => {\n dispatch({ type: \"state\", data: { activeTabIndex } });\n }, []);\n\n /**\n * Set form data by providing a callback, which receives a fresh copy of data on which you can work on.\n * Return new data once finished.\n */\n const setData = async (setter: (value: any) => any, saveModel = false): Promise<void> => {\n const data = setter(state.data);\n const existingHash = await hashModel(state.data);\n const newHash = await hashModel(data);\n if (existingHash === newHash) {\n return;\n }\n setPristine(false);\n dispatch({ type: \"data\", data });\n if (!saveModel) {\n return;\n }\n await saveContentModel(data);\n };\n\n const getContentModel = async (\n modelId: string\n ): Promise<FetchResult<GetCmsModelQueryResponse>> => {\n const response = await apolloClient.query<\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n >({\n query: GET_CONTENT_MODEL,\n variables: {\n modelId\n }\n });\n\n const { data, error } = get(response, \"data.getContentModel\");\n if (error) {\n throw new Error(error.message);\n }\n\n await setData(() => data, false);\n\n setPristine(true);\n return response;\n };\n\n useEffect(() => {\n if (!modelId) {\n return;\n }\n getContentModel(modelId).catch(() => {\n goToRoute(Routes.ContentModels.List);\n showSnackbar(`Could not load content model with given ID.`);\n });\n }, [modelId]);\n\n const value = useMemo<ContentModelEditorProviderContext>(\n () => ({\n // Keeping `data` for compatibility\n data: state.data,\n contentModel: state.data,\n modelId,\n apolloClient,\n dispatch,\n isPristine: state.isPristine,\n getContentModel,\n saveContentModel,\n setData,\n activeTabIndex: state.activeTabIndex,\n setActiveTabIndex\n }),\n [state, apolloClient]\n );\n\n const { Provider } = contentModelEditorContext;\n\n return (\n <Provider value={value}>\n <ModelProvider model={value.contentModel}>{children}</ModelProvider>\n </Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useReducer","get","pick","useSnackbar","useRouter","GET_CONTENT_MODEL","UPDATE_CONTENT_MODEL","LIST_MENU_CONTENT_GROUPS_MODELS","ModelProvider","createHashing","Routes","buildFieldOptions","buildFieldLabelPrefixes","plugins","contentModelEditorContext","createContext","undefined","contentModelEditorReducer","prev","action","data","type","hashModel","cleanupModelDataFields","fields","map","field","predefinedValues","enabled","values","label","value","selected","String","cleanupModelData","createDefaultState","modelId","isPristine","activeTabIndex","ContentModelEditorProvider","children","apolloClient","state","dispatch","goToRoute","showSnackbar","setPristine","flag","saveContentModel","modelData","response","mutate","mutation","variables","refetchQueries","query","updateContentModel","error","setActiveTabIndex","setData","setter","saveModel","existingHash","newHash","getContentModel","Error","message","catch","ContentModels","List","layoutFieldPlugins","byType","fieldOptions","model","prefixes","layout","contentModel","Provider","createElement"],"sources":["ContentModelEditorProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useReducer } from \"react\";\nimport get from \"lodash/get.js\";\nimport pick from \"lodash/pick.js\";\nimport type { ApolloClient } from \"apollo-client\";\nimport { useSnackbar, useRouter } from \"@webiny/app-admin\";\nimport type {\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables,\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n} from \"~/admin/graphql/contentModels.js\";\nimport { GET_CONTENT_MODEL, UPDATE_CONTENT_MODEL } from \"~/admin/graphql/contentModels.js\";\nimport { LIST_MENU_CONTENT_GROUPS_MODELS } from \"~/admin/viewsGraphql.js\";\nimport type { CmsModel, CmsModelField } from \"~/types.js\";\nimport type { CmsLayoutFieldTypePlugin } from \"@webiny/app-headless-cms-common/types/index.js\";\nimport type { FetchResult } from \"apollo-link\";\nimport { ModelProvider } from \"~/admin/components/ModelProvider/index.js\";\nimport { createHashing } from \"@webiny/app/utils/index.js\";\nimport { Routes } from \"~/routes.js\";\nimport type { FieldOption } from \"@webiny/app-headless-cms-common/Fields/fieldOptions.js\";\nimport {\n buildFieldOptions,\n buildFieldLabelPrefixes\n} from \"@webiny/app-headless-cms-common/Fields/fieldOptions.js\";\nimport { plugins } from \"@webiny/plugins\";\n\nexport interface ContentModelEditorProviderContext {\n apolloClient: ApolloClient<any>;\n data: CmsModel;\n contentModel: CmsModel;\n isPristine: boolean;\n getContentModel: (modelId: string) => Promise<FetchResult<GetCmsModelQueryResponse>>;\n saveContentModel: (\n data?: CmsModel\n ) => Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]>;\n setData: (setter: (model: CmsModel) => void, saveContentModel?: boolean) => Promise<any>;\n activeTabIndex: number;\n setActiveTabIndex: (index: number) => void;\n fieldOptions: FieldOption[];\n}\n\nexport const contentModelEditorContext = React.createContext<\n ContentModelEditorProviderContext | undefined\n>(undefined);\n\ntype PickedCmsModel = Pick<\n CmsModel,\n \"layout\" | \"fields\" | \"name\" | \"settings\" | \"description\" | \"titleFieldId\" | \"group\"\n>;\ninterface State {\n modelId: string | null;\n isPristine: boolean;\n data: CmsModel;\n activeTabIndex: number;\n}\ninterface Action {\n data: Partial<State> | Partial<CmsModel>;\n type: \"state\" | \"data\";\n}\ninterface Reducer {\n (prev: State, action: Action): State;\n}\nexport const contentModelEditorReducer: Reducer = (prev: State, action: Action): State => {\n const { data, type } = action;\n switch (type) {\n case \"state\":\n return { ...prev, ...data };\n\n case \"data\":\n return { ...prev, data: data as CmsModel };\n default:\n return prev;\n }\n};\n\nconst hashModel = createHashing(\"SHA-256\");\n\n/**\n * Cleanup is required because backend always expects string value in predefined values entries\n */\nconst cleanupModelDataFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.map(field => {\n const { predefinedValues } = field;\n const { enabled = false, values = [] } = predefinedValues || {};\n return {\n ...field,\n predefinedValues: {\n enabled,\n values: values.map(({ label, value, selected }) => {\n return {\n label,\n selected: selected || false,\n value: String(value)\n };\n })\n }\n };\n });\n};\n\nconst cleanupModelData = (data: PickedCmsModel): PickedCmsModel => {\n return {\n ...data,\n fields: cleanupModelDataFields(data.fields)\n };\n};\n\ninterface ContentModelEditorProviderProps {\n apolloClient: ApolloClient<any>;\n modelId?: string;\n children: React.ReactElement;\n}\n\nconst createDefaultState = (modelId?: string): State => {\n return {\n modelId: modelId || null,\n isPristine: true,\n data: null as unknown as CmsModel,\n activeTabIndex: 0\n };\n};\n\nexport const ContentModelEditorProvider = ({\n children,\n apolloClient,\n modelId\n}: ContentModelEditorProviderProps) => {\n const [state, dispatch] = useReducer(contentModelEditorReducer, createDefaultState(modelId));\n\n const { goToRoute } = useRouter();\n const { showSnackbar } = useSnackbar();\n\n const setPristine = (flag: boolean): void => {\n dispatch({ type: \"state\", data: { isPristine: flag } });\n };\n\n const saveContentModel = async (\n data?: CmsModel\n ): Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]> => {\n if (!data) {\n data = state.data;\n }\n const modelData: PickedCmsModel = pick(data, [\n \"group\",\n \"layout\",\n \"fields\",\n \"tags\",\n \"name\",\n \"settings\",\n \"description\",\n \"titleFieldId\",\n \"descriptionFieldId\",\n \"imageFieldId\",\n \"icon\"\n ]);\n const response = await apolloClient.mutate<\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n >({\n mutation: UPDATE_CONTENT_MODEL,\n variables: {\n modelId: data.modelId,\n data: cleanupModelData(modelData)\n },\n refetchQueries: [\n {\n query: LIST_MENU_CONTENT_GROUPS_MODELS\n }\n ]\n });\n\n setPristine(true);\n\n if (!response.data || !response.data.updateContentModel) {\n return {\n data: null,\n error: null\n };\n }\n\n return response.data.updateContentModel;\n };\n\n const setActiveTabIndex = useCallback((activeTabIndex: number) => {\n dispatch({ type: \"state\", data: { activeTabIndex } });\n }, []);\n\n /**\n * Set form data by providing a callback, which receives a fresh copy of data on which you can work on.\n * Return new data once finished.\n */\n const setData = async (setter: (value: any) => any, saveModel = false): Promise<void> => {\n const data = setter(state.data);\n const existingHash = await hashModel(state.data);\n const newHash = await hashModel(data);\n if (existingHash === newHash) {\n return;\n }\n setPristine(false);\n dispatch({ type: \"data\", data });\n if (!saveModel) {\n return;\n }\n await saveContentModel(data);\n };\n\n const getContentModel = async (\n modelId: string\n ): Promise<FetchResult<GetCmsModelQueryResponse>> => {\n const response = await apolloClient.query<\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n >({\n query: GET_CONTENT_MODEL,\n variables: {\n modelId\n }\n });\n\n const { data, error } = get(response, \"data.getContentModel\");\n if (error) {\n throw new Error(error.message);\n }\n\n await setData(() => data, false);\n\n setPristine(true);\n return response;\n };\n\n useEffect(() => {\n if (!modelId) {\n return;\n }\n getContentModel(modelId).catch(() => {\n goToRoute(Routes.ContentModels.List);\n showSnackbar(`Could not load content model with given ID.`);\n });\n }, [modelId]);\n\n const layoutFieldPlugins = plugins.byType<CmsLayoutFieldTypePlugin>(\n \"cms-editor-layout-field-type\"\n );\n\n const fieldOptions = useMemo(() => {\n const model = state.data;\n if (!model) {\n return [];\n }\n const prefixes = model.layout\n ? buildFieldLabelPrefixes(model.layout, layoutFieldPlugins)\n : undefined;\n return buildFieldOptions(model.fields ?? [], \"\", \"\", prefixes, layoutFieldPlugins);\n }, [state.data?.fields, state.data?.layout]);\n\n const value = useMemo<ContentModelEditorProviderContext>(\n () => ({\n // Keeping `data` for compatibility\n data: state.data,\n contentModel: state.data,\n modelId,\n apolloClient,\n dispatch,\n isPristine: state.isPristine,\n getContentModel,\n saveContentModel,\n setData,\n activeTabIndex: state.activeTabIndex,\n setActiveTabIndex,\n fieldOptions\n }),\n [state, apolloClient, fieldOptions]\n );\n\n const { Provider } = contentModelEditorContext;\n\n return (\n <Provider value={value}>\n <ModelProvider model={value.contentModel}>{children}</ModelProvider>\n </Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -38,15 +38,64 @@ const Field = props => {
|
|
|
38
38
|
className: "text-neutral-strong"
|
|
39
39
|
}, description)))));
|
|
40
40
|
};
|
|
41
|
+
const LayoutFieldItem = props => {
|
|
42
|
+
const {
|
|
43
|
+
onFieldDragStart,
|
|
44
|
+
layoutField: {
|
|
45
|
+
type,
|
|
46
|
+
label,
|
|
47
|
+
icon,
|
|
48
|
+
description
|
|
49
|
+
}
|
|
50
|
+
} = props;
|
|
51
|
+
return /*#__PURE__*/React.createElement(Draggable, {
|
|
52
|
+
beginDrag: {
|
|
53
|
+
type: "newLayoutField",
|
|
54
|
+
layoutFieldType: type
|
|
55
|
+
}
|
|
56
|
+
}, ({
|
|
57
|
+
drag
|
|
58
|
+
}) => /*#__PURE__*/React.createElement("div", {
|
|
59
|
+
ref: drag,
|
|
60
|
+
"data-testid": `cms-editor-fields-layout-field-${type}`,
|
|
61
|
+
onDragStart: onFieldDragStart,
|
|
62
|
+
className: "bg-neutral-base rounded-sm mb-sm py-sm px-md cursor-grab last-of-type:mb-none hover:opacity-80 transition-opacity"
|
|
63
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
64
|
+
className: "flex items-center gap-md"
|
|
65
|
+
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Icon, {
|
|
66
|
+
icon: icon,
|
|
67
|
+
label: label,
|
|
68
|
+
size: "md",
|
|
69
|
+
color: "neutral-light"
|
|
70
|
+
})), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Heading, {
|
|
71
|
+
level: 6
|
|
72
|
+
}, label), /*#__PURE__*/React.createElement(Text, {
|
|
73
|
+
size: "sm",
|
|
74
|
+
className: "text-neutral-strong"
|
|
75
|
+
}, description)))));
|
|
76
|
+
};
|
|
41
77
|
export const FieldsSidebar = ({
|
|
42
78
|
onFieldDragStart
|
|
43
79
|
}) => {
|
|
44
80
|
const fieldTypePlugin = plugins.byType("cms-editor-field-type").filter(p => !p.field.hideInAdmin);
|
|
45
|
-
|
|
81
|
+
const layoutFieldPlugins = plugins.byType("cms-editor-layout-field-type");
|
|
82
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Text, {
|
|
83
|
+
as: "div",
|
|
84
|
+
size: "md",
|
|
85
|
+
className: "text-neutral-strong uppercase mt-0 mb-md font-semibold"
|
|
86
|
+
}, "Fields"), fieldTypePlugin.map(fieldPlugin => /*#__PURE__*/React.createElement(Field, {
|
|
46
87
|
key: fieldPlugin.field.type,
|
|
47
88
|
fieldType: fieldPlugin.field,
|
|
48
89
|
onFieldDragStart: onFieldDragStart
|
|
49
|
-
}))
|
|
90
|
+
})), layoutFieldPlugins.length > 0 && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Text, {
|
|
91
|
+
as: "div",
|
|
92
|
+
size: "md",
|
|
93
|
+
className: "text-neutral-strong uppercase my-md font-semibold"
|
|
94
|
+
}, "Layout"), layoutFieldPlugins.map(lp => /*#__PURE__*/React.createElement(LayoutFieldItem, {
|
|
95
|
+
key: lp.field.type,
|
|
96
|
+
layoutField: lp.field,
|
|
97
|
+
onFieldDragStart: onFieldDragStart
|
|
98
|
+
}))));
|
|
50
99
|
};
|
|
51
100
|
|
|
52
101
|
//# sourceMappingURL=FieldsSidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","plugins","Draggable","Heading","Icon","Text","Field","props","onFieldDragStart","fieldType","type","label","icon","description","createElement","beginDrag","drag","ref","onDragStart","className","size","color","level","FieldsSidebar","fieldTypePlugin","byType","filter","p","field","hideInAdmin","Fragment","map","fieldPlugin","key"],"sources":["FieldsSidebar.tsx"],"sourcesContent":["import type { DragEventHandler } from \"react\";\nimport React from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport Draggable from \"../Draggable.js\";\nimport type { CmsModelFieldTypePlugin } from \"~/types.js\";\nimport { Heading, Icon, Text } from \"@webiny/admin-ui\";\n\ninterface FieldProps {\n onFieldDragStart: DragEventHandler;\n fieldType: CmsModelFieldTypePlugin[\"field\"];\n}\n\nconst Field = (props: FieldProps) => {\n const {\n onFieldDragStart,\n fieldType: { type, label, icon, description }\n } = props;\n return (\n <Draggable beginDrag={{ type: \"newField\", fieldType: type }}>\n {({ drag }) => (\n <div\n ref={drag}\n data-testid={`cms-editor-fields-field-${type}`}\n onDragStart={onFieldDragStart}\n className={\n \"bg-neutral-base rounded-sm mb-sm py-sm px-md cursor-grab last-of-type:mb-none hover:opacity-80 transition-opacity\"\n }\n >\n <div className={\"flex items-center gap-md\"}>\n <div>\n <Icon\n icon={icon as React.ReactElement}\n label={label}\n size={\"md\"}\n color={\"neutral-light\"}\n />\n </div>\n <div>\n <Heading level={6}>{label}</Heading>\n <Text size={\"sm\"} className={\"text-neutral-strong\"}>\n {description}\n </Text>\n </div>\n </div>\n </div>\n )}\n </Draggable>\n );\n};\n\ninterface FieldsSidebarProps {\n onFieldDragStart: DragEventHandler;\n}\n\nexport const FieldsSidebar = ({ onFieldDragStart }: FieldsSidebarProps) => {\n const fieldTypePlugin = plugins\n .byType<CmsModelFieldTypePlugin>(\"cms-editor-field-type\")\n .filter(p => !p.field.hideInAdmin);\n\n return (\n <>\n {fieldTypePlugin.map(fieldPlugin => (\n <Field\n key={fieldPlugin.field.type}\n fieldType={fieldPlugin.field}\n onFieldDragStart={onFieldDragStart}\n />\n ))}\n </>\n );\n};\n"],"mappings":"AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,QAAQ,iBAAiB;AACzC,OAAOC,SAAS;AAEhB,SAASC,OAAO,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAOtD,MAAMC,KAAK,GAAIC,KAAiB,IAAK;EACjC,MAAM;IACFC,gBAAgB;IAChBC,SAAS,EAAE;MAAEC,IAAI;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAY;EAChD,CAAC,GAAGN,KAAK;EACT,oBACIP,KAAA,CAAAc,aAAA,CAACZ,SAAS;IAACa,SAAS,EAAE;MAAEL,IAAI,EAAE,UAAU;MAAED,SAAS,EAAEC;IAAK;EAAE,GACvD,CAAC;IAAEM;EAAK,CAAC,kBACNhB,KAAA,CAAAc,aAAA;IACIG,GAAG,EAAED,IAAK;IACV,eAAa,2BAA2BN,IAAI,EAAG;IAC/CQ,WAAW,EAAEV,gBAAiB;IAC9BW,SAAS,EACL;EACH,gBAEDnB,KAAA,CAAAc,aAAA;IAAKK,SAAS,EAAE;EAA2B,gBACvCnB,KAAA,CAAAc,aAAA,2BACId,KAAA,CAAAc,aAAA,CAACV,IAAI;IACDQ,IAAI,EAAEA,IAA2B;IACjCD,KAAK,EAAEA,KAAM;IACbS,IAAI,EAAE,IAAK;IACXC,KAAK,EAAE;EAAgB,CAC1B,CACA,CAAC,eACNrB,KAAA,CAAAc,aAAA,2BACId,KAAA,CAAAc,aAAA,CAACX,OAAO;IAACmB,KAAK,EAAE;EAAE,GAAEX,KAAe,CAAC,eACpCX,KAAA,CAAAc,aAAA,CAACT,IAAI;IAACe,IAAI,EAAE,IAAK;IAACD,SAAS,EAAE;EAAsB,GAC9CN,WACC,CACL,CACJ,CACJ,CAEF,CAAC;AAEpB,CAAC;AAMD,OAAO,
|
|
1
|
+
{"version":3,"names":["React","plugins","Draggable","Heading","Icon","Text","Field","props","onFieldDragStart","fieldType","type","label","icon","description","createElement","beginDrag","drag","ref","onDragStart","className","size","color","level","LayoutFieldItem","layoutField","layoutFieldType","FieldsSidebar","fieldTypePlugin","byType","filter","p","field","hideInAdmin","layoutFieldPlugins","Fragment","as","map","fieldPlugin","key","length","lp"],"sources":["FieldsSidebar.tsx"],"sourcesContent":["import type { DragEventHandler } from \"react\";\nimport React from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport Draggable from \"../Draggable.js\";\nimport type { CmsModelFieldTypePlugin, CmsLayoutFieldTypePlugin } from \"~/types.js\";\nimport { Heading, Icon, Text } from \"@webiny/admin-ui\";\n\ninterface FieldProps {\n onFieldDragStart: DragEventHandler;\n fieldType: CmsModelFieldTypePlugin[\"field\"];\n}\n\nconst Field = (props: FieldProps) => {\n const {\n onFieldDragStart,\n fieldType: { type, label, icon, description }\n } = props;\n return (\n <Draggable beginDrag={{ type: \"newField\", fieldType: type }}>\n {({ drag }) => (\n <div\n ref={drag}\n data-testid={`cms-editor-fields-field-${type}`}\n onDragStart={onFieldDragStart}\n className={\n \"bg-neutral-base rounded-sm mb-sm py-sm px-md cursor-grab last-of-type:mb-none hover:opacity-80 transition-opacity\"\n }\n >\n <div className={\"flex items-center gap-md\"}>\n <div>\n <Icon\n icon={icon as React.ReactElement}\n label={label}\n size={\"md\"}\n color={\"neutral-light\"}\n />\n </div>\n <div>\n <Heading level={6}>{label}</Heading>\n <Text size={\"sm\"} className={\"text-neutral-strong\"}>\n {description}\n </Text>\n </div>\n </div>\n </div>\n )}\n </Draggable>\n );\n};\n\ninterface LayoutFieldItemProps {\n onFieldDragStart: DragEventHandler;\n layoutField: CmsLayoutFieldTypePlugin[\"field\"];\n}\n\nconst LayoutFieldItem = (props: LayoutFieldItemProps) => {\n const {\n onFieldDragStart,\n layoutField: { type, label, icon, description }\n } = props;\n return (\n <Draggable beginDrag={{ type: \"newLayoutField\", layoutFieldType: type }}>\n {({ drag }) => (\n <div\n ref={drag}\n data-testid={`cms-editor-fields-layout-field-${type}`}\n onDragStart={onFieldDragStart}\n className={\n \"bg-neutral-base rounded-sm mb-sm py-sm px-md cursor-grab last-of-type:mb-none hover:opacity-80 transition-opacity\"\n }\n >\n <div className={\"flex items-center gap-md\"}>\n <div>\n <Icon icon={icon} label={label} size={\"md\"} color={\"neutral-light\"} />\n </div>\n <div>\n <Heading level={6}>{label}</Heading>\n <Text size={\"sm\"} className={\"text-neutral-strong\"}>\n {description}\n </Text>\n </div>\n </div>\n </div>\n )}\n </Draggable>\n );\n};\n\ninterface FieldsSidebarProps {\n onFieldDragStart: DragEventHandler;\n}\n\nexport const FieldsSidebar = ({ onFieldDragStart }: FieldsSidebarProps) => {\n const fieldTypePlugin = plugins\n .byType<CmsModelFieldTypePlugin>(\"cms-editor-field-type\")\n .filter(p => !p.field.hideInAdmin);\n\n const layoutFieldPlugins = plugins.byType<CmsLayoutFieldTypePlugin>(\n \"cms-editor-layout-field-type\"\n );\n\n return (\n <>\n <Text\n as=\"div\"\n size={\"md\"}\n className={\"text-neutral-strong uppercase mt-0 mb-md font-semibold\"}\n >\n Fields\n </Text>\n {fieldTypePlugin.map(fieldPlugin => (\n <Field\n key={fieldPlugin.field.type}\n fieldType={fieldPlugin.field}\n onFieldDragStart={onFieldDragStart}\n />\n ))}\n {layoutFieldPlugins.length > 0 && (\n <>\n <Text\n as=\"div\"\n size={\"md\"}\n className={\"text-neutral-strong uppercase my-md font-semibold\"}\n >\n Layout\n </Text>\n {layoutFieldPlugins.map(lp => (\n <LayoutFieldItem\n key={lp.field.type}\n layoutField={lp.field}\n onFieldDragStart={onFieldDragStart}\n />\n ))}\n </>\n )}\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ export interface DroppableChildrenFunction {
|
|
|
12
12
|
(params: DroppableChildrenFunctionParams): React.ReactElement;
|
|
13
13
|
}
|
|
14
14
|
interface IsVisibleParams {
|
|
15
|
-
type: "
|
|
15
|
+
type: DragSource["type"];
|
|
16
16
|
item: DragSource;
|
|
17
17
|
isDragging: boolean;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useDrop","DroppableComponent","props","children","onDrop","isVisible","item","isOver","drop","accept","collect","monitor","shallow","getItem","isDroppable","isDragging","Boolean","Droppable","memo"],"sources":["Droppable.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { ConnectDropTarget } from \"react-dnd\";\nimport { useDrop } from \"react-dnd\";\nimport type { DragSource } from \"~/types.js\";\n\nexport interface DroppableChildrenFunctionParams {\n isDragging: boolean;\n isDroppable: boolean;\n isOver: boolean;\n item: any;\n drop: ConnectDropTarget;\n}\nexport interface DroppableChildrenFunction {\n (params: DroppableChildrenFunctionParams): React.ReactElement;\n}\n\ninterface IsVisibleParams {\n type: \"
|
|
1
|
+
{"version":3,"names":["React","useDrop","DroppableComponent","props","children","onDrop","isVisible","item","isOver","drop","accept","collect","monitor","shallow","getItem","isDroppable","isDragging","Boolean","Droppable","memo"],"sources":["Droppable.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { ConnectDropTarget } from \"react-dnd\";\nimport { useDrop } from \"react-dnd\";\nimport type { DragSource } from \"~/types.js\";\n\nexport interface DroppableChildrenFunctionParams {\n isDragging: boolean;\n isDroppable: boolean;\n isOver: boolean;\n item: any;\n drop: ConnectDropTarget;\n}\nexport interface DroppableChildrenFunction {\n (params: DroppableChildrenFunctionParams): React.ReactElement;\n}\n\ninterface IsVisibleParams {\n type: DragSource[\"type\"];\n item: DragSource;\n isDragging: boolean;\n}\nexport interface IsVisibleCallable {\n (params: IsVisibleParams): boolean;\n}\nexport interface OnDropCallable {\n (item: DragSource): void;\n}\nexport interface DroppableProps {\n type?: string;\n children: DroppableChildrenFunction;\n isDragging?: boolean;\n isDroppable?: (item: DragSource) => boolean;\n isVisible?: IsVisibleCallable;\n onDrop?: OnDropCallable;\n}\n\nexport type DragObject = {\n item: IsVisibleParams;\n isOver: boolean;\n};\n\nconst DroppableComponent = (props: DroppableProps) => {\n const { children, onDrop, isVisible = () => true } = props;\n\n const [{ item, isOver }, drop] = useDrop<DragSource, void, DragObject>({\n accept: \"element\",\n collect: monitor => ({\n isOver: monitor.isOver() && monitor.isOver({ shallow: true }),\n item: monitor.getItem()\n }),\n drop(item, monitor) {\n if (typeof props.isDroppable === \"function\" && !props.isDroppable(item)) {\n return;\n }\n\n if (typeof onDrop === \"function\") {\n return onDrop(monitor.getItem());\n }\n }\n });\n\n if (item && !isVisible(item)) {\n return null;\n }\n\n let isDroppable = true;\n if (item) {\n isDroppable = props.isDroppable ? props.isDroppable(item) : isOver;\n }\n\n return children({ isDragging: Boolean(item), isOver, isDroppable, item, drop });\n};\n\nexport const Droppable: React.ComponentType<DroppableProps> = React.memo(DroppableComponent);\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,OAAO,QAAQ,WAAW;AAuCnC,MAAMC,kBAAkB,GAAIC,KAAqB,IAAK;EAClD,MAAM;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,SAAS,GAAGA,CAAA,KAAM;EAAK,CAAC,GAAGH,KAAK;EAE1D,MAAM,CAAC;IAAEI,IAAI;IAAEC;EAAO,CAAC,EAAEC,IAAI,CAAC,GAAGR,OAAO,CAA+B;IACnES,MAAM,EAAE,SAAS;IACjBC,OAAO,EAAEC,OAAO,KAAK;MACjBJ,MAAM,EAAEI,OAAO,CAACJ,MAAM,CAAC,CAAC,IAAII,OAAO,CAACJ,MAAM,CAAC;QAAEK,OAAO,EAAE;MAAK,CAAC,CAAC;MAC7DN,IAAI,EAAEK,OAAO,CAACE,OAAO,CAAC;IAC1B,CAAC,CAAC;IACFL,IAAIA,CAACF,IAAI,EAAEK,OAAO,EAAE;MAChB,IAAI,OAAOT,KAAK,CAACY,WAAW,KAAK,UAAU,IAAI,CAACZ,KAAK,CAACY,WAAW,CAACR,IAAI,CAAC,EAAE;QACrE;MACJ;MAEA,IAAI,OAAOF,MAAM,KAAK,UAAU,EAAE;QAC9B,OAAOA,MAAM,CAACO,OAAO,CAACE,OAAO,CAAC,CAAC,CAAC;MACpC;IACJ;EACJ,CAAC,CAAC;EAEF,IAAIP,IAAI,IAAI,CAACD,SAAS,CAACC,IAAI,CAAC,EAAE;IAC1B,OAAO,IAAI;EACf;EAEA,IAAIQ,WAAW,GAAG,IAAI;EACtB,IAAIR,IAAI,EAAE;IACNQ,WAAW,GAAGZ,KAAK,CAACY,WAAW,GAAGZ,KAAK,CAACY,WAAW,CAACR,IAAI,CAAC,GAAGC,MAAM;EACtE;EAEA,OAAOJ,QAAQ,CAAC;IAAEY,UAAU,EAAEC,OAAO,CAACV,IAAI,CAAC;IAAEC,MAAM;IAAEO,WAAW;IAAER,IAAI;IAAEE;EAAK,CAAC,CAAC;AACnF,CAAC;AAED,OAAO,MAAMS,SAA8C,gBAAGlB,KAAK,CAACmB,IAAI,CAACjB,kBAAkB,CAAC","ignoreList":[]}
|
|
@@ -15,7 +15,7 @@ const style = {
|
|
|
15
15
|
styles: "text-align:center;padding:25px"
|
|
16
16
|
} : {
|
|
17
17
|
name: "16icgk8-noComponentsMessage",
|
|
18
|
-
styles: "text-align:center;padding:25px;label:noComponentsMessage;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcGVhcmFuY2VUYWIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWF5QiIsImZpbGUiOiJBcHBlYXJhbmNlVGFiLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGkxOG4gfSBmcm9tIFwiQHdlYmlueS9hcHAvaTE4bi9pbmRleC5qc1wiO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSBcIkBlbW90aW9uL2Nzc1wiO1xuaW1wb3J0IHsgdmFsaWRhdGlvbiB9IGZyb20gXCJAd2ViaW55L3ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IHVzZUJpbmQgfSBmcm9tIFwiQHdlYmlueS9mb3JtXCI7XG5pbXBvcnQgeyBSZW5kZXJlck9wdGlvbnMgfSBmcm9tIFwiLi9BcHBlYXJhbmNlVGFiL1JlbmRlcmVyT3B0aW9ucy5qc1wiO1xuaW1wb3J0IHsgdXNlUmVuZGVyZXJQbHVnaW5zIH0gZnJvbSBcIi4vdXNlUmVuZGVyZXJQbHVnaW5zLmpzXCI7XG5pbXBvcnQgeyB1c2VNb2RlbEZpZWxkIH0gZnJvbSBcIn4vYWRtaW4vY29tcG9uZW50cy9Nb2RlbEZpZWxkUHJvdmlkZXIvaW5kZXguanNcIjtcbmltcG9ydCB7IFJhZGlvR3JvdXAsIFRleHQsIEdyaWQsIEhlYWRpbmcgfSBmcm9tIFwiQHdlYmlueS9hZG1pbi11aVwiO1xuXG5jb25zdCB0ID0gaTE4bi5ucyhcImFwcC1oZWFkbGVzcy1jbXMvYWRtaW4vY29udGVudC1tb2RlbC1lZGl0b3IvdGFicy9hcHBlYXJhbmNlLXRhYlwiKTtcblxuY29uc3Qgc3R5bGUgPSB7XG4gICAgbm9Db21wb25lbnRzTWVzc2FnZTogY3NzKHtcbiAgICAgICAgdGV4dEFsaWduOiBcImNlbnRlclwiLFxuICAgICAgICBwYWRkaW5nOiAyNVxuICAgIH0pLFxuICAgIHJhZGlvQ29udGFpbmVyOiBjc3Moe1xuICAgICAgICBtYXJnaW5Cb3R0b206IDEwLFxuICAgICAgICBkaXNwbGF5OiBcImZsZXhcIlxuICAgIH0pXG59O1xuXG5jb25zdCBBcHBlYXJhbmNlVGFiID0gKCkgPT4ge1xuICAgIGNvbnN0IHJlbmRlcmVycyA9IHVzZVJlbmRlcmVyUGx1Z2lucygpO1xuICAgIGNvbnN0IHsgZmllbGQgfSA9IHVzZU1vZGVsRmllbGQoKTtcblxuICAgIGNvbnN0IHJlbmRlcmVyTmFtZSA9IHVzZUJpbmQoe1xuICAgICAgICBuYW1lOiBcInJlbmRlcmVyLm5hbWVcIixcbiAgICAgICAgdmFsaWRhdGU6IHZhbGlkYXRpb24uY3JlYXRlKFwicmVxdWlyZWRcIilcbiAgICB9KTtcblxuICAgIGNvbnN0IHNlbGVjdGVkUGx1Z2luID0gcmVuZGVyZXJOYW1lLnZhbHVlXG4gICAgICAgID8gcmVuZGVyZXJzLmZpbmQocGwgPT4gcGwucmVuZGVyZXIucmVuZGVyZXJOYW1lID09PSByZW5kZXJlck5hbWUudmFsdWUpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKHJlbmRlcmVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxHcmlkPlxuICAgICAgICAgICAgICAgIDxHcmlkLkNvbHVtblxuICAgICAgICAgICAgICAgICAgICBzcGFuPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZS5ub0NvbXBvbmVudHNNZXNzYWdlfVxuICAgICAgICAgICAgICAgID57dGBUaGVyZSBhcmUgbm8gY29tcG9uZW50cyB0aGF0IGNhbiByZW5kZXIgdGhpcyBmaWVsZC5gfTwvR3JpZC5Db2x1bW4+XG4gICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCByZW5kZXIgcGx1Z2luIGlzIG5vIGxvbmdlciBhdmFpbGFibGUsIHNlbGVjdCB0aGUgZmlyc3QgYXZhaWxhYmxlIG9uZS5cbiAgICAgICAgaWYgKHNlbGVjdGVkUGx1Z2luKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVuZGVyZXJzWzBdKSB7XG4gICAgICAgICAgICByZW5kZXJlck5hbWUub25DaGFuZ2UocmVuZGVyZXJzWzBdLnJlbmRlcmVyLnJlbmRlcmVyTmFtZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmluZm8oYE5vIHJlbmRlcmVycyBmb3IgZmllbGQgJHtmaWVsZC5maWVsZElkfSBmb3VuZC5gLCBmaWVsZCk7XG4gICAgfSwgW2ZpZWxkLmlkLCBmaWVsZC5saXN0LCBmaWVsZC5wcmVkZWZpbmVkVmFsdWVzPy5lbmFibGVkLCBzZWxlY3RlZFBsdWdpbl0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICAgIDxHcmlkPlxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxHcmlkLkNvbHVtbiBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SGVhZGluZyBsZXZlbD17NX0+RmllbGQgcmVuZGVyZXI8L0hlYWRpbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBzaXplPXtcInNtXCJ9PkNob29zZSBhIGNvbXBvbmVudCB0aGF0IHdpbGwgcmVuZGVyIHRoZSBmaWVsZC48L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZC5Db2x1bW4+XG4gICAgICAgICAgICAgICAgICAgIDxHcmlkLkNvbHVtbiBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJtYi14bFwifT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmFkaW9Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ucmVuZGVyZXJOYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcz17cmVuZGVyZXJzLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5yZW5kZXJlci5yZW5kZXJlck5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbS5yZW5kZXJlci5yZW5kZXJlck5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+
|
|
18
|
+
styles: "text-align:center;padding:25px;label:noComponentsMessage;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcGVhcmFuY2VUYWIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWF5QiIsImZpbGUiOiJBcHBlYXJhbmNlVGFiLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGkxOG4gfSBmcm9tIFwiQHdlYmlueS9hcHAvaTE4bi9pbmRleC5qc1wiO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSBcIkBlbW90aW9uL2Nzc1wiO1xuaW1wb3J0IHsgdmFsaWRhdGlvbiB9IGZyb20gXCJAd2ViaW55L3ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IHVzZUJpbmQgfSBmcm9tIFwiQHdlYmlueS9mb3JtXCI7XG5pbXBvcnQgeyBSZW5kZXJlck9wdGlvbnMgfSBmcm9tIFwiLi9BcHBlYXJhbmNlVGFiL1JlbmRlcmVyT3B0aW9ucy5qc1wiO1xuaW1wb3J0IHsgdXNlUmVuZGVyZXJQbHVnaW5zIH0gZnJvbSBcIi4vdXNlUmVuZGVyZXJQbHVnaW5zLmpzXCI7XG5pbXBvcnQgeyB1c2VNb2RlbEZpZWxkIH0gZnJvbSBcIn4vYWRtaW4vY29tcG9uZW50cy9Nb2RlbEZpZWxkUHJvdmlkZXIvaW5kZXguanNcIjtcbmltcG9ydCB7IFJhZGlvR3JvdXAsIFRleHQsIEdyaWQsIEhlYWRpbmcgfSBmcm9tIFwiQHdlYmlueS9hZG1pbi11aVwiO1xuXG5jb25zdCB0ID0gaTE4bi5ucyhcImFwcC1oZWFkbGVzcy1jbXMvYWRtaW4vY29udGVudC1tb2RlbC1lZGl0b3IvdGFicy9hcHBlYXJhbmNlLXRhYlwiKTtcblxuY29uc3Qgc3R5bGUgPSB7XG4gICAgbm9Db21wb25lbnRzTWVzc2FnZTogY3NzKHtcbiAgICAgICAgdGV4dEFsaWduOiBcImNlbnRlclwiLFxuICAgICAgICBwYWRkaW5nOiAyNVxuICAgIH0pLFxuICAgIHJhZGlvQ29udGFpbmVyOiBjc3Moe1xuICAgICAgICBtYXJnaW5Cb3R0b206IDEwLFxuICAgICAgICBkaXNwbGF5OiBcImZsZXhcIlxuICAgIH0pXG59O1xuXG5jb25zdCBBcHBlYXJhbmNlVGFiID0gKCkgPT4ge1xuICAgIGNvbnN0IHJlbmRlcmVycyA9IHVzZVJlbmRlcmVyUGx1Z2lucygpO1xuICAgIGNvbnN0IHsgZmllbGQgfSA9IHVzZU1vZGVsRmllbGQoKTtcblxuICAgIGNvbnN0IHJlbmRlcmVyTmFtZSA9IHVzZUJpbmQoe1xuICAgICAgICBuYW1lOiBcInJlbmRlcmVyLm5hbWVcIixcbiAgICAgICAgdmFsaWRhdGU6IHZhbGlkYXRpb24uY3JlYXRlKFwicmVxdWlyZWRcIilcbiAgICB9KTtcblxuICAgIGNvbnN0IHNlbGVjdGVkUGx1Z2luID0gcmVuZGVyZXJOYW1lLnZhbHVlXG4gICAgICAgID8gcmVuZGVyZXJzLmZpbmQocGwgPT4gcGwucmVuZGVyZXIucmVuZGVyZXJOYW1lID09PSByZW5kZXJlck5hbWUudmFsdWUpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKHJlbmRlcmVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxHcmlkPlxuICAgICAgICAgICAgICAgIDxHcmlkLkNvbHVtblxuICAgICAgICAgICAgICAgICAgICBzcGFuPXsxMn1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZS5ub0NvbXBvbmVudHNNZXNzYWdlfVxuICAgICAgICAgICAgICAgID57dGBUaGVyZSBhcmUgbm8gY29tcG9uZW50cyB0aGF0IGNhbiByZW5kZXIgdGhpcyBmaWVsZC5gfTwvR3JpZC5Db2x1bW4+XG4gICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCByZW5kZXIgcGx1Z2luIGlzIG5vIGxvbmdlciBhdmFpbGFibGUsIHNlbGVjdCB0aGUgZmlyc3QgYXZhaWxhYmxlIG9uZS5cbiAgICAgICAgaWYgKHNlbGVjdGVkUGx1Z2luKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVuZGVyZXJzWzBdKSB7XG4gICAgICAgICAgICByZW5kZXJlck5hbWUub25DaGFuZ2UocmVuZGVyZXJzWzBdLnJlbmRlcmVyLnJlbmRlcmVyTmFtZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmluZm8oYE5vIHJlbmRlcmVycyBmb3IgZmllbGQgJHtmaWVsZC5maWVsZElkfSBmb3VuZC5gLCBmaWVsZCk7XG4gICAgfSwgW2ZpZWxkLmlkLCBmaWVsZC5saXN0LCBmaWVsZC5wcmVkZWZpbmVkVmFsdWVzPy5lbmFibGVkLCBzZWxlY3RlZFBsdWdpbl0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICAgIDxHcmlkPlxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxHcmlkLkNvbHVtbiBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SGVhZGluZyBsZXZlbD17NX0+RmllbGQgcmVuZGVyZXI8L0hlYWRpbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBzaXplPXtcInNtXCJ9PkNob29zZSBhIGNvbXBvbmVudCB0aGF0IHdpbGwgcmVuZGVyIHRoZSBmaWVsZC48L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZC5Db2x1bW4+XG4gICAgICAgICAgICAgICAgICAgIDxHcmlkLkNvbHVtbiBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJtYi14bFwifT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmFkaW9Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ucmVuZGVyZXJOYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcz17cmVuZGVyZXJzLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5yZW5kZXJlci5yZW5kZXJlck5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbS5yZW5kZXJlci5yZW5kZXJlck5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGFzPXtcImRpdlwifSBzaXplPXtcIm1kXCJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0ucmVuZGVyZXIubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXM9e1wiZGl2XCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPXtcInNtXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1widGV4dC1zbSB0ZXh0LW5ldXRyYWwtc3Ryb25nIHRleHQtd3JhcFwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlbS5yZW5kZXJlci5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQuQ29sdW1uPlxuICAgICAgICAgICAgICAgICAgICA8UmVuZGVyZXJPcHRpb25zIHBsdWdpbj17c2VsZWN0ZWRQbHVnaW59IC8+XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBcHBlYXJhbmNlVGFiO1xuIl19 */",
|
|
19
19
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
20
20
|
}),
|
|
21
21
|
radioContainer: /*#__PURE__*/css(process.env.NODE_ENV === "production" ? {
|
|
@@ -23,7 +23,7 @@ const style = {
|
|
|
23
23
|
styles: "margin-bottom:10px;display:flex"
|
|
24
24
|
} : {
|
|
25
25
|
name: "4btape-radioContainer",
|
|
26
|
-
styles: "margin-bottom:10px;display:flex;label:radioContainer;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcGVhcmFuY2VUYWIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCb0IiLCJmaWxlIjoiQXBwZWFyYW5jZVRhYi50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBpMThuIH0gZnJvbSBcIkB3ZWJpbnkvYXBwL2kxOG4vaW5kZXguanNcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9jc3NcIjtcbmltcG9ydCB7IHZhbGlkYXRpb24gfSBmcm9tIFwiQHdlYmlueS92YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyB1c2VCaW5kIH0gZnJvbSBcIkB3ZWJpbnkvZm9ybVwiO1xuaW1wb3J0IHsgUmVuZGVyZXJPcHRpb25zIH0gZnJvbSBcIi4vQXBwZWFyYW5jZVRhYi9SZW5kZXJlck9wdGlvbnMuanNcIjtcbmltcG9ydCB7IHVzZVJlbmRlcmVyUGx1Z2lucyB9IGZyb20gXCIuL3VzZVJlbmRlcmVyUGx1Z2lucy5qc1wiO1xuaW1wb3J0IHsgdXNlTW9kZWxGaWVsZCB9IGZyb20gXCJ+L2FkbWluL2NvbXBvbmVudHMvTW9kZWxGaWVsZFByb3ZpZGVyL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBSYWRpb0dyb3VwLCBUZXh0LCBHcmlkLCBIZWFkaW5nIH0gZnJvbSBcIkB3ZWJpbnkvYWRtaW4tdWlcIjtcblxuY29uc3QgdCA9IGkxOG4ubnMoXCJhcHAtaGVhZGxlc3MtY21zL2FkbWluL2NvbnRlbnQtbW9kZWwtZWRpdG9yL3RhYnMvYXBwZWFyYW5jZS10YWJcIik7XG5cbmNvbnN0IHN0eWxlID0ge1xuICAgIG5vQ29tcG9uZW50c01lc3NhZ2U6IGNzcyh7XG4gICAgICAgIHRleHRBbGlnbjogXCJjZW50ZXJcIixcbiAgICAgICAgcGFkZGluZzogMjVcbiAgICB9KSxcbiAgICByYWRpb0NvbnRhaW5lcjogY3NzKHtcbiAgICAgICAgbWFyZ2luQm90dG9tOiAxMCxcbiAgICAgICAgZGlzcGxheTogXCJmbGV4XCJcbiAgICB9KVxufTtcblxuY29uc3QgQXBwZWFyYW5jZVRhYiA9ICgpID0+IHtcbiAgICBjb25zdCByZW5kZXJlcnMgPSB1c2VSZW5kZXJlclBsdWdpbnMoKTtcbiAgICBjb25zdCB7IGZpZWxkIH0gPSB1c2VNb2RlbEZpZWxkKCk7XG5cbiAgICBjb25zdCByZW5kZXJlck5hbWUgPSB1c2VCaW5kKHtcbiAgICAgICAgbmFtZTogXCJyZW5kZXJlci5uYW1lXCIsXG4gICAgICAgIHZhbGlkYXRlOiB2YWxpZGF0aW9uLmNyZWF0ZShcInJlcXVpcmVkXCIpXG4gICAgfSk7XG5cbiAgICBjb25zdCBzZWxlY3RlZFBsdWdpbiA9IHJlbmRlcmVyTmFtZS52YWx1ZVxuICAgICAgICA/IHJlbmRlcmVycy5maW5kKHBsID0+IHBsLnJlbmRlcmVyLnJlbmRlcmVyTmFtZSA9PT0gcmVuZGVyZXJOYW1lLnZhbHVlKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChyZW5kZXJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8R3JpZD5cbiAgICAgICAgICAgICAgICA8R3JpZC5Db2x1bW5cbiAgICAgICAgICAgICAgICAgICAgc3Bhbj17MTJ9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGUubm9Db21wb25lbnRzTWVzc2FnZX1cbiAgICAgICAgICAgICAgICA+e3RgVGhlcmUgYXJlIG5vIGNvbXBvbmVudHMgdGhhdCBjYW4gcmVuZGVyIHRoaXMgZmllbGQuYH08L0dyaWQuQ29sdW1uPlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIElmIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcmVuZGVyIHBsdWdpbiBpcyBubyBsb25nZXIgYXZhaWxhYmxlLCBzZWxlY3QgdGhlIGZpcnN0IGF2YWlsYWJsZSBvbmUuXG4gICAgICAgIGlmIChzZWxlY3RlZFBsdWdpbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlbmRlcmVyc1swXSkge1xuICAgICAgICAgICAgcmVuZGVyZXJOYW1lLm9uQ2hhbmdlKHJlbmRlcmVyc1swXS5yZW5kZXJlci5yZW5kZXJlck5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5pbmZvKGBObyByZW5kZXJlcnMgZm9yIGZpZWxkICR7ZmllbGQuZmllbGRJZH0gZm91bmQuYCwgZmllbGQpO1xuICAgIH0sIFtmaWVsZC5pZCwgZmllbGQubGlzdCwgZmllbGQucHJlZGVmaW5lZFZhbHVlcz8uZW5hYmxlZCwgc2VsZWN0ZWRQbHVnaW5dKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8R3JpZD5cbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8R3JpZC5Db2x1bW4gc3Bhbj17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEhlYWRpbmcgbGV2ZWw9ezV9PkZpZWxkIHJlbmRlcmVyPC9IZWFkaW5nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFRleHQgc2l6ZT17XCJzbVwifT5DaG9vc2UgYSBjb21wb25lbnQgdGhhdCB3aWxsIHJlbmRlciB0aGUgZmllbGQuPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQuQ29sdW1uPlxuICAgICAgICAgICAgICAgICAgICA8R3JpZC5Db2x1bW4gc3Bhbj17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wibWIteGxcIn0+
|
|
26
|
+
styles: "margin-bottom:10px;display:flex;label:radioContainer;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcGVhcmFuY2VUYWIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCb0IiLCJmaWxlIjoiQXBwZWFyYW5jZVRhYi50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBpMThuIH0gZnJvbSBcIkB3ZWJpbnkvYXBwL2kxOG4vaW5kZXguanNcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9jc3NcIjtcbmltcG9ydCB7IHZhbGlkYXRpb24gfSBmcm9tIFwiQHdlYmlueS92YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyB1c2VCaW5kIH0gZnJvbSBcIkB3ZWJpbnkvZm9ybVwiO1xuaW1wb3J0IHsgUmVuZGVyZXJPcHRpb25zIH0gZnJvbSBcIi4vQXBwZWFyYW5jZVRhYi9SZW5kZXJlck9wdGlvbnMuanNcIjtcbmltcG9ydCB7IHVzZVJlbmRlcmVyUGx1Z2lucyB9IGZyb20gXCIuL3VzZVJlbmRlcmVyUGx1Z2lucy5qc1wiO1xuaW1wb3J0IHsgdXNlTW9kZWxGaWVsZCB9IGZyb20gXCJ+L2FkbWluL2NvbXBvbmVudHMvTW9kZWxGaWVsZFByb3ZpZGVyL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBSYWRpb0dyb3VwLCBUZXh0LCBHcmlkLCBIZWFkaW5nIH0gZnJvbSBcIkB3ZWJpbnkvYWRtaW4tdWlcIjtcblxuY29uc3QgdCA9IGkxOG4ubnMoXCJhcHAtaGVhZGxlc3MtY21zL2FkbWluL2NvbnRlbnQtbW9kZWwtZWRpdG9yL3RhYnMvYXBwZWFyYW5jZS10YWJcIik7XG5cbmNvbnN0IHN0eWxlID0ge1xuICAgIG5vQ29tcG9uZW50c01lc3NhZ2U6IGNzcyh7XG4gICAgICAgIHRleHRBbGlnbjogXCJjZW50ZXJcIixcbiAgICAgICAgcGFkZGluZzogMjVcbiAgICB9KSxcbiAgICByYWRpb0NvbnRhaW5lcjogY3NzKHtcbiAgICAgICAgbWFyZ2luQm90dG9tOiAxMCxcbiAgICAgICAgZGlzcGxheTogXCJmbGV4XCJcbiAgICB9KVxufTtcblxuY29uc3QgQXBwZWFyYW5jZVRhYiA9ICgpID0+IHtcbiAgICBjb25zdCByZW5kZXJlcnMgPSB1c2VSZW5kZXJlclBsdWdpbnMoKTtcbiAgICBjb25zdCB7IGZpZWxkIH0gPSB1c2VNb2RlbEZpZWxkKCk7XG5cbiAgICBjb25zdCByZW5kZXJlck5hbWUgPSB1c2VCaW5kKHtcbiAgICAgICAgbmFtZTogXCJyZW5kZXJlci5uYW1lXCIsXG4gICAgICAgIHZhbGlkYXRlOiB2YWxpZGF0aW9uLmNyZWF0ZShcInJlcXVpcmVkXCIpXG4gICAgfSk7XG5cbiAgICBjb25zdCBzZWxlY3RlZFBsdWdpbiA9IHJlbmRlcmVyTmFtZS52YWx1ZVxuICAgICAgICA/IHJlbmRlcmVycy5maW5kKHBsID0+IHBsLnJlbmRlcmVyLnJlbmRlcmVyTmFtZSA9PT0gcmVuZGVyZXJOYW1lLnZhbHVlKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChyZW5kZXJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8R3JpZD5cbiAgICAgICAgICAgICAgICA8R3JpZC5Db2x1bW5cbiAgICAgICAgICAgICAgICAgICAgc3Bhbj17MTJ9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGUubm9Db21wb25lbnRzTWVzc2FnZX1cbiAgICAgICAgICAgICAgICA+e3RgVGhlcmUgYXJlIG5vIGNvbXBvbmVudHMgdGhhdCBjYW4gcmVuZGVyIHRoaXMgZmllbGQuYH08L0dyaWQuQ29sdW1uPlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIElmIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcmVuZGVyIHBsdWdpbiBpcyBubyBsb25nZXIgYXZhaWxhYmxlLCBzZWxlY3QgdGhlIGZpcnN0IGF2YWlsYWJsZSBvbmUuXG4gICAgICAgIGlmIChzZWxlY3RlZFBsdWdpbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlbmRlcmVyc1swXSkge1xuICAgICAgICAgICAgcmVuZGVyZXJOYW1lLm9uQ2hhbmdlKHJlbmRlcmVyc1swXS5yZW5kZXJlci5yZW5kZXJlck5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5pbmZvKGBObyByZW5kZXJlcnMgZm9yIGZpZWxkICR7ZmllbGQuZmllbGRJZH0gZm91bmQuYCwgZmllbGQpO1xuICAgIH0sIFtmaWVsZC5pZCwgZmllbGQubGlzdCwgZmllbGQucHJlZGVmaW5lZFZhbHVlcz8uZW5hYmxlZCwgc2VsZWN0ZWRQbHVnaW5dKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8R3JpZD5cbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8R3JpZC5Db2x1bW4gc3Bhbj17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEhlYWRpbmcgbGV2ZWw9ezV9PkZpZWxkIHJlbmRlcmVyPC9IZWFkaW5nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFRleHQgc2l6ZT17XCJzbVwifT5DaG9vc2UgYSBjb21wb25lbnQgdGhhdCB3aWxsIHJlbmRlciB0aGUgZmllbGQuPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQuQ29sdW1uPlxuICAgICAgICAgICAgICAgICAgICA8R3JpZC5Db2x1bW4gc3Bhbj17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wibWIteGxcIn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJhZGlvR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLnJlbmRlcmVyTmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM9e3JlbmRlcmVycy5tYXAoaXRlbSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0ucmVuZGVyZXIucmVuZGVyZXJOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW0ucmVuZGVyZXIucmVuZGVyZXJOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz17XCJkaXZcIn0gc2l6ZT17XCJtZFwifT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLnJlbmRlcmVyLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzPXtcImRpdlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17XCJzbVwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcInRleHQtc20gdGV4dC1uZXV0cmFsLXN0cm9uZyB0ZXh0LXdyYXBcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0ucmVuZGVyZXIuZGVzY3JpcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkLkNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgPFJlbmRlcmVyT3B0aW9ucyBwbHVnaW49e3NlbGVjdGVkUGx1Z2lufSAvPlxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICA8Lz5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQXBwZWFyYW5jZVRhYjtcbiJdfQ== */",
|
|
27
27
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
28
28
|
})
|
|
29
29
|
};
|
|
@@ -74,7 +74,7 @@ const AppearanceTab = () => {
|
|
|
74
74
|
}, item.renderer.name), /*#__PURE__*/React.createElement(Text, {
|
|
75
75
|
as: "div",
|
|
76
76
|
size: "sm",
|
|
77
|
-
className: "text-sm text-neutral-strong"
|
|
77
|
+
className: "text-sm text-neutral-strong text-wrap"
|
|
78
78
|
}, item.renderer.description))
|
|
79
79
|
}))
|
|
80
80
|
})))), /*#__PURE__*/React.createElement(RendererOptions, {
|