@contentful/field-editor-radio 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/field-editor-radio.cjs.development.js +1 -1
- package/dist/field-editor-radio.cjs.development.js.map +1 -1
- package/dist/field-editor-radio.cjs.production.min.js +1 -1
- package/dist/field-editor-radio.cjs.production.min.js.map +1 -1
- package/dist/field-editor-radio.esm.js +1 -1
- package/dist/field-editor-radio.esm.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.1.3](https://github.com/contentful/field-editors/compare/@contentful/field-editor-radio@1.1.2...@contentful/field-editor-radio@1.1.3) (2022-05-04)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- reflect disabled state on fields ([#1125](https://github.com/contentful/field-editors/issues/1125)) ([01502b9](https://github.com/contentful/field-editors/commit/01502b9d785c5f782b0e5de782d092c439cb690f))
|
|
11
|
+
|
|
6
12
|
## [1.1.2](https://github.com/contentful/field-editors/compare/@contentful/field-editor-radio@1.1.1...@contentful/field-editor-radio@1.1.2) (2022-02-15)
|
|
7
13
|
|
|
8
14
|
### Bug Fixes
|
|
@@ -69,7 +69,7 @@ function RadioEditor(props) {
|
|
|
69
69
|
setOption(e.target.value);
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
}, item.label), checked && React.createElement(f36Components.TextLink, {
|
|
72
|
+
}, item.label), checked && !disabled && React.createElement(f36Components.TextLink, {
|
|
73
73
|
as: "button",
|
|
74
74
|
className: clearBtn,
|
|
75
75
|
onClick: clearOption
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-editor-radio.cjs.development.js","sources":["../src/styles.ts","../src/RadioEditor.tsx"],"sourcesContent":["import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const form = css({\n marginTop: tokens.spacingS,\n});\n\nexport const rightToLeft = css({\n direction: 'rtl',\n});\n\nexport const clearBtn = css({ marginLeft: tokens.spacingL });\n","import * as React from 'react';\nimport { cx } from 'emotion';\nimport {\n FieldAPI,\n FieldConnector,\n PredefinedValuesError,\n LocalesAPI,\n} from '@contentful/field-editor-shared';\nimport { getOptions, parseValue } from '@contentful/field-editor-dropdown';\nimport * as styles from './styles';\n\nimport { TextLink, Flex, Radio, Form } from '@contentful/f36-components';\n\nexport interface RadioEditorProps {\n /**\n * is the field disabled initially\n */\n isInitiallyDisabled: boolean;\n\n /**\n * sdk.field\n */\n field: FieldAPI;\n\n /**\n * sdk.locales\n */\n locales: LocalesAPI;\n}\n\nexport function RadioEditor(props: RadioEditorProps) {\n const { field, locales } = props;\n\n const options = getOptions(field);\n const misconfigured = options.length === 0;\n\n if (misconfigured) {\n return <PredefinedValuesError />;\n }\n\n const direction = locales.direction[field.locale] || 'ltr';\n\n return (\n <FieldConnector<string | number>\n throttle={0}\n field={field}\n isInitiallyDisabled={props.isInitiallyDisabled}>\n {({ disabled, value, setValue }) => {\n const setOption = (value: string) => {\n setValue(parseValue(value, field.type));\n };\n const clearOption = () => {\n setValue(undefined);\n };\n\n return (\n <Form\n testId=\"radio-editor\"\n className={cx(styles.form, direction === 'rtl' ? styles.rightToLeft : '')}>\n {options.map((item, index) => {\n const id = ['entity', field.id, field.locale, index, item.id].join('.');\n const checked = value === item.value;\n return (\n <Flex key={id} alignItems=\"center\" marginBottom=\"spacingS\">\n <Radio\n id={id}\n isDisabled={disabled}\n value={item.value === undefined ? '' : String(item.value)}\n isChecked={checked}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.checked) {\n setOption(e.target.value);\n }\n }}>\n {item.label}\n </Radio>\n {checked && (\n <TextLink as=\"button\" className={styles.clearBtn} onClick={clearOption}>\n Clear\n </TextLink>\n )}\n </Flex>\n );\n })}\n </Form>\n );\n }}\n </FieldConnector>\n );\n}\n\nRadioEditor.defaultProps = {\n isInitiallyDisabled: true,\n};\n"],"names":["form","css","marginTop","tokens","spacingS","rightToLeft","direction","clearBtn","marginLeft","spacingL","RadioEditor","props","field","locales","options","getOptions","misconfigured","length","React","PredefinedValuesError","locale","FieldConnector","throttle","isInitiallyDisabled","disabled","value","setValue","setOption","parseValue","type","clearOption","undefined","Form","testId","className","cx","styles","map","item","index","id","join","checked","Flex","key","alignItems","marginBottom","Radio","isDisabled","String","isChecked","onChange","e","target","label","TextLink","as","onClick","defaultProps"],"mappings":";;;;;;;;;;;;;AAGO,IAAMA,IAAI,gBAAGC,WAAG,CAAC;AACtBC,EAAAA,SAAS,EAAEC,MAAM,CAACC;AADI,CAAD,CAAhB;AAIA,IAAMC,WAAW,gBAAGJ,WAAG,CAAC;AAC7BK,EAAAA,SAAS,EAAE;AADkB,CAAD,CAAvB;AAIA,IAAMC,QAAQ,gBAAGN,WAAG,CAAC;AAAEO,EAAAA,UAAU,EAAEL,MAAM,CAACM;AAArB,CAAD,CAApB;;SCmBSC,YAAYC;AAC1B,MAAQC,KAAR,GAA2BD,KAA3B,CAAQC,KAAR;AAAA,MAAeC,OAAf,GAA2BF,KAA3B,CAAeE,OAAf;AAEA,MAAMC,OAAO,GAAGC,8BAAU,CAACH,KAAD,CAA1B;AACA,MAAMI,aAAa,GAAGF,OAAO,CAACG,MAAR,KAAmB,CAAzC;;AAEA,MAAID,aAAJ,EAAmB;AACjB,WAAOE,mBAAA,CAACC,uCAAD,MAAA,CAAP;AACD;;AAED,MAAMb,SAAS,GAAGO,OAAO,CAACP,SAAR,CAAkBM,KAAK,CAACQ,MAAxB,KAAmC,KAArD;AAEA,SACEF,mBAAA,CAACG,gCAAD;AACEC,IAAAA,QAAQ,EAAE;AACVV,IAAAA,KAAK,EAAEA;AACPW,IAAAA,mBAAmB,EAAEZ,KAAK,CAACY;GAH7B,EAIG;QAAGC,gBAAAA;QAAUC,aAAAA;QAAOC,gBAAAA;;AACnB,QAAMC,SAAS,GAAG,SAAZA,SAAY,CAACF,KAAD;AAChBC,MAAAA,QAAQ,CAACE,8BAAU,CAACH,KAAD,EAAQb,KAAK,CAACiB,IAAd,CAAX,CAAR;AACD,KAFD;;AAGA,QAAMC,WAAW,GAAG,SAAdA,WAAc;AAClBJ,MAAAA,QAAQ,CAACK,SAAD,CAAR;AACD,KAFD;;AAIA,WACEb,mBAAA,CAACc,kBAAD;AACEC,MAAAA,MAAM,EAAC;AACPC,MAAAA,SAAS,EAAEC,UAAE,CAACC,IAAD,EAAc9B,SAAS,KAAK,KAAd,GAAsB8B,WAAtB,GAA2C,EAAzD;KAFf,EAGGtB,OAAO,CAACuB,GAAR,CAAY,UAACC,IAAD,EAAOC,KAAP;AACX,UAAMC,EAAE,GAAG,CAAC,QAAD,EAAW5B,KAAK,CAAC4B,EAAjB,EAAqB5B,KAAK,CAACQ,MAA3B,EAAmCmB,KAAnC,EAA0CD,IAAI,CAACE,EAA/C,EAAmDC,IAAnD,CAAwD,GAAxD,CAAX;AACA,UAAMC,OAAO,GAAGjB,KAAK,KAAKa,IAAI,CAACb,KAA/B;AACA,aACEP,mBAAA,CAACyB,kBAAD;AAAMC,QAAAA,GAAG,EAAEJ;AAAIK,QAAAA,UAAU,EAAC;AAASC,QAAAA,YAAY,EAAC;OAAhD,EACE5B,mBAAA,CAAC6B,mBAAD;AACEP,QAAAA,EAAE,EAAEA;AACJQ,QAAAA,UAAU,EAAExB;AACZC,QAAAA,KAAK,EAAEa,IAAI,CAACb,KAAL,KAAeM,SAAf,GAA2B,EAA3B,GAAgCkB,MAAM,CAACX,IAAI,CAACb,KAAN;AAC7CyB,QAAAA,SAAS,EAAER;AACXS,QAAAA,QAAQ,EAAE,kBAACC,CAAD;AACR,cAAIA,CAAC,CAACC,MAAF,CAASX,OAAb,EAAsB;AACpBf,YAAAA,SAAS,CAACyB,CAAC,CAACC,MAAF,CAAS5B,KAAV,CAAT;AACD;AACF;OATH,EAUGa,IAAI,CAACgB,KAVR,CADF,EAaGZ,OAAO,
|
|
1
|
+
{"version":3,"file":"field-editor-radio.cjs.development.js","sources":["../src/styles.ts","../src/RadioEditor.tsx"],"sourcesContent":["import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const form = css({\n marginTop: tokens.spacingS,\n});\n\nexport const rightToLeft = css({\n direction: 'rtl',\n});\n\nexport const clearBtn = css({ marginLeft: tokens.spacingL });\n","import * as React from 'react';\nimport { cx } from 'emotion';\nimport {\n FieldAPI,\n FieldConnector,\n PredefinedValuesError,\n LocalesAPI,\n} from '@contentful/field-editor-shared';\nimport { getOptions, parseValue } from '@contentful/field-editor-dropdown';\nimport * as styles from './styles';\n\nimport { TextLink, Flex, Radio, Form } from '@contentful/f36-components';\n\nexport interface RadioEditorProps {\n /**\n * is the field disabled initially\n */\n isInitiallyDisabled: boolean;\n\n /**\n * sdk.field\n */\n field: FieldAPI;\n\n /**\n * sdk.locales\n */\n locales: LocalesAPI;\n}\n\nexport function RadioEditor(props: RadioEditorProps) {\n const { field, locales } = props;\n\n const options = getOptions(field);\n const misconfigured = options.length === 0;\n\n if (misconfigured) {\n return <PredefinedValuesError />;\n }\n\n const direction = locales.direction[field.locale] || 'ltr';\n\n return (\n <FieldConnector<string | number>\n throttle={0}\n field={field}\n isInitiallyDisabled={props.isInitiallyDisabled}>\n {({ disabled, value, setValue }) => {\n const setOption = (value: string) => {\n setValue(parseValue(value, field.type));\n };\n const clearOption = () => {\n setValue(undefined);\n };\n\n return (\n <Form\n testId=\"radio-editor\"\n className={cx(styles.form, direction === 'rtl' ? styles.rightToLeft : '')}>\n {options.map((item, index) => {\n const id = ['entity', field.id, field.locale, index, item.id].join('.');\n const checked = value === item.value;\n return (\n <Flex key={id} alignItems=\"center\" marginBottom=\"spacingS\">\n <Radio\n id={id}\n isDisabled={disabled}\n value={item.value === undefined ? '' : String(item.value)}\n isChecked={checked}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.checked) {\n setOption(e.target.value);\n }\n }}>\n {item.label}\n </Radio>\n {checked && !disabled && (\n <TextLink as=\"button\" className={styles.clearBtn} onClick={clearOption}>\n Clear\n </TextLink>\n )}\n </Flex>\n );\n })}\n </Form>\n );\n }}\n </FieldConnector>\n );\n}\n\nRadioEditor.defaultProps = {\n isInitiallyDisabled: true,\n};\n"],"names":["form","css","marginTop","tokens","spacingS","rightToLeft","direction","clearBtn","marginLeft","spacingL","RadioEditor","props","field","locales","options","getOptions","misconfigured","length","React","PredefinedValuesError","locale","FieldConnector","throttle","isInitiallyDisabled","disabled","value","setValue","setOption","parseValue","type","clearOption","undefined","Form","testId","className","cx","styles","map","item","index","id","join","checked","Flex","key","alignItems","marginBottom","Radio","isDisabled","String","isChecked","onChange","e","target","label","TextLink","as","onClick","defaultProps"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),i=require("emotion"),r=require("@contentful/field-editor-shared"),n=require("@contentful/field-editor-dropdown"),l=(e=require("@contentful/f36-tokens"))&&"object"==typeof e&&"default"in e?e.default:e,a=require("@contentful/f36-components"),o=i.css({marginTop:l.spacingS}),c=i.css({direction:"rtl"}),s=i.css({marginLeft:l.spacingL});function d(e){var l=e.field,d=e.locales,u=n.getOptions(l);if(0===u.length)return t.createElement(r.PredefinedValuesError,null);var f=d.direction[l.locale]||"ltr";return t.createElement(r.FieldConnector,{throttle:0,field:l,isInitiallyDisabled:e.isInitiallyDisabled},(function(e){var r=e.disabled,d=e.value,m=e.setValue,p=function(){m(void 0)};return t.createElement(a.Form,{testId:"radio-editor",className:i.cx(o,"rtl"===f?c:"")},u.map((function(e,i){var o=["entity",l.id,l.locale,i,e.id].join("."),c=d===e.value;return t.createElement(a.Flex,{key:o,alignItems:"center",marginBottom:"spacingS"},t.createElement(a.Radio,{id:o,isDisabled:r,value:void 0===e.value?"":String(e.value),isChecked:c,onChange:function(e){e.target.checked&&function(e){m(n.parseValue(e,l.type))}(e.target.value)}},e.label),c&&t.createElement(a.TextLink,{as:"button",className:s,onClick:p},"Clear"))})))}))}d.defaultProps={isInitiallyDisabled:!0},exports.RadioEditor=d;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),i=require("emotion"),r=require("@contentful/field-editor-shared"),n=require("@contentful/field-editor-dropdown"),l=(e=require("@contentful/f36-tokens"))&&"object"==typeof e&&"default"in e?e.default:e,a=require("@contentful/f36-components"),o=i.css({marginTop:l.spacingS}),c=i.css({direction:"rtl"}),s=i.css({marginLeft:l.spacingL});function d(e){var l=e.field,d=e.locales,u=n.getOptions(l);if(0===u.length)return t.createElement(r.PredefinedValuesError,null);var f=d.direction[l.locale]||"ltr";return t.createElement(r.FieldConnector,{throttle:0,field:l,isInitiallyDisabled:e.isInitiallyDisabled},(function(e){var r=e.disabled,d=e.value,m=e.setValue,p=function(){m(void 0)};return t.createElement(a.Form,{testId:"radio-editor",className:i.cx(o,"rtl"===f?c:"")},u.map((function(e,i){var o=["entity",l.id,l.locale,i,e.id].join("."),c=d===e.value;return t.createElement(a.Flex,{key:o,alignItems:"center",marginBottom:"spacingS"},t.createElement(a.Radio,{id:o,isDisabled:r,value:void 0===e.value?"":String(e.value),isChecked:c,onChange:function(e){e.target.checked&&function(e){m(n.parseValue(e,l.type))}(e.target.value)}},e.label),c&&!r&&t.createElement(a.TextLink,{as:"button",className:s,onClick:p},"Clear"))})))}))}d.defaultProps={isInitiallyDisabled:!0},exports.RadioEditor=d;
|
|
2
2
|
//# sourceMappingURL=field-editor-radio.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-editor-radio.cjs.production.min.js","sources":["../src/styles.ts","../src/RadioEditor.tsx"],"sourcesContent":["import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const form = css({\n marginTop: tokens.spacingS,\n});\n\nexport const rightToLeft = css({\n direction: 'rtl',\n});\n\nexport const clearBtn = css({ marginLeft: tokens.spacingL });\n","import * as React from 'react';\nimport { cx } from 'emotion';\nimport {\n FieldAPI,\n FieldConnector,\n PredefinedValuesError,\n LocalesAPI,\n} from '@contentful/field-editor-shared';\nimport { getOptions, parseValue } from '@contentful/field-editor-dropdown';\nimport * as styles from './styles';\n\nimport { TextLink, Flex, Radio, Form } from '@contentful/f36-components';\n\nexport interface RadioEditorProps {\n /**\n * is the field disabled initially\n */\n isInitiallyDisabled: boolean;\n\n /**\n * sdk.field\n */\n field: FieldAPI;\n\n /**\n * sdk.locales\n */\n locales: LocalesAPI;\n}\n\nexport function RadioEditor(props: RadioEditorProps) {\n const { field, locales } = props;\n\n const options = getOptions(field);\n const misconfigured = options.length === 0;\n\n if (misconfigured) {\n return <PredefinedValuesError />;\n }\n\n const direction = locales.direction[field.locale] || 'ltr';\n\n return (\n <FieldConnector<string | number>\n throttle={0}\n field={field}\n isInitiallyDisabled={props.isInitiallyDisabled}>\n {({ disabled, value, setValue }) => {\n const setOption = (value: string) => {\n setValue(parseValue(value, field.type));\n };\n const clearOption = () => {\n setValue(undefined);\n };\n\n return (\n <Form\n testId=\"radio-editor\"\n className={cx(styles.form, direction === 'rtl' ? styles.rightToLeft : '')}>\n {options.map((item, index) => {\n const id = ['entity', field.id, field.locale, index, item.id].join('.');\n const checked = value === item.value;\n return (\n <Flex key={id} alignItems=\"center\" marginBottom=\"spacingS\">\n <Radio\n id={id}\n isDisabled={disabled}\n value={item.value === undefined ? '' : String(item.value)}\n isChecked={checked}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.checked) {\n setOption(e.target.value);\n }\n }}>\n {item.label}\n </Radio>\n {checked && (\n <TextLink as=\"button\" className={styles.clearBtn} onClick={clearOption}>\n Clear\n </TextLink>\n )}\n </Flex>\n );\n })}\n </Form>\n );\n }}\n </FieldConnector>\n );\n}\n\nRadioEditor.defaultProps = {\n isInitiallyDisabled: true,\n};\n"],"names":["form","css","marginTop","tokens","spacingS","rightToLeft","direction","clearBtn","marginLeft","spacingL","RadioEditor","props","field","locales","options","getOptions","length","React","PredefinedValuesError","locale","FieldConnector","throttle","isInitiallyDisabled","disabled","value","setValue","clearOption","undefined","Form","testId","className","cx","styles","map","item","index","id","join","checked","Flex","key","alignItems","marginBottom","Radio","isDisabled","String","isChecked","onChange","e","target","parseValue","type","setOption","label","TextLink","as","onClick","defaultProps"],"mappings":"6UAGaA,EAAOC,MAAI,CACtBC,UAAWC,EAAOC,WAGPC,EAAcJ,MAAI,CAC7BK,UAAW,QAGAC,EAAWN,MAAI,CAAEO,WAAYL,EAAOM,oBCmBjCC,EAAYC,OAClBC,EAAmBD,EAAnBC,MAAOC,EAAYF,EAAZE,QAETC,EAAUC,aAAWH,MACc,IAAnBE,EAAQE,cAGrBC,gBAACC,kCAGJZ,EAAYO,EAAQP,UAAUM,EAAMO,SAAW,aAGnDF,gBAACG,kBACCC,SAAU,EACVT,MAAOA,EACPU,oBAAqBX,EAAMW,sBAC1B,gBAAGC,IAAAA,SAAUC,IAAAA,MAAOC,IAAAA,SAIbC,EAAc,WAClBD,OAASE,WAITV,gBAACW,QACCC,OAAO,eACPC,UAAWC,KAAGC,EAA2B,QAAd1B,EAAsB0B,EAAqB,KACrElB,EAAQmB,KAAI,SAACC,EAAMC,OACZC,EAAK,CAAC,SAAUxB,EAAMwB,GAAIxB,EAAMO,OAAQgB,EAAOD,EAAKE,IAAIC,KAAK,KAC7DC,EAAUd,IAAUU,EAAKV,aAE7BP,gBAACsB,QAAKC,IAAKJ,EAAIK,WAAW,SAASC,aAAa,YAC9CzB,gBAAC0B,SACCP,GAAIA,EACJQ,WAAYrB,EACZC,WAAsBG,IAAfO,EAAKV,MAAsB,GAAKqB,OAAOX,EAAKV,OACnDsB,UAAWR,EACXS,SAAU,SAACC,GACLA,EAAEC,OAAOX,SAtBT,SAACd,GACjBC,EAASyB,aAAW1B,EAAOZ,EAAMuC,OAsBnBC,CAAUJ,EAAEC,OAAOzB,SAGtBU,EAAKmB,OAEPf,
|
|
1
|
+
{"version":3,"file":"field-editor-radio.cjs.production.min.js","sources":["../src/styles.ts","../src/RadioEditor.tsx"],"sourcesContent":["import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const form = css({\n marginTop: tokens.spacingS,\n});\n\nexport const rightToLeft = css({\n direction: 'rtl',\n});\n\nexport const clearBtn = css({ marginLeft: tokens.spacingL });\n","import * as React from 'react';\nimport { cx } from 'emotion';\nimport {\n FieldAPI,\n FieldConnector,\n PredefinedValuesError,\n LocalesAPI,\n} from '@contentful/field-editor-shared';\nimport { getOptions, parseValue } from '@contentful/field-editor-dropdown';\nimport * as styles from './styles';\n\nimport { TextLink, Flex, Radio, Form } from '@contentful/f36-components';\n\nexport interface RadioEditorProps {\n /**\n * is the field disabled initially\n */\n isInitiallyDisabled: boolean;\n\n /**\n * sdk.field\n */\n field: FieldAPI;\n\n /**\n * sdk.locales\n */\n locales: LocalesAPI;\n}\n\nexport function RadioEditor(props: RadioEditorProps) {\n const { field, locales } = props;\n\n const options = getOptions(field);\n const misconfigured = options.length === 0;\n\n if (misconfigured) {\n return <PredefinedValuesError />;\n }\n\n const direction = locales.direction[field.locale] || 'ltr';\n\n return (\n <FieldConnector<string | number>\n throttle={0}\n field={field}\n isInitiallyDisabled={props.isInitiallyDisabled}>\n {({ disabled, value, setValue }) => {\n const setOption = (value: string) => {\n setValue(parseValue(value, field.type));\n };\n const clearOption = () => {\n setValue(undefined);\n };\n\n return (\n <Form\n testId=\"radio-editor\"\n className={cx(styles.form, direction === 'rtl' ? styles.rightToLeft : '')}>\n {options.map((item, index) => {\n const id = ['entity', field.id, field.locale, index, item.id].join('.');\n const checked = value === item.value;\n return (\n <Flex key={id} alignItems=\"center\" marginBottom=\"spacingS\">\n <Radio\n id={id}\n isDisabled={disabled}\n value={item.value === undefined ? '' : String(item.value)}\n isChecked={checked}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.checked) {\n setOption(e.target.value);\n }\n }}>\n {item.label}\n </Radio>\n {checked && !disabled && (\n <TextLink as=\"button\" className={styles.clearBtn} onClick={clearOption}>\n Clear\n </TextLink>\n )}\n </Flex>\n );\n })}\n </Form>\n );\n }}\n </FieldConnector>\n );\n}\n\nRadioEditor.defaultProps = {\n isInitiallyDisabled: true,\n};\n"],"names":["form","css","marginTop","tokens","spacingS","rightToLeft","direction","clearBtn","marginLeft","spacingL","RadioEditor","props","field","locales","options","getOptions","length","React","PredefinedValuesError","locale","FieldConnector","throttle","isInitiallyDisabled","disabled","value","setValue","clearOption","undefined","Form","testId","className","cx","styles","map","item","index","id","join","checked","Flex","key","alignItems","marginBottom","Radio","isDisabled","String","isChecked","onChange","e","target","parseValue","type","setOption","label","TextLink","as","onClick","defaultProps"],"mappings":"6UAGaA,EAAOC,MAAI,CACtBC,UAAWC,EAAOC,WAGPC,EAAcJ,MAAI,CAC7BK,UAAW,QAGAC,EAAWN,MAAI,CAAEO,WAAYL,EAAOM,oBCmBjCC,EAAYC,OAClBC,EAAmBD,EAAnBC,MAAOC,EAAYF,EAAZE,QAETC,EAAUC,aAAWH,MACc,IAAnBE,EAAQE,cAGrBC,gBAACC,kCAGJZ,EAAYO,EAAQP,UAAUM,EAAMO,SAAW,aAGnDF,gBAACG,kBACCC,SAAU,EACVT,MAAOA,EACPU,oBAAqBX,EAAMW,sBAC1B,gBAAGC,IAAAA,SAAUC,IAAAA,MAAOC,IAAAA,SAIbC,EAAc,WAClBD,OAASE,WAITV,gBAACW,QACCC,OAAO,eACPC,UAAWC,KAAGC,EAA2B,QAAd1B,EAAsB0B,EAAqB,KACrElB,EAAQmB,KAAI,SAACC,EAAMC,OACZC,EAAK,CAAC,SAAUxB,EAAMwB,GAAIxB,EAAMO,OAAQgB,EAAOD,EAAKE,IAAIC,KAAK,KAC7DC,EAAUd,IAAUU,EAAKV,aAE7BP,gBAACsB,QAAKC,IAAKJ,EAAIK,WAAW,SAASC,aAAa,YAC9CzB,gBAAC0B,SACCP,GAAIA,EACJQ,WAAYrB,EACZC,WAAsBG,IAAfO,EAAKV,MAAsB,GAAKqB,OAAOX,EAAKV,OACnDsB,UAAWR,EACXS,SAAU,SAACC,GACLA,EAAEC,OAAOX,SAtBT,SAACd,GACjBC,EAASyB,aAAW1B,EAAOZ,EAAMuC,OAsBnBC,CAAUJ,EAAEC,OAAOzB,SAGtBU,EAAKmB,OAEPf,IAAYf,GACXN,gBAACqC,YAASC,GAAG,SAASzB,UAAWE,EAAiBwB,QAAS9B,oBAc/EhB,EAAY+C,aAAe,CACzBnC,qBAAqB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-editor-radio.esm.js","sources":["../src/styles.ts","../src/RadioEditor.tsx"],"sourcesContent":["import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const form = css({\n marginTop: tokens.spacingS,\n});\n\nexport const rightToLeft = css({\n direction: 'rtl',\n});\n\nexport const clearBtn = css({ marginLeft: tokens.spacingL });\n","import * as React from 'react';\nimport { cx } from 'emotion';\nimport {\n FieldAPI,\n FieldConnector,\n PredefinedValuesError,\n LocalesAPI,\n} from '@contentful/field-editor-shared';\nimport { getOptions, parseValue } from '@contentful/field-editor-dropdown';\nimport * as styles from './styles';\n\nimport { TextLink, Flex, Radio, Form } from '@contentful/f36-components';\n\nexport interface RadioEditorProps {\n /**\n * is the field disabled initially\n */\n isInitiallyDisabled: boolean;\n\n /**\n * sdk.field\n */\n field: FieldAPI;\n\n /**\n * sdk.locales\n */\n locales: LocalesAPI;\n}\n\nexport function RadioEditor(props: RadioEditorProps) {\n const { field, locales } = props;\n\n const options = getOptions(field);\n const misconfigured = options.length === 0;\n\n if (misconfigured) {\n return <PredefinedValuesError />;\n }\n\n const direction = locales.direction[field.locale] || 'ltr';\n\n return (\n <FieldConnector<string | number>\n throttle={0}\n field={field}\n isInitiallyDisabled={props.isInitiallyDisabled}>\n {({ disabled, value, setValue }) => {\n const setOption = (value: string) => {\n setValue(parseValue(value, field.type));\n };\n const clearOption = () => {\n setValue(undefined);\n };\n\n return (\n <Form\n testId=\"radio-editor\"\n className={cx(styles.form, direction === 'rtl' ? styles.rightToLeft : '')}>\n {options.map((item, index) => {\n const id = ['entity', field.id, field.locale, index, item.id].join('.');\n const checked = value === item.value;\n return (\n <Flex key={id} alignItems=\"center\" marginBottom=\"spacingS\">\n <Radio\n id={id}\n isDisabled={disabled}\n value={item.value === undefined ? '' : String(item.value)}\n isChecked={checked}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.checked) {\n setOption(e.target.value);\n }\n }}>\n {item.label}\n </Radio>\n {checked && (\n <TextLink as=\"button\" className={styles.clearBtn} onClick={clearOption}>\n Clear\n </TextLink>\n )}\n </Flex>\n );\n })}\n </Form>\n );\n }}\n </FieldConnector>\n );\n}\n\nRadioEditor.defaultProps = {\n isInitiallyDisabled: true,\n};\n"],"names":["form","css","marginTop","tokens","spacingS","rightToLeft","direction","clearBtn","marginLeft","spacingL","RadioEditor","props","field","locales","options","getOptions","misconfigured","length","React","PredefinedValuesError","locale","FieldConnector","throttle","isInitiallyDisabled","disabled","value","setValue","setOption","parseValue","type","clearOption","undefined","Form","testId","className","cx","styles","map","item","index","id","join","checked","Flex","key","alignItems","marginBottom","Radio","isDisabled","String","isChecked","onChange","e","target","label","TextLink","as","onClick","defaultProps"],"mappings":";;;;;;;AAGO,IAAMA,IAAI,gBAAGC,GAAG,CAAC;AACtBC,EAAAA,SAAS,EAAEC,MAAM,CAACC;AADI,CAAD,CAAhB;AAIA,IAAMC,WAAW,gBAAGJ,GAAG,CAAC;AAC7BK,EAAAA,SAAS,EAAE;AADkB,CAAD,CAAvB;AAIA,IAAMC,QAAQ,gBAAGN,GAAG,CAAC;AAAEO,EAAAA,UAAU,EAAEL,MAAM,CAACM;AAArB,CAAD,CAApB;;SCmBSC,YAAYC;AAC1B,MAAQC,KAAR,GAA2BD,KAA3B,CAAQC,KAAR;AAAA,MAAeC,OAAf,GAA2BF,KAA3B,CAAeE,OAAf;AAEA,MAAMC,OAAO,GAAGC,UAAU,CAACH,KAAD,CAA1B;AACA,MAAMI,aAAa,GAAGF,OAAO,CAACG,MAAR,KAAmB,CAAzC;;AAEA,MAAID,aAAJ,EAAmB;AACjB,WAAOE,aAAA,CAACC,qBAAD,MAAA,CAAP;AACD;;AAED,MAAMb,SAAS,GAAGO,OAAO,CAACP,SAAR,CAAkBM,KAAK,CAACQ,MAAxB,KAAmC,KAArD;AAEA,SACEF,aAAA,CAACG,cAAD;AACEC,IAAAA,QAAQ,EAAE;AACVV,IAAAA,KAAK,EAAEA;AACPW,IAAAA,mBAAmB,EAAEZ,KAAK,CAACY;GAH7B,EAIG;QAAGC,gBAAAA;QAAUC,aAAAA;QAAOC,gBAAAA;;AACnB,QAAMC,SAAS,GAAG,SAAZA,SAAY,CAACF,KAAD;AAChBC,MAAAA,QAAQ,CAACE,UAAU,CAACH,KAAD,EAAQb,KAAK,CAACiB,IAAd,CAAX,CAAR;AACD,KAFD;;AAGA,QAAMC,WAAW,GAAG,SAAdA,WAAc;AAClBJ,MAAAA,QAAQ,CAACK,SAAD,CAAR;AACD,KAFD;;AAIA,WACEb,aAAA,CAACc,IAAD;AACEC,MAAAA,MAAM,EAAC;AACPC,MAAAA,SAAS,EAAEC,EAAE,CAACC,IAAD,EAAc9B,SAAS,KAAK,KAAd,GAAsB8B,WAAtB,GAA2C,EAAzD;KAFf,EAGGtB,OAAO,CAACuB,GAAR,CAAY,UAACC,IAAD,EAAOC,KAAP;AACX,UAAMC,EAAE,GAAG,CAAC,QAAD,EAAW5B,KAAK,CAAC4B,EAAjB,EAAqB5B,KAAK,CAACQ,MAA3B,EAAmCmB,KAAnC,EAA0CD,IAAI,CAACE,EAA/C,EAAmDC,IAAnD,CAAwD,GAAxD,CAAX;AACA,UAAMC,OAAO,GAAGjB,KAAK,KAAKa,IAAI,CAACb,KAA/B;AACA,aACEP,aAAA,CAACyB,IAAD;AAAMC,QAAAA,GAAG,EAAEJ;AAAIK,QAAAA,UAAU,EAAC;AAASC,QAAAA,YAAY,EAAC;OAAhD,EACE5B,aAAA,CAAC6B,KAAD;AACEP,QAAAA,EAAE,EAAEA;AACJQ,QAAAA,UAAU,EAAExB;AACZC,QAAAA,KAAK,EAAEa,IAAI,CAACb,KAAL,KAAeM,SAAf,GAA2B,EAA3B,GAAgCkB,MAAM,CAACX,IAAI,CAACb,KAAN;AAC7CyB,QAAAA,SAAS,EAAER;AACXS,QAAAA,QAAQ,EAAE,kBAACC,CAAD;AACR,cAAIA,CAAC,CAACC,MAAF,CAASX,OAAb,EAAsB;AACpBf,YAAAA,SAAS,CAACyB,CAAC,CAACC,MAAF,CAAS5B,KAAV,CAAT;AACD;AACF;OATH,EAUGa,IAAI,CAACgB,KAVR,CADF,EAaGZ,OAAO,
|
|
1
|
+
{"version":3,"file":"field-editor-radio.esm.js","sources":["../src/styles.ts","../src/RadioEditor.tsx"],"sourcesContent":["import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const form = css({\n marginTop: tokens.spacingS,\n});\n\nexport const rightToLeft = css({\n direction: 'rtl',\n});\n\nexport const clearBtn = css({ marginLeft: tokens.spacingL });\n","import * as React from 'react';\nimport { cx } from 'emotion';\nimport {\n FieldAPI,\n FieldConnector,\n PredefinedValuesError,\n LocalesAPI,\n} from '@contentful/field-editor-shared';\nimport { getOptions, parseValue } from '@contentful/field-editor-dropdown';\nimport * as styles from './styles';\n\nimport { TextLink, Flex, Radio, Form } from '@contentful/f36-components';\n\nexport interface RadioEditorProps {\n /**\n * is the field disabled initially\n */\n isInitiallyDisabled: boolean;\n\n /**\n * sdk.field\n */\n field: FieldAPI;\n\n /**\n * sdk.locales\n */\n locales: LocalesAPI;\n}\n\nexport function RadioEditor(props: RadioEditorProps) {\n const { field, locales } = props;\n\n const options = getOptions(field);\n const misconfigured = options.length === 0;\n\n if (misconfigured) {\n return <PredefinedValuesError />;\n }\n\n const direction = locales.direction[field.locale] || 'ltr';\n\n return (\n <FieldConnector<string | number>\n throttle={0}\n field={field}\n isInitiallyDisabled={props.isInitiallyDisabled}>\n {({ disabled, value, setValue }) => {\n const setOption = (value: string) => {\n setValue(parseValue(value, field.type));\n };\n const clearOption = () => {\n setValue(undefined);\n };\n\n return (\n <Form\n testId=\"radio-editor\"\n className={cx(styles.form, direction === 'rtl' ? styles.rightToLeft : '')}>\n {options.map((item, index) => {\n const id = ['entity', field.id, field.locale, index, item.id].join('.');\n const checked = value === item.value;\n return (\n <Flex key={id} alignItems=\"center\" marginBottom=\"spacingS\">\n <Radio\n id={id}\n isDisabled={disabled}\n value={item.value === undefined ? '' : String(item.value)}\n isChecked={checked}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.checked) {\n setOption(e.target.value);\n }\n }}>\n {item.label}\n </Radio>\n {checked && !disabled && (\n <TextLink as=\"button\" className={styles.clearBtn} onClick={clearOption}>\n Clear\n </TextLink>\n )}\n </Flex>\n );\n })}\n </Form>\n );\n }}\n </FieldConnector>\n );\n}\n\nRadioEditor.defaultProps = {\n isInitiallyDisabled: true,\n};\n"],"names":["form","css","marginTop","tokens","spacingS","rightToLeft","direction","clearBtn","marginLeft","spacingL","RadioEditor","props","field","locales","options","getOptions","misconfigured","length","React","PredefinedValuesError","locale","FieldConnector","throttle","isInitiallyDisabled","disabled","value","setValue","setOption","parseValue","type","clearOption","undefined","Form","testId","className","cx","styles","map","item","index","id","join","checked","Flex","key","alignItems","marginBottom","Radio","isDisabled","String","isChecked","onChange","e","target","label","TextLink","as","onClick","defaultProps"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentful/field-editor-radio",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "dist/field-editor-radio.esm.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "0706a991ef79bd5cc475f8cfb5e5e30e30da797d"
|
|
51
51
|
}
|