@ember-eui/core 1.6.7 → 1.6.10

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/CHANGELOG.md CHANGED
@@ -2,7 +2,15 @@
2
2
 
3
3
  ### Master
4
4
 
5
- ### 1.6.4
5
+ ### 1.6.10
6
+ 🐛 Bug / Fixes
7
+ `@ember-eui/core`
8
+ - `<EuiComboBox />` fixes to `onCreateOption`
9
+ ### 1.6.7
10
+ 🐛 Bug / Fixes
11
+ `@ember-eui/core`
12
+ - `<EuiComboBox />` Call `onChange` after `onCreateOption` is triggered
13
+ ### 1.6.5
6
14
  🐛 Bug / Fixes
7
15
  `@ember-eui/core`
8
16
  - `<EuiComboBox />` hide clear button when disabled
@@ -25,9 +25,8 @@
25
25
  singleSelection=@singleSelection
26
26
  onClose=@removeTag
27
27
  onCreateOption=(if
28
- @onCreateOption (pipe this.onCreateOption @onCreateOption)
28
+ @onCreateOption this.onCreateOption
29
29
  )
30
- isClearable=(and @isClearable (not @disabled))
31
30
  }}
32
31
  @matcher={{@matcher}}
33
32
  @initiallyOpen={{@initiallyOpen}}
@@ -51,7 +50,10 @@
51
50
  @triggerRole={{@triggerRole}}
52
51
  @title={{@title}}
53
52
  @triggerId={{@triggerId}}
54
- @allowClear={{and @isClearable (not @disabled)}}
53
+ @allowClear={{and
54
+ (arg-or-default @isClearable true)
55
+ (not (or @isDisabled @disabled))
56
+ }}
55
57
  @loadingMessage={{@loadingMessage}}
56
58
  @selectedItemComponent={{@selectedItemComponent}}
57
59
  @beforeOptionsComponent={{if
@@ -77,7 +79,7 @@
77
79
  (component
78
80
  "eui-combo-box/create-option"
79
81
  customOptionText=@customOptionText
80
- onCreateOption=(pipe this.onCreateOption @onCreateOption)
82
+ onCreateOption=this.onCreateOption
81
83
  select=this.select
82
84
  )
83
85
  (component "eui-combo-box/no-matches-message")
@@ -7,6 +7,7 @@ import { isEqual } from '@ember/utils';
7
7
 
8
8
  interface EuiComboBoxArgs {
9
9
  singleSelection: boolean;
10
+ onCreateOption?: (search: string) => boolean | undefined;
10
11
  }
11
12
 
12
13
  interface Select {
@@ -64,9 +65,19 @@ export default class EuiComboBoxComponent extends Component<EuiComboBoxArgs> {
64
65
 
65
66
  @action
66
67
  onCreateOption() {
67
- let search = this.select.searchText;
68
+ let option;
69
+ if (
70
+ this.args.onCreateOption &&
71
+ typeof this.args.onCreateOption === 'function'
72
+ ) {
73
+ // The `onCreateOption` function can be used to sanitize the input or explicitly return `false` to reject the input
74
+ option = this.args.onCreateOption(this.select.searchText);
75
+ if (option === false) {
76
+ return;
77
+ }
78
+ }
79
+ let search = option || this.select.searchText;
68
80
  this.select.actions.search('');
69
- this.select.actions.select(search);
70
81
  this.select.actions.close();
71
82
  return search;
72
83
  }
@@ -1,121 +1,118 @@
1
- {{#let (arg-or-default @isClearable true) as |isClearable|}}
2
- <EuiFormControlLayout
3
- @icon="arrowDown"
4
- @iconSide="right"
5
- @fullWidth={{@fullWidth}}
6
- @compressed={{@compressed}}
7
- @readOnly={{@readOnly}}
8
- @clear={{if
9
- (and @select.selected isClearable)
10
- (fn @select.actions.select (array))
11
- }}
12
- @disabled={{@select.disabled}}
13
- >
14
- <:field>
15
- {{! template-lint-disable }}
16
- <ul
17
- id="ember-power-select-multiple-options-{{@select.uniqueId}}"
18
- class={{class-names
19
- "euiComboBox__inputWrap ember-power-select-multiple-options"
20
- (if @compressed "euiComboBox__inputWrap--compressed")
21
- (if @fullWidth "euiComboBox__inputWrap--fullWidth")
22
- (if @singleSelection "euiComboBox__inputWrap--noWrap")
23
- (if @isLoading "euiComboBox__inputWrap--isLoading")
24
- (if isClearable "euiComboBox__inputWrap-isClearable")
25
- }}
26
- ...attributes
27
- {{did-update this.openChanged @select.isOpen}}
28
- {{on "touchstart" this.chooseOption}}
29
- {{on "mousedown" this.chooseOption}}
30
- >
31
- {{! template-lint-enable }}
32
- {{#if
33
- (or
34
- (and @singleSelection (not @select.searchText))
35
- (not @singleSelection)
36
- )
37
- }}
38
- {{#each @select.selected as |opt idx|}}
39
- {{#if @selectedItemComponent}}
40
- {{component
41
- @selectedItemComponent
42
- extra=@extra
43
- option=opt
44
- select=@select
1
+ <EuiFormControlLayout
2
+ @icon="arrowDown"
3
+ @iconSide="right"
4
+ @fullWidth={{@fullWidth}}
5
+ @compressed={{@compressed}}
6
+ @readOnly={{@readOnly}}
7
+ @clear={{if
8
+ (and @select.selected @allowClear)
9
+ (fn @select.actions.select (array))
10
+ }}
11
+ @disabled={{@select.disabled}}
12
+ >
13
+ <:field>
14
+ {{! template-lint-disable }}
15
+ <ul
16
+ id="ember-power-select-multiple-options-{{@select.uniqueId}}"
17
+ class={{class-names
18
+ "euiComboBox__inputWrap ember-power-select-multiple-options"
19
+ (if @compressed "euiComboBox__inputWrap--compressed")
20
+ (if @fullWidth "euiComboBox__inputWrap--fullWidth")
21
+ (if @singleSelection "euiComboBox__inputWrap--noWrap")
22
+ (if @isLoading "euiComboBox__inputWrap--isLoading")
23
+ (if @allowClear "euiComboBox__inputWrap-isClearable")
24
+ }}
25
+ ...attributes
26
+ {{did-update this.openChanged @select.isOpen}}
27
+ {{on "touchstart" this.chooseOption}}
28
+ {{on "mousedown" this.chooseOption}}
29
+ >
30
+ {{! template-lint-enable }}
31
+ {{#if
32
+ (or
33
+ (and @singleSelection (not @select.searchText)) (not @singleSelection)
34
+ )
35
+ }}
36
+ {{#each @select.selected as |opt idx|}}
37
+ {{#if @selectedItemComponent}}
38
+ {{component
39
+ @selectedItemComponent
40
+ extra=@extra
41
+ option=opt
42
+ select=@select
43
+ }}
44
+ {{else}}
45
+ <EuiComboBoxPill
46
+ class="ember-power-select-multiple-option
47
+ {{if
48
+ opt.disabled
49
+ "ember-power-select-multiple-option--disabled"
50
+ }}"
51
+ @option={{opt}}
52
+ @onClose={{if
53
+ (or @select.disabled @singleSelection)
54
+ false
55
+ (if @onClose (fn (optional @onClose) opt) true)
45
56
  }}
46
- {{else}}
47
- <EuiComboBoxPill
48
- class="ember-power-select-multiple-option
49
- {{if
50
- opt.disabled
51
- "ember-power-select-multiple-option--disabled"
52
- }}"
53
- @option={{opt}}
54
- @onClose={{if
55
- (or @select.disabled @singleSelection)
56
- false
57
- (if @onClose (fn (optional @onClose) opt) true)
58
- }}
59
- @dataSelectedIconIndex={{idx}}
60
- @color={{opt.color}}
61
- @asPlainText={{@singleSelection.asPlainText}}
62
- >
63
- {{yield opt @select}}
64
- </EuiComboBoxPill>
65
- {{/if}}
66
- {{else if (and @placeholder (not @searchEnabled))}}
67
- <span class="ember-power-select-placeholder">
68
- {{@placeholder}}
69
- </span>
70
- {{/each}}
71
- {{/if}}
72
- {{#if @searchEnabled}}
73
- {{! template-lint-disable }}
74
- {{#if (and this.maybePlaceholder (not @select.searchText))}}
75
- <p class="euiComboBoxPlaceholder">
76
- {{this.maybePlaceholder}}
77
- </p>
57
+ @dataSelectedIconIndex={{idx}}
58
+ @color={{opt.color}}
59
+ @asPlainText={{@singleSelection.asPlainText}}
60
+ >
61
+ {{yield opt @select}}
62
+ </EuiComboBoxPill>
78
63
  {{/if}}
79
- <div
80
- class="euiComboBox__input"
81
- style="font-size: 14px; display: inline-block; position: relative;"
82
- >
83
- <input
84
- tabindex="-1"
85
- style="opacity: 0px; width:0px; height:0px; position: absolute; top: 40%; border:solid 1px transparent !important; margin:0px !important;"
86
- class="fake-input-for-html-form-validity"
87
- {{validatable-control @isInvalid}}
88
- />
89
- <input
90
- class="ember-power-select-trigger-multiple-input euiComboBox__input"
91
- autocomplete="off"
92
- autocorrect="off"
93
- autocapitalize="off"
94
- spellcheck={{false}}
95
- id="ember-power-select-trigger-multiple-input-{{@select.uniqueId}}"
96
- value={{@select.searchText}}
97
- aria-controls={{@listboxId}}
98
- style={{this.triggerMultipleInputStyle}}
99
- disabled={{@select.disabled}}
100
- tabindex={{@tabindex}}
101
- form="power-select-fake-form"
102
- {{on "focus" @onFocus}}
103
- {{on "blur" @onBlur}}
104
- {{on "input" this.handleInput}}
105
- {{on "keydown" this.handleKeydown}}
106
- {{did-insert this.storeInputStyles}}
107
- />
108
- </div>
109
- {{! template-lint-enable }}
110
- {{else}}
111
- {{! template-lint-disable }}
112
- <div
113
- class="euiComboBox__input"
114
- style="font-size: 14px; display: inline-block;"
115
- ></div>
116
- {{! template-lint-enable }}
64
+ {{else if (and @placeholder (not @searchEnabled))}}
65
+ <span class="ember-power-select-placeholder">
66
+ {{@placeholder}}
67
+ </span>
68
+ {{/each}}
69
+ {{/if}}
70
+ {{#if @searchEnabled}}
71
+ {{! template-lint-disable }}
72
+ {{#if (and this.maybePlaceholder (not @select.searchText))}}
73
+ <p class="euiComboBoxPlaceholder">
74
+ {{this.maybePlaceholder}}
75
+ </p>
117
76
  {{/if}}
118
- </ul>
119
- </:field>
120
- </EuiFormControlLayout>
121
- {{/let}}
77
+ <div
78
+ class="euiComboBox__input"
79
+ style="font-size: 14px; display: inline-block; position: relative;"
80
+ >
81
+ <input
82
+ tabindex="-1"
83
+ style="opacity: 0px; width:0px; height:0px; position: absolute; top: 40%; border:solid 1px transparent !important; margin:0px !important;"
84
+ class="fake-input-for-html-form-validity"
85
+ {{validatable-control @isInvalid}}
86
+ />
87
+ <input
88
+ class="ember-power-select-trigger-multiple-input euiComboBox__input"
89
+ autocomplete="off"
90
+ autocorrect="off"
91
+ autocapitalize="off"
92
+ spellcheck={{false}}
93
+ id="ember-power-select-trigger-multiple-input-{{@select.uniqueId}}"
94
+ value={{@select.searchText}}
95
+ aria-controls={{@listboxId}}
96
+ style={{this.triggerMultipleInputStyle}}
97
+ disabled={{@select.disabled}}
98
+ tabindex={{@tabindex}}
99
+ form="power-select-fake-form"
100
+ {{on "focus" @onFocus}}
101
+ {{on "blur" @onBlur}}
102
+ {{on "input" this.handleInput}}
103
+ {{on "keydown" this.handleKeydown}}
104
+ {{did-insert this.storeInputStyles}}
105
+ />
106
+ </div>
107
+ {{! template-lint-enable }}
108
+ {{else}}
109
+ {{! template-lint-disable }}
110
+ <div
111
+ class="euiComboBox__input"
112
+ style="font-size: 14px; display: inline-block;"
113
+ ></div>
114
+ {{! template-lint-enable }}
115
+ {{/if}}
116
+ </ul>
117
+ </:field>
118
+ </EuiFormControlLayout>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-eui/core",
3
- "version": "1.6.7",
3
+ "version": "1.6.10",
4
4
  "description": "Ember Components for Elastic UI",
5
5
  "keywords": [
6
6
  "ember-addon",
@@ -154,5 +154,5 @@
154
154
  "volta": {
155
155
  "node": "12.22.1"
156
156
  },
157
- "gitHead": "5d61fda0cfa7b133f35ff8050f679ebccf399266"
157
+ "gitHead": "bef5d8048386f9a9e4050409a91241a5b85499eb"
158
158
  }