@atlassian/aui 9.9.6 → 9.9.7
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/LICENSE +1 -1
- package/README.md +7 -9
- package/dist/aui/aui-css-deprecations.js.map +1 -1
- package/dist/aui/aui-prototyping-browserfocus.css +2 -651
- package/dist/aui/aui-prototyping-browserfocus.css.map +1 -0
- package/dist/aui/aui-prototyping-darkmode.css +2 -285
- package/dist/aui/aui-prototyping-darkmode.css.map +1 -0
- package/dist/aui/aui-prototyping-design-tokens-api-full.js +1 -1
- package/dist/aui/aui-prototyping-design-tokens-api-full.js.map +1 -1
- package/dist/aui/aui-prototyping-design-tokens-api.js +1 -1
- package/dist/aui/aui-prototyping-design-tokens-api.js.map +1 -1
- package/dist/aui/aui-prototyping-design-tokens-base-themes-css.css +2 -2
- package/dist/aui/aui-prototyping-design-tokens-base-themes-css.css.map +1 -1
- package/dist/aui/aui-prototyping-design-tokens-base-themes-css.js +1 -1
- package/dist/aui/aui-prototyping-design-tokens-base-themes.js +1 -1
- package/dist/aui/aui-prototyping-design-tokens-compatibility.css +2 -115
- package/dist/aui/aui-prototyping-design-tokens-compatibility.css.map +1 -0
- package/dist/aui/aui-prototyping.css +10 -10
- package/dist/aui/aui-prototyping.css.map +1 -1
- package/dist/aui/aui-prototyping.js +4 -4
- package/dist/aui/aui-prototyping.js.map +1 -1
- package/dist/aui/aui-prototyping.nodeps.css +10 -10
- package/dist/aui/aui-prototyping.nodeps.css.map +1 -1
- package/dist/aui/aui-prototyping.nodeps.js +4 -4
- package/dist/aui/aui-prototyping.nodeps.js.map +1 -1
- package/dist/aui/fonts/adgs-icons.eot +0 -0
- package/dist/aui/fonts/adgs-icons.ttf +0 -0
- package/dist/aui/fonts/adgs-icons.woff +0 -0
- package/entry/aui.batch.components.js +23 -23
- package/entry/aui.batch.page.js +3 -3
- package/entry/aui.batch.patterns.js +20 -20
- package/entry/aui.batch.prototyping.js +3 -11
- package/entry/aui.component.nav.js +1 -1
- package/entry/aui.component.progressbar.js +4 -1
- package/entry/aui.side-effects.js +2 -2
- package/entry/behaviours/aui.behaviour.format.js +1 -1
- package/entry/behaviours/aui.behaviour.i18n.js +1 -1
- package/entry/behaviours/aui.behaviour.keyboard-shortcuts.js +1 -1
- package/entry/behaviours/aui.behaviour.progressive-data-set.js +1 -1
- package/entry/behaviours/aui.behaviour.version.js +1 -1
- package/entry/deprecated/aui.component.inline-dialog1.js +1 -1
- package/entry/styles/aui-design-tokens-compatibility.less +114 -115
- package/package.json +3 -7
- package/src/js/aui/alphanum.js +1 -1
- package/src/js/aui/avatar-badged.js +4 -5
- package/src/js/aui/avatar-group.js +58 -28
- package/src/js/aui/avatar.js +16 -14
- package/src/js/aui/banner.js +5 -4
- package/src/js/aui/blanket.js +11 -14
- package/src/js/aui/button.js +5 -5
- package/src/js/aui/checkbox-multiselect.js +79 -76
- package/src/js/aui/clone.js +1 -1
- package/src/js/aui/close-button.js +2 -6
- package/src/js/aui/contain-dropdown.js +5 -5
- package/src/js/aui/contains.js +1 -1
- package/src/js/aui/cookie.js +12 -16
- package/src/js/aui/date-picker.js +84 -69
- package/src/js/aui/debounce.js +5 -8
- package/src/js/aui/design-tokens/design-tokens-full.js +4 -13
- package/src/js/aui/design-tokens/design-tokens-init.js +3 -5
- package/src/js/aui/design-tokens/design-tokens-testing-theme.js +12 -18
- package/src/js/aui/design-tokens/design-tokens.js +2 -4
- package/src/js/aui/dialog.js +206 -172
- package/src/js/aui/dialog2.js +36 -25
- package/src/js/aui/dropdown2.js +221 -189
- package/src/js/aui/escape-html.js +2 -2
- package/src/js/aui/escape.js +1 -1
- package/src/js/aui/event.js +4 -8
- package/src/js/aui/expander.js +15 -13
- package/src/js/aui/flag.js +14 -16
- package/src/js/aui/focus-manager.js +19 -18
- package/src/js/aui/form-notification.js +15 -14
- package/src/js/aui/form-validation/basic-validators.js +39 -30
- package/src/js/aui/form-validation/validator-register.js +9 -5
- package/src/js/aui/form-validation.js +12 -13
- package/src/js/aui/format.js +9 -6
- package/src/js/aui/forms/create-forms-component-body.js +6 -9
- package/src/js/aui/forms/custom-checkbox.js +2 -6
- package/src/js/aui/forms/custom-radio.js +2 -6
- package/src/js/aui/forms.js +4 -8
- package/src/js/aui/header-async.js +1 -1
- package/src/js/aui/header.js +2 -2
- package/src/js/aui/i18n.js +2 -5
- package/src/js/aui/index-of.js +1 -1
- package/src/js/aui/inline-dialog.js +171 -117
- package/src/js/aui/inline-dialog2.js +40 -33
- package/src/js/aui/internal/add-id.js +1 -1
- package/src/js/aui/internal/alignment.js +57 -49
- package/src/js/aui/internal/amdify.js +0 -1
- package/src/js/aui/internal/animation.js +2 -5
- package/src/js/aui/internal/attributes.js +2 -3
- package/src/js/aui/internal/browser.js +5 -6
- package/src/js/aui/internal/constants.js +1 -3
- package/src/js/aui/internal/deduplicateIDs.js +8 -7
- package/src/js/aui/internal/deprecation/deprecated-adg2-icons.js +132 -132
- package/src/js/aui/internal/deprecation.js +53 -31
- package/src/js/aui/internal/detect-children-change.js +3 -2
- package/src/js/aui/internal/elements.js +2 -5
- package/src/js/aui/internal/enforcer.js +11 -13
- package/src/js/aui/internal/globalize.js +3 -3
- package/src/js/aui/internal/has-touch.js +1 -2
- package/src/js/aui/internal/header/create-header.js +54 -30
- package/src/js/aui/internal/i18n/aui.js +10 -6
- package/src/js/aui/internal/i18n/aui_af.js +31 -31
- package/src/js/aui/internal/i18n/aui_ar.js +31 -31
- package/src/js/aui/internal/i18n/aui_ar_DZ.js +31 -31
- package/src/js/aui/internal/i18n/aui_az.js +31 -31
- package/src/js/aui/internal/i18n/aui_bg.js +31 -31
- package/src/js/aui/internal/i18n/aui_bs.js +31 -31
- package/src/js/aui/internal/i18n/aui_ca.js +31 -31
- package/src/js/aui/internal/i18n/aui_cs.js +31 -31
- package/src/js/aui/internal/i18n/aui_da.js +31 -31
- package/src/js/aui/internal/i18n/aui_de.js +31 -31
- package/src/js/aui/internal/i18n/aui_el.js +31 -31
- package/src/js/aui/internal/i18n/aui_en_AU.js +31 -31
- package/src/js/aui/internal/i18n/aui_en_GB.js +31 -31
- package/src/js/aui/internal/i18n/aui_en_NZ.js +31 -31
- package/src/js/aui/internal/i18n/aui_eo.js +31 -31
- package/src/js/aui/internal/i18n/aui_es.js +31 -31
- package/src/js/aui/internal/i18n/aui_et.js +31 -31
- package/src/js/aui/internal/i18n/aui_eu.js +31 -31
- package/src/js/aui/internal/i18n/aui_fa.js +31 -31
- package/src/js/aui/internal/i18n/aui_fi.js +31 -31
- package/src/js/aui/internal/i18n/aui_fo.js +31 -31
- package/src/js/aui/internal/i18n/aui_fr.js +31 -31
- package/src/js/aui/internal/i18n/aui_fr_CH.js +31 -31
- package/src/js/aui/internal/i18n/aui_gl.js +31 -31
- package/src/js/aui/internal/i18n/aui_he.js +31 -31
- package/src/js/aui/internal/i18n/aui_hr.js +31 -31
- package/src/js/aui/internal/i18n/aui_hu.js +31 -31
- package/src/js/aui/internal/i18n/aui_hy.js +31 -31
- package/src/js/aui/internal/i18n/aui_id.js +31 -31
- package/src/js/aui/internal/i18n/aui_is.js +31 -31
- package/src/js/aui/internal/i18n/aui_it.js +31 -31
- package/src/js/aui/internal/i18n/aui_ja.js +31 -31
- package/src/js/aui/internal/i18n/aui_ko.js +31 -31
- package/src/js/aui/internal/i18n/aui_kz.js +31 -31
- package/src/js/aui/internal/i18n/aui_lt.js +31 -31
- package/src/js/aui/internal/i18n/aui_lv.js +31 -31
- package/src/js/aui/internal/i18n/aui_ml.js +31 -31
- package/src/js/aui/internal/i18n/aui_ms.js +31 -31
- package/src/js/aui/internal/i18n/aui_nl.js +31 -31
- package/src/js/aui/internal/i18n/aui_no.js +31 -31
- package/src/js/aui/internal/i18n/aui_pl.js +31 -31
- package/src/js/aui/internal/i18n/aui_pt.js +31 -31
- package/src/js/aui/internal/i18n/aui_pt_BR.js +31 -31
- package/src/js/aui/internal/i18n/aui_rm.js +31 -31
- package/src/js/aui/internal/i18n/aui_ro.js +31 -31
- package/src/js/aui/internal/i18n/aui_ru.js +31 -31
- package/src/js/aui/internal/i18n/aui_sk.js +31 -31
- package/src/js/aui/internal/i18n/aui_sl.js +31 -31
- package/src/js/aui/internal/i18n/aui_sq.js +31 -31
- package/src/js/aui/internal/i18n/aui_sr.js +31 -31
- package/src/js/aui/internal/i18n/aui_sr_SR.js +31 -31
- package/src/js/aui/internal/i18n/aui_sv.js +31 -31
- package/src/js/aui/internal/i18n/aui_ta.js +31 -31
- package/src/js/aui/internal/i18n/aui_th.js +31 -31
- package/src/js/aui/internal/i18n/aui_tj.js +31 -31
- package/src/js/aui/internal/i18n/aui_tr.js +31 -31
- package/src/js/aui/internal/i18n/aui_uk.js +31 -31
- package/src/js/aui/internal/i18n/aui_vi.js +31 -31
- package/src/js/aui/internal/i18n/aui_zh_CN.js +31 -31
- package/src/js/aui/internal/i18n/aui_zh_HK.js +31 -31
- package/src/js/aui/internal/i18n/aui_zh_TW.js +31 -31
- package/src/js/aui/internal/log.js +2 -6
- package/src/js/aui/internal/mediaQuery.js +2 -3
- package/src/js/aui/internal/select/option.js +3 -3
- package/src/js/aui/internal/select/suggestion-model.js +1 -1
- package/src/js/aui/internal/select/suggestions-model.js +4 -5
- package/src/js/aui/internal/select/suggestions-view.js +17 -12
- package/src/js/aui/internal/state.js +2 -3
- package/src/js/aui/is-clipped.js +2 -2
- package/src/js/aui/key-code.js +1 -1
- package/src/js/aui/label.js +6 -6
- package/src/js/aui/layer.js +101 -89
- package/src/js/aui/messages.js +57 -41
- package/src/js/aui/navigation.js +7 -9
- package/src/js/aui/on-text-resize.js +7 -5
- package/src/js/aui/params.js +11 -8
- package/src/js/aui/polyfills/custom-event.js +7 -7
- package/src/js/aui/polyfills/placeholder.js +4 -4
- package/src/js/aui/populate-parameters.js +4 -4
- package/src/js/aui/progress-indicator.js +35 -27
- package/src/js/aui/progressive-data-set.js +13 -8
- package/src/js/aui/query-input.js +1 -1
- package/src/js/aui/restful-table/class-names.js +1 -1
- package/src/js/aui/restful-table/data-keys.js +1 -1
- package/src/js/aui/restful-table/edit-row.js +63 -63
- package/src/js/aui/restful-table/entry-model.js +6 -13
- package/src/js/aui/restful-table/event-handlers.js +4 -8
- package/src/js/aui/restful-table/event-names.js +1 -1
- package/src/js/aui/restful-table/row.js +41 -23
- package/src/js/aui/restful-table.js +101 -72
- package/src/js/aui/result-set.js +5 -5
- package/src/js/aui/results-list.js +3 -3
- package/src/js/aui/select.js +72 -51
- package/src/js/aui/select2.js +16 -8
- package/src/js/aui/sidebar.js +81 -51
- package/src/js/aui/spin.js +61 -49
- package/src/js/aui/spinner.js +11 -12
- package/src/js/aui/tables-sortable.js +21 -10
- package/src/js/aui/tabs.js +108 -77
- package/src/js/aui/to-init.js +1 -1
- package/src/js/aui/toggle.js +55 -43
- package/src/js/aui/tooltip.js +35 -34
- package/src/js/aui/trigger.js +20 -18
- package/src/js/aui/truncating-progressive-data-set.js +1 -1
- package/src/js/aui/unbind-text-resize.js +1 -1
- package/src/js/aui/unique-id.js +1 -1
- package/src/js/aui/when-i-type.js +66 -39
- package/src/js/aui-css-deprecations.js +52 -51
- package/src/js/jquery/jquery.hotkeys.js +124 -49
- package/src/js/jquery/jquery.moveto.js +18 -12
- package/src/less/adg-fancy-file-input.less +2 -3
- package/src/less/adg-header-quicksearch.less +4 -1
- package/src/less/adg-iconfont.less +242 -242
- package/src/less/adgs-icons.less +262 -262
- package/src/less/aui-appheader.less +11 -7
- package/src/less/aui-avatars.less +1 -1
- package/src/less/aui-banner.less +2 -1
- package/src/less/aui-buttons.less +6 -5
- package/src/less/aui-dark-mode.less +1 -1
- package/src/less/aui-date-picker.less +9 -6
- package/src/less/aui-experimental-expander.less +3 -3
- package/src/less/aui-experimental-labels.less +1 -1
- package/src/less/aui-experimental-progress-indicator.less +10 -4
- package/src/less/aui-experimental-progress-tracker.less +9 -6
- package/src/less/aui-experimental-restfultable.less +11 -3
- package/src/less/aui-experimental-tables-sortable.less +5 -3
- package/src/less/aui-experimental-tooltip.less +1 -1
- package/src/less/aui-link.less +0 -1
- package/src/less/aui-lozenge.less +6 -3
- package/src/less/aui-navigation.less +13 -13
- package/src/less/aui-page-layout.less +3 -4
- package/src/less/aui-page-typography.less +8 -3
- package/src/less/aui-reset.less +22 -6
- package/src/less/aui-select2.less +11 -8
- package/src/less/aui-sidebar-badges.less +1 -2
- package/src/less/aui-sidebar-config.less +7 -2
- package/src/less/aui-sidebar-grouping.less +16 -6
- package/src/less/aui-sidebar-navigation.less +7 -5
- package/src/less/aui-sidebar-skeleton.less +12 -7
- package/src/less/aui-skip-link.less +2 -1
- package/src/less/aui-spinner.less +2 -2
- package/src/less/aui-toggle.less +2 -2
- package/src/less/aui-toolbar2.less +1 -1
- package/src/less/checkbox-multiselect.less +13 -13
- package/src/less/dialog.less +3 -3
- package/src/less/dialog2.less +11 -10
- package/src/less/dropdown2-temp.css +4 -4
- package/src/less/dropdown2.less +4 -4
- package/src/less/flag.less +2 -2
- package/src/less/form-notification.less +10 -6
- package/src/less/forms-current.less +6 -5
- package/src/less/forms-legacy.less +4 -2
- package/src/less/forms-radios-and-checkboxes.less +18 -16
- package/src/less/forms.less +2 -4
- package/src/less/iconfont-mixin.less +7 -4
- package/src/less/imports/aui-theme/adg/adg-colors.less +40 -40
- package/src/less/imports/aui-theme/adg/adg-neutral-dark.less +20 -20
- package/src/less/imports/aui-theme/adg/adg-neutral-light.less +20 -20
- package/src/less/imports/aui-theme/components/buttons.less +5 -1
- package/src/less/imports/aui-theme/components/dropdown.less +3 -1
- package/src/less/imports/aui-theme/components/flag.less +1 -1
- package/src/less/imports/aui-theme/components/form-notification.less +2 -1
- package/src/less/imports/aui-theme/components/forms.less +20 -3
- package/src/less/imports/aui-theme/components/inline-dialog2.less +1 -1
- package/src/less/imports/aui-theme/components/navigation.less +3 -3
- package/src/less/imports/aui-theme/components/progress-tracker.less +6 -2
- package/src/less/imports/aui-theme/components/tables.less +3 -2
- package/src/less/imports/aui-theme/components/toggle.less +8 -3
- package/src/less/imports/aui-theme/core/icons.less +22 -22
- package/src/less/imports/aui-theme/core/spaces.less +1 -1
- package/src/less/imports/aui-theme/core/text.less +6 -3
- package/src/less/imports/aui-theme/theme.less +1 -3
- package/src/less/imports/mixins/dropdown2-trigger-chevron-icon.less +0 -1
- package/src/less/imports/mixins/focus.less +12 -4
- package/src/less/imports/mixins/media-queries.less +2 -2
- package/src/less/imports/mixins/shadows.less +3 -1
- package/src/less/imports/mixins/tab-indicator.less +2 -2
- package/src/less/imports/mixins.less +11 -4
- package/src/less/inline-dialog.less +21 -19
- package/src/less/layer.less +0 -2
- package/src/less/messages.less +2 -1
- package/src/less/single-select.less +15 -10
- package/src/less/tables.less +3 -2
- package/src/less/tabs.less +4 -3
package/src/js/aui/select.js
CHANGED
|
@@ -42,11 +42,11 @@ function hasResults(element) {
|
|
|
42
42
|
return element._suggestionModel.getNumberOfResults();
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
function waitForAssistive
|
|
45
|
+
function waitForAssistive(callback) {
|
|
46
46
|
setTimeout(callback, ASSISTIVE_STATUS_DELAY_MS);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
function setBusyState
|
|
49
|
+
function setBusyState(element) {
|
|
50
50
|
if (!element._button.isBusy()) {
|
|
51
51
|
element._button.busy();
|
|
52
52
|
element._input.setAttribute('aria-busy', 'true');
|
|
@@ -54,30 +54,30 @@ function setBusyState (element) {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
function setIdleState
|
|
57
|
+
function setIdleState(element) {
|
|
58
58
|
element._button.idle();
|
|
59
59
|
element._input.setAttribute('aria-busy', 'false');
|
|
60
60
|
element._dropdown.setAttribute('aria-busy', 'false');
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
function matchPrefix
|
|
63
|
+
function matchPrefix(model, query) {
|
|
64
64
|
var value = model.get('label').toLowerCase();
|
|
65
65
|
return value.indexOf(query.toLowerCase()) === 0;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
function resetDropdown
|
|
68
|
+
function resetDropdown(element) {
|
|
69
69
|
element._input.setAttribute('aria-expanded', 'false');
|
|
70
70
|
element._button.setAttribute('aria-expanded', 'false');
|
|
71
71
|
element._input.removeAttribute('aria-activedescendant');
|
|
72
72
|
updateAssistiveStatus(element, '');
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
function resetAndCloseDropdown
|
|
75
|
+
function resetAndCloseDropdown(element) {
|
|
76
76
|
element._suggestionsView.hide();
|
|
77
77
|
resetDropdown(element);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
function setInitialVisualState
|
|
80
|
+
function setInitialVisualState(element) {
|
|
81
81
|
var initialHighlightedItem = hasResults(element) ? 0 : NO_HIGHLIGHT;
|
|
82
82
|
|
|
83
83
|
element._suggestionModel.highlight(initialHighlightedItem);
|
|
@@ -85,12 +85,12 @@ function setInitialVisualState (element) {
|
|
|
85
85
|
resetAndCloseDropdown(element);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
function setElementImage
|
|
88
|
+
function setElementImage(element, imageSource) {
|
|
89
89
|
$(element._input).addClass('aui-select-has-inline-image');
|
|
90
90
|
element._input.setAttribute('style', 'background-image: url(' + encodeURI(imageSource) + ')');
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
function suggest
|
|
93
|
+
function suggest(element, autoHighlight, query) {
|
|
94
94
|
element._autoHighlight = autoHighlight;
|
|
95
95
|
|
|
96
96
|
if (query === undefined) {
|
|
@@ -100,14 +100,16 @@ function suggest (element, autoHighlight, query) {
|
|
|
100
100
|
element._progressiveDataSet.query(query);
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
function setInputImageToHighlightedSuggestion
|
|
104
|
-
var imageSource =
|
|
103
|
+
function setInputImageToHighlightedSuggestion(element) {
|
|
104
|
+
var imageSource =
|
|
105
|
+
element._suggestionModel.highlighted() &&
|
|
106
|
+
element._suggestionModel.highlighted().get('img-src');
|
|
105
107
|
if (imageSource) {
|
|
106
108
|
setElementImage(element, imageSource);
|
|
107
109
|
}
|
|
108
110
|
}
|
|
109
111
|
|
|
110
|
-
function setValueAndDisplayFromModel
|
|
112
|
+
function setValueAndDisplayFromModel(element, model) {
|
|
111
113
|
if (!model) {
|
|
112
114
|
return;
|
|
113
115
|
}
|
|
@@ -126,25 +128,25 @@ function setValueAndDisplayFromModel (element, model) {
|
|
|
126
128
|
|
|
127
129
|
select.innerHTML = '';
|
|
128
130
|
select.options.add(option);
|
|
129
|
-
select.dispatchEvent(new CustomEvent('change', {bubbles: true}));
|
|
131
|
+
select.dispatchEvent(new CustomEvent('change', { bubbles: true }));
|
|
130
132
|
}
|
|
131
133
|
|
|
132
|
-
function clearValue
|
|
134
|
+
function clearValue(element) {
|
|
133
135
|
element._input.value = '';
|
|
134
136
|
element._select.innerHTML = '';
|
|
135
137
|
}
|
|
136
138
|
|
|
137
|
-
function selectHighlightedSuggestion
|
|
139
|
+
function selectHighlightedSuggestion(element) {
|
|
138
140
|
setValueAndDisplayFromModel(element, element._suggestionModel.highlighted());
|
|
139
141
|
setInputImageToHighlightedSuggestion(element);
|
|
140
142
|
resetAndCloseDropdown(element);
|
|
141
143
|
}
|
|
142
144
|
|
|
143
|
-
function convertOptionToModel
|
|
145
|
+
function convertOptionToModel(option) {
|
|
144
146
|
return new SuggestionModel(option.serialize());
|
|
145
147
|
}
|
|
146
148
|
|
|
147
|
-
function convertOptionsToModels
|
|
149
|
+
function convertOptionsToModels(element) {
|
|
148
150
|
var models = [];
|
|
149
151
|
|
|
150
152
|
for (var i = 0; i < element._datalist.children.length; i++) {
|
|
@@ -161,7 +163,7 @@ function convertOptionsToModels (element) {
|
|
|
161
163
|
* @param data
|
|
162
164
|
* @returns {boolean} true if the results are different from the previous set; false otherwise.
|
|
163
165
|
*/
|
|
164
|
-
function clearAndSet
|
|
166
|
+
function clearAndSet(element, data) {
|
|
165
167
|
const before = element._suggestionModel.getNumberOfResults();
|
|
166
168
|
element._suggestionModel.set();
|
|
167
169
|
element._suggestionModel.set(data.results);
|
|
@@ -169,12 +171,12 @@ function clearAndSet (element, data) {
|
|
|
169
171
|
return before !== after;
|
|
170
172
|
}
|
|
171
173
|
|
|
172
|
-
function getActiveId
|
|
174
|
+
function getActiveId(select) {
|
|
173
175
|
var active = select._dropdown.querySelector('.aui-select-active');
|
|
174
176
|
return active && active.id;
|
|
175
177
|
}
|
|
176
178
|
|
|
177
|
-
function getIndexInResults
|
|
179
|
+
function getIndexInResults(id, results) {
|
|
178
180
|
var resultsIds = $.map(results, function (result) {
|
|
179
181
|
return result.id;
|
|
180
182
|
});
|
|
@@ -182,7 +184,7 @@ function getIndexInResults (id, results) {
|
|
|
182
184
|
return resultsIds.indexOf(id);
|
|
183
185
|
}
|
|
184
186
|
|
|
185
|
-
function createNewValueModel
|
|
187
|
+
function createNewValueModel(element) {
|
|
186
188
|
var option = new Option();
|
|
187
189
|
option.setAttribute('value', element._input.value);
|
|
188
190
|
var newValueSuggestionModel = convertOptionToModel(option);
|
|
@@ -190,12 +192,12 @@ function createNewValueModel (element) {
|
|
|
190
192
|
return newValueSuggestionModel;
|
|
191
193
|
}
|
|
192
194
|
|
|
193
|
-
function initialiseProgressiveDataSet
|
|
195
|
+
function initialiseProgressiveDataSet(element) {
|
|
194
196
|
element._progressiveDataSet = new ProgressiveDataSet(convertOptionsToModels(element), {
|
|
195
197
|
model: SuggestionModel,
|
|
196
198
|
matcher: matchPrefix,
|
|
197
199
|
queryEndpoint: element._queryEndpoint,
|
|
198
|
-
maxResults: DEFAULT_SS_PDS_SIZE
|
|
200
|
+
maxResults: DEFAULT_SS_PDS_SIZE,
|
|
199
201
|
});
|
|
200
202
|
|
|
201
203
|
element._isSync = !element._queryEndpoint;
|
|
@@ -268,20 +270,27 @@ function initialiseProgressiveDataSet (element) {
|
|
|
268
270
|
element._button.setAttribute('aria-expanded', 'true');
|
|
269
271
|
|
|
270
272
|
// If the response is async (append operation), has elements to append and has a highlighted element, we need to update the status.
|
|
271
|
-
if (
|
|
272
|
-
element.
|
|
273
|
+
if (
|
|
274
|
+
!element._isSync &&
|
|
275
|
+
resultsChanged &&
|
|
276
|
+
element._suggestionsView.getActive() &&
|
|
277
|
+
state(element).get('should-flag-new-suggestions')
|
|
278
|
+
) {
|
|
279
|
+
element.querySelector('.aui-select-status').innerHTML = I18n.getText(
|
|
280
|
+
'aui.select.new.suggestions'
|
|
281
|
+
);
|
|
273
282
|
}
|
|
274
283
|
|
|
275
284
|
element._suggestionsView.show();
|
|
276
285
|
});
|
|
277
286
|
}
|
|
278
287
|
|
|
279
|
-
function associateDropdownAndTrigger
|
|
288
|
+
function associateDropdownAndTrigger(element) {
|
|
280
289
|
element._dropdown.id = element._listId;
|
|
281
290
|
element.querySelector('button').setAttribute('aria-controls', element._listId);
|
|
282
291
|
}
|
|
283
292
|
|
|
284
|
-
function bindHighlightMouseover
|
|
293
|
+
function bindHighlightMouseover(element) {
|
|
285
294
|
$(element._dropdown).on('mouseover', 'li', function (e) {
|
|
286
295
|
if (hasResults(element)) {
|
|
287
296
|
element._suggestionModel.highlight($(e.target).index());
|
|
@@ -289,10 +298,10 @@ function bindHighlightMouseover (element) {
|
|
|
289
298
|
});
|
|
290
299
|
}
|
|
291
300
|
|
|
292
|
-
export function bindSelectMousedown
|
|
301
|
+
export function bindSelectMousedown(element) {
|
|
293
302
|
let preventClosingContainerLayer = false;
|
|
294
303
|
|
|
295
|
-
$(document).on('aui-close-layers-on-outer-click.single-select', e => {
|
|
304
|
+
$(document).on('aui-close-layers-on-outer-click.single-select', (e) => {
|
|
296
305
|
if (preventClosingContainerLayer) {
|
|
297
306
|
e.preventDefault();
|
|
298
307
|
preventClosingContainerLayer = false;
|
|
@@ -313,7 +322,7 @@ export function bindSelectMousedown (element) {
|
|
|
313
322
|
});
|
|
314
323
|
}
|
|
315
324
|
|
|
316
|
-
function updateAssistiveStatus
|
|
325
|
+
function updateAssistiveStatus(element, status) {
|
|
317
326
|
clearTimeout(element.assistiveStatusTimerId);
|
|
318
327
|
element.assistiveStatusTimerId = setTimeout(() => {
|
|
319
328
|
const assistiveStatusText = element._assistiveStatus.innerText;
|
|
@@ -323,7 +332,7 @@ function updateAssistiveStatus (element, status) {
|
|
|
323
332
|
}, ASSISTIVE_STATUS_DELAY_MS);
|
|
324
333
|
}
|
|
325
334
|
|
|
326
|
-
function initialiseValue
|
|
335
|
+
function initialiseValue(element) {
|
|
327
336
|
var option = element._datalist.querySelector('aui-option[selected]');
|
|
328
337
|
|
|
329
338
|
if (option) {
|
|
@@ -331,18 +340,18 @@ function initialiseValue (element) {
|
|
|
331
340
|
}
|
|
332
341
|
}
|
|
333
342
|
|
|
334
|
-
function isQueryInProgress
|
|
343
|
+
function isQueryInProgress(element) {
|
|
335
344
|
return element._progressiveDataSet.activeQueryCount > 0;
|
|
336
345
|
}
|
|
337
346
|
|
|
338
|
-
function focusInHandler
|
|
347
|
+
function focusInHandler(element) {
|
|
339
348
|
//if there is a selected value the single select should do an empty
|
|
340
349
|
//search and return everything
|
|
341
350
|
const searchValue = element.value ? '' : element._input.value;
|
|
342
351
|
suggest(element, true, searchValue);
|
|
343
352
|
}
|
|
344
353
|
|
|
345
|
-
function cancelInProgressQueries
|
|
354
|
+
function cancelInProgressQueries(element) {
|
|
346
355
|
if (isQueryInProgress(element)) {
|
|
347
356
|
state(element).set('should-cancel-response', true);
|
|
348
357
|
}
|
|
@@ -354,7 +363,7 @@ function getSelectedLabel(element) {
|
|
|
354
363
|
}
|
|
355
364
|
}
|
|
356
365
|
|
|
357
|
-
function handleInvalidInputOnFocusOut
|
|
366
|
+
function handleInvalidInputOnFocusOut(element) {
|
|
358
367
|
var selectCanBeEmpty = !element.hasAttribute('no-empty-values');
|
|
359
368
|
var selectionIsEmpty = !element._input.value;
|
|
360
369
|
var selectionNotExact = element._input.value !== getSelectedLabel(element);
|
|
@@ -379,7 +388,7 @@ function handleHighlightOnFocusOut(element) {
|
|
|
379
388
|
element._suggestionModel.highlight(NO_HIGHLIGHT);
|
|
380
389
|
}
|
|
381
390
|
|
|
382
|
-
function focusOutHandler
|
|
391
|
+
function focusOutHandler(element) {
|
|
383
392
|
cancelInProgressQueries(element);
|
|
384
393
|
handleInvalidInputOnFocusOut(element);
|
|
385
394
|
handleHighlightOnFocusOut(element);
|
|
@@ -403,7 +412,9 @@ const SelectEl = skate('aui-select', {
|
|
|
403
412
|
const suggestionsToAdd = [];
|
|
404
413
|
|
|
405
414
|
element._suggestionModel._suggestions.forEach(function (newSuggestion) {
|
|
406
|
-
const inArray = oldSuggestions.some(
|
|
415
|
+
const inArray = oldSuggestions.some(
|
|
416
|
+
(oldSuggestion) => newSuggestion.id === oldSuggestion.id
|
|
417
|
+
);
|
|
407
418
|
if (!inArray) {
|
|
408
419
|
suggestionsToAdd.push(newSuggestion);
|
|
409
420
|
}
|
|
@@ -413,7 +424,12 @@ const SelectEl = skate('aui-select', {
|
|
|
413
424
|
const numberOfItems = oldSuggestions.length + suggestionsToAdd.length;
|
|
414
425
|
const status = numberOfItems ? '' : `${I18n.getText('aui.select.no.suggestions')}`;
|
|
415
426
|
|
|
416
|
-
element._suggestionsView.render(
|
|
427
|
+
element._suggestionsView.render(
|
|
428
|
+
suggestionsToAdd,
|
|
429
|
+
oldSuggestions.length,
|
|
430
|
+
element._listId,
|
|
431
|
+
indexOfValueInResults
|
|
432
|
+
);
|
|
417
433
|
updateAssistiveStatus(element, status);
|
|
418
434
|
};
|
|
419
435
|
|
|
@@ -461,7 +477,9 @@ const SelectEl = skate('aui-select', {
|
|
|
461
477
|
element.querySelector('select').setAttribute('name', data.newValue);
|
|
462
478
|
element.querySelector('select').setAttribute('aria-label', `${data.newValue} list`);
|
|
463
479
|
element.querySelector('button').setAttribute('aria-label', `${data.newValue} list`);
|
|
464
|
-
element
|
|
480
|
+
element
|
|
481
|
+
.querySelector('ul[role="listbox"]')
|
|
482
|
+
.setAttribute('aria-label', `${data.newValue} list`);
|
|
465
483
|
},
|
|
466
484
|
|
|
467
485
|
placeholder(element, data) {
|
|
@@ -470,7 +488,7 @@ const SelectEl = skate('aui-select', {
|
|
|
470
488
|
|
|
471
489
|
src(element, data) {
|
|
472
490
|
element._queryEndpoint = data.newValue;
|
|
473
|
-
}
|
|
491
|
+
},
|
|
474
492
|
},
|
|
475
493
|
|
|
476
494
|
events: {
|
|
@@ -479,7 +497,10 @@ const SelectEl = skate('aui-select', {
|
|
|
479
497
|
},
|
|
480
498
|
|
|
481
499
|
'mousedown button': function (element) {
|
|
482
|
-
if (
|
|
500
|
+
if (
|
|
501
|
+
document.activeElement === element._input &&
|
|
502
|
+
!element._dropdown.hasAttribute('hidden')
|
|
503
|
+
) {
|
|
483
504
|
state(element).set('prevent-open-on-button-click', true);
|
|
484
505
|
}
|
|
485
506
|
},
|
|
@@ -499,7 +520,7 @@ const SelectEl = skate('aui-select', {
|
|
|
499
520
|
}
|
|
500
521
|
},
|
|
501
522
|
|
|
502
|
-
input: function (element) {
|
|
523
|
+
'input': function (element) {
|
|
503
524
|
if (!element._input.value) {
|
|
504
525
|
if (state(element).get('button-clicked-prevent-dropdown-hide')) {
|
|
505
526
|
state(element).set('button-clicked-prevent-dropdown-hide', false);
|
|
@@ -548,21 +569,21 @@ const SelectEl = skate('aui-select', {
|
|
|
548
569
|
}
|
|
549
570
|
|
|
550
571
|
handled = handled || e.defaultPrevented;
|
|
551
|
-
setTimeout(function emulateCrossBrowserInputEvent
|
|
572
|
+
setTimeout(function emulateCrossBrowserInputEvent() {
|
|
552
573
|
if (element._input.value !== currentValue && !handled) {
|
|
553
|
-
element.dispatchEvent(new CustomEvent('input', {bubbles: true}));
|
|
574
|
+
element.dispatchEvent(new CustomEvent('input', { bubbles: true }));
|
|
554
575
|
}
|
|
555
576
|
}, 0);
|
|
556
|
-
}
|
|
577
|
+
},
|
|
557
578
|
},
|
|
558
579
|
|
|
559
580
|
prototype: {
|
|
560
|
-
get value
|
|
581
|
+
get value() {
|
|
561
582
|
var selected = this._select.options[this._select.selectedIndex];
|
|
562
583
|
return selected ? selected.value : '';
|
|
563
584
|
},
|
|
564
585
|
|
|
565
|
-
set value
|
|
586
|
+
set value(value) {
|
|
566
587
|
if (value === '') {
|
|
567
588
|
clearValue(this);
|
|
568
589
|
} else if (value) {
|
|
@@ -571,7 +592,7 @@ const SelectEl = skate('aui-select', {
|
|
|
571
592
|
|
|
572
593
|
// Create a new value if allowed and the value doesn't exist.
|
|
573
594
|
if (!model && this.hasAttribute('can-create-values')) {
|
|
574
|
-
model = new SuggestionModel({value: value, label: value});
|
|
595
|
+
model = new SuggestionModel({ value: value, label: value });
|
|
575
596
|
}
|
|
576
597
|
|
|
577
598
|
setValueAndDisplayFromModel(this, model);
|
|
@@ -579,7 +600,7 @@ const SelectEl = skate('aui-select', {
|
|
|
579
600
|
return this;
|
|
580
601
|
},
|
|
581
602
|
|
|
582
|
-
get displayValue
|
|
603
|
+
get displayValue() {
|
|
583
604
|
return this._input.value;
|
|
584
605
|
},
|
|
585
606
|
|
|
@@ -593,8 +614,8 @@ const SelectEl = skate('aui-select', {
|
|
|
593
614
|
this._input.focus();
|
|
594
615
|
focusInHandler(this);
|
|
595
616
|
return this;
|
|
596
|
-
}
|
|
597
|
-
}
|
|
617
|
+
},
|
|
618
|
+
},
|
|
598
619
|
});
|
|
599
620
|
|
|
600
621
|
amdify('aui/select', SelectEl);
|
package/src/js/aui/select2.js
CHANGED
|
@@ -30,15 +30,23 @@ $.fn.auiSelect2 = function (first) {
|
|
|
30
30
|
const auiOpts = $.extend({}, first);
|
|
31
31
|
const auiAvatarClass = auiOpts.hasAvatar ? ' ' + auiHasAvatar : '';
|
|
32
32
|
//add our classes in addition to those the caller specified
|
|
33
|
-
auiOpts.containerCssClass
|
|
34
|
-
|
|
33
|
+
auiOpts.containerCssClass =
|
|
34
|
+
auiContainer +
|
|
35
|
+
auiAvatarClass +
|
|
36
|
+
(auiOpts.containerCssClass ? ' ' + auiOpts.containerCssClass : '');
|
|
37
|
+
auiOpts.dropdownCssClass =
|
|
38
|
+
auiDropdown +
|
|
39
|
+
auiAvatarClass +
|
|
40
|
+
(auiOpts.dropdownCssClass ? ' ' + auiOpts.dropdownCssClass : '');
|
|
35
41
|
updatedArgs = Array.prototype.slice.call(arguments, 1);
|
|
36
42
|
updatedArgs.unshift(auiOpts);
|
|
37
43
|
} else if (!arguments.length) {
|
|
38
|
-
updatedArgs = [
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
44
|
+
updatedArgs = [
|
|
45
|
+
{
|
|
46
|
+
containerCssClass: auiContainer,
|
|
47
|
+
dropdownCssClass: auiDropdown,
|
|
48
|
+
},
|
|
49
|
+
];
|
|
42
50
|
} else {
|
|
43
51
|
updatedArgs = arguments;
|
|
44
52
|
}
|
|
@@ -66,10 +74,10 @@ $.fn.auiSelect2 = function (first) {
|
|
|
66
74
|
}
|
|
67
75
|
let originalTransport = options.ajax.transport;
|
|
68
76
|
if (!originalTransport) {
|
|
69
|
-
originalTransport = originalSelect2.ajaxDefaults.transport
|
|
77
|
+
originalTransport = originalSelect2.ajaxDefaults.transport;
|
|
70
78
|
}
|
|
71
79
|
|
|
72
|
-
const newTransport = function(...args) {
|
|
80
|
+
const newTransport = function (...args) {
|
|
73
81
|
args[0].error = [args[0].error, ...customErrorHandlers];
|
|
74
82
|
return originalTransport(...args);
|
|
75
83
|
};
|