Skip to content

Commit 588f5f0

Browse files
author
Pablo Henrique
authored
Merge pull request vuematerial#578 from romangit/develop
md-error possibility and remove required chip-template within md-chips
2 parents 7823c37 + f2baf69 commit 588f5f0

File tree

3 files changed

+61
-20
lines changed

3 files changed

+61
-20
lines changed

docs/src/pages/components/Chips.vue

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -161,16 +161,12 @@
161161

162162
<example-box card-title="Static">
163163
<div slot="demo">
164-
<md-chips v-model="fruits" md-static>
165-
<template scope="chip">{{ chip.value }}</template>
166-
</md-chips>
164+
<md-chips v-model="fruits" md-static></md-chips>
167165
</div>
168166

169167
<div slot="code">
170168
<code-block lang="xml">
171-
&lt;md-chips v-model=&quot;fruits&quot; md-static&gt;
172-
&lt;template scope=&quot;chip&quot;&gt;{{ '{{ chip.value }\}' }}&lt;/template&gt;
173-
&lt;/md-chips&gt;
169+
&lt;md-chips v-model=&quot;fruits&quot; md-static&gt;&lt;/md-chips&gt;
174170
</code-block>
175171

176172
<code-block lang="javascript">
@@ -185,15 +181,35 @@
185181

186182
<example-box card-title="Editable">
187183
<div slot="demo">
188-
<md-chips v-model="contacts" md-input-placeholder="Add a contact">
189-
<template scope="chip">{{ chip.value }}</template>
184+
<md-chips v-model="contacts" md-input-placeholder="Add a contact"></md-chips>
185+
</div>
186+
187+
<div slot="code">
188+
<code-block lang="xml">
189+
&lt;md-chips v-model=&quot;contacts&quot; md-input-placeholder=&quot;Add a contact&quot;&gt;&lt;/md-chips&gt;
190+
</code-block>
191+
192+
<code-block lang="javascript">
193+
export default {
194+
data: () => ({
195+
contacts: ['Marcos Moura'],
196+
})
197+
};
198+
</code-block>
199+
</div>
200+
</example-box>
201+
202+
<example-box card-title="Errors">
203+
<div slot="demo">
204+
<md-chips v-model="contacts" md-input-placeholder="Add a contact" class="md-input-invalid">
205+
<span class="md-error">Validation message</span>
190206
</md-chips>
191207
</div>
192208

193209
<div slot="code">
194210
<code-block lang="xml">
195-
&lt;md-chips v-model=&quot;contacts&quot; md-input-placeholder=&quot;Add a contact&quot;&gt;
196-
&lt;template scope=&quot;chip&quot;&gt;{{ '{{ chip.value }\}' }}&lt;/template&gt;
211+
&lt;md-chips v-model=&quot;contacts&quot; md-input-placeholder=&quot;Add a contact&quot; class=&quot;md-input-invalid&quot;&gt;
212+
&lt;span class=&quot;md-error&quot;&gt;Validation message&lt;/span&gt;
197213
&lt;/md-chips&gt;
198214
</code-block>
199215

@@ -207,10 +223,10 @@
207223
</div>
208224
</example-box>
209225

210-
<example-box card-title="Limit">
226+
<example-box card-title="Custom chip and Limit">
211227
<div slot="demo">
212228
<md-chips v-model="cities" :md-max="5" md-input-placeholder="Cities...">
213-
<template scope="chip">
229+
<template scope="chip" slot="chip">
214230
<span>{{ chip.value }}</span>
215231
<small v-if="chip.value === 'Amsterdam'">(favorite)</small>
216232
</template>
@@ -220,7 +236,7 @@
220236
<div slot="code">
221237
<code-block lang="xml">
222238
&lt;md-chips v-model=&quot;cities&quot; :md-max=&quot;5&quot; md-input-placeholder=&quot;Cities...&quot;&gt;
223-
&lt;template scope=&quot;chip&quot;&gt;
239+
&lt;template scope=&quot;chip&quot; slot=&quot;chip&quot;&gt;
224240
&lt;span&gt;{{ '{{ chip.value }\}' }}&lt;/span&gt;
225241
&lt;small v-if=&quot;chip.value === &#039;Amsterdam&#039;&quot;&gt;(favorite)&lt;/small&gt;
226242
&lt;/template&gt;

src/components/mdChips/mdChips.scss

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,15 @@ $chip-icon-font: $chip-icon-size - 4px;
7575
}
7676

7777
.md-chips {
78+
min-height: 54px;
79+
display: flex;
80+
flex-wrap: wrap;
81+
7882
.md-chip {
7983
margin-right: 8px;
8084
margin-bottom: 4px;
8185
}
8286

83-
.md-input-container {
84-
min-height: 54px;
85-
display: flex;
86-
flex-wrap: wrap;
87-
}
88-
8987
.md-input {
9088
width: 128px;
9189
flex: 1;

src/components/mdChips/mdChips.vue

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,30 @@
11
<template>
2+
<md-input-container :class="[themeClass, classes]" @click.native="applyInputFocus">
3+
<md-chip
4+
v-for="chip in selectedChips"
5+
:md-deletable="!mdStatic"
6+
:disabled="disabled"
7+
@delete="deleteChip(chip)">
8+
<slot name="chip" :value="chip">{{ chip }}</slot>
9+
</md-chip>
10+
11+
<md-input
12+
v-show="!mdStatic"
13+
v-model="currentChip"
14+
:type="mdInputType"
15+
:placeholder="mdInputPlaceholder"
16+
:id="inputId"
17+
:name="mdInputName"
18+
:disabled="disabled"
19+
@keydown.native.delete="deleteLastChip"
20+
@keydown.native.prevent.enter="addChip"
21+
@keydown.native.prevent.186="addChip"
22+
tabindex="0"
23+
ref="input">
24+
</md-input>
25+
26+
<slot></slot>
27+
</md-input-container>
228
<div class="md-chips" :class="[themeClass, classes]">
329
<md-input-container @click.native="applyInputFocus">
430
<md-chip
@@ -69,7 +95,8 @@
6995
classes() {
7096
return {
7197
'md-static': this.mdStatic,
72-
'md-disabled': this.disabled
98+
'md-disabled': this.disabled,
99+
'md-chips': true
73100
};
74101
}
75102
},

0 commit comments

Comments
 (0)