Skip to content

Commit 36818c4

Browse files
committed
[dropdown] fix css & disabled state
1 parent 8bf0a00 commit 36818c4

File tree

4 files changed

+33
-6
lines changed

4 files changed

+33
-6
lines changed

demo/src/docs/components/dropdown/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,6 @@ export class Dropdown {
1212

1313
fruits = ['Mango', 'Durian', 'Apple', 'Orange']
1414

15+
allowEdit = true
16+
1517
}
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
11
div
22
ui-form
33
ui-fields-inline(label='Default')
4-
ui-dropdown(v-model='choosen', name='chooser', default-text='Please make a choice!')
4+
ui-dropdown(v-model='choosen', name='chooser', default-text='Please make a choice!', :disabled="!allowEdit")
55
ui-dropdown-item(value='first') First Choice
66
ui-dropdown-item(value='two') Second Choice
77
ui-dropdown-item(value='three') Third Choice
88
ui-field(label='Choosen:')
99
| {{choosen}}
1010
ui-fields-inline(label='Search')
11-
ui-dropdown(:search='true', v-model='choosen', name='chooser', default-text='Please make a choice!')
11+
ui-dropdown(:search='true', v-model='choosen', name='chooser', default-text='Please make a choice!', :disabled="!allowEdit")
1212
ui-dropdown-item(value='first') First Choice
1313
ui-dropdown-item(value='two') Second Choice
1414
ui-dropdown-item(value='three') Third Choice
1515
ui-field(label='Choosen:')
1616
| {{choosen}}
1717
ui-fields-inline(label='Multiple')
18-
ui-dropdown(:multiple='true', v-model='selection', name='chooser', default-text='Please select your favorite fruits')
18+
ui-dropdown(:multiple='true', v-model='selection', name='chooser', default-text='Please select your favorite fruits', :disabled="!allowEdit")
1919
ui-dropdown-item(v-for='f in fruits', :value='f') {{f}}
2020
ui-field(:label="'Choosen (' + selection.length + '):'")
2121
| {{selection}}
2222
ui-fields-inline(label='Multiple Search')
23-
ui-dropdown(:search='true', :multiple='true', v-model='selection', name='chooser', default-text='Please select your favorite fruits')
23+
ui-dropdown(:search='true', :multiple='true', v-model='selection', name='chooser', default-text='Please select your favorite fruits', :disabled="!allowEdit")
2424
ui-dropdown-item(v-for='f in fruits', :value='f') {{f}}
2525
ui-field(:label="'Choosen (' + selection.length + '):'")
2626
| {{selection}}
27+
ui-checkbox(v-model='allowEdit') Allow editing

dist/vue-typed-ui.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1472,7 +1472,8 @@ var Dropdown = function (_DropdownBase2) {
14721472
createClass(Dropdown, [{
14731473
key: 'createComponent',
14741474
value: function createComponent(ch) {
1475-
var css = 'ui selection dropdown ' + this.css;
1475+
var css = 'ui selection dropdown';
1476+
if (this.css) css += ' ' + this.css;
14761477
return ch('div', { 'class': css }, [ch('input', { attrs: { type: 'hidden', name: this.name } }), ch('i', { 'class': 'dropdown icon' }), ch('div', { 'class': 'default text' }, this.placeholder), ch('div', { 'class': 'menu' }, this.$slots['default'])]);
14771478
}
14781479
}, {
@@ -1515,6 +1516,13 @@ var Dropdown = function (_DropdownBase2) {
15151516
// assign selected values
15161517
this.valueChanged(this.value);
15171518
}
1519+
}, {
1520+
key: 'disabledChanged',
1521+
value: function disabledChanged(val) {
1522+
var el = $(this.$el.querySelector('.ui.dropdown'));
1523+
if (val) el.addClass('disabled');else el.removeClass('disabled');
1524+
this.sui('refresh');
1525+
}
15181526
}, {
15191527
key: 'valueChanged',
15201528
value: function valueChanged(val) {
@@ -1539,6 +1547,7 @@ var Dropdown = function (_DropdownBase2) {
15391547
}]);
15401548
return Dropdown;
15411549
}(_DropdownBase);
1550+
__decorate([vueTyped.Watch('disabled')], Dropdown.prototype, "disabledChanged", null);
15421551
__decorate([vueTyped.Watch('value')], Dropdown.prototype, "valueChanged", null);
15431552
Dropdown = __decorate([vueTyped.Component()], Dropdown);
15441553

src/components/form-inputs/dropdown/index.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@ export class Dropdown extends _DropdownBase {
1111
selectedItems = undefined
1212

1313
createComponent(ch) {
14-
let css = 'ui selection dropdown ' + this.css
14+
let css = 'ui selection dropdown'
15+
16+
if (this.css)
17+
css += ' ' + this.css
18+
1519
return ch('div', { 'class': css }, [
1620
ch('input', { attrs: { type: 'hidden', name: this.name } }),
1721
ch('i', { 'class': 'dropdown icon' }),
@@ -70,6 +74,17 @@ export class Dropdown extends _DropdownBase {
7074

7175
}
7276

77+
@Watch('disabled')
78+
disabledChanged(val) {
79+
let el = $(this.$el.querySelector('.ui.dropdown'))
80+
if (val)
81+
el.addClass('disabled')
82+
else
83+
el.removeClass('disabled')
84+
85+
this.sui('refresh')
86+
}
87+
7388
@Watch('value')
7489
valueChanged(val) {
7590
if (val === null || val === undefined) {

0 commit comments

Comments
 (0)