@atlassian/aui 9.12.6 → 9.12.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 +1 -1
- package/dist/aui/aui-prototyping-browserfocus.css.map +1 -1
- package/dist/aui/aui-prototyping-darkmode.css +1 -1
- package/dist/aui/aui-prototyping-darkmode.css.map +1 -1
- 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 +1 -1
- package/dist/aui/aui-prototyping-design-tokens-compatibility.css.map +1 -1
- package/dist/aui/aui-prototyping.css +10 -10
- package/dist/aui/aui-prototyping.css.map +1 -1
- package/dist/aui/aui-prototyping.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +3 -2
- 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 +89 -68
- 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 +1 -3
- package/src/js/aui/design-tokens/design-tokens-testing-theme.js +9 -15
- 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 +24 -22
- package/src/js/aui/focus-manager.js +20 -21
- package/src/js/aui/form-notification.js +16 -15
- 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 +6 -13
- 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/a11y/focusable-query.js +2 -4
- 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 +6 -7
- 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 +54 -32
- 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 +12 -5
- 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 +9 -5
- 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 +67 -43
- 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 +9 -9
- 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 +34 -33
- package/src/js/aui/trigger.js +21 -19
- 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 +67 -40
- package/src/js/aui-css-deprecations.js +52 -51
- 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 +5 -2
- package/src/less/adg-iconfont.less +242 -242
- package/src/less/adgs-icons.less +262 -262
- package/src/less/aui-appheader.less +10 -6
- 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 +16 -14
- 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 +12 -9
- 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 +22 -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 +8 -4
- 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 +16 -18
- 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 +7 -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 +8 -3
- package/src/less/imports/aui-theme/components/inline-dialog2.less +1 -1
- package/src/less/imports/aui-theme/components/navigation.less +6 -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/colors.less +2 -2
- package/src/less/imports/aui-theme/core/icons.less +22 -22
- 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;
|
|
@@ -267,20 +269,27 @@ function initialiseProgressiveDataSet (element) {
|
|
|
267
269
|
element._button.setAttribute('aria-expanded', 'true');
|
|
268
270
|
|
|
269
271
|
// If the response is async (append operation), has elements to append and has a highlighted element, we need to update the status.
|
|
270
|
-
if (
|
|
271
|
-
element.
|
|
272
|
+
if (
|
|
273
|
+
!element._isSync &&
|
|
274
|
+
resultsChanged &&
|
|
275
|
+
element._suggestionsView.getActive() &&
|
|
276
|
+
state(element).get('should-flag-new-suggestions')
|
|
277
|
+
) {
|
|
278
|
+
element.querySelector('.aui-select-status').innerHTML = I18n.getText(
|
|
279
|
+
'aui.select.new.suggestions'
|
|
280
|
+
);
|
|
272
281
|
}
|
|
273
282
|
|
|
274
283
|
element._suggestionsView.show();
|
|
275
284
|
});
|
|
276
285
|
}
|
|
277
286
|
|
|
278
|
-
function associateDropdownAndTrigger
|
|
287
|
+
function associateDropdownAndTrigger(element) {
|
|
279
288
|
element._dropdown.id = element._listId;
|
|
280
289
|
element.querySelector('button').setAttribute('aria-controls', element._listId);
|
|
281
290
|
}
|
|
282
291
|
|
|
283
|
-
function bindHighlightMouseover
|
|
292
|
+
function bindHighlightMouseover(element) {
|
|
284
293
|
$(element._dropdown).on('mouseover', 'li', function (e) {
|
|
285
294
|
if (hasResults(element)) {
|
|
286
295
|
element._suggestionModel.highlight($(e.target).index());
|
|
@@ -288,10 +297,10 @@ function bindHighlightMouseover (element) {
|
|
|
288
297
|
});
|
|
289
298
|
}
|
|
290
299
|
|
|
291
|
-
export function bindSelectMousedown
|
|
300
|
+
export function bindSelectMousedown(element) {
|
|
292
301
|
let preventClosingContainerLayer = false;
|
|
293
302
|
|
|
294
|
-
$(document).on('aui-close-layers-on-outer-click.single-select', e => {
|
|
303
|
+
$(document).on('aui-close-layers-on-outer-click.single-select', (e) => {
|
|
295
304
|
if (preventClosingContainerLayer) {
|
|
296
305
|
e.preventDefault();
|
|
297
306
|
preventClosingContainerLayer = false;
|
|
@@ -312,7 +321,7 @@ export function bindSelectMousedown (element) {
|
|
|
312
321
|
});
|
|
313
322
|
}
|
|
314
323
|
|
|
315
|
-
function updateAssistiveStatus
|
|
324
|
+
function updateAssistiveStatus(element, status) {
|
|
316
325
|
clearTimeout(element.assistiveStatusTimerId);
|
|
317
326
|
element.assistiveStatusTimerId = setTimeout(() => {
|
|
318
327
|
const assistiveStatusText = element._assistiveStatus.innerText;
|
|
@@ -322,7 +331,7 @@ function updateAssistiveStatus (element, status) {
|
|
|
322
331
|
}, ASSISTIVE_STATUS_DELAY_MS);
|
|
323
332
|
}
|
|
324
333
|
|
|
325
|
-
function initialiseValue
|
|
334
|
+
function initialiseValue(element) {
|
|
326
335
|
var option = element._datalist.querySelector('aui-option[selected]');
|
|
327
336
|
|
|
328
337
|
if (option) {
|
|
@@ -330,18 +339,18 @@ function initialiseValue (element) {
|
|
|
330
339
|
}
|
|
331
340
|
}
|
|
332
341
|
|
|
333
|
-
function isQueryInProgress
|
|
342
|
+
function isQueryInProgress(element) {
|
|
334
343
|
return element._progressiveDataSet.activeQueryCount > 0;
|
|
335
344
|
}
|
|
336
345
|
|
|
337
|
-
function focusInHandler
|
|
346
|
+
function focusInHandler(element) {
|
|
338
347
|
//if there is a selected value the single select should do an empty
|
|
339
348
|
//search and return everything
|
|
340
349
|
const searchValue = element.value ? '' : element._input.value;
|
|
341
350
|
suggest(element, true, searchValue);
|
|
342
351
|
}
|
|
343
352
|
|
|
344
|
-
function cancelInProgressQueries
|
|
353
|
+
function cancelInProgressQueries(element) {
|
|
345
354
|
if (isQueryInProgress(element)) {
|
|
346
355
|
state(element).set('should-cancel-response', true);
|
|
347
356
|
}
|
|
@@ -353,7 +362,7 @@ function getSelectedLabel(element) {
|
|
|
353
362
|
}
|
|
354
363
|
}
|
|
355
364
|
|
|
356
|
-
function handleInvalidInputOnFocusOut
|
|
365
|
+
function handleInvalidInputOnFocusOut(element) {
|
|
357
366
|
var selectCanBeEmpty = !element.hasAttribute('no-empty-values');
|
|
358
367
|
var selectionIsEmpty = !element._input.value;
|
|
359
368
|
var selectionNotExact = element._input.value !== getSelectedLabel(element);
|
|
@@ -378,7 +387,7 @@ function handleHighlightOnFocusOut(element) {
|
|
|
378
387
|
element._suggestionModel.highlight(NO_HIGHLIGHT);
|
|
379
388
|
}
|
|
380
389
|
|
|
381
|
-
function focusOutHandler
|
|
390
|
+
function focusOutHandler(element) {
|
|
382
391
|
cancelInProgressQueries(element);
|
|
383
392
|
handleInvalidInputOnFocusOut(element);
|
|
384
393
|
handleHighlightOnFocusOut(element);
|
|
@@ -402,7 +411,9 @@ const SelectEl = skate('aui-select', {
|
|
|
402
411
|
const suggestionsToAdd = [];
|
|
403
412
|
|
|
404
413
|
element._suggestionModel._suggestions.forEach(function (newSuggestion) {
|
|
405
|
-
const inArray = oldSuggestions.some(
|
|
414
|
+
const inArray = oldSuggestions.some(
|
|
415
|
+
(oldSuggestion) => newSuggestion.id === oldSuggestion.id
|
|
416
|
+
);
|
|
406
417
|
if (!inArray) {
|
|
407
418
|
suggestionsToAdd.push(newSuggestion);
|
|
408
419
|
}
|
|
@@ -412,7 +423,12 @@ const SelectEl = skate('aui-select', {
|
|
|
412
423
|
const numberOfItems = oldSuggestions.length + suggestionsToAdd.length;
|
|
413
424
|
const status = numberOfItems ? '' : `${I18n.getText('aui.select.no.suggestions')}`;
|
|
414
425
|
|
|
415
|
-
element._suggestionsView.render(
|
|
426
|
+
element._suggestionsView.render(
|
|
427
|
+
suggestionsToAdd,
|
|
428
|
+
oldSuggestions.length,
|
|
429
|
+
element._listId,
|
|
430
|
+
indexOfValueInResults
|
|
431
|
+
);
|
|
416
432
|
updateAssistiveStatus(element, status);
|
|
417
433
|
};
|
|
418
434
|
|
|
@@ -460,7 +476,9 @@ const SelectEl = skate('aui-select', {
|
|
|
460
476
|
element.querySelector('select').setAttribute('name', data.newValue);
|
|
461
477
|
element.querySelector('select').setAttribute('aria-label', `${data.newValue} list`);
|
|
462
478
|
element.querySelector('button').setAttribute('aria-label', `${data.newValue} list`);
|
|
463
|
-
element
|
|
479
|
+
element
|
|
480
|
+
.querySelector('ul[role="listbox"]')
|
|
481
|
+
.setAttribute('aria-label', `${data.newValue} list`);
|
|
464
482
|
},
|
|
465
483
|
|
|
466
484
|
placeholder(element, data) {
|
|
@@ -469,7 +487,7 @@ const SelectEl = skate('aui-select', {
|
|
|
469
487
|
|
|
470
488
|
src(element, data) {
|
|
471
489
|
element._queryEndpoint = data.newValue;
|
|
472
|
-
}
|
|
490
|
+
},
|
|
473
491
|
},
|
|
474
492
|
|
|
475
493
|
events: {
|
|
@@ -478,7 +496,10 @@ const SelectEl = skate('aui-select', {
|
|
|
478
496
|
},
|
|
479
497
|
|
|
480
498
|
'mousedown button': function (element) {
|
|
481
|
-
if (
|
|
499
|
+
if (
|
|
500
|
+
document.activeElement === element._input &&
|
|
501
|
+
!element._dropdown.hasAttribute('hidden')
|
|
502
|
+
) {
|
|
482
503
|
state(element).set('prevent-open-on-button-click', true);
|
|
483
504
|
}
|
|
484
505
|
},
|
|
@@ -498,7 +519,7 @@ const SelectEl = skate('aui-select', {
|
|
|
498
519
|
}
|
|
499
520
|
},
|
|
500
521
|
|
|
501
|
-
input: function (element) {
|
|
522
|
+
'input': function (element) {
|
|
502
523
|
if (!element._input.value) {
|
|
503
524
|
if (state(element).get('button-clicked-prevent-dropdown-hide')) {
|
|
504
525
|
state(element).set('button-clicked-prevent-dropdown-hide', false);
|
|
@@ -547,21 +568,21 @@ const SelectEl = skate('aui-select', {
|
|
|
547
568
|
}
|
|
548
569
|
|
|
549
570
|
handled = handled || e.defaultPrevented;
|
|
550
|
-
setTimeout(function emulateCrossBrowserInputEvent
|
|
571
|
+
setTimeout(function emulateCrossBrowserInputEvent() {
|
|
551
572
|
if (element._input.value !== currentValue && !handled) {
|
|
552
|
-
element.dispatchEvent(new CustomEvent('input', {bubbles: true}));
|
|
573
|
+
element.dispatchEvent(new CustomEvent('input', { bubbles: true }));
|
|
553
574
|
}
|
|
554
575
|
}, 0);
|
|
555
|
-
}
|
|
576
|
+
},
|
|
556
577
|
},
|
|
557
578
|
|
|
558
579
|
prototype: {
|
|
559
|
-
get value
|
|
580
|
+
get value() {
|
|
560
581
|
var selected = this._select.options[this._select.selectedIndex];
|
|
561
582
|
return selected ? selected.value : '';
|
|
562
583
|
},
|
|
563
584
|
|
|
564
|
-
set value
|
|
585
|
+
set value(value) {
|
|
565
586
|
if (value === '') {
|
|
566
587
|
clearValue(this);
|
|
567
588
|
} else if (value) {
|
|
@@ -570,7 +591,7 @@ const SelectEl = skate('aui-select', {
|
|
|
570
591
|
|
|
571
592
|
// Create a new value if allowed and the value doesn't exist.
|
|
572
593
|
if (!model && this.hasAttribute('can-create-values')) {
|
|
573
|
-
model = new SuggestionModel({value: value, label: value});
|
|
594
|
+
model = new SuggestionModel({ value: value, label: value });
|
|
574
595
|
}
|
|
575
596
|
|
|
576
597
|
setValueAndDisplayFromModel(this, model);
|
|
@@ -578,7 +599,7 @@ const SelectEl = skate('aui-select', {
|
|
|
578
599
|
return this;
|
|
579
600
|
},
|
|
580
601
|
|
|
581
|
-
get displayValue
|
|
602
|
+
get displayValue() {
|
|
582
603
|
return this._input.value;
|
|
583
604
|
},
|
|
584
605
|
|
|
@@ -592,8 +613,8 @@ const SelectEl = skate('aui-select', {
|
|
|
592
613
|
this._input.focus();
|
|
593
614
|
focusInHandler(this);
|
|
594
615
|
return this;
|
|
595
|
-
}
|
|
596
|
-
}
|
|
616
|
+
},
|
|
617
|
+
},
|
|
597
618
|
});
|
|
598
619
|
|
|
599
620
|
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
|
};
|