@webiny/app-headless-cms 5.34.4 → 5.34.5-beta.0
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/ContentModelEditor/Editor.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.js.map +1 -1
- package/admin/components/FieldEditor/Field.js.map +1 -1
- package/admin/components/IconPicker.js.map +1 -1
- package/admin/menus/NothingToShowElement.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/renderItem.js.map +1 -1
- package/admin/plugins/fieldValidators/dateGte.js.map +1 -1
- package/admin/plugins/fieldValidators/dateLte.js.map +1 -1
- package/admin/plugins/fieldValidators/pattern.js.map +1 -1
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -1
- package/admin/plugins/fields/boolean.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/AddTemplate.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/TemplateDialog.js.map +1 -1
- package/admin/plugins/index.d.ts +2 -2
- package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelPermission.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js.map +1 -1
- package/admin/plugins/upgrades/v5.0.0.js.map +1 -1
- package/admin/plugins/upgrades/v5.19.0.js.map +1 -1
- package/admin/plugins/upgrades/v5.33.0.js.map +1 -1
- package/admin/plugins/upgrades/v5.5.0.js.map +1 -1
- package/admin/plugins/upgrades/v5.8.0.js.map +1 -1
- package/admin/plugins/welcomeScreenWidget.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionListItem.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroupsDataList.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -1
- package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -1
- package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
- package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
- package/allPlugins.d.ts +2 -2
- package/package.json +18 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","ns","prompt","ContentContainer","styled","paddingTop","EditContainer","padding","position","LeftBarTitle","borderBottom","display","alignItems","color","titleIcon","css","height","marginRight","LeftBarFieldList","overflow","formTabs","backgroundColor","Editor","useModelEditor","data","setData","isPristine","tabsRef","useRef","useState","activeTabIndex","setActiveTabIndex","onChange","fields","layout","current","switchTab","e"],"sources":["Editor.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\";\nimport { Prompt } from \"@webiny/react-router\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { LeftPanel, RightPanel, SplitView } from \"@webiny/app-admin/components/SplitView\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Tab, Tabs, TabsImperativeApi } from \"@webiny/ui/Tabs\";\nimport { ReactComponent as FormIcon } from \"./icons/round-assignment-24px.svg\";\nimport { FieldsSidebar } from \"./FieldsSidebar\";\nimport { FieldEditor } from \"../FieldEditor\";\nimport { PreviewTab } from \"./PreviewTab\";\nimport Header from \"./Header\";\nimport DragPreview from \"../DragPreview\";\nimport { useModelEditor } from \"./useModelEditor\";\nimport { CmsModelField, CmsEditorFieldsLayout } from \"~/types\";\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\nconst ContentContainer = styled(\"div\")({\n paddingTop: 65\n});\n\nexport const EditContainer = styled(\"div\")({\n padding: 40,\n position: \"relative\"\n});\n\nconst LeftBarTitle = styled(\"div\")({\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n display: \"flex\",\n alignItems: \"center\",\n padding: 25,\n color: \"var(--mdc-theme-on-surface)\"\n});\n\nconst titleIcon = css({\n height: 24,\n marginRight: 15,\n color: \"var(--mdc-theme-primary)\"\n});\n\nconst LeftBarFieldList = styled(\"div\")({\n padding: 40,\n overflow: \"auto\",\n height: \"calc(100vh - 250px)\"\n});\n\nconst formTabs = css({\n \"&.webiny-ui-tabs\": {\n \".webiny-ui-tabs__tab-bar\": {\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n }\n});\n\ninterface OnChangeParams {\n fields: CmsModelField[];\n layout: CmsEditorFieldsLayout;\n}\n\nexport const Editor: React.FC = () => {\n const { data, setData, isPristine } = useModelEditor();\n\n const tabsRef = useRef<TabsImperativeApi>();\n const [activeTabIndex, setActiveTabIndex] = useState<number>(0);\n\n const onChange = ({ fields, layout }: OnChangeParams) => {\n setData(data => ({ ...data, fields, layout }));\n };\n\n if (!data) {\n return <CircularProgress label={\"Loading content model...\"} />;\n }\n\n return (\n <div className={\"content-model-editor\"}>\n <Prompt when={!isPristine} message={prompt} />\n <Header />\n <ContentContainer>\n <SplitView>\n <LeftPanel span={4}>\n <LeftBarTitle>\n <Icon className={titleIcon} icon={<FormIcon />} />\n <Typography use={\"headline6\"}>Fields</Typography>\n </LeftBarTitle>\n <LeftBarFieldList>\n <FieldsSidebar\n onFieldDragStart={() => {\n if (!tabsRef.current) {\n return;\n }\n tabsRef.current.switchTab(0);\n }}\n />\n </LeftBarFieldList>\n </LeftPanel>\n <RightPanel span={8}>\n <Tabs\n className={formTabs}\n ref={tabsRef}\n onActivate={e => setActiveTabIndex(e)}\n >\n <Tab label={\"Edit\"} data-testid={\"cms.editor.tab.edit\"}>\n <EditContainer>\n <FieldEditor\n fields={data.fields}\n layout={data.layout || []}\n onChange={onChange}\n />\n </EditContainer>\n </Tab>\n <Tab label={\"Preview\"} data-testid={\"cms.editor.tab.preview\"}>\n <PreviewTab activeTab={activeTabIndex === 1} />\n </Tab>\n </Tabs>\n </RightPanel>\n </SplitView>\n </ContentContainer>\n <DragPreview />\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAGA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,+BAAR,CAAV;;AAEA,IAAMC,MAAM,GAAGH,CAAH,kLAAZ;AAEA,IAAMI,gBAAgB,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACnCC,UAAU,EAAE;AADuB,CAAjB,CAAtB;AAIO,IAAMC,aAAa,oBAAGF,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACvCG,OAAO,EAAE,EAD8B;EAEvCC,QAAQ,EAAE;AAF6B,CAAjB,CAAnB;;AAKP,IAAMC,YAAY,oBAAGL,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EAC/BM,YAAY,EAAE,0CADiB;EAE/BC,OAAO,EAAE,MAFsB;EAG/BC,UAAU,EAAE,QAHmB;EAI/BL,OAAO,EAAE,EAJsB;EAK/BM,KAAK,EAAE;AALwB,CAAjB,CAAlB;AAQA,IAAMC,SAAS,gBAAG,IAAAC,YAAA,EAAI;EAClBC,MAAM,EAAE,EADU;EAElBC,WAAW,EAAE,EAFK;EAGlBJ,KAAK,EAAE;AAHW,CAAJ,qBAAlB;AAMA,IAAMK,gBAAgB,oBAAGd,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACnCG,OAAO,EAAE,EAD0B;EAEnCY,QAAQ,EAAE,MAFyB;EAGnCH,MAAM,EAAE;AAH2B,CAAjB,CAAtB;AAMA,IAAMI,QAAQ,gBAAG,IAAAL,YAAA,EAAI;EACjB,oBAAoB;IAChB,4BAA4B;MACxBM,eAAe,EAAE;IADO;EADZ;AADH,CAAJ,oBAAjB;;AAaO,IAAMC,MAAgB,GAAG,SAAnBA,MAAmB,GAAM;EAClC,sBAAsC,IAAAC,+BAAA,GAAtC;EAAA,IAAQC,IAAR,mBAAQA,IAAR;EAAA,IAAcC,OAAd,mBAAcA,OAAd;EAAA,IAAuBC,UAAvB,mBAAuBA,UAAvB;;EAEA,IAAMC,OAAO,GAAG,IAAAC,aAAA,GAAhB;;EACA,gBAA4C,IAAAC,eAAA,EAAiB,CAAjB,CAA5C;EAAA;EAAA,IAAOC,cAAP;EAAA,IAAuBC,iBAAvB;;EAEA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,OAAwC;IAAA,IAArCC,MAAqC,QAArCA,MAAqC;IAAA,IAA7BC,MAA6B,QAA7BA,MAA6B;IACrDT,OAAO,CAAC,UAAAD,IAAI;MAAA,mEAAUA,IAAV;QAAgBS,MAAM,EAANA,MAAhB;QAAwBC,MAAM,EAANA;MAAxB;IAAA,CAAL,CAAP;EACH,CAFD;;EAIA,IAAI,CAACV,IAAL,EAAW;IACP,oBAAO,6BAAC,0BAAD;MAAkB,KAAK,EAAE;IAAzB,EAAP;EACH;;EAED,oBACI;IAAK,SAAS,EAAE;EAAhB,gBACI,6BAAC,mBAAD;IAAQ,IAAI,EAAE,CAACE,UAAf;IAA2B,OAAO,EAAExB;EAApC,EADJ,eAEI,6BAAC,eAAD,OAFJ,eAGI,6BAAC,gBAAD,qBACI,6BAAC,oBAAD,qBACI,6BAAC,oBAAD;IAAW,IAAI,EAAE;EAAjB,gBACI,6BAAC,YAAD,qBACI,6BAAC,UAAD;IAAM,SAAS,EAAEY,SAAjB;IAA4B,IAAI,eAAE,6BAAC,mCAAD;EAAlC,EADJ,eAEI,6BAAC,sBAAD;IAAY,GAAG,EAAE;EAAjB,
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","prompt","ContentContainer","styled","paddingTop","EditContainer","padding","position","LeftBarTitle","borderBottom","display","alignItems","color","titleIcon","css","height","marginRight","LeftBarFieldList","overflow","formTabs","backgroundColor","Editor","useModelEditor","data","setData","isPristine","tabsRef","useRef","useState","activeTabIndex","setActiveTabIndex","onChange","fields","layout","current","switchTab","e"],"sources":["Editor.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\";\nimport { Prompt } from \"@webiny/react-router\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { LeftPanel, RightPanel, SplitView } from \"@webiny/app-admin/components/SplitView\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Tab, Tabs, TabsImperativeApi } from \"@webiny/ui/Tabs\";\nimport { ReactComponent as FormIcon } from \"./icons/round-assignment-24px.svg\";\nimport { FieldsSidebar } from \"./FieldsSidebar\";\nimport { FieldEditor } from \"../FieldEditor\";\nimport { PreviewTab } from \"./PreviewTab\";\nimport Header from \"./Header\";\nimport DragPreview from \"../DragPreview\";\nimport { useModelEditor } from \"./useModelEditor\";\nimport { CmsModelField, CmsEditorFieldsLayout } from \"~/types\";\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\nconst ContentContainer = styled(\"div\")({\n paddingTop: 65\n});\n\nexport const EditContainer = styled(\"div\")({\n padding: 40,\n position: \"relative\"\n});\n\nconst LeftBarTitle = styled(\"div\")({\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n display: \"flex\",\n alignItems: \"center\",\n padding: 25,\n color: \"var(--mdc-theme-on-surface)\"\n});\n\nconst titleIcon = css({\n height: 24,\n marginRight: 15,\n color: \"var(--mdc-theme-primary)\"\n});\n\nconst LeftBarFieldList = styled(\"div\")({\n padding: 40,\n overflow: \"auto\",\n height: \"calc(100vh - 250px)\"\n});\n\nconst formTabs = css({\n \"&.webiny-ui-tabs\": {\n \".webiny-ui-tabs__tab-bar\": {\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n }\n});\n\ninterface OnChangeParams {\n fields: CmsModelField[];\n layout: CmsEditorFieldsLayout;\n}\n\nexport const Editor: React.FC = () => {\n const { data, setData, isPristine } = useModelEditor();\n\n const tabsRef = useRef<TabsImperativeApi>();\n const [activeTabIndex, setActiveTabIndex] = useState<number>(0);\n\n const onChange = ({ fields, layout }: OnChangeParams) => {\n setData(data => ({ ...data, fields, layout }));\n };\n\n if (!data) {\n return <CircularProgress label={\"Loading content model...\"} />;\n }\n\n return (\n <div className={\"content-model-editor\"}>\n <Prompt when={!isPristine} message={prompt} />\n <Header />\n <ContentContainer>\n <SplitView>\n <LeftPanel span={4}>\n <LeftBarTitle>\n <Icon className={titleIcon} icon={<FormIcon />} />\n <Typography use={\"headline6\"}>Fields</Typography>\n </LeftBarTitle>\n <LeftBarFieldList>\n <FieldsSidebar\n onFieldDragStart={() => {\n if (!tabsRef.current) {\n return;\n }\n tabsRef.current.switchTab(0);\n }}\n />\n </LeftBarFieldList>\n </LeftPanel>\n <RightPanel span={8}>\n <Tabs\n className={formTabs}\n ref={tabsRef}\n onActivate={e => setActiveTabIndex(e)}\n >\n <Tab label={\"Edit\"} data-testid={\"cms.editor.tab.edit\"}>\n <EditContainer>\n <FieldEditor\n fields={data.fields}\n layout={data.layout || []}\n onChange={onChange}\n />\n </EditContainer>\n </Tab>\n <Tab label={\"Preview\"} data-testid={\"cms.editor.tab.preview\"}>\n <PreviewTab activeTab={activeTabIndex === 1} />\n </Tab>\n </Tabs>\n </RightPanel>\n </SplitView>\n </ContentContainer>\n <DragPreview />\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Variable","styled","Comma","noPadding","css","gridBottomPadding","onEnabledChange","params","data","validationValue","onChangeValidation","validator","index","findIndex","item","name","getName","slice","settings","getDefaultSettings","message","getDefaultMessage","onFormChange","validatorIndex","newValidationValue","renderEmpty","getValidatorPlugin","plugin","plugins","byType","find","ValidatorItem","value","onChange","validatorName","renderCustomUi","renderSettings","actions","isRequired","description","variables","getVariables","length","push","i","variable","__html","getLabel","getDescription","Bind","validation","create","bind","ValidatorsList","props","validators","map"],"sources":["ValidatorsList.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport { css } from \"emotion\";\nimport { cloneDeep, debounce } from \"lodash\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Switch } from \"@webiny/ui/Switch\";\nimport { Form, Bind } from \"@webiny/form\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { validation } from \"@webiny/validation\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { CmsModelFieldValidator, CmsModelFieldValidatorPlugin } from \"~/types\";\nimport { Validator } from \"@webiny/validation/types\";\nimport { Accordion, AccordionItem } from \"@webiny/ui/Accordion\";\nimport { CmsModelFieldValidatorConfigAdapter } from \"~/utils/CmsModelFieldValidatorConfigAdapter\";\nimport styled from \"@emotion/styled\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\n\nconst Variable = styled.span`\n font-weight: bold;\n cursor: pointer;\n`;\n\nconst Comma = styled.span`\n padding-right: 5px;\n`;\n\nconst noPadding = css`\n .webiny-ui-accordion-item__content {\n padding: 0 !important;\n }\n`;\n\nconst gridBottomPadding = css`\n :not(:last-child) {\n padding-bottom: 0;\n }\n`;\n\ninterface OnChangeValidationCallable {\n (validators: CmsModelFieldValidator[]): void;\n}\n\ninterface OnEnabledChangeParams {\n data: CmsModelFieldValidator;\n validationValue: CmsModelFieldValidator[];\n onChangeValidation: OnChangeValidationCallable;\n validator: CmsModelFieldValidatorConfigAdapter;\n}\n\nconst onEnabledChange = (params: OnEnabledChangeParams): void => {\n const { data, validationValue, onChangeValidation, validator } = params;\n if (data) {\n const index = validationValue.findIndex(item => item.name === validator.getName());\n onChangeValidation([\n ...validationValue.slice(0, index),\n ...validationValue.slice(index + 1)\n ]);\n return;\n }\n onChangeValidation([\n ...validationValue,\n {\n name: validator.getName(),\n settings: validator.getDefaultSettings(),\n message: validator.getDefaultMessage()\n }\n ]);\n};\n\nconst onFormChange = debounce(({ data, validationValue, onChangeValidation, validatorIndex }) => {\n const newValidationValue = cloneDeep(validationValue);\n newValidationValue[validatorIndex] = {\n ...newValidationValue[validatorIndex],\n ...cloneDeep(data)\n };\n onChangeValidation(newValidationValue);\n}, 200);\n\ninterface ValidatorsTabProps {\n name: string;\n validators: CmsModelFieldValidatorConfigAdapter[];\n}\n\nconst renderEmpty = () => null;\n\nconst getValidatorPlugin = (name: string): CmsModelFieldValidatorPlugin[\"validator\"] | null => {\n const plugin = plugins\n .byType<CmsModelFieldValidatorPlugin>(\"cms-model-field-validator\")\n .find(plugin => plugin.validator.name === name);\n\n if (!plugin) {\n return null;\n }\n\n return plugin.validator;\n};\n\ninterface ValidatorItemProps {\n validator: CmsModelFieldValidatorConfigAdapter;\n value: any;\n onChange: OnChangeValidationCallable;\n}\n\nconst ValidatorItem = ({ validator, value, onChange }: ValidatorItemProps) => {\n const validatorName = validator.getName();\n\n const plugin = getValidatorPlugin(validatorName);\n if (!plugin) {\n return <></>;\n }\n\n const validatorIndex = ((value || []) as Validator[]).findIndex(\n item => item.name === validatorName\n );\n\n const data = (value || [])[validatorIndex];\n\n if (typeof plugin.renderCustomUi === \"function\") {\n return <Fragment key={validatorName}>{plugin.renderCustomUi()}</Fragment>;\n }\n\n const renderSettings = plugin.renderSettings || renderEmpty;\n\n const actions = !validator.isRequired() ? (\n <AccordionItem.Actions>\n <Switch\n label=\"Enabled\"\n value={validatorIndex >= 0}\n onChange={() =>\n onEnabledChange({\n data,\n validationValue: value,\n onChangeValidation: onChange,\n validator: validator\n })\n }\n />\n </AccordionItem.Actions>\n ) : null;\n\n const description = [<span key={\"msg\"}>This message will be displayed to the user.</span>];\n const variables = validator.getVariables();\n\n if (variables.length) {\n description.push(<span key={\"vars\"}> Available variables: </span>);\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i];\n\n description.push(\n <Tooltip key={variable.name} content={variable.description} placement={\"bottom\"}>\n <Variable dangerouslySetInnerHTML={{ __html: `{${variable.name}}` }} />\n </Tooltip>\n );\n\n if (i < variables.length - 1) {\n description.push(<Comma key={`comma-${i}`}>,</Comma>);\n }\n }\n description.push(<Comma key={\"dot\"}>.</Comma>);\n }\n\n return (\n <AccordionItem\n key={validator.getName()}\n data-testid={`cms.editor.field-validator.${validator.getName()}`}\n interactive={false}\n open={!!data}\n title={validator.getLabel()}\n description={validator.getDescription()}\n actions={actions}\n className={noPadding}\n >\n {data && (\n <Form\n data={data}\n onChange={data =>\n onFormChange({\n data,\n validationValue: value,\n onChangeValidation: onChange,\n validatorIndex\n })\n }\n >\n {({ Bind }) => (\n <>\n <Grid className={gridBottomPadding}>\n <Cell span={12}>\n <Bind\n name={\"message\"}\n validators={validation.create(\"required\")}\n >\n {bind => {\n return (\n <Input\n {...bind}\n label={\"Message\"}\n data-testid=\"cms.editfield.validators.required\"\n description={<>{description}</>}\n />\n );\n }}\n </Bind>\n </Cell>\n </Grid>\n\n {renderSettings(validator)}\n </>\n )}\n </Form>\n )}\n </AccordionItem>\n );\n};\n\nexport const ValidatorsList: React.FC<ValidatorsTabProps> = props => {\n const { name, validators } = props;\n\n return (\n <Bind name={name} defaultValue={[]}>\n {bind => {\n const { value, onChange } = bind;\n return (\n <Accordion>\n {validators.map(validator => {\n return (\n <ValidatorItem\n key={validator.getName()}\n value={value}\n onChange={onChange}\n validator={validator}\n />\n );\n })}\n </Accordion>\n );\n }}\n </Bind>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Variable","styled","Comma","noPadding","css","gridBottomPadding","onEnabledChange","params","data","validationValue","onChangeValidation","validator","index","findIndex","item","name","getName","slice","settings","getDefaultSettings","message","getDefaultMessage","onFormChange","validatorIndex","newValidationValue","renderEmpty","getValidatorPlugin","plugin","plugins","byType","find","ValidatorItem","value","onChange","validatorName","renderCustomUi","renderSettings","actions","isRequired","description","variables","getVariables","length","push","i","variable","__html","getLabel","getDescription","Bind","validation","create","bind","ValidatorsList","props","validators","map"],"sources":["ValidatorsList.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport { css } from \"emotion\";\nimport { cloneDeep, debounce } from \"lodash\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Switch } from \"@webiny/ui/Switch\";\nimport { Form, Bind } from \"@webiny/form\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { validation } from \"@webiny/validation\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { CmsModelFieldValidator, CmsModelFieldValidatorPlugin } from \"~/types\";\nimport { Validator } from \"@webiny/validation/types\";\nimport { Accordion, AccordionItem } from \"@webiny/ui/Accordion\";\nimport { CmsModelFieldValidatorConfigAdapter } from \"~/utils/CmsModelFieldValidatorConfigAdapter\";\nimport styled from \"@emotion/styled\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\n\nconst Variable = styled.span`\n font-weight: bold;\n cursor: pointer;\n`;\n\nconst Comma = styled.span`\n padding-right: 5px;\n`;\n\nconst noPadding = css`\n .webiny-ui-accordion-item__content {\n padding: 0 !important;\n }\n`;\n\nconst gridBottomPadding = css`\n :not(:last-child) {\n padding-bottom: 0;\n }\n`;\n\ninterface OnChangeValidationCallable {\n (validators: CmsModelFieldValidator[]): void;\n}\n\ninterface OnEnabledChangeParams {\n data: CmsModelFieldValidator;\n validationValue: CmsModelFieldValidator[];\n onChangeValidation: OnChangeValidationCallable;\n validator: CmsModelFieldValidatorConfigAdapter;\n}\n\nconst onEnabledChange = (params: OnEnabledChangeParams): void => {\n const { data, validationValue, onChangeValidation, validator } = params;\n if (data) {\n const index = validationValue.findIndex(item => item.name === validator.getName());\n onChangeValidation([\n ...validationValue.slice(0, index),\n ...validationValue.slice(index + 1)\n ]);\n return;\n }\n onChangeValidation([\n ...validationValue,\n {\n name: validator.getName(),\n settings: validator.getDefaultSettings(),\n message: validator.getDefaultMessage()\n }\n ]);\n};\n\nconst onFormChange = debounce(({ data, validationValue, onChangeValidation, validatorIndex }) => {\n const newValidationValue = cloneDeep(validationValue);\n newValidationValue[validatorIndex] = {\n ...newValidationValue[validatorIndex],\n ...cloneDeep(data)\n };\n onChangeValidation(newValidationValue);\n}, 200);\n\ninterface ValidatorsTabProps {\n name: string;\n validators: CmsModelFieldValidatorConfigAdapter[];\n}\n\nconst renderEmpty = () => null;\n\nconst getValidatorPlugin = (name: string): CmsModelFieldValidatorPlugin[\"validator\"] | null => {\n const plugin = plugins\n .byType<CmsModelFieldValidatorPlugin>(\"cms-model-field-validator\")\n .find(plugin => plugin.validator.name === name);\n\n if (!plugin) {\n return null;\n }\n\n return plugin.validator;\n};\n\ninterface ValidatorItemProps {\n validator: CmsModelFieldValidatorConfigAdapter;\n value: any;\n onChange: OnChangeValidationCallable;\n}\n\nconst ValidatorItem = ({ validator, value, onChange }: ValidatorItemProps) => {\n const validatorName = validator.getName();\n\n const plugin = getValidatorPlugin(validatorName);\n if (!plugin) {\n return <></>;\n }\n\n const validatorIndex = ((value || []) as Validator[]).findIndex(\n item => item.name === validatorName\n );\n\n const data = (value || [])[validatorIndex];\n\n if (typeof plugin.renderCustomUi === \"function\") {\n return <Fragment key={validatorName}>{plugin.renderCustomUi()}</Fragment>;\n }\n\n const renderSettings = plugin.renderSettings || renderEmpty;\n\n const actions = !validator.isRequired() ? (\n <AccordionItem.Actions>\n <Switch\n label=\"Enabled\"\n value={validatorIndex >= 0}\n onChange={() =>\n onEnabledChange({\n data,\n validationValue: value,\n onChangeValidation: onChange,\n validator: validator\n })\n }\n />\n </AccordionItem.Actions>\n ) : null;\n\n const description = [<span key={\"msg\"}>This message will be displayed to the user.</span>];\n const variables = validator.getVariables();\n\n if (variables.length) {\n description.push(<span key={\"vars\"}> Available variables: </span>);\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i];\n\n description.push(\n <Tooltip key={variable.name} content={variable.description} placement={\"bottom\"}>\n <Variable dangerouslySetInnerHTML={{ __html: `{${variable.name}}` }} />\n </Tooltip>\n );\n\n if (i < variables.length - 1) {\n description.push(<Comma key={`comma-${i}`}>,</Comma>);\n }\n }\n description.push(<Comma key={\"dot\"}>.</Comma>);\n }\n\n return (\n <AccordionItem\n key={validator.getName()}\n data-testid={`cms.editor.field-validator.${validator.getName()}`}\n interactive={false}\n open={!!data}\n title={validator.getLabel()}\n description={validator.getDescription()}\n actions={actions}\n className={noPadding}\n >\n {data && (\n <Form\n data={data}\n onChange={data =>\n onFormChange({\n data,\n validationValue: value,\n onChangeValidation: onChange,\n validatorIndex\n })\n }\n >\n {({ Bind }) => (\n <>\n <Grid className={gridBottomPadding}>\n <Cell span={12}>\n <Bind\n name={\"message\"}\n validators={validation.create(\"required\")}\n >\n {bind => {\n return (\n <Input\n {...bind}\n label={\"Message\"}\n data-testid=\"cms.editfield.validators.required\"\n description={<>{description}</>}\n />\n );\n }}\n </Bind>\n </Cell>\n </Grid>\n\n {renderSettings(validator)}\n </>\n )}\n </Form>\n )}\n </AccordionItem>\n );\n};\n\nexport const ValidatorsList: React.FC<ValidatorsTabProps> = props => {\n const { name, validators } = props;\n\n return (\n <Bind name={name} defaultValue={[]}>\n {bind => {\n const { value, onChange } = bind;\n return (\n <Accordion>\n {validators.map(validator => {\n return (\n <ValidatorItem\n key={validator.getName()}\n value={value}\n onChange={onChange}\n validator={validator}\n />\n );\n })}\n </Accordion>\n );\n }}\n </Bind>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","ns","FieldContainer","styled","display","flexDirection","justifyContent","alignItems","LowerCase","Info","flex","lineHeight","Actions","menuStyles","css","width","right","left","opacity","pointerEvents","FieldExtra","allowedTitleFieldTypes","isFieldAllowedToBeTitle","field","parent","multipleValues","includes","type","Field","props","onEdit","useSnackbar","showSnackbar","useModelEditor","setData","data","useModelFieldEditor","getFieldPlugin","getFieldRendererPlugin","useConfirmationDialog","title","message","showConfirmation","lockedFields","isLocked","some","lockedField","fieldId","storageId","onDelete","useCallback","setAsTitle","titleFieldId","response","error","fieldPlugin","editorFieldOptionPlugins","plugins","byType","rendererPlugin","renderer","name","canEdit","canEditSettings","isTitleField","info","filter","Boolean","join","label","map","pl","React","cloneElement","render","key","memo"],"sources":["Field.tsx"],"sourcesContent":["import React, { Fragment, useCallback } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as EditIcon } from \"@material-design-icons/svg/outlined/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { ReactComponent as TitleIcon } from \"~/admin/icons/title-24px.svg\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { Menu, MenuItem } from \"@webiny/ui/Menu\";\nimport { plugins } from \"@webiny/plugins\";\nimport { CmsModelField, CmsEditorFieldOptionPlugin } from \"~/types\";\nimport { ListItemGraphic } from \"@webiny/ui/List\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useModelEditor } from \"~/admin/hooks\";\nimport { useModelFieldEditor } from \"~/admin/components/FieldEditor/useModelFieldEditor\";\nimport { useConfirmationDialog } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/editor/field\");\n\nconst FieldContainer = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n});\n\nconst LowerCase = styled.span`\n text-transform: lowercase;\n`;\n\nconst Info = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\",\n \"> *\": {\n flex: \"1 100%\",\n lineHeight: \"150%\"\n }\n});\n\nconst Actions = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"right\",\n \"> *\": {\n flex: \"1 100%\"\n }\n});\n\nconst menuStyles = css({\n width: 220,\n right: -105,\n left: \"auto !important\",\n \".disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst FieldExtra = styled.div`\n padding: 10px 0 10px;\n :empty {\n display: none;\n }\n`;\n\nconst allowedTitleFieldTypes: string[] = [\"text\", \"number\"];\n\nconst isFieldAllowedToBeTitle = (field: CmsModelField, parent?: CmsModelField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (allowedTitleFieldTypes.includes(field.type) === false) {\n return false;\n }\n return true;\n};\n\nexport interface FieldProps {\n field: CmsModelField;\n onDelete: (field: CmsModelField) => void;\n onEdit: (field: CmsModelField) => void;\n parent?: CmsModelField;\n}\nconst Field: React.FC<FieldProps> = props => {\n const { field, onEdit, parent } = props;\n const { showSnackbar } = useSnackbar();\n const { setData, data } = useModelEditor();\n const { getFieldPlugin, getFieldRendererPlugin } = useModelFieldEditor();\n\n const { showConfirmation } = useConfirmationDialog({\n title: t`Warning - You are trying to delete a locked field!`,\n message: (\n <>\n <p>{t`You are about to delete a field which is used in the data storage`}</p>\n <p>{t`All data in that field will be lost and there is no going back!`}</p>\n <p> </p>\n <p>{t`Are you sure you want to continue?`}</p>\n </>\n )\n });\n const lockedFields = data ? data.lockedFields || [] : [];\n const isLocked = lockedFields.some(lockedField => lockedField.fieldId === field.storageId);\n\n const onDelete = useCallback(() => {\n if (!isLocked) {\n props.onDelete(field);\n return;\n }\n showConfirmation(() => {\n props.onDelete(field);\n });\n }, [field.fieldId, lockedFields]);\n\n const setAsTitle = useCallback(async (): Promise<void> => {\n const response = await setData(data => {\n return { ...data, titleFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showSnackbar(response.error.message);\n }\n\n showSnackbar(t`Title field set successfully.`);\n }, [field.fieldId, setData]);\n\n const fieldPlugin = getFieldPlugin(field.type);\n const editorFieldOptionPlugins =\n plugins.byType<CmsEditorFieldOptionPlugin>(\"cms-editor-field-option\");\n\n if (!fieldPlugin) {\n return null;\n }\n\n const rendererPlugin = getFieldRendererPlugin(field.renderer.name);\n const canEdit = fieldPlugin.field.canEditSettings !== false;\n const isTitleField = data && field.fieldId === data.titleFieldId && !parent;\n\n const info = [\n rendererPlugin?.renderer.name,\n field.multipleValues ? \"multiple values\" : null,\n isTitleField ? \"entry title\" : null\n ]\n .filter(Boolean)\n .join(\", \");\n\n return (\n <Fragment>\n <FieldContainer>\n <Info>\n <Typography use={\"subtitle1\"}>{field.label}</Typography>\n <Typography use={\"caption\"}>\n {fieldPlugin.field.label} {field.multipleValues && <></>}\n <LowerCase>({info})</LowerCase>\n </Typography>\n </Info>\n <Actions>\n {canEdit ? (\n <IconButton\n data-testid={\"cms.editor.edit-field\"}\n icon={<EditIcon />}\n onClick={() => onEdit(field)}\n />\n ) : null}\n <Menu\n className={menuStyles}\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n >\n {editorFieldOptionPlugins.map(pl =>\n React.cloneElement(pl.render(), { key: pl.name })\n )}\n {/* We only allow this action for top-level fields. */}\n <MenuItem\n disabled={!isFieldAllowedToBeTitle(field, parent)}\n onClick={setAsTitle}\n >\n <ListItemGraphic>\n <Icon icon={<TitleIcon />} />\n </ListItemGraphic>\n {t`Use as title`}\n </MenuItem>\n <MenuItem onClick={onDelete}>\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {t`Delete`}\n </MenuItem>\n </Menu>\n </Actions>\n </FieldContainer>\n <FieldExtra>\n {fieldPlugin.field.render && fieldPlugin.field.render({ field, data, setData })}\n </FieldExtra>\n </Fragment>\n );\n};\n\nexport default React.memo(Field);\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,gDAAR,CAAV;;AAEA,IAAMC,cAAc,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACjCC,OAAO,EAAE,MADwB;EAEjCC,aAAa,EAAE,KAFkB;EAGjCC,cAAc,EAAE,eAHiB;EAIjCC,UAAU,EAAE;AAJqB,CAAjB,CAApB;AAOA,IAAMC,SAAS,oBAAGL,eAAH;EAAA;EAAA;AAAA,+BAAf;AAIA,IAAMM,IAAI,oBAAGN,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACvBC,OAAO,EAAE,MADc;EAEvBC,aAAa,EAAE,QAFQ;EAGvB,OAAO;IACHK,IAAI,EAAE,QADH;IAEHC,UAAU,EAAE;EAFT;AAHgB,CAAjB,CAAV;AASA,IAAMC,OAAO,oBAAGT,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EAC1BC,OAAO,EAAE,MADiB;EAE1BC,aAAa,EAAE,KAFW;EAG1BE,UAAU,EAAE,OAHc;EAI1B,OAAO;IACHG,IAAI,EAAE;EADH;AAJmB,CAAjB,CAAb;AASA,IAAMG,UAAU,gBAAG,IAAAC,YAAA,EAAI;EACnBC,KAAK,EAAE,GADY;EAEnBC,KAAK,EAAE,CAAC,GAFW;EAGnBC,IAAI,EAAE,iBAHa;EAInB,aAAa;IACTC,OAAO,EAAE,GADA;IAETC,aAAa,EAAE;EAFN;AAJM,CAAJ,sBAAnB;AAUA,IAAMC,UAAU,oBAAGjB,eAAH;EAAA;EAAA;AAAA,+CAAhB;AAOA,IAAMkB,sBAAgC,GAAG,CAAC,MAAD,EAAS,QAAT,CAAzC;;AAEA,IAAMC,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACC,KAAD,EAAuBC,MAAvB,EAAkD;EAC9E,IAAID,KAAK,CAACE,cAAN,IAAwBD,MAA5B,EAAoC;IAChC,OAAO,KAAP;EACH,CAFD,MAEO,IAAIH,sBAAsB,CAACK,QAAvB,CAAgCH,KAAK,CAACI,IAAtC,MAAgD,KAApD,EAA2D;IAC9D,OAAO,KAAP;EACH;;EACD,OAAO,IAAP;AACH,CAPD;;AAeA,IAAMC,KAA2B,GAAG,SAA9BA,KAA8B,CAAAC,KAAK,EAAI;EACzC,IAAQN,KAAR,GAAkCM,KAAlC,CAAQN,KAAR;EAAA,IAAeO,MAAf,GAAkCD,KAAlC,CAAeC,MAAf;EAAA,IAAuBN,MAAvB,GAAkCK,KAAlC,CAAuBL,MAAvB;;EACA,mBAAyB,IAAAO,yBAAA,GAAzB;EAAA,IAAQC,YAAR,gBAAQA,YAAR;;EACA,sBAA0B,IAAAC,qBAAA,GAA1B;EAAA,IAAQC,OAAR,mBAAQA,OAAR;EAAA,IAAiBC,IAAjB,mBAAiBA,IAAjB;;EACA,2BAAmD,IAAAC,yCAAA,GAAnD;EAAA,IAAQC,cAAR,wBAAQA,cAAR;EAAA,IAAwBC,sBAAxB,wBAAwBA,sBAAxB;;EAEA,4BAA6B,IAAAC,+BAAA,EAAsB;IAC/CC,KAAK,EAAEzC,CAAF,qIAD0C;IAE/C0C,OAAO,eACH,yEACI,wCAAI1C,CAAJ,uJADJ,eAEI,wCAAIA,CAAJ,qJAFJ,eAGI,+CAHJ,eAII,wCAAIA,CAAJ,wHAJJ;EAH2C,CAAtB,CAA7B;EAAA,IAAQ2C,gBAAR,yBAAQA,gBAAR;;EAWA,IAAMC,YAAY,GAAGR,IAAI,GAAGA,IAAI,CAACQ,YAAL,IAAqB,EAAxB,GAA6B,EAAtD;EACA,IAAMC,QAAQ,GAAGD,YAAY,CAACE,IAAb,CAAkB,UAAAC,WAAW;IAAA,OAAIA,WAAW,CAACC,OAAZ,KAAwBxB,KAAK,CAACyB,SAAlC;EAAA,CAA7B,CAAjB;EAEA,IAAMC,QAAQ,GAAG,IAAAC,kBAAA,EAAY,YAAM;IAC/B,IAAI,CAACN,QAAL,EAAe;MACXf,KAAK,CAACoB,QAAN,CAAe1B,KAAf;MACA;IACH;;IACDmB,gBAAgB,CAAC,YAAM;MACnBb,KAAK,CAACoB,QAAN,CAAe1B,KAAf;IACH,CAFe,CAAhB;EAGH,CARgB,EAQd,CAACA,KAAK,CAACwB,OAAP,EAAgBJ,YAAhB,CARc,CAAjB;EAUA,IAAMQ,UAAU,GAAG,IAAAD,kBAAA,uGAAY;IAAA;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACJhB,OAAO,CAAC,UAAAC,IAAI,EAAI;cACnC,mEAAYA,IAAZ;gBAAkBiB,YAAY,EAAE7B,KAAK,CAACwB;cAAtC;YACH,CAF6B,CADH;;UAAA;YACrBM,QADqB;;YAAA,MAKvBA,QAAQ,IAAIA,QAAQ,CAACC,KALE;cAAA;cAAA;YAAA;;YAAA,iCAMhBtB,YAAY,CAACqB,QAAQ,CAACC,KAAT,CAAeb,OAAhB,CANI;;UAAA;YAS3BT,YAAY,CAACjC,CAAD,mHAAZ;;UAT2B;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAAZ,IAUhB,CAACwB,KAAK,CAACwB,OAAP,EAAgBb,OAAhB,CAVgB,CAAnB;EAYA,IAAMqB,WAAW,GAAGlB,cAAc,CAACd,KAAK,CAACI,IAAP,CAAlC;;EACA,IAAM6B,wBAAwB,GAC1BC,gBAAA,CAAQC,MAAR,CAA2C,yBAA3C,CADJ;;EAGA,IAAI,CAACH,WAAL,EAAkB;IACd,OAAO,IAAP;EACH;;EAED,IAAMI,cAAc,GAAGrB,sBAAsB,CAACf,KAAK,CAACqC,QAAN,CAAeC,IAAhB,CAA7C;EACA,IAAMC,OAAO,GAAGP,WAAW,CAAChC,KAAZ,CAAkBwC,eAAlB,KAAsC,KAAtD;EACA,IAAMC,YAAY,GAAG7B,IAAI,IAAIZ,KAAK,CAACwB,OAAN,KAAkBZ,IAAI,CAACiB,YAA/B,IAA+C,CAAC5B,MAArE;EAEA,IAAMyC,IAAI,GAAG,CACTN,cADS,aACTA,cADS,uBACTA,cAAc,CAAEC,QAAhB,CAAyBC,IADhB,EAETtC,KAAK,CAACE,cAAN,GAAuB,iBAAvB,GAA2C,IAFlC,EAGTuC,YAAY,GAAG,aAAH,GAAmB,IAHtB,EAKRE,MALQ,CAKDC,OALC,EAMRC,IANQ,CAMH,IANG,CAAb;EAQA,oBACI,6BAAC,eAAD,qBACI,6BAAC,cAAD,qBACI,6BAAC,IAAD,qBACI,6BAAC,sBAAD;IAAY,GAAG,EAAE;EAAjB,GAA+B7C,KAAK,CAAC8C,KAArC,CADJ,eAEI,6BAAC,sBAAD;IAAY,GAAG,EAAE;EAAjB,GACKd,WAAW,CAAChC,KAAZ,CAAkB8C,KADvB,OAC+B9C,KAAK,CAACE,cAAN,iBAAwB,2DADvD,eAEI,6BAAC,SAAD,aAAawC,IAAb,MAFJ,CAFJ,CADJ,eAQI,6BAAC,OAAD,QACKH,OAAO,gBACJ,6BAAC,kBAAD;IACI,eAAa,uBADjB;IAEI,IAAI,eAAE,6BAAC,oBAAD,OAFV;IAGI,OAAO,EAAE;MAAA,OAAMhC,MAAM,CAACP,KAAD,CAAZ;IAAA;EAHb,EADI,GAMJ,IAPR,eAQI,6BAAC,UAAD;IACI,SAAS,EAAEV,UADf;IAEI,MAAM,eAAE,6BAAC,kBAAD;MAAY,IAAI,eAAE,6BAAC,yBAAD;IAAlB;EAFZ,GAIK2C,wBAAwB,CAACc,GAAzB,CAA6B,UAAAC,EAAE;IAAA,oBAC5BC,cAAA,CAAMC,YAAN,CAAmBF,EAAE,CAACG,MAAH,EAAnB,EAAgC;MAAEC,GAAG,EAAEJ,EAAE,CAACV;IAAV,CAAhC,CAD4B;EAAA,CAA/B,CAJL,eAQI,6BAAC,cAAD;IACI,QAAQ,EAAE,CAACvC,uBAAuB,CAACC,KAAD,EAAQC,MAAR,CADtC;IAEI,OAAO,EAAE2B;EAFb,gBAII,6BAAC,qBAAD,qBACI,6BAAC,UAAD;IAAM,IAAI,eAAE,6BAAC,yBAAD;EAAZ,EADJ,CAJJ,EAOKpD,CAPL,kGARJ,eAiBI,6BAAC,cAAD;IAAU,OAAO,EAAEkD;EAAnB,gBACI,6BAAC,qBAAD,qBACI,6BAAC,UAAD;IAAM,IAAI,eAAE,6BAAC,sBAAD;EAAZ,EADJ,CADJ,EAIKlD,CAJL,4FAjBJ,CARJ,CARJ,CADJ,eA2CI,6BAAC,UAAD,QACKwD,WAAW,CAAChC,KAAZ,CAAkBmD,MAAlB,IAA4BnB,WAAW,CAAChC,KAAZ,CAAkBmD,MAAlB,CAAyB;IAAEnD,KAAK,EAALA,KAAF;IAASY,IAAI,EAAJA,IAAT;IAAeD,OAAO,EAAPA;EAAf,CAAzB,CADjC,CA3CJ,CADJ;AAiDH,CA/GD;;4BAiHesC,cAAA,CAAMI,IAAN,CAAWhD,KAAX,C"}
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","FieldContainer","styled","display","flexDirection","justifyContent","alignItems","LowerCase","Info","flex","lineHeight","Actions","menuStyles","css","width","right","left","opacity","pointerEvents","FieldExtra","allowedTitleFieldTypes","isFieldAllowedToBeTitle","field","parent","multipleValues","includes","type","Field","props","onEdit","useSnackbar","showSnackbar","useModelEditor","setData","data","useModelFieldEditor","getFieldPlugin","getFieldRendererPlugin","useConfirmationDialog","title","message","showConfirmation","lockedFields","isLocked","some","lockedField","fieldId","storageId","onDelete","useCallback","setAsTitle","titleFieldId","response","error","fieldPlugin","editorFieldOptionPlugins","plugins","byType","rendererPlugin","renderer","name","canEdit","canEditSettings","isTitleField","info","filter","Boolean","join","label","map","pl","React","cloneElement","render","key","memo"],"sources":["Field.tsx"],"sourcesContent":["import React, { Fragment, useCallback } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as EditIcon } from \"@material-design-icons/svg/outlined/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { ReactComponent as TitleIcon } from \"~/admin/icons/title-24px.svg\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { Menu, MenuItem } from \"@webiny/ui/Menu\";\nimport { plugins } from \"@webiny/plugins\";\nimport { CmsModelField, CmsEditorFieldOptionPlugin } from \"~/types\";\nimport { ListItemGraphic } from \"@webiny/ui/List\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useModelEditor } from \"~/admin/hooks\";\nimport { useModelFieldEditor } from \"~/admin/components/FieldEditor/useModelFieldEditor\";\nimport { useConfirmationDialog } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/editor/field\");\n\nconst FieldContainer = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n});\n\nconst LowerCase = styled.span`\n text-transform: lowercase;\n`;\n\nconst Info = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\",\n \"> *\": {\n flex: \"1 100%\",\n lineHeight: \"150%\"\n }\n});\n\nconst Actions = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"right\",\n \"> *\": {\n flex: \"1 100%\"\n }\n});\n\nconst menuStyles = css({\n width: 220,\n right: -105,\n left: \"auto !important\",\n \".disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst FieldExtra = styled.div`\n padding: 10px 0 10px;\n :empty {\n display: none;\n }\n`;\n\nconst allowedTitleFieldTypes: string[] = [\"text\", \"number\"];\n\nconst isFieldAllowedToBeTitle = (field: CmsModelField, parent?: CmsModelField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (allowedTitleFieldTypes.includes(field.type) === false) {\n return false;\n }\n return true;\n};\n\nexport interface FieldProps {\n field: CmsModelField;\n onDelete: (field: CmsModelField) => void;\n onEdit: (field: CmsModelField) => void;\n parent?: CmsModelField;\n}\nconst Field: React.FC<FieldProps> = props => {\n const { field, onEdit, parent } = props;\n const { showSnackbar } = useSnackbar();\n const { setData, data } = useModelEditor();\n const { getFieldPlugin, getFieldRendererPlugin } = useModelFieldEditor();\n\n const { showConfirmation } = useConfirmationDialog({\n title: t`Warning - You are trying to delete a locked field!`,\n message: (\n <>\n <p>{t`You are about to delete a field which is used in the data storage`}</p>\n <p>{t`All data in that field will be lost and there is no going back!`}</p>\n <p> </p>\n <p>{t`Are you sure you want to continue?`}</p>\n </>\n )\n });\n const lockedFields = data ? data.lockedFields || [] : [];\n const isLocked = lockedFields.some(lockedField => lockedField.fieldId === field.storageId);\n\n const onDelete = useCallback(() => {\n if (!isLocked) {\n props.onDelete(field);\n return;\n }\n showConfirmation(() => {\n props.onDelete(field);\n });\n }, [field.fieldId, lockedFields]);\n\n const setAsTitle = useCallback(async (): Promise<void> => {\n const response = await setData(data => {\n return { ...data, titleFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showSnackbar(response.error.message);\n }\n\n showSnackbar(t`Title field set successfully.`);\n }, [field.fieldId, setData]);\n\n const fieldPlugin = getFieldPlugin(field.type);\n const editorFieldOptionPlugins =\n plugins.byType<CmsEditorFieldOptionPlugin>(\"cms-editor-field-option\");\n\n if (!fieldPlugin) {\n return null;\n }\n\n const rendererPlugin = getFieldRendererPlugin(field.renderer.name);\n const canEdit = fieldPlugin.field.canEditSettings !== false;\n const isTitleField = data && field.fieldId === data.titleFieldId && !parent;\n\n const info = [\n rendererPlugin?.renderer.name,\n field.multipleValues ? \"multiple values\" : null,\n isTitleField ? \"entry title\" : null\n ]\n .filter(Boolean)\n .join(\", \");\n\n return (\n <Fragment>\n <FieldContainer>\n <Info>\n <Typography use={\"subtitle1\"}>{field.label}</Typography>\n <Typography use={\"caption\"}>\n {fieldPlugin.field.label} {field.multipleValues && <></>}\n <LowerCase>({info})</LowerCase>\n </Typography>\n </Info>\n <Actions>\n {canEdit ? (\n <IconButton\n data-testid={\"cms.editor.edit-field\"}\n icon={<EditIcon />}\n onClick={() => onEdit(field)}\n />\n ) : null}\n <Menu\n className={menuStyles}\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n >\n {editorFieldOptionPlugins.map(pl =>\n React.cloneElement(pl.render(), { key: pl.name })\n )}\n {/* We only allow this action for top-level fields. */}\n <MenuItem\n disabled={!isFieldAllowedToBeTitle(field, parent)}\n onClick={setAsTitle}\n >\n <ListItemGraphic>\n <Icon icon={<TitleIcon />} />\n </ListItemGraphic>\n {t`Use as title`}\n </MenuItem>\n <MenuItem onClick={onDelete}>\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {t`Delete`}\n </MenuItem>\n </Menu>\n </Actions>\n </FieldContainer>\n <FieldExtra>\n {fieldPlugin.field.render && fieldPlugin.field.render({ field, data, setData })}\n </FieldExtra>\n </Fragment>\n );\n};\n\nexport default React.memo(Field);\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["iconPickerLabel","css","marginBottom","marginLeft","MenuWrapper","NoResultWrapper","width","color","padding","COLUMN_COUNT","gridItem","display","flexDirection","justifyContent","boxSizing","paddingTop","alignItems","textAlign","cursor","transform","borderRadius","transition","boxShadow","content","position","top","left","height","zIndex","opacity","backgroundColor","grid","pickIcon","searchInput","input","useState","React","useCallback","useMemo","IconPicker","value","onChange","label","description","validation","filter","setFilter","mustRenderGrid","setMustRenderGrid","inputRef","useRef","useEffect","setTimeout","current","focus","onFilterChange","cb","allIcons","iconPlugins","plugins","byType","reduce","icons","pl","concat","getIcons","ic","name","includes","renderCell","closeMenu","columnIndex","key","rowIndex","style","item","id","join","renderGrid","length","Math","ceil","fontAwesomeIconValue","split","validationIsValid","isValid","validationMessage","message"],"sources":["IconPicker.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport { css } from \"emotion\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Grid } from \"react-virtualized\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport DelayedOnChange from \"./DelayedOnChange\";\nimport { Menu } from \"@webiny/ui/Menu\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { CmsIcon, CmsIconsPlugin } from \"~/types\";\nimport { FormComponentProps } from \"@webiny/ui/types\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { GridCellProps } from \"react-virtualized/dist/es/Grid\";\n\n/**\n * Controls the helper text below the checkbox.\n * @type {string}\n */\nconst iconPickerLabel = css({ marginBottom: 5, marginLeft: 2 });\n\nconst MenuWrapper = css`\n color: var(--mdc-theme-text-secondary-on-background);\n background-color: var(--mdc-theme-on-background);\n border-bottom: 1px solid var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54));\n padding: 16px 8px;\n cursor: pointer;\n :hover {\n border-bottom: 1px solid rgba(0, 0, 0, 1);\n }\n`;\n\nconst NoResultWrapper = css({\n width: 640,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n padding: \"16px 12px\"\n});\n\nconst COLUMN_COUNT = 6;\n\nconst gridItem = css({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n boxSizing: \"border-box\",\n paddingTop: 15,\n alignItems: \"center\",\n textAlign: \"center\",\n cursor: \"pointer\",\n transform: \"translateZ(0)\",\n borderRadius: 2,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n transition: \"all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1)\",\n \"&::after\": {\n boxShadow: \"0 0.25rem 0.125rem 0 rgba(0,0,0,0.05)\",\n transition: \"opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1)\",\n content: '\"\"',\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n zIndex: -1,\n opacity: 0\n },\n \"&:hover\": {\n backgroundColor: \"var(--mdc-theme-background)\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n \"&::after\": {\n opacity: 1\n }\n },\n \">svg\": {\n width: 42,\n marginBottom: 5\n }\n});\n\nconst grid = css({\n padding: 20\n});\n\nconst pickIcon = css({\n width: 50,\n textAlign: \"center\",\n cursor: \"pointer\"\n});\n\nconst searchInput = css({\n input: {\n padding: \"20px 12px 20px\"\n }\n});\n\nconst { useState, useCallback, useMemo } = React;\n\nexport interface IconPickerProps extends FormComponentProps {\n label?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport const IconPicker: React.FC<IconPickerProps> = ({\n value,\n onChange,\n label,\n description,\n validation\n}) => {\n const [filter, setFilter] = useState(\"\");\n const [mustRenderGrid, setMustRenderGrid] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n setTimeout(() => {\n if (mustRenderGrid && inputRef.current) {\n inputRef.current.focus();\n }\n }, 50);\n }, [mustRenderGrid]);\n\n const onFilterChange = useCallback(\n (value, cb) => {\n setFilter(value);\n cb();\n },\n [filter]\n );\n\n const allIcons: CmsIcon[] = useMemo(() => {\n const iconPlugins = plugins.byType<CmsIconsPlugin>(\"cms-icons\");\n return iconPlugins.reduce((icons: Array<CmsIcon>, pl) => {\n return icons.concat(pl.getIcons());\n }, []);\n }, []);\n\n const icons = useMemo(() => {\n return filter ? allIcons.filter(ic => ic.name.includes(filter)) : allIcons;\n }, [filter]);\n\n const renderCell = useCallback(\n ({ closeMenu }) => {\n return function renderCell({\n columnIndex,\n key,\n rowIndex,\n style\n }: GridCellProps): React.ReactNode {\n const item = icons[rowIndex * COLUMN_COUNT + columnIndex];\n if (!item) {\n return null;\n }\n\n return (\n <div\n key={key}\n style={style}\n className={gridItem}\n onClick={() => {\n if (onChange) {\n onChange(item.id.join(\"/\"));\n }\n closeMenu();\n }}\n >\n <FontAwesomeIcon icon={item.id} size={\"2x\"} />\n <Typography use={\"body2\"}>{item.name}</Typography>\n </div>\n );\n };\n },\n [icons]\n );\n\n const renderGrid = useCallback(\n ({ closeMenu }) => {\n return (\n <>\n <DelayedOnChange value={filter} onChange={onFilterChange}>\n {({ value, onChange }) => (\n <Input\n inputRef={inputRef}\n className={searchInput}\n value={value}\n onChange={onChange}\n placeholder={\"Search icons...\"}\n />\n )}\n </DelayedOnChange>\n {icons.length === 0 ? (\n <div className={NoResultWrapper}>\n <Typography use=\"body1\">No results found.</Typography>\n </div>\n ) : (\n <Grid\n className={grid}\n cellRenderer={renderCell({ closeMenu })}\n columnCount={COLUMN_COUNT}\n columnWidth={100}\n height={440}\n rowCount={Math.ceil(icons.length / COLUMN_COUNT)}\n rowHeight={100}\n width={640}\n />\n )}\n </>\n );\n },\n [icons]\n );\n\n const fontAwesomeIconValue: any =\n typeof value === \"string\" && value.includes(\"/\") ? value.split(\"/\") : [\"fas\", \"star\"];\n\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n\n return (\n <>\n {label && (\n <div className={iconPickerLabel}>\n <Typography use={\"body1\"}>{label}</Typography>\n </div>\n )}\n\n <Menu\n onOpen={() => setMustRenderGrid(true)}\n onClose={() => setMustRenderGrid(false)}\n handle={\n <div className={MenuWrapper}>\n <div className={pickIcon}>\n <FontAwesomeIcon icon={fontAwesomeIconValue} size={\"2x\"} />\n </div>\n </div>\n }\n >\n {mustRenderGrid && renderGrid}\n </Menu>\n\n {validationIsValid === false && (\n <FormElementMessage error>{validationMessage}</FormElementMessage>\n )}\n {validationIsValid !== false && description && (\n <FormElementMessage>{description}</FormElementMessage>\n )}\n </>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["iconPickerLabel","css","marginBottom","marginLeft","MenuWrapper","NoResultWrapper","width","color","padding","COLUMN_COUNT","gridItem","display","flexDirection","justifyContent","boxSizing","paddingTop","alignItems","textAlign","cursor","transform","borderRadius","transition","boxShadow","content","position","top","left","height","zIndex","opacity","backgroundColor","grid","pickIcon","searchInput","input","useState","React","useCallback","useMemo","IconPicker","value","onChange","label","description","validation","filter","setFilter","mustRenderGrid","setMustRenderGrid","inputRef","useRef","useEffect","setTimeout","current","focus","onFilterChange","cb","allIcons","iconPlugins","plugins","byType","reduce","icons","pl","concat","getIcons","ic","name","includes","renderCell","closeMenu","columnIndex","key","rowIndex","style","item","id","join","renderGrid","length","Math","ceil","fontAwesomeIconValue","split","validationIsValid","isValid","validationMessage","message"],"sources":["IconPicker.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport { css } from \"emotion\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Grid } from \"react-virtualized\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport DelayedOnChange from \"./DelayedOnChange\";\nimport { Menu } from \"@webiny/ui/Menu\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { CmsIcon, CmsIconsPlugin } from \"~/types\";\nimport { FormComponentProps } from \"@webiny/ui/types\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { GridCellProps } from \"react-virtualized/dist/es/Grid\";\n\n/**\n * Controls the helper text below the checkbox.\n * @type {string}\n */\nconst iconPickerLabel = css({ marginBottom: 5, marginLeft: 2 });\n\nconst MenuWrapper = css`\n color: var(--mdc-theme-text-secondary-on-background);\n background-color: var(--mdc-theme-on-background);\n border-bottom: 1px solid var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54));\n padding: 16px 8px;\n cursor: pointer;\n :hover {\n border-bottom: 1px solid rgba(0, 0, 0, 1);\n }\n`;\n\nconst NoResultWrapper = css({\n width: 640,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n padding: \"16px 12px\"\n});\n\nconst COLUMN_COUNT = 6;\n\nconst gridItem = css({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n boxSizing: \"border-box\",\n paddingTop: 15,\n alignItems: \"center\",\n textAlign: \"center\",\n cursor: \"pointer\",\n transform: \"translateZ(0)\",\n borderRadius: 2,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n transition: \"all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1)\",\n \"&::after\": {\n boxShadow: \"0 0.25rem 0.125rem 0 rgba(0,0,0,0.05)\",\n transition: \"opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1)\",\n content: '\"\"',\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n zIndex: -1,\n opacity: 0\n },\n \"&:hover\": {\n backgroundColor: \"var(--mdc-theme-background)\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n \"&::after\": {\n opacity: 1\n }\n },\n \">svg\": {\n width: 42,\n marginBottom: 5\n }\n});\n\nconst grid = css({\n padding: 20\n});\n\nconst pickIcon = css({\n width: 50,\n textAlign: \"center\",\n cursor: \"pointer\"\n});\n\nconst searchInput = css({\n input: {\n padding: \"20px 12px 20px\"\n }\n});\n\nconst { useState, useCallback, useMemo } = React;\n\nexport interface IconPickerProps extends FormComponentProps {\n label?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport const IconPicker: React.FC<IconPickerProps> = ({\n value,\n onChange,\n label,\n description,\n validation\n}) => {\n const [filter, setFilter] = useState(\"\");\n const [mustRenderGrid, setMustRenderGrid] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n setTimeout(() => {\n if (mustRenderGrid && inputRef.current) {\n inputRef.current.focus();\n }\n }, 50);\n }, [mustRenderGrid]);\n\n const onFilterChange = useCallback(\n (value, cb) => {\n setFilter(value);\n cb();\n },\n [filter]\n );\n\n const allIcons: CmsIcon[] = useMemo(() => {\n const iconPlugins = plugins.byType<CmsIconsPlugin>(\"cms-icons\");\n return iconPlugins.reduce((icons: Array<CmsIcon>, pl) => {\n return icons.concat(pl.getIcons());\n }, []);\n }, []);\n\n const icons = useMemo(() => {\n return filter ? allIcons.filter(ic => ic.name.includes(filter)) : allIcons;\n }, [filter]);\n\n const renderCell = useCallback(\n ({ closeMenu }) => {\n return function renderCell({\n columnIndex,\n key,\n rowIndex,\n style\n }: GridCellProps): React.ReactNode {\n const item = icons[rowIndex * COLUMN_COUNT + columnIndex];\n if (!item) {\n return null;\n }\n\n return (\n <div\n key={key}\n style={style}\n className={gridItem}\n onClick={() => {\n if (onChange) {\n onChange(item.id.join(\"/\"));\n }\n closeMenu();\n }}\n >\n <FontAwesomeIcon icon={item.id} size={\"2x\"} />\n <Typography use={\"body2\"}>{item.name}</Typography>\n </div>\n );\n };\n },\n [icons]\n );\n\n const renderGrid = useCallback(\n ({ closeMenu }) => {\n return (\n <>\n <DelayedOnChange value={filter} onChange={onFilterChange}>\n {({ value, onChange }) => (\n <Input\n inputRef={inputRef}\n className={searchInput}\n value={value}\n onChange={onChange}\n placeholder={\"Search icons...\"}\n />\n )}\n </DelayedOnChange>\n {icons.length === 0 ? (\n <div className={NoResultWrapper}>\n <Typography use=\"body1\">No results found.</Typography>\n </div>\n ) : (\n <Grid\n className={grid}\n cellRenderer={renderCell({ closeMenu })}\n columnCount={COLUMN_COUNT}\n columnWidth={100}\n height={440}\n rowCount={Math.ceil(icons.length / COLUMN_COUNT)}\n rowHeight={100}\n width={640}\n />\n )}\n </>\n );\n },\n [icons]\n );\n\n const fontAwesomeIconValue: any =\n typeof value === \"string\" && value.includes(\"/\") ? value.split(\"/\") : [\"fas\", \"star\"];\n\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n\n return (\n <>\n {label && (\n <div className={iconPickerLabel}>\n <Typography use={\"body1\"}>{label}</Typography>\n </div>\n )}\n\n <Menu\n onOpen={() => setMustRenderGrid(true)}\n onClose={() => setMustRenderGrid(false)}\n handle={\n <div className={MenuWrapper}>\n <div className={pickIcon}>\n <FontAwesomeIcon icon={fontAwesomeIconValue} size={\"2x\"} />\n </div>\n </div>\n }\n >\n {mustRenderGrid && renderGrid}\n </Menu>\n\n {validationIsValid === false && (\n <FormElementMessage error>{validationMessage}</FormElementMessage>\n )}\n {validationIsValid !== false && description && (\n <FormElementMessage>{description}</FormElementMessage>\n )}\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["linkStyle","css","color","textDecoration","display","alignItems","width","height","outline","paddingLeft","submenuItems","margin","submenuList","padding","NothingToShow","opacity"],"sources":["NothingToShowElement.tsx"],"sourcesContent":["// TODO: implement this without relying on the `ui` package\nimport React from \"react\";\nimport { css } from \"emotion\";\nimport { List, ListItem } from \"@webiny/ui/List\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst linkStyle = css({\n color: \"var(--mdc-theme-text-primary-on-background)\",\n textDecoration: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"100%\",\n outline: \"none\",\n paddingLeft: 72,\n \"&:hover\": {\n textDecoration: \"none\"\n }\n});\n\nconst submenuItems = css({\n \".mdc-drawer &.mdc-list-item\": {\n margin: 0,\n paddingLeft: 0\n }\n});\n\nconst submenuList = css({\n \"&.mdc-list\": {\n padding: 0\n }\n});\n\nexport const NothingToShow: React.FC = () => {\n return (\n <List className={submenuList} style={{ opacity: 0.4 }}>\n <ListItem className={submenuItems} ripple={false} disabled>\n <Typography use={\"body2\"} className={linkStyle}>\n Nothing to show.\n </Typography>\n </ListItem>\n </List>\n );\n};\n"],"mappings":";;;;;;;;;AACA;;AACA;;AACA;;AACA;;AAJA;AAMA,IAAMA,SAAS,gBAAG,IAAAC,YAAA,EAAI;EAClBC,KAAK,EAAE,6CADW;EAElBC,cAAc,EAAE,MAFE;EAGlBC,OAAO,EAAE,MAHS;EAIlBC,UAAU,EAAE,QAJM;EAKlBC,KAAK,EAAE,MALW;EAMlBC,MAAM,EAAE,MANU;EAOlBC,OAAO,EAAE,MAPS;EAQlBC,WAAW,EAAE,EARK;EASlB,WAAW;IACPN,cAAc,EAAE;EADT;AATO,CAAJ,qBAAlB;AAcA,IAAMO,YAAY,gBAAG,IAAAT,YAAA,EAAI;EACrB,+BAA+B;IAC3BU,MAAM,EAAE,CADmB;IAE3BF,WAAW,EAAE;EAFc;AADV,CAAJ,wBAArB;AAOA,IAAMG,WAAW,gBAAG,IAAAX,YAAA,EAAI;EACpB,cAAc;IACVY,OAAO,EAAE;EADC;AADM,CAAJ,uBAApB;;AAMO,IAAMC,aAAuB,GAAG,SAA1BA,aAA0B,GAAM;EACzC,oBACI,6BAAC,UAAD;IAAM,SAAS,EAAEF,WAAjB;IAA8B,KAAK,EAAE;MAAEG,OAAO,EAAE;IAAX;EAArC,gBACI,6BAAC,cAAD;IAAU,SAAS,EAAEL,YAArB;IAAmC,MAAM,EAAE,KAA3C;IAAkD,QAAQ;EAA1D,gBACI,6BAAC,sBAAD;IAAY,GAAG,EAAE,OAAjB;IAA0B,SAAS,EAAEV;EAArC,
|
|
1
|
+
{"version":3,"names":["linkStyle","css","color","textDecoration","display","alignItems","width","height","outline","paddingLeft","submenuItems","margin","submenuList","padding","NothingToShow","opacity"],"sources":["NothingToShowElement.tsx"],"sourcesContent":["// TODO: implement this without relying on the `ui` package\nimport React from \"react\";\nimport { css } from \"emotion\";\nimport { List, ListItem } from \"@webiny/ui/List\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst linkStyle = css({\n color: \"var(--mdc-theme-text-primary-on-background)\",\n textDecoration: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"100%\",\n outline: \"none\",\n paddingLeft: 72,\n \"&:hover\": {\n textDecoration: \"none\"\n }\n});\n\nconst submenuItems = css({\n \".mdc-drawer &.mdc-list-item\": {\n margin: 0,\n paddingLeft: 0\n }\n});\n\nconst submenuList = css({\n \"&.mdc-list\": {\n padding: 0\n }\n});\n\nexport const NothingToShow: React.FC = () => {\n return (\n <List className={submenuList} style={{ opacity: 0.4 }}>\n <ListItem className={submenuItems} ripple={false} disabled>\n <Typography use={\"body2\"} className={linkStyle}>\n Nothing to show.\n </Typography>\n </ListItem>\n </List>\n );\n};\n"],"mappings":";;;;;;;;;AACA;;AACA;;AACA;;AACA;;AAJA;AAMA,IAAMA,SAAS,gBAAG,IAAAC,YAAA,EAAI;EAClBC,KAAK,EAAE,6CADW;EAElBC,cAAc,EAAE,MAFE;EAGlBC,OAAO,EAAE,MAHS;EAIlBC,UAAU,EAAE,QAJM;EAKlBC,KAAK,EAAE,MALW;EAMlBC,MAAM,EAAE,MANU;EAOlBC,OAAO,EAAE,MAPS;EAQlBC,WAAW,EAAE,EARK;EASlB,WAAW;IACPN,cAAc,EAAE;EADT;AATO,CAAJ,qBAAlB;AAcA,IAAMO,YAAY,gBAAG,IAAAT,YAAA,EAAI;EACrB,+BAA+B;IAC3BU,MAAM,EAAE,CADmB;IAE3BF,WAAW,EAAE;EAFc;AADV,CAAJ,wBAArB;AAOA,IAAMG,WAAW,gBAAG,IAAAX,YAAA,EAAI;EACpB,cAAc;IACVY,OAAO,EAAE;EADC;AADM,CAAJ,uBAApB;;AAMO,IAAMC,aAAuB,GAAG,SAA1BA,aAA0B,GAAM;EACzC,oBACI,6BAAC,UAAD;IAAM,SAAS,EAAEF,WAAjB;IAA8B,KAAK,EAAE;MAAEG,OAAO,EAAE;IAAX;EAArC,gBACI,6BAAC,cAAD;IAAU,SAAS,EAAEL,YAArB;IAAmC,MAAM,EAAE,KAA3C;IAAkD,QAAQ;EAA1D,gBACI,6BAAC,sBAAD;IAAY,GAAG,EAAE,OAAjB;IAA0B,SAAS,EAAEV;EAArC,GAAgD,kBAAhD,CADJ,CADJ,CADJ;AASH,CAVM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["listStyle","css","padding","backgroundColor","listItem","cursor","borderBottom","marginRight","ListItemTitle","styled","fontWeight","marginBottom","Title","margin","color","TitleContent","display","flexDirection"],"sources":["FormSettingsStyled.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nexport const listStyle = css({\n \"&.mdc-list\": {\n padding: 0,\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n});\n\nexport const listItem = css({\n padding: \"15px 20px\",\n cursor: \"pointer\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n \"&:last-child\": {\n borderBottom: \"none\"\n },\n \".mdc-list-item__graphic\": {\n marginRight: 20\n }\n});\n\nexport const ListItemTitle = styled(\"div\")({\n fontWeight: 600,\n marginBottom: 5\n});\n\nexport const Title = (\n <Typography\n style={{ margin: \"0 auto\", color: \"var(--mdc-theme-on-surface)\" }}\n use={\"headline6\"}\n >\n Content model settings\n </Typography>\n);\n\nexport const TitleContent = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\"\n});\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEO,IAAMA,SAAS,gBAAG,IAAAC,YAAA,EAAI;EACzB,cAAc;IACVC,OAAO,EAAE,CADC;IAEVC,eAAe,EAAE;EAFP;AADW,CAAJ,qBAAlB;;AAOA,IAAMC,QAAQ,gBAAG,IAAAH,YAAA,EAAI;EACxBC,OAAO,EAAE,WADe;EAExBG,MAAM,EAAE,SAFgB;EAGxBC,YAAY,EAAE,uCAHU;EAIxB,gBAAgB;IACZA,YAAY,EAAE;EADF,CAJQ;EAOxB,2BAA2B;IACvBC,WAAW,EAAE;EADU;AAPH,CAAJ,oBAAjB;;AAYA,IAAMC,aAAa,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACvCC,UAAU,EAAE,GAD2B;EAEvCC,YAAY,EAAE;AAFyB,CAAjB,CAAnB;;AAKA,IAAMC,KAAK,gBACd,oBAAC,sBAAD;EACI,KAAK,EAAE;IAAEC,MAAM,EAAE,QAAV;IAAoBC,KAAK,EAAE;EAA3B,CADX;EAEI,GAAG,EAAE;AAFT,
|
|
1
|
+
{"version":3,"names":["listStyle","css","padding","backgroundColor","listItem","cursor","borderBottom","marginRight","ListItemTitle","styled","fontWeight","marginBottom","Title","margin","color","TitleContent","display","flexDirection"],"sources":["FormSettingsStyled.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nexport const listStyle = css({\n \"&.mdc-list\": {\n padding: 0,\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n});\n\nexport const listItem = css({\n padding: \"15px 20px\",\n cursor: \"pointer\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n \"&:last-child\": {\n borderBottom: \"none\"\n },\n \".mdc-list-item__graphic\": {\n marginRight: 20\n }\n});\n\nexport const ListItemTitle = styled(\"div\")({\n fontWeight: 600,\n marginBottom: 5\n});\n\nexport const Title = (\n <Typography\n style={{ margin: \"0 auto\", color: \"var(--mdc-theme-on-surface)\" }}\n use={\"headline6\"}\n >\n Content model settings\n </Typography>\n);\n\nexport const TitleContent = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\"\n});\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEO,IAAMA,SAAS,gBAAG,IAAAC,YAAA,EAAI;EACzB,cAAc;IACVC,OAAO,EAAE,CADC;IAEVC,eAAe,EAAE;EAFP;AADW,CAAJ,qBAAlB;;AAOA,IAAMC,QAAQ,gBAAG,IAAAH,YAAA,EAAI;EACxBC,OAAO,EAAE,WADe;EAExBG,MAAM,EAAE,SAFgB;EAGxBC,YAAY,EAAE,uCAHU;EAIxB,gBAAgB;IACZA,YAAY,EAAE;EADF,CAJQ;EAOxB,2BAA2B;IACvBC,WAAW,EAAE;EADU;AAPH,CAAJ,oBAAjB;;AAYA,IAAMC,aAAa,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACvCC,UAAU,EAAE,GAD2B;EAEvCC,YAAY,EAAE;AAFyB,CAAjB,CAAnB;;AAKA,IAAMC,KAAK,gBACd,oBAAC,sBAAD;EACI,KAAK,EAAE;IAAEC,MAAM,EAAE,QAAV;IAAoBC,KAAK,EAAE;EAA3B,CADX;EAEI,GAAG,EAAE;AAFT,GAGC,wBAHD,CADG;;AASA,IAAMC,YAAY,oBAAGN,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACtCO,OAAO,EAAE,MAD6B;EAEtCC,aAAa,EAAE;AAFuB,CAAjB,CAAlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AddIconContainer","styled","AddButtonContainer","Info","useAddTemplate","params","useState","showGallery","setShowGallery","browseTemplates","onTemplate","template","onGalleryClose","AddTemplateButton","props","AddTemplateIcon"],"sources":["AddTemplate.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { ReactComponent as InfoIcon } from \"@material-design-icons/svg/outlined/info.svg\";\nimport { ReactComponent as AddIcon } from \"@material-design-icons/svg/round/add_circle_outline.svg\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { TemplateGallery } from \"./TemplateGallery\";\nimport { IconButton, ButtonSecondary } from \"@webiny/ui/Button\";\n\nconst AddIconContainer = styled.div`\n text-align: center;\n padding-top: 3px;\n`;\n\nconst AddButtonContainer = styled.div`\n text-align: center;\n margin-top: 20px;\n :first-of-type {\n margin-top: 0;\n }\n`;\n\nconst Info = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin-top: 5px;\n > svg {\n width: 20px;\n margin-right: 5px;\n }\n`;\n\ninterface UseAddTemplateParams {\n onTemplate: (template: CmsDynamicZoneTemplate) => void;\n}\n\nfunction useAddTemplate(params: UseAddTemplateParams) {\n const [showGallery, setShowGallery] = useState(false);\n\n const browseTemplates = () => {\n setShowGallery(true);\n };\n\n const onTemplate = (template: CmsDynamicZoneTemplate) => {\n params.onTemplate(template);\n onGalleryClose();\n };\n\n const onGalleryClose = () => {\n setShowGallery(false);\n };\n\n return {\n showGallery,\n browseTemplates,\n onTemplate,\n onGalleryClose\n };\n}\n\ninterface AddTemplateProps {\n label?: string;\n onTemplate: UseAddTemplateParams[\"onTemplate\"];\n}\n\nexport const AddTemplateButton = (props: AddTemplateProps) => {\n const { showGallery, onTemplate, browseTemplates, onGalleryClose } = useAddTemplate({\n onTemplate: props.onTemplate\n });\n\n return (\n <AddButtonContainer>\n {showGallery ? (\n <TemplateGallery onTemplate={onTemplate} onClose={onGalleryClose} />\n ) : (\n <>\n <ButtonSecondary onClick={browseTemplates}>+ Add a template</ButtonSecondary>\n <Info>\n <InfoIcon />\n <Typography use={\"caption\"}>\n Click here to learn how templates and dynamic zones work\n </Typography>\n </Info>\n </>\n )}\n </AddButtonContainer>\n );\n};\n\nexport const AddTemplateIcon = (props: AddTemplateProps) => {\n const { showGallery, onTemplate, browseTemplates, onGalleryClose } = useAddTemplate({\n onTemplate: props.onTemplate\n });\n\n return (\n <AddIconContainer>\n {showGallery ? (\n <TemplateGallery onTemplate={onTemplate} onClose={onGalleryClose} />\n ) : (\n <IconButton onClick={browseTemplates} icon={<AddIcon />} />\n )}\n </AddIconContainer>\n );\n};\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAEA,IAAMA,gBAAgB,oBAAGC,eAAH;EAAA;EAAA;AAAA,wCAAtB;AAKA,IAAMC,kBAAkB,oBAAGD,eAAH;EAAA;EAAA;AAAA,qEAAxB;AAQA,IAAME,IAAI,oBAAGF,eAAH;EAAA;EAAA;AAAA,+GAAV;;AAeA,SAASG,cAAT,CAAwBC,MAAxB,EAAsD;EAClD,gBAAsC,IAAAC,eAAA,EAAS,KAAT,CAAtC;EAAA;EAAA,IAAOC,WAAP;EAAA,IAAoBC,cAApB;;EAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAM;IAC1BD,cAAc,CAAC,IAAD,CAAd;EACH,CAFD;;EAIA,IAAME,UAAU,GAAG,SAAbA,UAAa,CAACC,QAAD,EAAsC;IACrDN,MAAM,CAACK,UAAP,CAAkBC,QAAlB;IACAC,cAAc;EACjB,CAHD;;EAKA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,GAAM;IACzBJ,cAAc,CAAC,KAAD,CAAd;EACH,CAFD;;EAIA,OAAO;IACHD,WAAW,EAAXA,WADG;IAEHE,eAAe,EAAfA,eAFG;IAGHC,UAAU,EAAVA,UAHG;IAIHE,cAAc,EAAdA;EAJG,CAAP;AAMH;;AAOM,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAA6B;EAC1D,sBAAqEV,cAAc,CAAC;IAChFM,UAAU,EAAEI,KAAK,CAACJ;EAD8D,CAAD,CAAnF;EAAA,IAAQH,WAAR,mBAAQA,WAAR;EAAA,IAAqBG,UAArB,mBAAqBA,UAArB;EAAA,IAAiCD,eAAjC,mBAAiCA,eAAjC;EAAA,IAAkDG,cAAlD,mBAAkDA,cAAlD;;EAIA,oBACI,6BAAC,kBAAD,QACKL,WAAW,gBACR,6BAAC,gCAAD;IAAiB,UAAU,EAAEG,UAA7B;IAAyC,OAAO,EAAEE;EAAlD,EADQ,gBAGR,yEACI,6BAAC,uBAAD;IAAiB,OAAO,EAAEH;EAA1B,
|
|
1
|
+
{"version":3,"names":["AddIconContainer","styled","AddButtonContainer","Info","useAddTemplate","params","useState","showGallery","setShowGallery","browseTemplates","onTemplate","template","onGalleryClose","AddTemplateButton","props","AddTemplateIcon"],"sources":["AddTemplate.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { ReactComponent as InfoIcon } from \"@material-design-icons/svg/outlined/info.svg\";\nimport { ReactComponent as AddIcon } from \"@material-design-icons/svg/round/add_circle_outline.svg\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { TemplateGallery } from \"./TemplateGallery\";\nimport { IconButton, ButtonSecondary } from \"@webiny/ui/Button\";\n\nconst AddIconContainer = styled.div`\n text-align: center;\n padding-top: 3px;\n`;\n\nconst AddButtonContainer = styled.div`\n text-align: center;\n margin-top: 20px;\n :first-of-type {\n margin-top: 0;\n }\n`;\n\nconst Info = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin-top: 5px;\n > svg {\n width: 20px;\n margin-right: 5px;\n }\n`;\n\ninterface UseAddTemplateParams {\n onTemplate: (template: CmsDynamicZoneTemplate) => void;\n}\n\nfunction useAddTemplate(params: UseAddTemplateParams) {\n const [showGallery, setShowGallery] = useState(false);\n\n const browseTemplates = () => {\n setShowGallery(true);\n };\n\n const onTemplate = (template: CmsDynamicZoneTemplate) => {\n params.onTemplate(template);\n onGalleryClose();\n };\n\n const onGalleryClose = () => {\n setShowGallery(false);\n };\n\n return {\n showGallery,\n browseTemplates,\n onTemplate,\n onGalleryClose\n };\n}\n\ninterface AddTemplateProps {\n label?: string;\n onTemplate: UseAddTemplateParams[\"onTemplate\"];\n}\n\nexport const AddTemplateButton = (props: AddTemplateProps) => {\n const { showGallery, onTemplate, browseTemplates, onGalleryClose } = useAddTemplate({\n onTemplate: props.onTemplate\n });\n\n return (\n <AddButtonContainer>\n {showGallery ? (\n <TemplateGallery onTemplate={onTemplate} onClose={onGalleryClose} />\n ) : (\n <>\n <ButtonSecondary onClick={browseTemplates}>+ Add a template</ButtonSecondary>\n <Info>\n <InfoIcon />\n <Typography use={\"caption\"}>\n Click here to learn how templates and dynamic zones work\n </Typography>\n </Info>\n </>\n )}\n </AddButtonContainer>\n );\n};\n\nexport const AddTemplateIcon = (props: AddTemplateProps) => {\n const { showGallery, onTemplate, browseTemplates, onGalleryClose } = useAddTemplate({\n onTemplate: props.onTemplate\n });\n\n return (\n <AddIconContainer>\n {showGallery ? (\n <TemplateGallery onTemplate={onTemplate} onClose={onGalleryClose} />\n ) : (\n <IconButton onClick={browseTemplates} icon={<AddIcon />} />\n )}\n </AddIconContainer>\n );\n};\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAEA,IAAMA,gBAAgB,oBAAGC,eAAH;EAAA;EAAA;AAAA,wCAAtB;AAKA,IAAMC,kBAAkB,oBAAGD,eAAH;EAAA;EAAA;AAAA,qEAAxB;AAQA,IAAME,IAAI,oBAAGF,eAAH;EAAA;EAAA;AAAA,+GAAV;;AAeA,SAASG,cAAT,CAAwBC,MAAxB,EAAsD;EAClD,gBAAsC,IAAAC,eAAA,EAAS,KAAT,CAAtC;EAAA;EAAA,IAAOC,WAAP;EAAA,IAAoBC,cAApB;;EAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAM;IAC1BD,cAAc,CAAC,IAAD,CAAd;EACH,CAFD;;EAIA,IAAME,UAAU,GAAG,SAAbA,UAAa,CAACC,QAAD,EAAsC;IACrDN,MAAM,CAACK,UAAP,CAAkBC,QAAlB;IACAC,cAAc;EACjB,CAHD;;EAKA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,GAAM;IACzBJ,cAAc,CAAC,KAAD,CAAd;EACH,CAFD;;EAIA,OAAO;IACHD,WAAW,EAAXA,WADG;IAEHE,eAAe,EAAfA,eAFG;IAGHC,UAAU,EAAVA,UAHG;IAIHE,cAAc,EAAdA;EAJG,CAAP;AAMH;;AAOM,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAA6B;EAC1D,sBAAqEV,cAAc,CAAC;IAChFM,UAAU,EAAEI,KAAK,CAACJ;EAD8D,CAAD,CAAnF;EAAA,IAAQH,WAAR,mBAAQA,WAAR;EAAA,IAAqBG,UAArB,mBAAqBA,UAArB;EAAA,IAAiCD,eAAjC,mBAAiCA,eAAjC;EAAA,IAAkDG,cAAlD,mBAAkDA,cAAlD;;EAIA,oBACI,6BAAC,kBAAD,QACKL,WAAW,gBACR,6BAAC,gCAAD;IAAiB,UAAU,EAAEG,UAA7B;IAAyC,OAAO,EAAEE;EAAlD,EADQ,gBAGR,yEACI,6BAAC,uBAAD;IAAiB,OAAO,EAAEH;EAA1B,GAA2C,kBAA3C,CADJ,eAEI,6BAAC,IAAD,qBACI,6BAAC,oBAAD,OADJ,eAEI,6BAAC,sBAAD;IAAY,GAAG,EAAE;EAAjB,GAA4B,0DAA5B,CAFJ,CAFJ,CAJR,CADJ;AAiBH,CAtBM;;;;AAwBA,IAAMM,eAAe,GAAG,SAAlBA,eAAkB,CAACD,KAAD,EAA6B;EACxD,uBAAqEV,cAAc,CAAC;IAChFM,UAAU,EAAEI,KAAK,CAACJ;EAD8D,CAAD,CAAnF;EAAA,IAAQH,WAAR,oBAAQA,WAAR;EAAA,IAAqBG,UAArB,oBAAqBA,UAArB;EAAA,IAAiCD,eAAjC,oBAAiCA,eAAjC;EAAA,IAAkDG,cAAlD,oBAAkDA,cAAlD;;EAIA,oBACI,6BAAC,gBAAD,QACKL,WAAW,gBACR,6BAAC,gCAAD;IAAiB,UAAU,EAAEG,UAA7B;IAAyC,OAAO,EAAEE;EAAlD,EADQ,gBAGR,6BAAC,kBAAD;IAAY,OAAO,EAAEH,eAArB;IAAsC,IAAI,eAAE,6BAAC,kCAAD;EAA5C,EAJR,CADJ;AASH,CAdM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CardContainer","styled","CardIcon","CardBody","CardTitle","Typography","CardDescription","CardButton","ButtonSecondary","TemplateCard","template","onTemplate","icon","name","description"],"sources":["TemplateCard.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\n\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { ButtonSecondary } from \"@webiny/ui/Button\";\nimport { TemplateIcon } from \"~/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon\";\n\nconst CardContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 170px;\n height: 200px;\n margin: 5px;\n border: 1px solid var(--mdc-theme-background);\n`;\n\nconst CardIcon = styled.div`\n text-align: center;\n padding: 25px;\n font-size: 1.5rem;\n background-color: var(--mdc-theme-background);\n`;\n\nconst CardBody = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n padding: 10px;\n text-align: left;\n`;\n\nconst CardTitle = styled(Typography)`\n margin-bottom: 10px;\n`;\n\nconst CardDescription = styled(Typography)`\n text-overflow: ellipsis;\n margin-bottom: 10px;\n white-space: nowrap;\n overflow: hidden;\n`;\n\nconst CardButton = styled(ButtonSecondary)`\n font-size: 0.7rem;\n line-height: 100%;\n margin-top: auto;\n`;\n\ninterface TemplateCardProps {\n template: CmsDynamicZoneTemplate;\n onTemplate: (template: CmsDynamicZoneTemplate) => void;\n}\n\nexport const TemplateCard = ({ template, onTemplate }: TemplateCardProps) => {\n return (\n <CardContainer>\n <CardIcon>\n <TemplateIcon icon={template.icon} />\n </CardIcon>\n <CardBody>\n <CardTitle tag={\"p\"} use={\"subtitle2\"}>\n {template.name}\n </CardTitle>\n <CardDescription tag={\"p\"} use={\"body2\"}>\n {template.description}\n </CardDescription>\n <CardButton onClick={() => onTemplate(template)}>+ Insert Template</CardButton>\n </CardBody>\n </CardContainer>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AAEA,IAAMA,aAAa,oBAAGC,eAAH;EAAA;EAAA;AAAA,0HAAnB;AASA,IAAMC,QAAQ,oBAAGD,eAAH;EAAA;EAAA;AAAA,mGAAd;AAOA,IAAME,QAAQ,oBAAGF,eAAH;EAAA;EAAA;AAAA,6EAAd;AAQA,IAAMG,SAAS,oBAAGH,eAAH,EAAUI,sBAAV;EAAA;EAAA;AAAA,yBAAf;AAIA,IAAMC,eAAe,oBAAGL,eAAH,EAAUI,sBAAV;EAAA;EAAA;AAAA,mFAArB;AAOA,IAAME,UAAU,oBAAGN,eAAH,EAAUO,uBAAV;EAAA;EAAA;AAAA,wDAAhB;;AAWO,IAAMC,YAAY,GAAG,SAAfA,YAAe,OAAiD;EAAA,IAA9CC,QAA8C,QAA9CA,QAA8C;EAAA,IAApCC,UAAoC,QAApCA,UAAoC;EACzE,oBACI,6BAAC,aAAD,qBACI,6BAAC,QAAD,qBACI,6BAAC,0BAAD;IAAc,IAAI,EAAED,QAAQ,CAACE;EAA7B,EADJ,CADJ,eAII,6BAAC,QAAD,qBACI,6BAAC,SAAD;IAAW,GAAG,EAAE,GAAhB;IAAqB,GAAG,EAAE;EAA1B,GACKF,QAAQ,CAACG,IADd,CADJ,eAII,6BAAC,eAAD;IAAiB,GAAG,EAAE,GAAtB;IAA2B,GAAG,EAAE;EAAhC,GACKH,QAAQ,CAACI,WADd,CAJJ,eAOI,6BAAC,UAAD;IAAY,OAAO,EAAE;MAAA,OAAMH,UAAU,CAACD,QAAD,CAAhB;IAAA;EAArB,
|
|
1
|
+
{"version":3,"names":["CardContainer","styled","CardIcon","CardBody","CardTitle","Typography","CardDescription","CardButton","ButtonSecondary","TemplateCard","template","onTemplate","icon","name","description"],"sources":["TemplateCard.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\n\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { ButtonSecondary } from \"@webiny/ui/Button\";\nimport { TemplateIcon } from \"~/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon\";\n\nconst CardContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 170px;\n height: 200px;\n margin: 5px;\n border: 1px solid var(--mdc-theme-background);\n`;\n\nconst CardIcon = styled.div`\n text-align: center;\n padding: 25px;\n font-size: 1.5rem;\n background-color: var(--mdc-theme-background);\n`;\n\nconst CardBody = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n padding: 10px;\n text-align: left;\n`;\n\nconst CardTitle = styled(Typography)`\n margin-bottom: 10px;\n`;\n\nconst CardDescription = styled(Typography)`\n text-overflow: ellipsis;\n margin-bottom: 10px;\n white-space: nowrap;\n overflow: hidden;\n`;\n\nconst CardButton = styled(ButtonSecondary)`\n font-size: 0.7rem;\n line-height: 100%;\n margin-top: auto;\n`;\n\ninterface TemplateCardProps {\n template: CmsDynamicZoneTemplate;\n onTemplate: (template: CmsDynamicZoneTemplate) => void;\n}\n\nexport const TemplateCard = ({ template, onTemplate }: TemplateCardProps) => {\n return (\n <CardContainer>\n <CardIcon>\n <TemplateIcon icon={template.icon} />\n </CardIcon>\n <CardBody>\n <CardTitle tag={\"p\"} use={\"subtitle2\"}>\n {template.name}\n </CardTitle>\n <CardDescription tag={\"p\"} use={\"body2\"}>\n {template.description}\n </CardDescription>\n <CardButton onClick={() => onTemplate(template)}>+ Insert Template</CardButton>\n </CardBody>\n </CardContainer>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AAEA,IAAMA,aAAa,oBAAGC,eAAH;EAAA;EAAA;AAAA,0HAAnB;AASA,IAAMC,QAAQ,oBAAGD,eAAH;EAAA;EAAA;AAAA,mGAAd;AAOA,IAAME,QAAQ,oBAAGF,eAAH;EAAA;EAAA;AAAA,6EAAd;AAQA,IAAMG,SAAS,oBAAGH,eAAH,EAAUI,sBAAV;EAAA;EAAA;AAAA,yBAAf;AAIA,IAAMC,eAAe,oBAAGL,eAAH,EAAUI,sBAAV;EAAA;EAAA;AAAA,mFAArB;AAOA,IAAME,UAAU,oBAAGN,eAAH,EAAUO,uBAAV;EAAA;EAAA;AAAA,wDAAhB;;AAWO,IAAMC,YAAY,GAAG,SAAfA,YAAe,OAAiD;EAAA,IAA9CC,QAA8C,QAA9CA,QAA8C;EAAA,IAApCC,UAAoC,QAApCA,UAAoC;EACzE,oBACI,6BAAC,aAAD,qBACI,6BAAC,QAAD,qBACI,6BAAC,0BAAD;IAAc,IAAI,EAAED,QAAQ,CAACE;EAA7B,EADJ,CADJ,eAII,6BAAC,QAAD,qBACI,6BAAC,SAAD;IAAW,GAAG,EAAE,GAAhB;IAAqB,GAAG,EAAE;EAA1B,GACKF,QAAQ,CAACG,IADd,CADJ,eAII,6BAAC,eAAD;IAAiB,GAAG,EAAE,GAAtB;IAA2B,GAAG,EAAE;EAAhC,GACKH,QAAQ,CAACI,WADd,CAJJ,eAOI,6BAAC,UAAD;IAAY,OAAO,EAAE;MAAA,OAAMH,UAAU,CAACD,QAAD,CAAhB;IAAA;EAArB,GAAiD,mBAAjD,CAPJ,CAJJ,CADJ;AAgBH,CAjBM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ModelId","styled","color","iconButtonClassName","css","verticalAlign","renderItem","props","createEntryUrl","name","modelName","renderListItemOptions","item"],"sources":["renderItem.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { createEntryUrl } from \"./createEntryUrl\";\nimport { Link } from \"@webiny/react-router\";\nimport { OptionItem } from \"./types\";\nimport { EntryStatus } from \"./EntryStatus\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { css } from \"emotion\";\n\nconst ModelId = styled(\"span\")({\n color: \"var(--mdc-theme-text-secondary-on-background) !important\"\n});\n\nconst iconButtonClassName = css({\n verticalAlign: \"top\"\n});\n\nexport interface RenderItemProps {\n name: string;\n modelName: string;\n modelId: string;\n id: string;\n}\nexport const renderItem: React.FC<RenderItemProps> = props => {\n return (\n <Typography use={\"body2\"}>\n <Link to={createEntryUrl(props)}>{props.name}</Link>\n <br />\n <ModelId>Model: {props.modelName}</ModelId>\n </Typography>\n );\n};\n\nexport const renderListItemOptions = (item: OptionItem) => {\n return (\n <IconButton\n icon={<EntryStatus item={item} placement={\"top\"} />}\n className={iconButtonClassName}\n />\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAEA,IAAMA,OAAO,oBAAGC,eAAH,EAAU,MAAV;EAAA;EAAA;AAAA,GAAkB;EAC3BC,KAAK,EAAE;AADoB,CAAlB,CAAb;AAIA,IAAMC,mBAAmB,gBAAG,IAAAC,YAAA,EAAI;EAC5BC,aAAa,EAAE;AADa,CAAJ,+BAA5B;;AAUO,IAAMC,UAAqC,GAAG,SAAxCA,UAAwC,CAAAC,KAAK,EAAI;EAC1D,oBACI,6BAAC,sBAAD;IAAY,GAAG,EAAE;EAAjB,gBACI,6BAAC,iBAAD;IAAM,EAAE,EAAE,IAAAC,8BAAA,EAAeD,KAAf;EAAV,GAAkCA,KAAK,CAACE,IAAxC,CADJ,eAEI,wCAFJ,eAGI,6BAAC,OAAD,
|
|
1
|
+
{"version":3,"names":["ModelId","styled","color","iconButtonClassName","css","verticalAlign","renderItem","props","createEntryUrl","name","modelName","renderListItemOptions","item"],"sources":["renderItem.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { createEntryUrl } from \"./createEntryUrl\";\nimport { Link } from \"@webiny/react-router\";\nimport { OptionItem } from \"./types\";\nimport { EntryStatus } from \"./EntryStatus\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { css } from \"emotion\";\n\nconst ModelId = styled(\"span\")({\n color: \"var(--mdc-theme-text-secondary-on-background) !important\"\n});\n\nconst iconButtonClassName = css({\n verticalAlign: \"top\"\n});\n\nexport interface RenderItemProps {\n name: string;\n modelName: string;\n modelId: string;\n id: string;\n}\nexport const renderItem: React.FC<RenderItemProps> = props => {\n return (\n <Typography use={\"body2\"}>\n <Link to={createEntryUrl(props)}>{props.name}</Link>\n <br />\n <ModelId>Model: {props.modelName}</ModelId>\n </Typography>\n );\n};\n\nexport const renderListItemOptions = (item: OptionItem) => {\n return (\n <IconButton\n icon={<EntryStatus item={item} placement={\"top\"} />}\n className={iconButtonClassName}\n />\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAEA,IAAMA,OAAO,oBAAGC,eAAH,EAAU,MAAV;EAAA;EAAA;AAAA,GAAkB;EAC3BC,KAAK,EAAE;AADoB,CAAlB,CAAb;AAIA,IAAMC,mBAAmB,gBAAG,IAAAC,YAAA,EAAI;EAC5BC,aAAa,EAAE;AADa,CAAJ,+BAA5B;;AAUO,IAAMC,UAAqC,GAAG,SAAxCA,UAAwC,CAAAC,KAAK,EAAI;EAC1D,oBACI,6BAAC,sBAAD;IAAY,GAAG,EAAE;EAAjB,gBACI,6BAAC,iBAAD;IAAM,EAAE,EAAE,IAAAC,8BAAA,EAAeD,KAAf;EAAV,GAAkCA,KAAK,CAACE,IAAxC,CADJ,eAEI,wCAFJ,eAGI,6BAAC,OAAD,QAAS,SAAT,EAAiBF,KAAK,CAACG,SAAvB,CAHJ,CADJ;AAOH,CARM;;;;AAUA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,IAAD,EAAsB;EACvD,oBACI,6BAAC,kBAAD;IACI,IAAI,eAAE,6BAAC,wBAAD;MAAa,IAAI,EAAEA,IAAnB;MAAyB,SAAS,EAAE;IAApC,EADV;IAEI,SAAS,EAAET;EAFf,EADJ;AAMH,CAPM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DateGteSettings","useModelField","field","type","settings","undefined","availableValidators","getAvailableValidators","join","bind","value","onChange","validation","create","createInputField","name","validator","label","description","defaultMessage","renderSettings","validate","gteValue"],"sources":["dateGte.tsx"],"sourcesContent":["import React from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\nimport { createInputField } from \"./date/createDateInputField\";\nimport { getAvailableValidators } from \"./date/availableValidators\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { useModelField } from \"~/admin/hooks\";\nimport { Bind } from \"@webiny/form\";\n\nfunction DateGteSettings() {\n const { field } = useModelField();\n const type = field.settings ? field.settings.type : undefined;\n const availableValidators = getAvailableValidators(type).join(\",\");\n return (\n <Grid>\n <Cell span={12}>\n <Bind name={\"settings.type\"}>\n {bind => {\n if (bind.value !== type) {\n bind.onChange(type);\n }\n return <></>;\n }}\n </Bind>\n <Bind name={\"settings.value\"} validators={validation.create(availableValidators)}>\n {bind => {\n return (\n <>\n {createInputField(field, bind)}\n <FormElementMessage>\n This is the earliest date/time that will be allowed.\n </FormElementMessage>\n </>\n );\n }}\n </Bind>\n </Cell>\n </Grid>\n );\n}\n\nexport default (): CmsModelFieldValidatorPlugin => ({\n type: \"cms-model-field-validator\",\n name: \"cms-editor-field-validator-date-gte\",\n validator: {\n name: \"dateGte\",\n label: \"Later or equal\",\n description: \"Entered date/time must be equal or later compared to the provided date.\",\n defaultMessage: `Date/time is earlier than the provided one.`,\n renderSettings() {\n return <DateGteSettings />;\n },\n validate: async (value, { validator }) => {\n const { value: gteValue, type } = validator.settings;\n if (typeof gteValue === \"undefined\") {\n return true;\n } else if (type === \"time\") {\n return validation.validate(value, `timeGte:${gteValue}`);\n }\n return validation.validate(value, `dateGte:${gteValue}`);\n }\n }\n});\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA,SAASA,eAAT,GAA2B;EACvB,qBAAkB,IAAAC,oBAAA,GAAlB;EAAA,IAAQC,KAAR,kBAAQA,KAAR;;EACA,IAAMC,IAAI,GAAGD,KAAK,CAACE,QAAN,GAAiBF,KAAK,CAACE,QAAN,CAAeD,IAAhC,GAAuCE,SAApD;EACA,IAAMC,mBAAmB,GAAG,IAAAC,2CAAA,EAAuBJ,IAAvB,EAA6BK,IAA7B,CAAkC,GAAlC,CAA5B;EACA,oBACI,6BAAC,UAAD,qBACI,6BAAC,UAAD;IAAM,IAAI,EAAE;EAAZ,gBACI,6BAAC,UAAD;IAAM,IAAI,EAAE;EAAZ,GACK,UAAAC,IAAI,EAAI;IACL,IAAIA,IAAI,CAACC,KAAL,KAAeP,IAAnB,EAAyB;MACrBM,IAAI,CAACE,QAAL,CAAcR,IAAd;IACH;;IACD,oBAAO,2DAAP;EACH,CANL,CADJ,eASI,6BAAC,UAAD;IAAM,IAAI,EAAE,gBAAZ;IAA8B,UAAU,EAAES,sBAAA,CAAWC,MAAX,CAAkBP,mBAAlB;EAA1C,GACK,UAAAG,IAAI,EAAI;IACL,oBACI,4DACK,IAAAK,sCAAA,EAAiBZ,KAAjB,EAAwBO,IAAxB,CADL,eAEI,6BAAC,sCAAD
|
|
1
|
+
{"version":3,"names":["DateGteSettings","useModelField","field","type","settings","undefined","availableValidators","getAvailableValidators","join","bind","value","onChange","validation","create","createInputField","name","validator","label","description","defaultMessage","renderSettings","validate","gteValue"],"sources":["dateGte.tsx"],"sourcesContent":["import React from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\nimport { createInputField } from \"./date/createDateInputField\";\nimport { getAvailableValidators } from \"./date/availableValidators\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { useModelField } from \"~/admin/hooks\";\nimport { Bind } from \"@webiny/form\";\n\nfunction DateGteSettings() {\n const { field } = useModelField();\n const type = field.settings ? field.settings.type : undefined;\n const availableValidators = getAvailableValidators(type).join(\",\");\n return (\n <Grid>\n <Cell span={12}>\n <Bind name={\"settings.type\"}>\n {bind => {\n if (bind.value !== type) {\n bind.onChange(type);\n }\n return <></>;\n }}\n </Bind>\n <Bind name={\"settings.value\"} validators={validation.create(availableValidators)}>\n {bind => {\n return (\n <>\n {createInputField(field, bind)}\n <FormElementMessage>\n This is the earliest date/time that will be allowed.\n </FormElementMessage>\n </>\n );\n }}\n </Bind>\n </Cell>\n </Grid>\n );\n}\n\nexport default (): CmsModelFieldValidatorPlugin => ({\n type: \"cms-model-field-validator\",\n name: \"cms-editor-field-validator-date-gte\",\n validator: {\n name: \"dateGte\",\n label: \"Later or equal\",\n description: \"Entered date/time must be equal or later compared to the provided date.\",\n defaultMessage: `Date/time is earlier than the provided one.`,\n renderSettings() {\n return <DateGteSettings />;\n },\n validate: async (value, { validator }) => {\n const { value: gteValue, type } = validator.settings;\n if (typeof gteValue === \"undefined\") {\n return true;\n } else if (type === \"time\") {\n return validation.validate(value, `timeGte:${gteValue}`);\n }\n return validation.validate(value, `dateGte:${gteValue}`);\n }\n }\n});\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA,SAASA,eAAT,GAA2B;EACvB,qBAAkB,IAAAC,oBAAA,GAAlB;EAAA,IAAQC,KAAR,kBAAQA,KAAR;;EACA,IAAMC,IAAI,GAAGD,KAAK,CAACE,QAAN,GAAiBF,KAAK,CAACE,QAAN,CAAeD,IAAhC,GAAuCE,SAApD;EACA,IAAMC,mBAAmB,GAAG,IAAAC,2CAAA,EAAuBJ,IAAvB,EAA6BK,IAA7B,CAAkC,GAAlC,CAA5B;EACA,oBACI,6BAAC,UAAD,qBACI,6BAAC,UAAD;IAAM,IAAI,EAAE;EAAZ,gBACI,6BAAC,UAAD;IAAM,IAAI,EAAE;EAAZ,GACK,UAAAC,IAAI,EAAI;IACL,IAAIA,IAAI,CAACC,KAAL,KAAeP,IAAnB,EAAyB;MACrBM,IAAI,CAACE,QAAL,CAAcR,IAAd;IACH;;IACD,oBAAO,2DAAP;EACH,CANL,CADJ,eASI,6BAAC,UAAD;IAAM,IAAI,EAAE,gBAAZ;IAA8B,UAAU,EAAES,sBAAA,CAAWC,MAAX,CAAkBP,mBAAlB;EAA1C,GACK,UAAAG,IAAI,EAAI;IACL,oBACI,4DACK,IAAAK,sCAAA,EAAiBZ,KAAjB,EAAwBO,IAAxB,CADL,eAEI,6BAAC,sCAAD,QAAoB,sDAApB,CAFJ,CADJ;EAQH,CAVL,CATJ,CADJ,CADJ;AA0BH;;eAEc;EAAA,OAAqC;IAChDN,IAAI,EAAE,2BAD0C;IAEhDY,IAAI,EAAE,qCAF0C;IAGhDC,SAAS,EAAE;MACPD,IAAI,EAAE,SADC;MAEPE,KAAK,EAAE,gBAFA;MAGPC,WAAW,EAAE,yEAHN;MAIPC,cAAc,+CAJP;MAKPC,cALO,4BAKU;QACb,oBAAO,6BAAC,eAAD,OAAP;MACH,CAPM;MAQPC,QAAQ;QAAA,uGAAE,iBAAOX,KAAP;UAAA;;UAAA;YAAA;cAAA;gBAAA;kBAAgBM,SAAhB,QAAgBA,SAAhB;kBAAA,sBAC4BA,SAAS,CAACZ,QADtC,EACSkB,QADT,uBACEZ,KADF,EACmBP,IADnB,uBACmBA,IADnB;;kBAAA,MAEF,OAAOmB,QAAP,KAAoB,WAFlB;oBAAA;oBAAA;kBAAA;;kBAAA,iCAGK,IAHL;;gBAAA;kBAAA,MAIKnB,IAAI,KAAK,MAJd;oBAAA;oBAAA;kBAAA;;kBAAA,iCAKKS,sBAAA,CAAWS,QAAX,CAAoBX,KAApB,oBAAsCY,QAAtC,EALL;;gBAAA;kBAAA,iCAOCV,sBAAA,CAAWS,QAAX,CAAoBX,KAApB,oBAAsCY,QAAtC,EAPD;;gBAAA;gBAAA;kBAAA;cAAA;YAAA;UAAA;QAAA,CAAF;;QAAA;UAAA;QAAA;;QAAA;MAAA;IARD;EAHqC,CAArC;AAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DateLteSettings","useModelField","field","type","settings","undefined","availableValidators","getAvailableValidators","join","bind","value","onChange","validation","create","createInputField","name","validator","label","description","defaultMessage","renderSettings","validate","lteValue"],"sources":["dateLte.tsx"],"sourcesContent":["import React from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\nimport { createInputField } from \"./date/createDateInputField\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { getAvailableValidators } from \"./date/availableValidators\";\nimport { useModelField } from \"~/admin/hooks\";\nimport { Bind } from \"@webiny/form\";\n\nfunction DateLteSettings() {\n const { field } = useModelField();\n const type = field.settings ? field.settings.type : undefined;\n const availableValidators = getAvailableValidators(type).join(\",\");\n return (\n <Grid>\n <Cell span={12}>\n <Bind name={\"settings.type\"}>\n {bind => {\n if (bind.value !== type) {\n bind.onChange(type);\n }\n return <></>;\n }}\n </Bind>\n <Bind name={\"settings.value\"} validators={validation.create(availableValidators)}>\n {bind => {\n return (\n <>\n {createInputField(field, bind)}\n <FormElementMessage>\n This is the latest date/time that will be allowed.\n </FormElementMessage>\n </>\n );\n }}\n </Bind>\n </Cell>\n </Grid>\n );\n}\n\nexport default (): CmsModelFieldValidatorPlugin => ({\n type: \"cms-model-field-validator\",\n name: \"cms-editor-field-validator-date-lte\",\n validator: {\n name: \"dateLte\",\n label: \"Earlier or equal\",\n description: \"Entered date/time must be equal or earlier compared to the provided date.\",\n defaultMessage: `Date/time is later than the provided one.`,\n renderSettings() {\n return <DateLteSettings />;\n },\n validate: async (value, { validator }) => {\n const { value: lteValue, type } = validator.settings;\n if (typeof lteValue === \"undefined\") {\n return true;\n } else if (type === \"time\") {\n return validation.validate(value, `timeLte:${lteValue}`);\n }\n return validation.validate(value, `dateLte:${lteValue}`);\n }\n }\n});\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA,SAASA,eAAT,GAA2B;EACvB,qBAAkB,IAAAC,oBAAA,GAAlB;EAAA,IAAQC,KAAR,kBAAQA,KAAR;;EACA,IAAMC,IAAI,GAAGD,KAAK,CAACE,QAAN,GAAiBF,KAAK,CAACE,QAAN,CAAeD,IAAhC,GAAuCE,SAApD;EACA,IAAMC,mBAAmB,GAAG,IAAAC,2CAAA,EAAuBJ,IAAvB,EAA6BK,IAA7B,CAAkC,GAAlC,CAA5B;EACA,oBACI,6BAAC,UAAD,qBACI,6BAAC,UAAD;IAAM,IAAI,EAAE;EAAZ,gBACI,6BAAC,UAAD;IAAM,IAAI,EAAE;EAAZ,GACK,UAAAC,IAAI,EAAI;IACL,IAAIA,IAAI,CAACC,KAAL,KAAeP,IAAnB,EAAyB;MACrBM,IAAI,CAACE,QAAL,CAAcR,IAAd;IACH;;IACD,oBAAO,2DAAP;EACH,CANL,CADJ,eASI,6BAAC,UAAD;IAAM,IAAI,EAAE,gBAAZ;IAA8B,UAAU,EAAES,sBAAA,CAAWC,MAAX,CAAkBP,mBAAlB;EAA1C,GACK,UAAAG,IAAI,EAAI;IACL,oBACI,4DACK,IAAAK,sCAAA,EAAiBZ,KAAjB,EAAwBO,IAAxB,CADL,eAEI,6BAAC,sCAAD,
|
|
1
|
+
{"version":3,"names":["DateLteSettings","useModelField","field","type","settings","undefined","availableValidators","getAvailableValidators","join","bind","value","onChange","validation","create","createInputField","name","validator","label","description","defaultMessage","renderSettings","validate","lteValue"],"sources":["dateLte.tsx"],"sourcesContent":["import React from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\nimport { createInputField } from \"./date/createDateInputField\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { getAvailableValidators } from \"./date/availableValidators\";\nimport { useModelField } from \"~/admin/hooks\";\nimport { Bind } from \"@webiny/form\";\n\nfunction DateLteSettings() {\n const { field } = useModelField();\n const type = field.settings ? field.settings.type : undefined;\n const availableValidators = getAvailableValidators(type).join(\",\");\n return (\n <Grid>\n <Cell span={12}>\n <Bind name={\"settings.type\"}>\n {bind => {\n if (bind.value !== type) {\n bind.onChange(type);\n }\n return <></>;\n }}\n </Bind>\n <Bind name={\"settings.value\"} validators={validation.create(availableValidators)}>\n {bind => {\n return (\n <>\n {createInputField(field, bind)}\n <FormElementMessage>\n This is the latest date/time that will be allowed.\n </FormElementMessage>\n </>\n );\n }}\n </Bind>\n </Cell>\n </Grid>\n );\n}\n\nexport default (): CmsModelFieldValidatorPlugin => ({\n type: \"cms-model-field-validator\",\n name: \"cms-editor-field-validator-date-lte\",\n validator: {\n name: \"dateLte\",\n label: \"Earlier or equal\",\n description: \"Entered date/time must be equal or earlier compared to the provided date.\",\n defaultMessage: `Date/time is later than the provided one.`,\n renderSettings() {\n return <DateLteSettings />;\n },\n validate: async (value, { validator }) => {\n const { value: lteValue, type } = validator.settings;\n if (typeof lteValue === \"undefined\") {\n return true;\n } else if (type === \"time\") {\n return validation.validate(value, `timeLte:${lteValue}`);\n }\n return validation.validate(value, `dateLte:${lteValue}`);\n }\n }\n});\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA,SAASA,eAAT,GAA2B;EACvB,qBAAkB,IAAAC,oBAAA,GAAlB;EAAA,IAAQC,KAAR,kBAAQA,KAAR;;EACA,IAAMC,IAAI,GAAGD,KAAK,CAACE,QAAN,GAAiBF,KAAK,CAACE,QAAN,CAAeD,IAAhC,GAAuCE,SAApD;EACA,IAAMC,mBAAmB,GAAG,IAAAC,2CAAA,EAAuBJ,IAAvB,EAA6BK,IAA7B,CAAkC,GAAlC,CAA5B;EACA,oBACI,6BAAC,UAAD,qBACI,6BAAC,UAAD;IAAM,IAAI,EAAE;EAAZ,gBACI,6BAAC,UAAD;IAAM,IAAI,EAAE;EAAZ,GACK,UAAAC,IAAI,EAAI;IACL,IAAIA,IAAI,CAACC,KAAL,KAAeP,IAAnB,EAAyB;MACrBM,IAAI,CAACE,QAAL,CAAcR,IAAd;IACH;;IACD,oBAAO,2DAAP;EACH,CANL,CADJ,eASI,6BAAC,UAAD;IAAM,IAAI,EAAE,gBAAZ;IAA8B,UAAU,EAAES,sBAAA,CAAWC,MAAX,CAAkBP,mBAAlB;EAA1C,GACK,UAAAG,IAAI,EAAI;IACL,oBACI,4DACK,IAAAK,sCAAA,EAAiBZ,KAAjB,EAAwBO,IAAxB,CADL,eAEI,6BAAC,sCAAD,QAAoB,oDAApB,CAFJ,CADJ;EAQH,CAVL,CATJ,CADJ,CADJ;AA0BH;;eAEc;EAAA,OAAqC;IAChDN,IAAI,EAAE,2BAD0C;IAEhDY,IAAI,EAAE,qCAF0C;IAGhDC,SAAS,EAAE;MACPD,IAAI,EAAE,SADC;MAEPE,KAAK,EAAE,kBAFA;MAGPC,WAAW,EAAE,2EAHN;MAIPC,cAAc,6CAJP;MAKPC,cALO,4BAKU;QACb,oBAAO,6BAAC,eAAD,OAAP;MACH,CAPM;MAQPC,QAAQ;QAAA,uGAAE,iBAAOX,KAAP;UAAA;;UAAA;YAAA;cAAA;gBAAA;kBAAgBM,SAAhB,QAAgBA,SAAhB;kBAAA,sBAC4BA,SAAS,CAACZ,QADtC,EACSkB,QADT,uBACEZ,KADF,EACmBP,IADnB,uBACmBA,IADnB;;kBAAA,MAEF,OAAOmB,QAAP,KAAoB,WAFlB;oBAAA;oBAAA;kBAAA;;kBAAA,iCAGK,IAHL;;gBAAA;kBAAA,MAIKnB,IAAI,KAAK,MAJd;oBAAA;oBAAA;kBAAA;;kBAAA,iCAKKS,sBAAA,CAAWS,QAAX,CAAoBX,KAApB,oBAAsCY,QAAtC,EALL;;gBAAA;kBAAA,iCAOCV,sBAAA,CAAWS,QAAX,CAAoBX,KAApB,oBAAsCY,QAAtC,EAPD;;gBAAA;gBAAA;kBAAA;cAAA;YAAA;UAAA;QAAA,CAAF;;QAAA;UAAA;QAAA;;QAAA;MAAA;IARD;EAHqC,CAArC;AAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PatternSettings","useForm","validator","data","setValue","inputsDisabled","settings","preset","presetPlugins","plugins","byType","setMessage","message","selectOptions","map","item","pattern","name","label","validation","create","value","selectedPatternPlugin","find","plugin","type","description","defaultMessage","defaultSettings","renderSettings","validate","patternPlugin","RegExp","regex","flags","test"],"sources":["pattern.tsx"],"sourcesContent":["import React from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { plugins } from \"@webiny/plugins\";\nimport { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin, CmsModelFieldRegexValidatorExpressionPlugin } from \"~/types\";\nimport { useForm, Bind } from \"@webiny/form\";\n\nconst PatternSettings = () => {\n const { data: validator, setValue } = useForm();\n const inputsDisabled = validator.settings.preset !== \"custom\";\n const presetPlugins = plugins.byType<CmsModelFieldRegexValidatorExpressionPlugin>(\n \"cms-model-field-regex-validator-expression\"\n );\n\n const setMessage = (message: string) => {\n setValue(\"message\", message);\n };\n\n const selectOptions: any = presetPlugins.map(item => (\n <option key={item.pattern.name} value={item.pattern.name}>\n {item.pattern.label}\n </option>\n ));\n\n return (\n <Grid>\n <Cell span={3}>\n <Bind\n name={\"settings.preset\"}\n validators={validation.create(\"required\")}\n afterChange={value => {\n if (value === \"custom\") {\n setMessage(\"Invalid value.\");\n return;\n }\n\n setValue(\"settings.regex\", null);\n setValue(\"settings.flags\", null);\n\n const selectedPatternPlugin = presetPlugins.find(\n item => item.pattern.name === value\n );\n if (!selectedPatternPlugin) {\n setMessage(`Missing pattern plugin \"${value}\".`);\n return;\n }\n\n setMessage(selectedPatternPlugin.pattern.message);\n }}\n >\n <Select label={\"Preset\"}>\n <option value={\"custom\"}>Custom</option>\n {selectOptions}\n </Select>\n </Bind>\n </Cell>\n <Cell span={7}>\n <Bind name={\"settings.regex\"} validators={validation.create(\"required\")}>\n <Input\n disabled={inputsDisabled}\n label={\"Regex\"}\n description={\"Regex to test the value\"}\n />\n </Bind>\n </Cell>\n <Cell span={2}>\n <Bind name={\"settings.flags\"} validators={validation.create(\"required\")}>\n <Input disabled={inputsDisabled} label={\"Flags\"} description={\"Regex flags\"} />\n </Bind>\n </Cell>\n </Grid>\n );\n};\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-editor-field-validator-pattern\",\n validator: {\n name: \"pattern\",\n label: \"Pattern\",\n description: \"Entered value must match a specific pattern.\",\n defaultMessage: \"Invalid value.\",\n defaultSettings: {\n preset: \"custom\"\n },\n renderSettings() {\n return <PatternSettings />;\n },\n validate: async (value, { validator }) => {\n if (!value) {\n return true;\n }\n\n const { settings } = validator;\n\n let pattern;\n if (settings.preset === \"custom\") {\n pattern = settings;\n } else {\n const patternPlugin = plugins\n .byType<CmsModelFieldRegexValidatorExpressionPlugin>(\n \"cms-model-field-regex-validator-expression\"\n )\n .find(item => item.pattern.name === settings.preset);\n\n if (patternPlugin) {\n pattern = patternPlugin.pattern;\n }\n }\n\n if (!pattern) {\n return true;\n }\n\n return new RegExp(pattern.regex, pattern.flags).test(value);\n }\n }\n};\nexport default plugin;\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,GAAM;EAC1B,eAAsC,IAAAC,aAAA,GAAtC;EAAA,IAAcC,SAAd,YAAQC,IAAR;EAAA,IAAyBC,QAAzB,YAAyBA,QAAzB;;EACA,IAAMC,cAAc,GAAGH,SAAS,CAACI,QAAV,CAAmBC,MAAnB,KAA8B,QAArD;;EACA,IAAMC,aAAa,GAAGC,gBAAA,CAAQC,MAAR,CAClB,4CADkB,CAAtB;;EAIA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,OAAD,EAAqB;IACpCR,QAAQ,CAAC,SAAD,EAAYQ,OAAZ,CAAR;EACH,CAFD;;EAIA,IAAMC,aAAkB,GAAGL,aAAa,CAACM,GAAd,CAAkB,UAAAC,IAAI;IAAA,oBAC7C;MAAQ,GAAG,EAAEA,IAAI,CAACC,OAAL,CAAaC,IAA1B;MAAgC,KAAK,EAAEF,IAAI,CAACC,OAAL,CAAaC;IAApD,GACKF,IAAI,CAACC,OAAL,CAAaE,KADlB,CAD6C;EAAA,CAAtB,CAA3B;EAMA,oBACI,6BAAC,UAAD,qBACI,6BAAC,UAAD;IAAM,IAAI,EAAE;EAAZ,gBACI,6BAAC,UAAD;IACI,IAAI,EAAE,iBADV;IAEI,UAAU,EAAEC,sBAAA,CAAWC,MAAX,CAAkB,UAAlB,CAFhB;IAGI,WAAW,EAAE,qBAAAC,KAAK,EAAI;MAClB,IAAIA,KAAK,KAAK,QAAd,EAAwB;QACpBV,UAAU,CAAC,gBAAD,CAAV;QACA;MACH;;MAEDP,QAAQ,CAAC,gBAAD,EAAmB,IAAnB,CAAR;MACAA,QAAQ,CAAC,gBAAD,EAAmB,IAAnB,CAAR;MAEA,IAAMkB,qBAAqB,GAAGd,aAAa,CAACe,IAAd,CAC1B,UAAAR,IAAI;QAAA,OAAIA,IAAI,CAACC,OAAL,CAAaC,IAAb,KAAsBI,KAA1B;MAAA,CADsB,CAA9B;;MAGA,IAAI,CAACC,qBAAL,EAA4B;QACxBX,UAAU,oCAA4BU,KAA5B,SAAV;QACA;MACH;;MAEDV,UAAU,CAACW,qBAAqB,CAACN,OAAtB,CAA8BJ,OAA/B,CAAV;IACH;EArBL,gBAuBI,6BAAC,cAAD;IAAQ,KAAK,EAAE;EAAf,gBACI;IAAQ,KAAK,EAAE;EAAf,
|
|
1
|
+
{"version":3,"names":["PatternSettings","useForm","validator","data","setValue","inputsDisabled","settings","preset","presetPlugins","plugins","byType","setMessage","message","selectOptions","map","item","pattern","name","label","validation","create","value","selectedPatternPlugin","find","plugin","type","description","defaultMessage","defaultSettings","renderSettings","validate","patternPlugin","RegExp","regex","flags","test"],"sources":["pattern.tsx"],"sourcesContent":["import React from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { plugins } from \"@webiny/plugins\";\nimport { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin, CmsModelFieldRegexValidatorExpressionPlugin } from \"~/types\";\nimport { useForm, Bind } from \"@webiny/form\";\n\nconst PatternSettings = () => {\n const { data: validator, setValue } = useForm();\n const inputsDisabled = validator.settings.preset !== \"custom\";\n const presetPlugins = plugins.byType<CmsModelFieldRegexValidatorExpressionPlugin>(\n \"cms-model-field-regex-validator-expression\"\n );\n\n const setMessage = (message: string) => {\n setValue(\"message\", message);\n };\n\n const selectOptions: any = presetPlugins.map(item => (\n <option key={item.pattern.name} value={item.pattern.name}>\n {item.pattern.label}\n </option>\n ));\n\n return (\n <Grid>\n <Cell span={3}>\n <Bind\n name={\"settings.preset\"}\n validators={validation.create(\"required\")}\n afterChange={value => {\n if (value === \"custom\") {\n setMessage(\"Invalid value.\");\n return;\n }\n\n setValue(\"settings.regex\", null);\n setValue(\"settings.flags\", null);\n\n const selectedPatternPlugin = presetPlugins.find(\n item => item.pattern.name === value\n );\n if (!selectedPatternPlugin) {\n setMessage(`Missing pattern plugin \"${value}\".`);\n return;\n }\n\n setMessage(selectedPatternPlugin.pattern.message);\n }}\n >\n <Select label={\"Preset\"}>\n <option value={\"custom\"}>Custom</option>\n {selectOptions}\n </Select>\n </Bind>\n </Cell>\n <Cell span={7}>\n <Bind name={\"settings.regex\"} validators={validation.create(\"required\")}>\n <Input\n disabled={inputsDisabled}\n label={\"Regex\"}\n description={\"Regex to test the value\"}\n />\n </Bind>\n </Cell>\n <Cell span={2}>\n <Bind name={\"settings.flags\"} validators={validation.create(\"required\")}>\n <Input disabled={inputsDisabled} label={\"Flags\"} description={\"Regex flags\"} />\n </Bind>\n </Cell>\n </Grid>\n );\n};\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-editor-field-validator-pattern\",\n validator: {\n name: \"pattern\",\n label: \"Pattern\",\n description: \"Entered value must match a specific pattern.\",\n defaultMessage: \"Invalid value.\",\n defaultSettings: {\n preset: \"custom\"\n },\n renderSettings() {\n return <PatternSettings />;\n },\n validate: async (value, { validator }) => {\n if (!value) {\n return true;\n }\n\n const { settings } = validator;\n\n let pattern;\n if (settings.preset === \"custom\") {\n pattern = settings;\n } else {\n const patternPlugin = plugins\n .byType<CmsModelFieldRegexValidatorExpressionPlugin>(\n \"cms-model-field-regex-validator-expression\"\n )\n .find(item => item.pattern.name === settings.preset);\n\n if (patternPlugin) {\n pattern = patternPlugin.pattern;\n }\n }\n\n if (!pattern) {\n return true;\n }\n\n return new RegExp(pattern.regex, pattern.flags).test(value);\n }\n }\n};\nexport default plugin;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","ns","Fieldset","styled","position","width","marginBottom","display","right","top","controlButtons","css","alignItems","justifyContent","marginRight","emptyStyles","textAlign","Header","onSelectedChange","params","bind","field","targetIndex","index","setToValue","value","form","setValue","map","defaultValue","multipleValues","selected","PredefinedValuesDynamicFieldset","getBind","renderValueInput","Bind","useModelField","actions","header","row","empty","add","remove"],"sources":["PredefinedValuesDynamicFieldset.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { Grid, Cell, GridInner } from \"@webiny/ui/Grid\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { DynamicFieldset } from \"@webiny/ui/DynamicFieldset\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ButtonPrimary, ButtonSecondary } from \"@webiny/ui/Button\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Switch } from \"@webiny/ui/Switch\";\nimport { BindComponent, CmsModelField } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { useModelField } from \"~/admin/hooks\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/dynamic-fieldset-predefined-values\");\n\nconst Fieldset = styled(\"div\")({\n position: \"relative\",\n width: \"100%\",\n marginBottom: 15,\n \".webiny-ui-button\": {\n position: \"absolute\",\n display: \"block\",\n right: 10,\n top: 13\n }\n});\n\nconst controlButtons = css({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \">button\": {\n marginRight: 15\n }\n});\n\nconst emptyStyles = css({\n textAlign: \"center\"\n});\n\nconst Header = styled(\"div\")({\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: 15\n});\n\ninterface PredefinedValue {\n selected?: boolean;\n}\n\ninterface OnSelectedParams {\n bind: BindComponentRenderProp;\n field: CmsModelField;\n index: number;\n value: boolean;\n}\nconst onSelectedChange = (params: OnSelectedParams) => {\n const { bind, field, index: targetIndex, value: setToValue } = params;\n bind.form.setValue(\n \"predefinedValues.values\",\n bind.value.map((value: PredefinedValue, index: number) => {\n const defaultValue = field.multipleValues ? value.selected : false;\n return {\n ...value,\n selected: index === targetIndex ? setToValue : defaultValue\n };\n })\n );\n};\n\nexport interface Props {\n getBind: (value?: any) => BindComponent;\n renderValueInput?: (Bind: BindComponent) => React.ReactNode;\n}\nconst PredefinedValuesDynamicFieldset: React.FC<Props> = ({ getBind, renderValueInput = null }) => {\n const Bind = getBind();\n const { field } = useModelField();\n\n return (\n <Grid>\n <Cell span={12}>\n <Bind>\n {bind => {\n return (\n <DynamicFieldset {...bind}>\n {({ actions, header, row, empty }) => {\n return (\n <React.Fragment>\n {row(({ index }) => {\n const Bind = getBind(index);\n\n return (\n <React.Fragment>\n <GridInner>\n <Cell span={4}>\n <Fieldset>\n <Bind name={\"label\"}>\n <Input label={t`Label`} />\n </Bind>\n </Fieldset>\n </Cell>\n <Cell span={4}>\n <Fieldset>\n {renderValueInput ? (\n renderValueInput(Bind)\n ) : (\n <Bind name={\"value\"}>\n <Input\n label={t`Value`}\n />\n </Bind>\n )}\n </Fieldset>\n </Cell>\n <Cell span={2}>\n <Fieldset>\n <Bind name={\"selected\"}>\n <Switch\n label={\"Selected\"}\n description={\n \"Mark as selected value\"\n }\n onChange={value => {\n onSelectedChange({\n bind,\n field,\n index,\n value\n });\n }}\n />\n </Bind>\n </Fieldset>\n </Cell>\n\n <Cell\n span={2}\n className={controlButtons}\n >\n <ButtonPrimary\n small\n onClick={actions.add(index)}\n >\n +\n </ButtonPrimary>\n <ButtonSecondary\n small\n onClick={actions.remove(index)}\n >\n -\n </ButtonSecondary>\n </Cell>\n </GridInner>\n </React.Fragment>\n );\n })}\n {empty(() => {\n return (\n <React.Fragment>\n <Header>\n <Typography\n use={\"overline\"}\n >{t`Predefined values`}</Typography>\n </Header>\n\n <GridInner className={emptyStyles}>\n <Cell span={12}>\n <Typography use={\"subtitle1\"}>\n {t`There are no predefined values available.`}\n </Typography>\n </Cell>\n <Cell span={12}>\n <ButtonPrimary\n onClick={actions.add()}\n >{t`Add a predefined value`}</ButtonPrimary>\n </Cell>\n </GridInner>\n </React.Fragment>\n );\n })}\n {header(() => (\n <Header>\n <Typography\n use={\"overline\"}\n >{t`Predefined values`}</Typography>\n </Header>\n ))}\n </React.Fragment>\n );\n }}\n </DynamicFieldset>\n );\n }}\n </Bind>\n </Cell>\n </Grid>\n );\n};\n\nexport default PredefinedValuesDynamicFieldset;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","Fieldset","styled","position","width","marginBottom","display","right","top","controlButtons","css","alignItems","justifyContent","marginRight","emptyStyles","textAlign","Header","onSelectedChange","params","bind","field","targetIndex","index","setToValue","value","form","setValue","map","defaultValue","multipleValues","selected","PredefinedValuesDynamicFieldset","getBind","renderValueInput","Bind","useModelField","actions","header","row","empty","add","remove"],"sources":["PredefinedValuesDynamicFieldset.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { Grid, Cell, GridInner } from \"@webiny/ui/Grid\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { DynamicFieldset } from \"@webiny/ui/DynamicFieldset\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ButtonPrimary, ButtonSecondary } from \"@webiny/ui/Button\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Switch } from \"@webiny/ui/Switch\";\nimport { BindComponent, CmsModelField } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { useModelField } from \"~/admin/hooks\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/dynamic-fieldset-predefined-values\");\n\nconst Fieldset = styled(\"div\")({\n position: \"relative\",\n width: \"100%\",\n marginBottom: 15,\n \".webiny-ui-button\": {\n position: \"absolute\",\n display: \"block\",\n right: 10,\n top: 13\n }\n});\n\nconst controlButtons = css({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \">button\": {\n marginRight: 15\n }\n});\n\nconst emptyStyles = css({\n textAlign: \"center\"\n});\n\nconst Header = styled(\"div\")({\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: 15\n});\n\ninterface PredefinedValue {\n selected?: boolean;\n}\n\ninterface OnSelectedParams {\n bind: BindComponentRenderProp;\n field: CmsModelField;\n index: number;\n value: boolean;\n}\nconst onSelectedChange = (params: OnSelectedParams) => {\n const { bind, field, index: targetIndex, value: setToValue } = params;\n bind.form.setValue(\n \"predefinedValues.values\",\n bind.value.map((value: PredefinedValue, index: number) => {\n const defaultValue = field.multipleValues ? value.selected : false;\n return {\n ...value,\n selected: index === targetIndex ? setToValue : defaultValue\n };\n })\n );\n};\n\nexport interface Props {\n getBind: (value?: any) => BindComponent;\n renderValueInput?: (Bind: BindComponent) => React.ReactNode;\n}\nconst PredefinedValuesDynamicFieldset: React.FC<Props> = ({ getBind, renderValueInput = null }) => {\n const Bind = getBind();\n const { field } = useModelField();\n\n return (\n <Grid>\n <Cell span={12}>\n <Bind>\n {bind => {\n return (\n <DynamicFieldset {...bind}>\n {({ actions, header, row, empty }) => {\n return (\n <React.Fragment>\n {row(({ index }) => {\n const Bind = getBind(index);\n\n return (\n <React.Fragment>\n <GridInner>\n <Cell span={4}>\n <Fieldset>\n <Bind name={\"label\"}>\n <Input label={t`Label`} />\n </Bind>\n </Fieldset>\n </Cell>\n <Cell span={4}>\n <Fieldset>\n {renderValueInput ? (\n renderValueInput(Bind)\n ) : (\n <Bind name={\"value\"}>\n <Input\n label={t`Value`}\n />\n </Bind>\n )}\n </Fieldset>\n </Cell>\n <Cell span={2}>\n <Fieldset>\n <Bind name={\"selected\"}>\n <Switch\n label={\"Selected\"}\n description={\n \"Mark as selected value\"\n }\n onChange={value => {\n onSelectedChange({\n bind,\n field,\n index,\n value\n });\n }}\n />\n </Bind>\n </Fieldset>\n </Cell>\n\n <Cell\n span={2}\n className={controlButtons}\n >\n <ButtonPrimary\n small\n onClick={actions.add(index)}\n >\n +\n </ButtonPrimary>\n <ButtonSecondary\n small\n onClick={actions.remove(index)}\n >\n -\n </ButtonSecondary>\n </Cell>\n </GridInner>\n </React.Fragment>\n );\n })}\n {empty(() => {\n return (\n <React.Fragment>\n <Header>\n <Typography\n use={\"overline\"}\n >{t`Predefined values`}</Typography>\n </Header>\n\n <GridInner className={emptyStyles}>\n <Cell span={12}>\n <Typography use={\"subtitle1\"}>\n {t`There are no predefined values available.`}\n </Typography>\n </Cell>\n <Cell span={12}>\n <ButtonPrimary\n onClick={actions.add()}\n >{t`Add a predefined value`}</ButtonPrimary>\n </Cell>\n </GridInner>\n </React.Fragment>\n );\n })}\n {header(() => (\n <Header>\n <Typography\n use={\"overline\"}\n >{t`Predefined values`}</Typography>\n </Header>\n ))}\n </React.Fragment>\n );\n }}\n </DynamicFieldset>\n );\n }}\n </Bind>\n </Cell>\n </Grid>\n );\n};\n\nexport default PredefinedValuesDynamicFieldset;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","ns","plugin","type","name","field","label","description","icon","allowMultipleValues","allowPredefinedValues","multipleValuesLabel","createField","validation","renderer","renderSettings"],"sources":["boolean.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as BooleanIcon } from \"@material-design-icons/svg/outlined/toggle_on.svg\";\nimport { CmsModelFieldTypePlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { Bind } from \"@webiny/form\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst plugin: CmsModelFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-boolean\",\n field: {\n type: \"boolean\",\n label: t`Boolean`,\n description: t`Store boolean (\"yes\" or \"no\" ) values.`,\n icon: <BooleanIcon />,\n allowMultipleValues: false,\n allowPredefinedValues: false,\n multipleValuesLabel: t`Use as a list of booleans`,\n createField() {\n return {\n type: this.type,\n validation: [],\n renderer: {\n name: \"\"\n }\n };\n },\n renderSettings() {\n return (\n <Grid>\n <Cell span={12}>\n <Bind name={\"settings.defaultValue\"}>\n <Select\n label={t`Default value`}\n description={\"Default value for the field\"}\n >\n <option value={\"true\"}>True</option>\n <option value={\"\"}>False</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n );\n }\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,+BAAR,CAAV;;AAEA,IAAMC,MAA+B,GAAG;EACpCC,IAAI,EAAE,uBAD8B;EAEpCC,IAAI,EAAE,+BAF8B;EAGpCC,KAAK,EAAE;IACHF,IAAI,EAAE,SADH;IAEHG,KAAK,EAAEP,CAAF,0FAFF;IAGHQ,WAAW,EAAER,CAAF,+HAHR;IAIHS,IAAI,eAAE,6BAAC,yBAAD,OAJH;IAKHC,mBAAmB,EAAE,KALlB;IAMHC,qBAAqB,EAAE,KANpB;IAOHC,mBAAmB,EAAEZ,CAAF,8GAPhB;IAQHa,WARG,yBAQW;MACV,OAAO;QACHT,IAAI,EAAE,KAAKA,IADR;QAEHU,UAAU,EAAE,EAFT;QAGHC,QAAQ,EAAE;UACNV,IAAI,EAAE;QADA;MAHP,CAAP;IAOH,CAhBE;IAiBHW,cAjBG,4BAiBc;MACb,oBACI,6BAAC,UAAD,qBACI,6BAAC,UAAD;QAAM,IAAI,EAAE;MAAZ,gBACI,6BAAC,UAAD;QAAM,IAAI,EAAE;MAAZ,gBACI,6BAAC,cAAD;QACI,KAAK,EAAEhB,CAAF,kGADT;QAEI,WAAW,EAAE;MAFjB,gBAII;QAAQ,KAAK,EAAE;MAAf,
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","plugin","type","name","field","label","description","icon","allowMultipleValues","allowPredefinedValues","multipleValuesLabel","createField","validation","renderer","renderSettings"],"sources":["boolean.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as BooleanIcon } from \"@material-design-icons/svg/outlined/toggle_on.svg\";\nimport { CmsModelFieldTypePlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { Bind } from \"@webiny/form\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst plugin: CmsModelFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-boolean\",\n field: {\n type: \"boolean\",\n label: t`Boolean`,\n description: t`Store boolean (\"yes\" or \"no\" ) values.`,\n icon: <BooleanIcon />,\n allowMultipleValues: false,\n allowPredefinedValues: false,\n multipleValuesLabel: t`Use as a list of booleans`,\n createField() {\n return {\n type: this.type,\n validation: [],\n renderer: {\n name: \"\"\n }\n };\n },\n renderSettings() {\n return (\n <Grid>\n <Cell span={12}>\n <Bind name={\"settings.defaultValue\"}>\n <Select\n label={t`Default value`}\n description={\"Default value for the field\"}\n >\n <option value={\"true\"}>True</option>\n <option value={\"\"}>False</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n );\n }\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,+BAAR,CAAV;;AAEA,IAAMC,MAA+B,GAAG;EACpCC,IAAI,EAAE,uBAD8B;EAEpCC,IAAI,EAAE,+BAF8B;EAGpCC,KAAK,EAAE;IACHF,IAAI,EAAE,SADH;IAEHG,KAAK,EAAEP,CAAF,0FAFF;IAGHQ,WAAW,EAAER,CAAF,+HAHR;IAIHS,IAAI,eAAE,6BAAC,yBAAD,OAJH;IAKHC,mBAAmB,EAAE,KALlB;IAMHC,qBAAqB,EAAE,KANpB;IAOHC,mBAAmB,EAAEZ,CAAF,8GAPhB;IAQHa,WARG,yBAQW;MACV,OAAO;QACHT,IAAI,EAAE,KAAKA,IADR;QAEHU,UAAU,EAAE,EAFT;QAGHC,QAAQ,EAAE;UACNV,IAAI,EAAE;QADA;MAHP,CAAP;IAOH,CAhBE;IAiBHW,cAjBG,4BAiBc;MACb,oBACI,6BAAC,UAAD,qBACI,6BAAC,UAAD;QAAM,IAAI,EAAE;MAAZ,gBACI,6BAAC,UAAD;QAAM,IAAI,EAAE;MAAZ,gBACI,6BAAC,cAAD;QACI,KAAK,EAAEhB,CAAF,kGADT;QAEI,WAAW,EAAE;MAFjB,gBAII;QAAQ,KAAK,EAAE;MAAf,GAAuB,MAAvB,CAJJ,eAKI;QAAQ,KAAK,EAAE;MAAf,GAAmB,OAAnB,CALJ,CADJ,CADJ,CADJ,CADJ;IAeH;EAjCE;AAH6B,CAAxC;eAwCeG,M"}
|