eslint-plugin-smarthr
Advanced tools
Comparing version 0.5.14 to 0.5.15
@@ -5,2 +5,14 @@ # Changelog | ||
### [0.5.15](https://github.com/kufu/eslint-plugin-smarthr/compare/v0.5.14...v0.5.15) (2024-09-10) | ||
### Features | ||
* a11y系ルールの対象にsmarthr-ui/TimePickerを追加する ([#146](https://github.com/kufu/eslint-plugin-smarthr/issues/146)) ([90d9bf4](https://github.com/kufu/eslint-plugin-smarthr/commit/90d9bf42d770026e7ebc9442096e677fab298841)) | ||
### Bug Fixes | ||
* README.md内のIncorrect examplesを修正 ([fe0f7d2](https://github.com/kufu/eslint-plugin-smarthr/commit/fe0f7d2b8bf9773a8ff7e962084093bc6441bcda)) | ||
### [0.5.14](https://github.com/kufu/eslint-plugin-smarthr/compare/v0.5.11...v0.5.14) (2024-07-02) | ||
@@ -7,0 +19,0 @@ |
{ | ||
"name": "eslint-plugin-smarthr", | ||
"version": "0.5.14", | ||
"version": "0.5.15", | ||
"author": "SmartHR", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
@@ -22,2 +22,3 @@ # eslint-plugin-smarthr | ||
- [best-practice-for-remote-trigger-dialog](https://github.com/kufu/eslint-plugin-smarthr/tree/main/rules/best-practice-for-remote-trigger-dialog) | ||
- [design-system-guideline-prohibit-double-icons](https://github.com/kufu/eslint-plugin-smarthr/tree/main/rules/design-system-guideline-prohibit-double-icons) | ||
- [format-import-path](https://github.com/kufu/eslint-plugin-smarthr/tree/main/rules/format-import-path) | ||
@@ -24,0 +25,0 @@ - [format-translate-component](https://github.com/kufu/eslint-plugin-smarthr/tree/main/rules/format-translate-component) |
@@ -12,2 +12,3 @@ const { generateTagFormatter } = require('../../libs/format_styled_components'); | ||
'DatePicker$': 'DatePicker$', | ||
'TimePicker$': 'TimePicker$', | ||
'DropZone$': 'DropZone$', | ||
@@ -14,0 +15,0 @@ 'Switch$': 'Switch$', |
@@ -13,2 +13,3 @@ const { generateTagFormatter } = require('../../libs/format_styled_components'); | ||
'DatePicker$': 'DatePicker$', | ||
'TimePicker$': 'TimePicker$', | ||
'DropZone$': 'DropZone$', | ||
@@ -15,0 +16,0 @@ } |
@@ -19,2 +19,3 @@ const { generateTagFormatter } = require('../../libs/format_styled_components') | ||
'DatePicker$': '(DatePicker)$', | ||
'TimePicker$': '(TimePicker)$', | ||
...EXPECTED_LABELED_INPUT_NAMES, | ||
@@ -21,0 +22,0 @@ } |
@@ -10,3 +10,5 @@ const { generateTagFormatter } = require('../../libs/format_styled_components') | ||
'DatePicker$': 'DatePicker$', | ||
'TimePicker$': 'TimePicker$', | ||
} | ||
const INPUT_TAG_REGEX = /((i|I)nput|(t|T)extarea|FieldSet|ComboBox|(Date|Time)Picker)$/ | ||
@@ -31,3 +33,3 @@ /** | ||
if (!name.match(/((i|I)nput|(t|T)extarea|FieldSet|ComboBox|DatePicker)$/)) { | ||
if (!name.match(INPUT_TAG_REGEX)) { | ||
return | ||
@@ -34,0 +36,0 @@ } |
@@ -24,11 +24,7 @@ # smarthr/design-system-guideline-prohibit-double-icons | ||
```jsx | ||
<Button>hoge</Button> | ||
<Button suffix={SUFFIX}>hoge</Button> | ||
<Button prefix="PREFIX">hoge</Button> | ||
<TextLink>hoge</TextLink> | ||
<TextLink suffix="SUFFIX">hoge</TextLink> | ||
<TextLink prefix={PREFIX}>hoge</TextLink> | ||
<StyledButton>hoge</StyledButton> | ||
<StyledLink>hoge</StyledLink> | ||
<Input prefix={PREFIX} suffix={SUFFIX} /> | ||
<Button suffix={SUFFIX} prefix={PREFIX}>hoge</Button> | ||
<Button suffix prefix>hoge</Button> | ||
<StyledButton suffix={undefined} prefix={null}>hoge</StyledButton> | ||
<Link prefix="PREFIX" suffix="SUFFIX">hoge</Link> | ||
<StyledLink prefix="PREFIX" suffix="SUFFIX">hoge</StyledLink> | ||
``` | ||
@@ -35,0 +31,0 @@ |
@@ -15,3 +15,3 @@ const rule = require('../rules/a11y-delegate-element-has-role-presentation'); | ||
const defaultInteractiveRegex = '/((i|I)nput$|(t|T)extarea$|(s|S)elect$|InputFile$|RadioButtonPanel$|Check(b|B)ox$|Combo(b|B)ox$|DatePicker$|DropZone$|Switch$|SegmentedControl$|RightFixedNote$|FieldSet$|Fieldset$|FormControl$|FormGroup$|(b|B)utton$|Anchor$|Link$|TabItem$|^a$|(f|F)orm$|ActionDialogWithTrigger$|RemoteDialogTrigger$|RemoteTrigger(.+)Dialog$|FormDialog$|Pagination$|SideNav$|AccordionPanel$|FilterDropdown$)/' | ||
const defaultInteractiveRegex = '/((i|I)nput$|(t|T)extarea$|(s|S)elect$|InputFile$|RadioButtonPanel$|Check(b|B)ox$|Combo(b|B)ox$|DatePicker$|TimePicker$|DropZone$|Switch$|SegmentedControl$|RightFixedNote$|FieldSet$|Fieldset$|FormControl$|FormGroup$|(b|B)utton$|Anchor$|Link$|TabItem$|^a$|(f|F)orm$|ActionDialogWithTrigger$|RemoteDialogTrigger$|RemoteTrigger(.+)Dialog$|FormDialog$|Pagination$|SideNav$|AccordionPanel$|FilterDropdown$)/' | ||
const messageNonInteractiveEventHandler = (nodeName, onAttrs, interactiveComponentRegex = defaultInteractiveRegex) => { | ||
@@ -71,3 +71,3 @@ const onAttrsText = onAttrs.join(', ') | ||
{ code: '<Wrapper onClick={any}><Link /></Wrapper>', errors: [ { message: messageNonInteractiveEventHandler('Wrapper', ['onClick']) } ] }, | ||
{ code: '<Wrapper onSubmit={any}><Hoge /></Wrapper>', options: [{ additionalInteractiveComponentRegex: ['^Hoge$'] }], errors: [ { message: messageNonInteractiveEventHandler('Wrapper', ['onSubmit'], '/((i|I)nput$|(t|T)extarea$|(s|S)elect$|InputFile$|RadioButtonPanel$|Check(b|B)ox$|Combo(b|B)ox$|DatePicker$|DropZone$|Switch$|SegmentedControl$|RightFixedNote$|FieldSet$|Fieldset$|FormControl$|FormGroup$|(b|B)utton$|Anchor$|Link$|TabItem$|^a$|(f|F)orm$|ActionDialogWithTrigger$|RemoteDialogTrigger$|RemoteTrigger(.+)Dialog$|FormDialog$|Pagination$|SideNav$|AccordionPanel$|FilterDropdown$|^Hoge$)/') } ] }, | ||
{ code: '<Wrapper onSubmit={any}><Hoge /></Wrapper>', options: [{ additionalInteractiveComponentRegex: ['^Hoge$'] }], errors: [ { message: messageNonInteractiveEventHandler('Wrapper', ['onSubmit'], '/((i|I)nput$|(t|T)extarea$|(s|S)elect$|InputFile$|RadioButtonPanel$|Check(b|B)ox$|Combo(b|B)ox$|DatePicker$|TimePicker$|DropZone$|Switch$|SegmentedControl$|RightFixedNote$|FieldSet$|Fieldset$|FormControl$|FormGroup$|(b|B)utton$|Anchor$|Link$|TabItem$|^a$|(f|F)orm$|ActionDialogWithTrigger$|RemoteDialogTrigger$|RemoteTrigger(.+)Dialog$|FormDialog$|Pagination$|SideNav$|AccordionPanel$|FilterDropdown$|^Hoge$)/') } ] }, | ||
{ code: '<Wrapper onClick={any} onChange={anyany}><any><Link /></any></Wrapper>', errors: [ { message: messageNonInteractiveEventHandler('Wrapper', ['onClick', 'onChange']) } ] }, | ||
@@ -74,0 +74,0 @@ { code: '<Wrapper onClick={any}>{any ? null : (hoge ? <AnyLink /> : null)}</Wrapper>', errors: [ { message: messageNonInteractiveEventHandler('Wrapper', ['onClick']) } ] }, |
@@ -18,3 +18,3 @@ const rule = require('../rules/a11y-input-in-form-control') | ||
- ${name}が入力要素とラベル・タイトル・説明など含む概念を表示するコンポーネントの場合、コンポーネント名を/((FormGroup)$|(FormControl)$|((F|^f)ieldset)$)/とマッチするように修正してください | ||
- ${name}が入力要素自体を表現するコンポーネントの一部である場合、ルートとなるコンポーネントの名称を/((I|^i)nput$|SearchInput$|(T|^t)extarea$|(S|^s)elect$|InputFile$|Combo(b|B)ox$|DatePicker$|RadioButton$|RadioButtons$|RadioButtonPanel$|RadioButtonPanels$|Check(B|b)ox$|Check(B|b)ox(e)?s$)/とマッチするように修正してください | ||
- ${name}が入力要素自体を表現するコンポーネントの一部である場合、ルートとなるコンポーネントの名称を/((I|^i)nput$|SearchInput$|(T|^t)extarea$|(S|^s)elect$|InputFile$|Combo(b|B)ox$|DatePicker$|TimePicker$|RadioButton$|RadioButtons$|RadioButtonPanel$|RadioButtonPanels$|Check(B|b)ox$|Check(B|b)ox(e)?s$)/とマッチするように修正してください | ||
- 上記のいずれの方法も適切ではない場合、${name}のtitle属性に "どんな値を入力すれば良いのか" の説明を設定してください | ||
@@ -25,3 +25,3 @@ - 例: <${name} title="姓を全角カタカナのみで入力してください" />` | ||
- ${name}が入力要素とラベル・タイトル・説明など含む概念を表示するコンポーネントの場合、コンポーネント名を/((FormGroup)$|(FormControl)$|((F|^f)ieldset)$)/とマッチするように修正してください | ||
- ${name}が入力要素自体を表現するコンポーネントの一部である場合、ルートとなるコンポーネントの名称を/((I|^i)nput$|SearchInput$|(T|^t)extarea$|(S|^s)elect$|InputFile$|Combo(b|B)ox$|DatePicker$|RadioButton$|RadioButtons$|RadioButtonPanel$|RadioButtonPanels$|Check(B|b)ox$|Check(B|b)ox(e)?s$)/とマッチするように修正してください | ||
- ${name}が入力要素自体を表現するコンポーネントの一部である場合、ルートとなるコンポーネントの名称を/((I|^i)nput$|SearchInput$|(T|^t)extarea$|(S|^s)elect$|InputFile$|Combo(b|B)ox$|DatePicker$|TimePicker$|RadioButton$|RadioButtons$|RadioButtonPanel$|RadioButtonPanels$|Check(B|b)ox$|Check(B|b)ox(e)?s$)/とマッチするように修正してください | ||
- 上記のいずれの方法も適切ではない場合、${name}のtitle属性に "どんな値を選択すれば良いのか" の説明を設定してください | ||
@@ -81,3 +81,3 @@ - 例: <${name} title="検索対象を選択してください" />` | ||
const requireMultiInputInFormControlWithRoleGroup = () => `HogeFormControl内に入力要素が2個以上存在しないため、'role=\"group\"'を削除してください。'role=\"group\"'は複数の入力要素を一つのグループとして扱うための属性です。 | ||
- HogeFormControl内に2つ以上の入力要素が存在する場合、入力要素を含むコンポーネント名全てを/((I|^i)nput$|SearchInput$|(T|^t)extarea$|(S|^s)elect$|InputFile$|Combo(b|B)ox$|DatePicker$|RadioButton$|RadioButtons$|RadioButtonPanel$|RadioButtonPanels$|Check(B|b)ox$|Check(B|b)ox(e)?s$)/、もしくは/((FormGroup)$|(FormControl)$|((F|^f)ieldset)$)/にマッチする名称に変更してください` | ||
- HogeFormControl内に2つ以上の入力要素が存在する場合、入力要素を含むコンポーネント名全てを/((I|^i)nput$|SearchInput$|(T|^t)extarea$|(S|^s)elect$|InputFile$|Combo(b|B)ox$|DatePicker$|TimePicker$|RadioButton$|RadioButtons$|RadioButtonPanel$|RadioButtonPanels$|Check(B|b)ox$|Check(B|b)ox(e)?s$)/、もしくは/((FormGroup)$|(FormControl)$|((F|^f)ieldset)$)/にマッチする名称に変更してください` | ||
@@ -84,0 +84,0 @@ ruleTester.run('a11y-input-in-form-control', rule, { |
@@ -44,2 +44,3 @@ const rule = require('../rules/a11y-prohibit-input-placeholder') | ||
{ code: `<DatePicker />` }, | ||
{ code: `<TimePicker />` }, | ||
{ code: `<CustomSearchInput tooltipMessage="hoge" />` }, | ||
@@ -46,0 +47,0 @@ { code: `<CustomSearchInput tooltipMessage="hoge" placeholder="fuga" />` }, |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
413678
5930
36