chore: 🤖 add contextual radio/radio group components
This commit is contained in:
11 files changed
+159
-3
No files matched your search
@@ -0,0 +1,8 @@
|
||||
import Component from '@ember/component';
|
||||
import layout from '../../../../templates/components/rose/form/radio/group';
|
||||
|
||||
export default Component.extend({
|
||||
layout,
|
||||
|
||||
tagName: ''
|
||||
});
|
||||
@@ -0,0 +1,20 @@
|
||||
import Component from '@ember/component';
|
||||
import layout from '../../../../templates/components/rose/form/radio/radio';
|
||||
|
||||
/**
|
||||
* A HTML `<input type="radio">` element.
|
||||
*
|
||||
* @example
|
||||
* <Rose::Form::Radio
|
||||
* @id="fieldId"
|
||||
* @label="label"
|
||||
* name="fieldName"
|
||||
* disabled={{true}}
|
||||
* @checked={{true}}
|
||||
* @error={{true}}
|
||||
* />
|
||||
*/
|
||||
export default Component.extend({
|
||||
layout,
|
||||
tagName: '',
|
||||
});
|
||||
@@ -0,0 +1,3 @@
|
||||
{{yield (hash
|
||||
radio=(component 'rose/form/radio/radio' name=@name variable=@variable)
|
||||
)}}
|
||||
@@ -0,0 +1,18 @@
|
||||
<div class="rose-form-radio{{if @error " error"}}">
|
||||
|
||||
<RadioButton
|
||||
...attributes
|
||||
@radioClass="rose-form-radio-field"
|
||||
@radioId={{@id}}
|
||||
type="radio"
|
||||
@name={{@name}}
|
||||
@value={{@value}}
|
||||
@groupValue={{@variable}} />
|
||||
|
||||
<label class="rose-form-radio-label" for={{@id}}>
|
||||
{{@label}}
|
||||
</label>
|
||||
|
||||
{{yield}}
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
export { default } from 'rose/components/rose/form/radio/group';
|
||||
@@ -0,0 +1 @@
|
||||
export { default } from 'rose/components/rose/form/radio/radio';
|
||||
@@ -120,6 +120,25 @@ Dummy app index template
|
||||
/>
|
||||
|
||||
<h2>Radio</h2>
|
||||
|
||||
<Rose::Form::Radio::Group @name="color" @variable="green" as |radioGroup|>
|
||||
<radioGroup.radio
|
||||
@id="red-radio"
|
||||
@label="Red"
|
||||
@value="red"
|
||||
/>
|
||||
<radioGroup.radio
|
||||
@id="green-radio"
|
||||
@label="Green"
|
||||
@value="green"
|
||||
/>
|
||||
<radioGroup.radio
|
||||
@id="blue-radio"
|
||||
@label="Blue"
|
||||
@value="blue"
|
||||
/>
|
||||
</Rose::Form::Radio::Group>
|
||||
|
||||
<Rose::Form::Radio
|
||||
@id="radio-1"
|
||||
@label="Label"
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
"ember-load-initializers": "^2.1.1",
|
||||
"ember-maybe-import-regenerator": "^0.1.6",
|
||||
"ember-qunit": "^4.6.0",
|
||||
"ember-radio-button": "^2.0.1",
|
||||
"ember-resolver": "^7.0.0",
|
||||
"ember-source": "~3.12.0",
|
||||
"ember-source-channel-url": "^2.0.1",
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupRenderingTest } from 'ember-qunit';
|
||||
import { render } from '@ember/test-helpers';
|
||||
import hbs from 'htmlbars-inline-precompile';
|
||||
|
||||
module('Integration | Component | rose/form/radio/group', function(hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test('it renders', async function(assert) {
|
||||
// Set any properties with this.set('myProperty', 'value');
|
||||
// Handle any actions with this.set('myAction', function(val) { ... });
|
||||
|
||||
await render(hbs`{{rose/form/radio/group}}`);
|
||||
|
||||
assert.equal(this.element.textContent.trim(), '');
|
||||
|
||||
// Template block usage:
|
||||
await render(hbs`
|
||||
{{#rose/form/radio/group}}
|
||||
template block text
|
||||
{{/rose/form/radio/group}}
|
||||
`);
|
||||
|
||||
assert.equal(this.element.textContent.trim(), 'template block text');
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,26 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupRenderingTest } from 'ember-qunit';
|
||||
import { render } from '@ember/test-helpers';
|
||||
import hbs from 'htmlbars-inline-precompile';
|
||||
|
||||
module('Integration | Component | rose/form/radio/radio', function(hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test('it renders', async function(assert) {
|
||||
// Set any properties with this.set('myProperty', 'value');
|
||||
// Handle any actions with this.set('myAction', function(val) { ... });
|
||||
|
||||
await render(hbs`{{rose/form/radio/radio}}`);
|
||||
|
||||
assert.equal(this.element.textContent.trim(), '');
|
||||
|
||||
// Template block usage:
|
||||
await render(hbs`
|
||||
{{#rose/form/radio/radio}}
|
||||
template block text
|
||||
{{/rose/form/radio/radio}}
|
||||
`);
|
||||
|
||||
assert.equal(this.element.textContent.trim(), 'template block text');
|
||||
});
|
||||
});
|
||||
@@ -4204,7 +4204,7 @@ broccoli-output-wrapper@^3.2.1:
|
||||
heimdalljs-logger "^0.1.10"
|
||||
symlink-or-copy "^1.2.0"
|
||||
|
||||
broccoli-persistent-filter@^1.1.6, broccoli-persistent-filter@^1.4.3:
|
||||
broccoli-persistent-filter@^1.0.3, broccoli-persistent-filter@^1.1.6, broccoli-persistent-filter@^1.4.3:
|
||||
version "1.4.6"
|
||||
resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-1.4.6.tgz#80762d19000880a77da33c34373299c0f6a3e615"
|
||||
integrity sha512-0RejLwoC95kv4kta8KAa+FmECJCK78Qgm8SRDEK7YyU0N9Cx6KpY3UCDy9WELl3mCXLN8TokNxc7/hp3lL4lfw==
|
||||
@@ -6226,7 +6226,7 @@ ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.0:
|
||||
resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.1.0.tgz#de3baedd093163b6c2461f95964888c1676325ac"
|
||||
integrity sha512-Zr4my8Xn+CzO0gIuFNXji0eTRml5AxZUTDQz/wsNJ5AJAtyFWCY4QtKdoELNNbiCVGt1lq5yLiwTm4scGKu6xA==
|
||||
|
||||
ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.16.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.1:
|
||||
ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.16.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.1, ember-cli-babel@^6.9.2:
|
||||
version "6.18.0"
|
||||
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.18.0.tgz#3f6435fd275172edeff2b634ee7b29ce74318957"
|
||||
integrity sha512-7ceC8joNYxY2wES16iIBlbPSxwKDBhYwC8drU3ZEvuPDMwVv1KzxCNu1fvxyFEBWhwaRNTUxSCsEVoTd9nosGA==
|
||||
@@ -6314,6 +6314,17 @@ ember-cli-htmlbars-inline-precompile@^2.1.0:
|
||||
heimdalljs-logger "^0.1.9"
|
||||
silent-error "^1.1.0"
|
||||
|
||||
ember-cli-htmlbars@^1.1.1:
|
||||
version "1.3.5"
|
||||
resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-1.3.5.tgz#65be9678b274b5e7861d7f75c188780af7ef9d13"
|
||||
integrity sha512-Qur/anb0Vk57qmIhGLkSzl8X1QIMoae6pLa14MRQ8+YD2N5fNs3qdhEFf0SDBquPOH1QxQtraiNQvji47QBJyg==
|
||||
dependencies:
|
||||
broccoli-persistent-filter "^1.0.3"
|
||||
ember-cli-version-checker "^1.0.2"
|
||||
hash-for-dep "^1.0.2"
|
||||
json-stable-stringify "^1.0.0"
|
||||
strip-bom "^2.0.0"
|
||||
|
||||
ember-cli-htmlbars@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-3.1.0.tgz#87806c2a0bca2ab52d4fb8af8e2215c1ca718a99"
|
||||
@@ -6473,6 +6484,13 @@ ember-cli-uglify@^3.0.0:
|
||||
broccoli-uglify-sourcemap "^3.1.0"
|
||||
lodash.defaultsdeep "^4.6.0"
|
||||
|
||||
ember-cli-version-checker@^1.0.2:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-1.3.1.tgz#0bc2d134c830142da64bf9627a0eded10b61ae72"
|
||||
integrity sha1-C8LRNMgwFC2mS/lieg7e0QthrnI=
|
||||
dependencies:
|
||||
semver "^5.3.0"
|
||||
|
||||
ember-cli-version-checker@^2.0.0, ember-cli-version-checker@^2.1.0, ember-cli-version-checker@^2.1.1, ember-cli-version-checker@^2.1.2:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-2.2.0.tgz#47771b731fe0962705e27c8199a9e3825709f3b3"
|
||||
@@ -6662,6 +6680,14 @@ ember-qunit@^4.6.0:
|
||||
ember-cli-test-loader "^2.2.0"
|
||||
qunit "^2.9.3"
|
||||
|
||||
ember-radio-button@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/ember-radio-button/-/ember-radio-button-2.0.1.tgz#f081a44d581a4b1db88fef79ec5c47da712ab963"
|
||||
integrity sha512-cAAyFgNIM3PquowkWfa0lOSlq4PPst9vpkNiLi5yhd1LJ4lVtwgn6s+OpPXWKJLZdig2m31PWU8jxobcubge5w==
|
||||
dependencies:
|
||||
ember-cli-babel "^6.9.2"
|
||||
ember-cli-htmlbars "^1.1.1"
|
||||
|
||||
ember-resolver@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ember-resolver/-/ember-resolver-7.0.0.tgz#07ca86b3bae373395b44bba784b8c133f75d61c2"
|
||||
@@ -9543,7 +9569,7 @@ is-typedarray@^1.0.0, is-typedarray@~1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
|
||||
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
|
||||
|
||||
is-utf8@^0.2.1:
|
||||
is-utf8@^0.2.0, is-utf8@^0.2.1:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
|
||||
integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
|
||||
@@ -13956,6 +13982,13 @@ strip-bom@4.0.0, strip-bom@^4.0.0:
|
||||
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
|
||||
integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
|
||||
|
||||
strip-bom@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
|
||||
integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
|
||||
dependencies:
|
||||
is-utf8 "^0.2.0"
|
||||
|
||||
strip-bom@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
|
||||
|
||||
Reference in new issue
Block a user