@atlassian/aui 9.3.21 → 9.3.23
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.md +1 -1
- package/README.md +7 -9
- package/dist/aui/aui-css-deprecations.js +1 -1
- package/dist/aui/aui-css-deprecations.js.map +1 -1
- package/dist/aui/aui-prototyping-browserfocus.css +1 -353
- package/dist/aui/aui-prototyping-darkmode.css +1 -262
- package/dist/aui/aui-prototyping.css +10 -10
- package/dist/aui/aui-prototyping.js +7 -7
- package/dist/aui/aui-prototyping.js.map +1 -1
- package/dist/aui/aui-prototyping.nodeps.css +10 -10
- package/dist/aui/aui-prototyping.nodeps.js +9 -9
- package/dist/aui/aui-prototyping.nodeps.js.map +1 -1
- package/entry/aui.batch.components.js +21 -21
- 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/package.json +3 -7
- package/src/js/aui/alphanum.js +1 -1
- package/src/js/aui/banner.js +2 -2
- package/src/js/aui/blanket.js +7 -11
- 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/dialog.js +206 -172
- package/src/js/aui/dialog2.js +9 -8
- package/src/js/aui/dropdown2.js +211 -181
- 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 +9 -7
- package/src/js/aui/flag.js +15 -17
- package/src/js/aui/focus-manager.js +19 -18
- package/src/js/aui/form-notification.js +14 -13
- 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 +17 -14
- 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 +60 -50
- 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 -28
- package/src/js/aui/internal/i18n/aui.js +8 -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 +100 -98
- package/src/js/aui/messages.js +51 -38
- 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 +65 -49
- package/src/js/aui/select2.js +14 -6
- 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 +32 -31
- 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 +50 -50
- 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 +10 -6
- package/src/less/aui-buttons.less +6 -5
- package/src/less/aui-date-picker.less +9 -6
- package/src/less/aui-experimental-expander.less +8 -8
- package/src/less/aui-experimental-labels.less +4 -3
- 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 +4 -3
- 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 +12 -11
- package/src/less/dropdown2-temp.css +4 -4
- package/src/less/dropdown2.less +3 -3
- 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 +9 -11
- 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/form-notification.less +2 -1
- package/src/less/imports/aui-theme/components/forms.less +16 -1
- 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/colors.less +12 -4
- 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/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 +14 -9
- package/src/less/tables.less +3 -2
- package/src/less/tabs.less +4 -3
- package/entry/token-themes-generated/npm/aui-prototyping-design-tokens-base-themes.css +0 -797
- package/entry/token-themes-generated/npm/aui-prototyping-design-tokens-base-themes.js +0 -26
- package/entry/token-themes-generated/npm/aui-prototyping-design-tokens-theme-import-map.js +0 -51
- package/entry/token-themes-generated/npm/themes/dark-future.js +0 -7
- package/entry/token-themes-generated/npm/themes/dark-new-input-border.js +0 -7
- package/entry/token-themes-generated/npm/themes/dark.js +0 -395
- package/entry/token-themes-generated/npm/themes/legacy-dark.js +0 -395
- package/entry/token-themes-generated/npm/themes/legacy-light.js +0 -395
- package/entry/token-themes-generated/npm/themes/light-future.js +0 -7
- package/entry/token-themes-generated/npm/themes/light-new-input-border.js +0 -7
- package/entry/token-themes-generated/npm/themes/light.js +0 -395
- package/entry/token-themes-generated/npm/themes/shape.js +0 -15
- package/entry/token-themes-generated/npm/themes/spacing.js +0 -27
- package/entry/token-themes-generated/npm/themes/typography-adg3.js +0 -50
- package/entry/token-themes-generated/npm/themes/typography-minor3.js +0 -41
package/src/js/aui/select.js
CHANGED
|
@@ -16,7 +16,7 @@ import SuggestionsView from './internal/select/suggestions-view';
|
|
|
16
16
|
import template from './internal/select/template';
|
|
17
17
|
import uniqueId from './unique-id';
|
|
18
18
|
import { INPUT_SUFFIX } from './internal/constants';
|
|
19
|
-
import {ifGone} from './internal/elements';
|
|
19
|
+
import { ifGone } from './internal/elements';
|
|
20
20
|
|
|
21
21
|
var DESELECTED = -1;
|
|
22
22
|
var NO_HIGHLIGHT = -1;
|
|
@@ -41,11 +41,11 @@ function hasResults(element) {
|
|
|
41
41
|
return element._suggestionModel.getNumberOfResults();
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
function waitForAssistive
|
|
44
|
+
function waitForAssistive(callback) {
|
|
45
45
|
setTimeout(callback, 50);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
function setBusyState
|
|
48
|
+
function setBusyState(element) {
|
|
49
49
|
if (!element._button.isBusy()) {
|
|
50
50
|
element._button.busy();
|
|
51
51
|
element._input.setAttribute('aria-busy', 'true');
|
|
@@ -53,23 +53,23 @@ function setBusyState (element) {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
function setIdleState
|
|
56
|
+
function setIdleState(element) {
|
|
57
57
|
element._button.idle();
|
|
58
58
|
element._input.setAttribute('aria-busy', 'false');
|
|
59
59
|
element._dropdown.setAttribute('aria-busy', 'false');
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
function matchPrefix
|
|
62
|
+
function matchPrefix(model, query) {
|
|
63
63
|
var value = model.get('label').toLowerCase();
|
|
64
64
|
return value.indexOf(query.toLowerCase()) === 0;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
function hideDropdown
|
|
67
|
+
function hideDropdown(element) {
|
|
68
68
|
element._suggestionsView.hide();
|
|
69
69
|
element._input.setAttribute('aria-expanded', 'false');
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
function setInitialVisualState
|
|
72
|
+
function setInitialVisualState(element) {
|
|
73
73
|
var initialHighlightedItem = hasResults(element) ? 0 : NO_HIGHLIGHT;
|
|
74
74
|
|
|
75
75
|
element._suggestionModel.highlight(initialHighlightedItem);
|
|
@@ -77,12 +77,12 @@ function setInitialVisualState (element) {
|
|
|
77
77
|
hideDropdown(element);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
function setElementImage
|
|
80
|
+
function setElementImage(element, imageSource) {
|
|
81
81
|
$(element._input).addClass('aui-select-has-inline-image');
|
|
82
82
|
element._input.setAttribute('style', 'background-image: url(' + encodeURI(imageSource) + ')');
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
function suggest
|
|
85
|
+
function suggest(element, autoHighlight, query) {
|
|
86
86
|
element._autoHighlight = autoHighlight;
|
|
87
87
|
|
|
88
88
|
if (query === undefined) {
|
|
@@ -92,14 +92,16 @@ function suggest (element, autoHighlight, query) {
|
|
|
92
92
|
element._progressiveDataSet.query(query);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
function setInputImageToHighlightedSuggestion
|
|
96
|
-
var imageSource =
|
|
95
|
+
function setInputImageToHighlightedSuggestion(element) {
|
|
96
|
+
var imageSource =
|
|
97
|
+
element._suggestionModel.highlighted() &&
|
|
98
|
+
element._suggestionModel.highlighted().get('img-src');
|
|
97
99
|
if (imageSource) {
|
|
98
100
|
setElementImage(element, imageSource);
|
|
99
101
|
}
|
|
100
102
|
}
|
|
101
103
|
|
|
102
|
-
function setValueAndDisplayFromModel
|
|
104
|
+
function setValueAndDisplayFromModel(element, model) {
|
|
103
105
|
if (!model) {
|
|
104
106
|
return;
|
|
105
107
|
}
|
|
@@ -118,25 +120,25 @@ function setValueAndDisplayFromModel (element, model) {
|
|
|
118
120
|
|
|
119
121
|
select.innerHTML = '';
|
|
120
122
|
select.options.add(option);
|
|
121
|
-
select.dispatchEvent(new CustomEvent('change', {bubbles: true}));
|
|
123
|
+
select.dispatchEvent(new CustomEvent('change', { bubbles: true }));
|
|
122
124
|
}
|
|
123
125
|
|
|
124
|
-
function clearValue
|
|
126
|
+
function clearValue(element) {
|
|
125
127
|
element._input.value = '';
|
|
126
128
|
element._select.innerHTML = '';
|
|
127
129
|
}
|
|
128
130
|
|
|
129
|
-
function selectHighlightedSuggestion
|
|
131
|
+
function selectHighlightedSuggestion(element) {
|
|
130
132
|
setValueAndDisplayFromModel(element, element._suggestionModel.highlighted());
|
|
131
133
|
setInputImageToHighlightedSuggestion(element);
|
|
132
134
|
setInitialVisualState(element);
|
|
133
135
|
}
|
|
134
136
|
|
|
135
|
-
function convertOptionToModel
|
|
137
|
+
function convertOptionToModel(option) {
|
|
136
138
|
return new SuggestionModel(option.serialize());
|
|
137
139
|
}
|
|
138
140
|
|
|
139
|
-
function convertOptionsToModels
|
|
141
|
+
function convertOptionsToModels(element) {
|
|
140
142
|
var models = [];
|
|
141
143
|
|
|
142
144
|
for (var i = 0; i < element._datalist.children.length; i++) {
|
|
@@ -153,7 +155,7 @@ function convertOptionsToModels (element) {
|
|
|
153
155
|
* @param data
|
|
154
156
|
* @returns {boolean} true if the results are different from the previous set; false otherwise.
|
|
155
157
|
*/
|
|
156
|
-
function clearAndSet
|
|
158
|
+
function clearAndSet(element, data) {
|
|
157
159
|
const before = element._suggestionModel.getNumberOfResults();
|
|
158
160
|
element._suggestionModel.set();
|
|
159
161
|
element._suggestionModel.set(data.results);
|
|
@@ -161,12 +163,12 @@ function clearAndSet (element, data) {
|
|
|
161
163
|
return before !== after;
|
|
162
164
|
}
|
|
163
165
|
|
|
164
|
-
function getActiveId
|
|
166
|
+
function getActiveId(select) {
|
|
165
167
|
var active = select._dropdown.querySelector('.aui-select-active');
|
|
166
168
|
return active && active.id;
|
|
167
169
|
}
|
|
168
170
|
|
|
169
|
-
function getIndexInResults
|
|
171
|
+
function getIndexInResults(id, results) {
|
|
170
172
|
var resultsIds = $.map(results, function (result) {
|
|
171
173
|
return result.id;
|
|
172
174
|
});
|
|
@@ -174,7 +176,7 @@ function getIndexInResults (id, results) {
|
|
|
174
176
|
return resultsIds.indexOf(id);
|
|
175
177
|
}
|
|
176
178
|
|
|
177
|
-
function createNewValueModel
|
|
179
|
+
function createNewValueModel(element) {
|
|
178
180
|
var option = new Option();
|
|
179
181
|
option.setAttribute('value', element._input.value);
|
|
180
182
|
var newValueSuggestionModel = convertOptionToModel(option);
|
|
@@ -182,12 +184,12 @@ function createNewValueModel (element) {
|
|
|
182
184
|
return newValueSuggestionModel;
|
|
183
185
|
}
|
|
184
186
|
|
|
185
|
-
function initialiseProgressiveDataSet
|
|
187
|
+
function initialiseProgressiveDataSet(element) {
|
|
186
188
|
element._progressiveDataSet = new ProgressiveDataSet(convertOptionsToModels(element), {
|
|
187
189
|
model: SuggestionModel,
|
|
188
190
|
matcher: matchPrefix,
|
|
189
191
|
queryEndpoint: element._queryEndpoint,
|
|
190
|
-
maxResults: DEFAULT_SS_PDS_SIZE
|
|
192
|
+
maxResults: DEFAULT_SS_PDS_SIZE,
|
|
191
193
|
});
|
|
192
194
|
|
|
193
195
|
element._isSync = !element._queryEndpoint;
|
|
@@ -259,20 +261,27 @@ function initialiseProgressiveDataSet (element) {
|
|
|
259
261
|
element._input.setAttribute('aria-expanded', 'true');
|
|
260
262
|
|
|
261
263
|
// If the response is async (append operation), has elements to append and has a highlighted element, we need to update the status.
|
|
262
|
-
if (
|
|
263
|
-
element.
|
|
264
|
+
if (
|
|
265
|
+
!element._isSync &&
|
|
266
|
+
resultsChanged &&
|
|
267
|
+
element._suggestionsView.getActive() &&
|
|
268
|
+
state(element).get('should-flag-new-suggestions')
|
|
269
|
+
) {
|
|
270
|
+
element.querySelector('.aui-select-status').innerHTML = I18n.getText(
|
|
271
|
+
'aui.select.new.suggestions'
|
|
272
|
+
);
|
|
264
273
|
}
|
|
265
274
|
|
|
266
275
|
element._suggestionsView.show();
|
|
267
276
|
});
|
|
268
277
|
}
|
|
269
278
|
|
|
270
|
-
function associateDropdownAndTrigger
|
|
279
|
+
function associateDropdownAndTrigger(element) {
|
|
271
280
|
element._dropdown.id = element._listId;
|
|
272
281
|
element.querySelector('button').setAttribute('aria-controls', element._listId);
|
|
273
282
|
}
|
|
274
283
|
|
|
275
|
-
function bindHighlightMouseover
|
|
284
|
+
function bindHighlightMouseover(element) {
|
|
276
285
|
$(element._dropdown).on('mouseover', 'li', function (e) {
|
|
277
286
|
if (hasResults(element)) {
|
|
278
287
|
element._suggestionModel.highlight($(e.target).index());
|
|
@@ -280,10 +289,10 @@ function bindHighlightMouseover (element) {
|
|
|
280
289
|
});
|
|
281
290
|
}
|
|
282
291
|
|
|
283
|
-
export function bindSelectMousedown
|
|
292
|
+
export function bindSelectMousedown(element) {
|
|
284
293
|
let preventClosingContainerLayer = false;
|
|
285
294
|
|
|
286
|
-
$(document).on('aui-close-layers-on-outer-click.single-select', e => {
|
|
295
|
+
$(document).on('aui-close-layers-on-outer-click.single-select', (e) => {
|
|
287
296
|
if (preventClosingContainerLayer) {
|
|
288
297
|
e.preventDefault();
|
|
289
298
|
preventClosingContainerLayer = false;
|
|
@@ -308,7 +317,7 @@ export function bindSelectMousedown (element) {
|
|
|
308
317
|
});
|
|
309
318
|
}
|
|
310
319
|
|
|
311
|
-
function initialiseValue
|
|
320
|
+
function initialiseValue(element) {
|
|
312
321
|
var option = element._datalist.querySelector('aui-option[selected]');
|
|
313
322
|
|
|
314
323
|
if (option) {
|
|
@@ -316,11 +325,11 @@ function initialiseValue (element) {
|
|
|
316
325
|
}
|
|
317
326
|
}
|
|
318
327
|
|
|
319
|
-
function isQueryInProgress
|
|
328
|
+
function isQueryInProgress(element) {
|
|
320
329
|
return element._progressiveDataSet.activeQueryCount > 0;
|
|
321
330
|
}
|
|
322
331
|
|
|
323
|
-
function focusInHandler
|
|
332
|
+
function focusInHandler(element) {
|
|
324
333
|
//if there is a selected value the single select should do an empty
|
|
325
334
|
//search and return everything
|
|
326
335
|
var searchValue = element.value ? '' : element._input.value;
|
|
@@ -329,7 +338,7 @@ function focusInHandler (element) {
|
|
|
329
338
|
suggest(element, true, searchValue);
|
|
330
339
|
}
|
|
331
340
|
|
|
332
|
-
function cancelInProgressQueries
|
|
341
|
+
function cancelInProgressQueries(element) {
|
|
333
342
|
if (isQueryInProgress(element)) {
|
|
334
343
|
state(element).set('should-cancel-response', true);
|
|
335
344
|
}
|
|
@@ -341,7 +350,7 @@ function getSelectedLabel(element) {
|
|
|
341
350
|
}
|
|
342
351
|
}
|
|
343
352
|
|
|
344
|
-
function handleInvalidInputOnFocusOut
|
|
353
|
+
function handleInvalidInputOnFocusOut(element) {
|
|
345
354
|
var selectCanBeEmpty = !element.hasAttribute('no-empty-values');
|
|
346
355
|
var selectionIsEmpty = !element._input.value;
|
|
347
356
|
var selectionNotExact = element._input.value !== getSelectedLabel(element);
|
|
@@ -366,14 +375,14 @@ function handleHighlightOnFocusOut(element) {
|
|
|
366
375
|
element._suggestionModel.highlight(NO_HIGHLIGHT);
|
|
367
376
|
}
|
|
368
377
|
|
|
369
|
-
function focusOutHandler
|
|
378
|
+
function focusOutHandler(element) {
|
|
370
379
|
cancelInProgressQueries(element);
|
|
371
380
|
handleInvalidInputOnFocusOut(element);
|
|
372
381
|
handleHighlightOnFocusOut(element);
|
|
373
382
|
hideDropdown(element);
|
|
374
383
|
}
|
|
375
384
|
|
|
376
|
-
function handleTabOut
|
|
385
|
+
function handleTabOut(element) {
|
|
377
386
|
var isSuggestionViewVisible = element._suggestionsView.isVisible();
|
|
378
387
|
if (isSuggestionViewVisible) {
|
|
379
388
|
selectHighlightedSuggestion(element);
|
|
@@ -405,7 +414,11 @@ const SelectEl = skate('aui-select', {
|
|
|
405
414
|
}
|
|
406
415
|
});
|
|
407
416
|
|
|
408
|
-
element._suggestionsView.render(
|
|
417
|
+
element._suggestionsView.render(
|
|
418
|
+
suggestionsToAdd,
|
|
419
|
+
oldSuggestions.length,
|
|
420
|
+
element._listId
|
|
421
|
+
);
|
|
409
422
|
};
|
|
410
423
|
|
|
411
424
|
element._suggestionModel.onHighlightChange = function () {
|
|
@@ -453,7 +466,7 @@ const SelectEl = skate('aui-select', {
|
|
|
453
466
|
|
|
454
467
|
src(element, data) {
|
|
455
468
|
element._queryEndpoint = data.newValue;
|
|
456
|
-
}
|
|
469
|
+
},
|
|
457
470
|
},
|
|
458
471
|
|
|
459
472
|
events: {
|
|
@@ -462,7 +475,10 @@ const SelectEl = skate('aui-select', {
|
|
|
462
475
|
},
|
|
463
476
|
|
|
464
477
|
'mousedown button': function (element) {
|
|
465
|
-
if (
|
|
478
|
+
if (
|
|
479
|
+
document.activeElement === element._input &&
|
|
480
|
+
!element._dropdown.hasAttribute('hidden')
|
|
481
|
+
) {
|
|
466
482
|
state(element).set('prevent-open-on-button-click', true);
|
|
467
483
|
}
|
|
468
484
|
},
|
|
@@ -482,7 +498,7 @@ const SelectEl = skate('aui-select', {
|
|
|
482
498
|
}
|
|
483
499
|
},
|
|
484
500
|
|
|
485
|
-
input: function (element) {
|
|
501
|
+
'input': function (element) {
|
|
486
502
|
if (!element._input.value) {
|
|
487
503
|
if (state(element).get('button-clicked-prevent-dropdown-hide')) {
|
|
488
504
|
state(element).set('button-clicked-prevent-dropdown-hide', false);
|
|
@@ -528,21 +544,21 @@ const SelectEl = skate('aui-select', {
|
|
|
528
544
|
}
|
|
529
545
|
|
|
530
546
|
handled = handled || e.defaultPrevented;
|
|
531
|
-
setTimeout(function emulateCrossBrowserInputEvent
|
|
547
|
+
setTimeout(function emulateCrossBrowserInputEvent() {
|
|
532
548
|
if (element._input.value !== currentValue && !handled) {
|
|
533
|
-
element.dispatchEvent(new CustomEvent('input', {bubbles: true}));
|
|
549
|
+
element.dispatchEvent(new CustomEvent('input', { bubbles: true }));
|
|
534
550
|
}
|
|
535
551
|
}, 0);
|
|
536
|
-
}
|
|
552
|
+
},
|
|
537
553
|
},
|
|
538
554
|
|
|
539
555
|
prototype: {
|
|
540
|
-
get value
|
|
556
|
+
get value() {
|
|
541
557
|
var selected = this._select.options[this._select.selectedIndex];
|
|
542
558
|
return selected ? selected.value : '';
|
|
543
559
|
},
|
|
544
560
|
|
|
545
|
-
set value
|
|
561
|
+
set value(value) {
|
|
546
562
|
if (value === '') {
|
|
547
563
|
clearValue(this);
|
|
548
564
|
} else if (value) {
|
|
@@ -551,7 +567,7 @@ const SelectEl = skate('aui-select', {
|
|
|
551
567
|
|
|
552
568
|
// Create a new value if allowed and the value doesn't exist.
|
|
553
569
|
if (!model && this.hasAttribute('can-create-values')) {
|
|
554
|
-
model = new SuggestionModel({value: value, label: value});
|
|
570
|
+
model = new SuggestionModel({ value: value, label: value });
|
|
555
571
|
}
|
|
556
572
|
|
|
557
573
|
setValueAndDisplayFromModel(this, model);
|
|
@@ -559,7 +575,7 @@ const SelectEl = skate('aui-select', {
|
|
|
559
575
|
return this;
|
|
560
576
|
},
|
|
561
577
|
|
|
562
|
-
get displayValue
|
|
578
|
+
get displayValue() {
|
|
563
579
|
return this._input.value;
|
|
564
580
|
},
|
|
565
581
|
|
|
@@ -573,8 +589,8 @@ const SelectEl = skate('aui-select', {
|
|
|
573
589
|
this._input.focus();
|
|
574
590
|
focusInHandler(this);
|
|
575
591
|
return this;
|
|
576
|
-
}
|
|
577
|
-
}
|
|
592
|
+
},
|
|
593
|
+
},
|
|
578
594
|
});
|
|
579
595
|
|
|
580
596
|
amdify('aui/select', SelectEl);
|
package/src/js/aui/select2.js
CHANGED
|
@@ -26,15 +26,23 @@ $.fn.auiSelect2 = function (first) {
|
|
|
26
26
|
var auiOpts = $.extend({}, first);
|
|
27
27
|
var auiAvatarClass = auiOpts.hasAvatar ? ' ' + auiHasAvatar : '';
|
|
28
28
|
//add our classes in addition to those the caller specified
|
|
29
|
-
auiOpts.containerCssClass
|
|
30
|
-
|
|
29
|
+
auiOpts.containerCssClass =
|
|
30
|
+
auiContainer +
|
|
31
|
+
auiAvatarClass +
|
|
32
|
+
(auiOpts.containerCssClass ? ' ' + auiOpts.containerCssClass : '');
|
|
33
|
+
auiOpts.dropdownCssClass =
|
|
34
|
+
auiDropdown +
|
|
35
|
+
auiAvatarClass +
|
|
36
|
+
(auiOpts.dropdownCssClass ? ' ' + auiOpts.dropdownCssClass : '');
|
|
31
37
|
updatedArgs = Array.prototype.slice.call(arguments, 1);
|
|
32
38
|
updatedArgs.unshift(auiOpts);
|
|
33
39
|
} else if (!arguments.length) {
|
|
34
|
-
updatedArgs = [
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
updatedArgs = [
|
|
41
|
+
{
|
|
42
|
+
containerCssClass: auiContainer,
|
|
43
|
+
dropdownCssClass: auiDropdown,
|
|
44
|
+
},
|
|
45
|
+
];
|
|
38
46
|
} else {
|
|
39
47
|
updatedArgs = arguments;
|
|
40
48
|
}
|
package/src/js/aui/sidebar.js
CHANGED
|
@@ -14,7 +14,6 @@ import uid from './unique-id';
|
|
|
14
14
|
import widget from './internal/widget';
|
|
15
15
|
import deduplicateIDs from './internal/deduplicateIDs';
|
|
16
16
|
|
|
17
|
-
|
|
18
17
|
function sidebarOffset(sidebar) {
|
|
19
18
|
return sidebar.offset().top;
|
|
20
19
|
}
|
|
@@ -46,7 +45,7 @@ function Sidebar(selector) {
|
|
|
46
45
|
var FORCE_COLLAPSE_WIDTH = 1240;
|
|
47
46
|
var EVENT_PREFIX = '_aui-internal-sidebar-';
|
|
48
47
|
|
|
49
|
-
function namespaceEvents
|
|
48
|
+
function namespaceEvents(events) {
|
|
50
49
|
return $.map(events.split(' '), function (event) {
|
|
51
50
|
return EVENT_PREFIX + event;
|
|
52
51
|
}).join(' ');
|
|
@@ -79,11 +78,15 @@ Sidebar.prototype.setTopPosition = function (scrollTop = window.pageYOffset) {
|
|
|
79
78
|
return this;
|
|
80
79
|
};
|
|
81
80
|
|
|
82
|
-
Sidebar.prototype.setPosition = deprecate.fn(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
Sidebar.prototype.setPosition = deprecate.fn(
|
|
82
|
+
Sidebar.prototype.setTopPosition,
|
|
83
|
+
'Sidebar.setPosition',
|
|
84
|
+
{
|
|
85
|
+
removeInVersion: '10.0.0',
|
|
86
|
+
sinceVersion: '7.6.1',
|
|
87
|
+
alternativeName: 'Sidebar.setTopPosition',
|
|
88
|
+
}
|
|
89
|
+
);
|
|
87
90
|
|
|
88
91
|
Sidebar.prototype.setLeftPosition = function (scrollLeft = window.pageXOffset) {
|
|
89
92
|
if (this.$wrapper.hasClass('aui-is-docked')) {
|
|
@@ -97,29 +100,29 @@ Sidebar.prototype.setCollapsedState = function (viewportWidth) {
|
|
|
97
100
|
// state transitions are enumerated). The rest of the state machine,
|
|
98
101
|
// e.g., entering the expanded narrow (fly-out) state, is implemented
|
|
99
102
|
// by the toggle() method.
|
|
100
|
-
var transition = {collapsed: {}, expanded: {}};
|
|
103
|
+
var transition = { collapsed: {}, expanded: {} };
|
|
101
104
|
transition.collapsed.narrow = {
|
|
102
105
|
narrow: $.noop,
|
|
103
106
|
wide: function (s) {
|
|
104
107
|
s._expand(viewportWidth, true);
|
|
105
|
-
}
|
|
108
|
+
},
|
|
106
109
|
};
|
|
107
110
|
transition.collapsed.wide = {
|
|
108
|
-
narrow: $.noop,
|
|
109
|
-
wide: $.noop
|
|
111
|
+
narrow: $.noop, // Becomes collapsed narrow (no visual change).
|
|
112
|
+
wide: $.noop,
|
|
110
113
|
};
|
|
111
114
|
transition.expanded.narrow = {
|
|
112
115
|
narrow: $.noop,
|
|
113
116
|
wide: function (s) {
|
|
114
117
|
s.$body.removeClass('aui-sidebar-collapsed');
|
|
115
118
|
s.$el.removeClass('aui-sidebar-fly-out');
|
|
116
|
-
}
|
|
119
|
+
},
|
|
117
120
|
};
|
|
118
121
|
transition.expanded.wide = {
|
|
119
122
|
narrow: function (s) {
|
|
120
123
|
s._collapse(true);
|
|
121
124
|
},
|
|
122
|
-
wide: $.noop
|
|
125
|
+
wide: $.noop,
|
|
123
126
|
};
|
|
124
127
|
|
|
125
128
|
var collapseState = this.isCollapsed() ? 'collapsed' : 'expanded';
|
|
@@ -134,7 +137,7 @@ Sidebar.prototype._collapse = function (isResponsive) {
|
|
|
134
137
|
return this;
|
|
135
138
|
}
|
|
136
139
|
|
|
137
|
-
var startEvent = $.Event(EVENT_PREFIX + 'collapse-start', {isResponsive: isResponsive});
|
|
140
|
+
var startEvent = $.Event(EVENT_PREFIX + 'collapse-start', { isResponsive: isResponsive });
|
|
138
141
|
this.$el.trigger(startEvent);
|
|
139
142
|
if (startEvent.isDefaultPrevented()) {
|
|
140
143
|
return this;
|
|
@@ -147,7 +150,7 @@ Sidebar.prototype._collapse = function (isResponsive) {
|
|
|
147
150
|
$(this.inlineDialogSelector).attr('responds-to', 'hover');
|
|
148
151
|
|
|
149
152
|
if (!this.isAnimated()) {
|
|
150
|
-
this.$el.trigger($.Event(EVENT_PREFIX + 'collapse-end', {isResponsive: isResponsive}));
|
|
153
|
+
this.$el.trigger($.Event(EVENT_PREFIX + 'collapse-end', { isResponsive: isResponsive }));
|
|
151
154
|
}
|
|
152
155
|
return this;
|
|
153
156
|
};
|
|
@@ -157,7 +160,7 @@ Sidebar.prototype.collapse = function () {
|
|
|
157
160
|
};
|
|
158
161
|
|
|
159
162
|
Sidebar.prototype._expand = function (viewportWidth, isResponsive) {
|
|
160
|
-
var startEvent = $.Event(EVENT_PREFIX + 'expand-start', {isResponsive: isResponsive});
|
|
163
|
+
var startEvent = $.Event(EVENT_PREFIX + 'expand-start', { isResponsive: isResponsive });
|
|
161
164
|
this.$el.trigger(startEvent);
|
|
162
165
|
if (startEvent.isDefaultPrevented()) {
|
|
163
166
|
return this;
|
|
@@ -171,7 +174,7 @@ Sidebar.prototype._expand = function (viewportWidth, isResponsive) {
|
|
|
171
174
|
$(this.inlineDialogSelector).removeAttr('responds-to');
|
|
172
175
|
|
|
173
176
|
if (!this.isAnimated()) {
|
|
174
|
-
this.$el.trigger($.Event(EVENT_PREFIX + 'expand-end', {isResponsive: isResponsive}));
|
|
177
|
+
this.$el.trigger($.Event(EVENT_PREFIX + 'expand-end', { isResponsive: isResponsive }));
|
|
175
178
|
}
|
|
176
179
|
return this;
|
|
177
180
|
};
|
|
@@ -226,16 +229,24 @@ Sidebar.prototype.reflow = function reflow(
|
|
|
226
229
|
viewportHeight = document.documentElement.clientHeight,
|
|
227
230
|
viewportWidth = window.innerWidth,
|
|
228
231
|
scrollHeight = document.documentElement.scrollHeight,
|
|
229
|
-
scrollLeft = window.pageXOffset
|
|
230
|
-
|
|
232
|
+
scrollLeft = window.pageXOffset
|
|
233
|
+
) {
|
|
231
234
|
// Header height needs to be checked because in Stash it changes when the CSS "transform: translate3d" is changed.
|
|
232
235
|
// If you called reflow() after this change then nothing happened because the scrollTop and viewportHeight hadn't changed.
|
|
233
236
|
var offsetTop = sidebarOffset(this.$el);
|
|
234
237
|
var isInitialPageLoad = this._previousViewportWidth === null;
|
|
235
238
|
|
|
236
|
-
if (
|
|
239
|
+
if (
|
|
240
|
+
!(
|
|
241
|
+
scrollTop === this._previousScrollTop &&
|
|
242
|
+
viewportHeight === this._previousViewportHeight &&
|
|
243
|
+
offsetTop === this._previousOffsetTop
|
|
244
|
+
)
|
|
245
|
+
) {
|
|
237
246
|
var isTouch = this.$body.hasClass('aui-page-sidebar-touch');
|
|
238
|
-
var isTrackpadBounce =
|
|
247
|
+
var isTrackpadBounce =
|
|
248
|
+
scrollTop !== this._previousScrollTop &&
|
|
249
|
+
(scrollTop < 0 || scrollTop + viewportHeight > scrollHeight);
|
|
239
250
|
if (!isTouch && (isInitialPageLoad || !isTrackpadBounce)) {
|
|
240
251
|
this.setHeight(scrollTop, viewportHeight, offsetTop);
|
|
241
252
|
this.setTopPosition(scrollTop);
|
|
@@ -289,10 +300,10 @@ Sidebar.prototype.toggle = function () {
|
|
|
289
300
|
* of isCollapsed(), e.g.,
|
|
290
301
|
*
|
|
291
302
|
* sidebar.$el.on('click', sidebar.collapsedTriggersSelector, function (e) {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
303
|
+
* if (!sidebar.isCollapsed()) {
|
|
304
|
+
* return;
|
|
305
|
+
* }
|
|
306
|
+
* });
|
|
296
307
|
*
|
|
297
308
|
* @returns string
|
|
298
309
|
*/
|
|
@@ -301,7 +312,7 @@ Sidebar.prototype.submenuTriggersSelector = '.aui-sidebar-group:not(.aui-sidebar
|
|
|
301
312
|
Sidebar.prototype.collapsedTriggersSelector = [
|
|
302
313
|
Sidebar.prototype.submenuTriggersSelector,
|
|
303
314
|
'.aui-sidebar-group.aui-sidebar-group-tier-one > .aui-nav > li > a',
|
|
304
|
-
'.aui-sidebar-footer > .aui-sidebar-settings-button'
|
|
315
|
+
'.aui-sidebar-footer > .aui-sidebar-settings-button',
|
|
305
316
|
].join(', ');
|
|
306
317
|
|
|
307
318
|
Sidebar.prototype.toggleSelector = '.aui-sidebar-footer > .aui-sidebar-toggle';
|
|
@@ -315,7 +326,7 @@ function getAllSubmenuDialogs() {
|
|
|
315
326
|
return document.querySelectorAll(Sidebar.prototype.inlineDialogSelector);
|
|
316
327
|
}
|
|
317
328
|
|
|
318
|
-
function SubmenuManager
|
|
329
|
+
function SubmenuManager() {
|
|
319
330
|
this.inlineDialog = null;
|
|
320
331
|
}
|
|
321
332
|
|
|
@@ -400,7 +411,7 @@ function constructSubmenu(sidebar, $trigger) {
|
|
|
400
411
|
if ($trigger.data('_aui-sidebar-submenu-constructed')) {
|
|
401
412
|
return;
|
|
402
413
|
} else {
|
|
403
|
-
$trigger.data('_aui-sidebar-submenu-constructed', true)
|
|
414
|
+
$trigger.data('_aui-sidebar-submenu-constructed', true);
|
|
404
415
|
}
|
|
405
416
|
|
|
406
417
|
if (!hasSubmenu($trigger)) {
|
|
@@ -477,10 +488,7 @@ function inlineDialogShowHandler($trigger, submenuInlineDialog) {
|
|
|
477
488
|
var title = $trigger.is('a') ? $trigger.text() : $trigger.children('.aui-nav-heading').text();
|
|
478
489
|
|
|
479
490
|
var $container = $(submenuInlineDialog).find('.aui-navgroup-inner');
|
|
480
|
-
$container.children('.aui-nav-heading')
|
|
481
|
-
.attr('title', title)
|
|
482
|
-
.children('strong')
|
|
483
|
-
.text(title);
|
|
491
|
+
$container.children('.aui-nav-heading').attr('title', title).children('strong').text(title);
|
|
484
492
|
|
|
485
493
|
var $submenu = getSubmenu($trigger);
|
|
486
494
|
cloneExpander($submenu).appendTo($container);
|
|
@@ -528,18 +536,29 @@ var tooltipOptions = {
|
|
|
528
536
|
title: function () {
|
|
529
537
|
var $item = $(this);
|
|
530
538
|
if ($item.is('a') || $item.is('button')) {
|
|
531
|
-
return
|
|
539
|
+
return (
|
|
540
|
+
$item.attr('title') ||
|
|
541
|
+
$item.find('.aui-nav-item-label').text() ||
|
|
542
|
+
$item.data('tooltip')
|
|
543
|
+
);
|
|
532
544
|
} else {
|
|
533
|
-
return
|
|
545
|
+
return (
|
|
546
|
+
$item.children('.aui-nav').attr('title') ||
|
|
547
|
+
$item.children('.aui-nav-heading').text()
|
|
548
|
+
);
|
|
534
549
|
}
|
|
535
|
-
}
|
|
550
|
+
},
|
|
536
551
|
};
|
|
537
552
|
|
|
538
|
-
function lazilyInitializeSubmenus
|
|
539
|
-
sidebar.$el.on(
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
553
|
+
function lazilyInitializeSubmenus(sidebar) {
|
|
554
|
+
sidebar.$el.on(
|
|
555
|
+
'mouseenter mouseleave click focus',
|
|
556
|
+
sidebar.collapsedTriggersSelector,
|
|
557
|
+
function (e) {
|
|
558
|
+
const $trigger = $(e.target);
|
|
559
|
+
constructSubmenu(sidebar, $trigger);
|
|
560
|
+
}
|
|
561
|
+
);
|
|
543
562
|
}
|
|
544
563
|
|
|
545
564
|
function initializeHandlers(sidebar) {
|
|
@@ -570,7 +589,9 @@ function initializeHandlers(sidebar) {
|
|
|
570
589
|
|
|
571
590
|
if (sidebar.isAnimated()) {
|
|
572
591
|
sidebar.$el.on('transitionend webkitTransitionEnd', function () {
|
|
573
|
-
sidebar.$el.trigger(
|
|
592
|
+
sidebar.$el.trigger(
|
|
593
|
+
$.Event(EVENT_PREFIX + (sidebar.isCollapsed() ? 'collapse-end' : 'expand-end'))
|
|
594
|
+
);
|
|
574
595
|
});
|
|
575
596
|
}
|
|
576
597
|
|
|
@@ -619,26 +640,32 @@ function initializeHandlers(sidebar) {
|
|
|
619
640
|
const sidebarIsExpanded = sidebar.isCollapsed() === false;
|
|
620
641
|
const triggerHasSubmenu = hasSubmenu($trigger) === true;
|
|
621
642
|
return triggerHasSubmenu || sidebarIsExpanded;
|
|
622
|
-
}
|
|
623
|
-
})
|
|
643
|
+
},
|
|
644
|
+
});
|
|
624
645
|
|
|
625
646
|
sidebar.$el.tooltip({
|
|
626
647
|
...tooltipOptions,
|
|
627
648
|
aria: false,
|
|
628
649
|
live: sidebar.toggleSelector,
|
|
629
650
|
title: function () {
|
|
630
|
-
return sidebar.isCollapsed()
|
|
631
|
-
I18n.getText('aui.sidebar.expand.tooltip')
|
|
632
|
-
I18n.getText('aui.sidebar.collapse.tooltip')
|
|
633
|
-
}
|
|
634
|
-
})
|
|
651
|
+
return sidebar.isCollapsed()
|
|
652
|
+
? I18n.getText('aui.sidebar.expand.tooltip')
|
|
653
|
+
: I18n.getText('aui.sidebar.collapse.tooltip');
|
|
654
|
+
},
|
|
655
|
+
});
|
|
635
656
|
|
|
636
657
|
function isNormalTab(e) {
|
|
637
658
|
return e.keyCode === keyCode.TAB && !e.shiftKey && !e.altKey;
|
|
638
659
|
}
|
|
639
660
|
|
|
640
661
|
function isNormalSquareBracket(e) {
|
|
641
|
-
return
|
|
662
|
+
return (
|
|
663
|
+
e.which === keyCode.LEFT_SQUARE_BRACKET &&
|
|
664
|
+
!e.shiftKey &&
|
|
665
|
+
!e.ctrlKey &&
|
|
666
|
+
!e.metaKey &&
|
|
667
|
+
!isInput(e.target)
|
|
668
|
+
);
|
|
642
669
|
}
|
|
643
670
|
|
|
644
671
|
function isShiftTab(e) {
|
|
@@ -684,7 +711,10 @@ function initializeHandlers(sidebar) {
|
|
|
684
711
|
focusFirstItemOfInlineDialog($submenuInlineDialog);
|
|
685
712
|
|
|
686
713
|
$submenuInlineDialog.on('keydown', function (e) {
|
|
687
|
-
if (
|
|
714
|
+
if (
|
|
715
|
+
(isShiftTab(e) && isFirstSubmenuItem(e.target, $submenuInlineDialog)) ||
|
|
716
|
+
(isNormalTab(e) && isLastSubmenuItem(e.target, $submenuInlineDialog))
|
|
717
|
+
) {
|
|
688
718
|
triggerEl.focus();
|
|
689
719
|
// unbind event and close submenu as the focus is out of the submenu
|
|
690
720
|
$(this).off('keydown');
|
|
@@ -704,7 +734,7 @@ $(function () {
|
|
|
704
734
|
|
|
705
735
|
var sidebarSubmenuDeprecationLogger = deprecate.getMessageLogger('Sidebar.submenus', {
|
|
706
736
|
removeInVersion: '10.0.0',
|
|
707
|
-
sinceVersion: '5.8.0'
|
|
737
|
+
sinceVersion: '5.8.0',
|
|
708
738
|
});
|
|
709
739
|
|
|
710
740
|
globalize('sidebar', sidebar);
|