@contentful/field-editor-rating 1.2.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/RatingEditor.js +110 -0
- package/dist/cjs/RatingEditor.spec.js +136 -0
- package/dist/cjs/RatingRibbon.js +133 -0
- package/dist/cjs/index.js +11 -0
- package/dist/esm/RatingEditor.js +56 -0
- package/dist/esm/RatingEditor.spec.js +93 -0
- package/dist/esm/RatingRibbon.js +84 -0
- package/dist/esm/index.js +1 -0
- package/dist/{RatingEditor.d.ts → types/RatingEditor.d.ts} +26 -26
- package/dist/types/RatingEditor.spec.d.ts +1 -0
- package/dist/{RatingRibbon.d.ts → types/RatingRibbon.d.ts} +20 -20
- package/dist/{index.d.ts → types/index.d.ts} +1 -1
- package/package.json +26 -13
- package/CHANGELOG.md +0 -198
- package/dist/field-editor-rating.cjs.development.js +0 -152
- package/dist/field-editor-rating.cjs.development.js.map +0 -1
- package/dist/field-editor-rating.cjs.production.min.js +0 -2
- package/dist/field-editor-rating.cjs.production.min.js.map +0 -1
- package/dist/field-editor-rating.esm.js +0 -146
- package/dist/field-editor-rating.esm.js.map +0 -1
- package/dist/index.js +0 -8
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-editor-rating.esm.js","sources":["../src/RatingRibbon.tsx","../src/RatingEditor.tsx"],"sourcesContent":["import * as React from 'react';\n\n\nimport { IconButton } from '@contentful/f36-components';\nimport { StarIcon } from '@contentful/f36-icons';\nimport { css } from 'emotion';\n\ntype RatingRibbonProps = {\n disabled: boolean;\n stars: number;\n value: number | null | undefined;\n onSelect: (val: number) => void;\n};\n\ntype RatingRibbonState = {\n hovered: null | number;\n};\n\nexport class RatingRibbon extends React.Component<RatingRibbonProps, RatingRibbonState> {\n state = {\n hovered: null,\n };\n\n isSelected = (num: number) => {\n const hovered = this.state.hovered;\n const value = this.props.value;\n\n if (hovered !== null) {\n return num <= hovered;\n }\n if (value) {\n return num <= value;\n }\n return false;\n };\n\n onBlur = () => {\n if (!this.props.disabled) {\n this.setState({ hovered: null });\n }\n };\n\n onFocus = (num: number) => () => {\n if (!this.props.disabled) {\n this.setState({ hovered: num });\n }\n };\n\n render() {\n const items: number[] = [];\n for (let i = 1; i <= this.props.stars; i++) {\n items.push(i);\n }\n\n return (\n <>\n {items.map((num) => (\n <IconButton\n variant=\"transparent\"\n size=\"small\"\n icon={\n <StarIcon\n variant={this.isSelected(num) ? 'primary' : 'muted'}\n className={css({ width: '22px', height: '22px' })}\n />\n }\n data-selected={this.isSelected(num) ? 'true' : 'false'}\n testId=\"rating-editor-star\"\n isDisabled={this.props.disabled}\n key={num}\n onClick={() => {\n this.props.onSelect(num);\n }}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (e.keyCode === 13) {\n this.props.onSelect(num);\n }\n }}\n onMouseOver={this.onFocus(num)}\n onMouseLeave={this.onBlur}\n onFocus={this.onFocus(num)}\n onBlur={this.onBlur}\n aria-label={num.toString()}\n />\n ))}\n </>\n );\n }\n}\n","import * as React from 'react';\n\nimport { TextLink, Flex } from '@contentful/f36-components';\nimport { FieldAPI, ParametersAPI, FieldConnector } from '@contentful/field-editor-shared';\nimport get from 'lodash/get';\n\nimport { RatingRibbon } from './RatingRibbon';\n\n\nexport interface RatingEditorProps {\n /**\n * is the field disabled initially\n */\n isInitiallyDisabled: boolean;\n\n /**\n * sdk.field\n */\n field: FieldAPI;\n\n /**\n * sdk.parameters\n */\n parameters?: ParametersAPI & {\n instance: {\n stars?: number;\n };\n };\n}\n\nfunction isValidCount(count?: string | number): count is number {\n return typeof count === 'number' && !isNaN(count) && count > 0;\n}\n\nfunction getStarCount(count?: number | string): number {\n const defaultValue = 5;\n\n if (isValidCount(count)) {\n return Math.round(count);\n } else if (typeof count === 'string') {\n const parsed = parseInt(count, 10);\n return isValidCount(parsed) ? Math.round(parsed) : defaultValue;\n } else {\n return defaultValue;\n }\n}\n\nexport function RatingEditor(props: RatingEditorProps) {\n const { field } = props;\n\n const starsCount = getStarCount(get(props.parameters, ['instance', 'stars']));\n\n return (\n <FieldConnector<number>\n throttle={0}\n field={field}\n isInitiallyDisabled={props.isInitiallyDisabled}>\n {({ disabled, value, setValue }) => {\n const clearOption = () => {\n setValue(null);\n };\n\n return (\n <Flex testId=\"rating-editor\" flexDirection=\"row\" marginTop=\"spacingS\">\n <RatingRibbon\n disabled={disabled}\n value={value}\n stars={starsCount}\n onSelect={(num) => {\n setValue(num);\n }}\n />\n {value !== undefined && !disabled && (\n <Flex marginLeft=\"spacingM\">\n <TextLink as=\"button\" testId=\"rating-editor-clear\" onClick={clearOption}>\n Clear\n </TextLink>\n </Flex>\n )}\n </Flex>\n );\n }}\n </FieldConnector>\n );\n}\n\nRatingEditor.defaultProps = {\n isInitiallyDisabled: true,\n};\n"],"names":["RatingRibbon","React","state","hovered","isSelected","num","value","props","onBlur","disabled","setState","onFocus","render","items","i","stars","push","map","IconButton","variant","size","icon","StarIcon","className","css","width","height","testId","isDisabled","key","onClick","onSelect","onKeyDown","e","keyCode","onMouseOver","onMouseLeave","toString","isValidCount","count","isNaN","getStarCount","defaultValue","Math","round","parsed","parseInt","RatingEditor","field","starsCount","get","parameters","FieldConnector","throttle","isInitiallyDisabled","setValue","clearOption","Flex","flexDirection","marginTop","undefined","marginLeft","TextLink","as","defaultProps"],"mappings":"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"}
|