@atlassian/aui 9.2.16-bbd82a2f8 → 9.2.16
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.map +1 -1
- package/dist/aui/aui-prototyping.css +9 -9
- package/dist/aui/aui-prototyping.js +2 -2
- package/dist/aui/aui-prototyping.js.map +1 -1
- package/dist/aui/aui-prototyping.nodeps.css +9 -9
- package/dist/aui/aui-prototyping.nodeps.js +2 -2
- 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 -10
- 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 +1 -1
- 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 +82 -75
- 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 +207 -180
- 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 +49 -26
- 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 -49
- 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 +19 -15
- 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 +48 -48
- 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 -5
- 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-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 +9 -7
- 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/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
|
};
|
|
@@ -232,21 +235,29 @@ Sidebar.prototype.reflow = function reflow(
|
|
|
232
235
|
viewportHeight = document.documentElement.clientHeight,
|
|
233
236
|
viewportWidth = window.innerWidth,
|
|
234
237
|
scrollHeight = document.documentElement.scrollHeight,
|
|
235
|
-
scrollLeft = window.pageXOffset
|
|
236
|
-
|
|
238
|
+
scrollLeft = window.pageXOffset
|
|
239
|
+
) {
|
|
237
240
|
// Header height needs to be checked because in Stash it changes when the CSS "transform: translate3d" is changed.
|
|
238
241
|
// If you called reflow() after this change then nothing happened because the scrollTop and viewportHeight hadn't changed.
|
|
239
242
|
var offsetTop = sidebarOffset(this.$el);
|
|
240
243
|
var isInitialPageLoad = this._previousViewportWidth === null;
|
|
241
244
|
|
|
242
|
-
if (
|
|
245
|
+
if (
|
|
246
|
+
!(
|
|
247
|
+
scrollTop === this._previousScrollTop &&
|
|
248
|
+
viewportHeight === this._previousViewportHeight &&
|
|
249
|
+
offsetTop === this._previousOffsetTop
|
|
250
|
+
)
|
|
251
|
+
) {
|
|
243
252
|
if (this.isCollapsed() && !isInitialPageLoad && scrollTop !== this._previousScrollTop) {
|
|
244
253
|
//hide tooltips on scroll
|
|
245
254
|
this._removeAllTooltips();
|
|
246
255
|
}
|
|
247
256
|
|
|
248
257
|
var isTouch = this.$body.hasClass('aui-page-sidebar-touch');
|
|
249
|
-
var isTrackpadBounce =
|
|
258
|
+
var isTrackpadBounce =
|
|
259
|
+
scrollTop !== this._previousScrollTop &&
|
|
260
|
+
(scrollTop < 0 || scrollTop + viewportHeight > scrollHeight);
|
|
250
261
|
if (!isTouch && (isInitialPageLoad || !isTrackpadBounce)) {
|
|
251
262
|
this.setHeight(scrollTop, viewportHeight, offsetTop);
|
|
252
263
|
this.setTopPosition(scrollTop);
|
|
@@ -301,10 +312,10 @@ Sidebar.prototype.toggle = function () {
|
|
|
301
312
|
* of isCollapsed(), e.g.,
|
|
302
313
|
*
|
|
303
314
|
* sidebar.$el.on('click', sidebar.collapsedTriggersSelector, function (e) {
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
315
|
+
* if (!sidebar.isCollapsed()) {
|
|
316
|
+
* return;
|
|
317
|
+
* }
|
|
318
|
+
* });
|
|
308
319
|
*
|
|
309
320
|
* @returns string
|
|
310
321
|
*/
|
|
@@ -313,7 +324,7 @@ Sidebar.prototype.submenuTriggersSelector = '.aui-sidebar-group:not(.aui-sidebar
|
|
|
313
324
|
Sidebar.prototype.collapsedTriggersSelector = [
|
|
314
325
|
Sidebar.prototype.submenuTriggersSelector,
|
|
315
326
|
'.aui-sidebar-group.aui-sidebar-group-tier-one > .aui-nav > li > a',
|
|
316
|
-
'.aui-sidebar-footer > .aui-sidebar-settings-button'
|
|
327
|
+
'.aui-sidebar-footer > .aui-sidebar-settings-button',
|
|
317
328
|
].join(', ');
|
|
318
329
|
|
|
319
330
|
Sidebar.prototype.toggleSelector = '.aui-sidebar-footer > .aui-sidebar-toggle';
|
|
@@ -327,7 +338,7 @@ function getAllSubmenuDialogs() {
|
|
|
327
338
|
return document.querySelectorAll(Sidebar.prototype.inlineDialogSelector);
|
|
328
339
|
}
|
|
329
340
|
|
|
330
|
-
function SubmenuManager
|
|
341
|
+
function SubmenuManager() {
|
|
331
342
|
this.inlineDialog = null;
|
|
332
343
|
}
|
|
333
344
|
|
|
@@ -412,7 +423,7 @@ function constructSubmenu(sidebar, $trigger) {
|
|
|
412
423
|
if ($trigger.data('_aui-sidebar-submenu-constructed')) {
|
|
413
424
|
return;
|
|
414
425
|
} else {
|
|
415
|
-
$trigger.data('_aui-sidebar-submenu-constructed', true)
|
|
426
|
+
$trigger.data('_aui-sidebar-submenu-constructed', true);
|
|
416
427
|
}
|
|
417
428
|
|
|
418
429
|
if (!hasSubmenu($trigger)) {
|
|
@@ -489,10 +500,7 @@ function inlineDialogShowHandler($trigger, submenuInlineDialog) {
|
|
|
489
500
|
var title = $trigger.is('a') ? $trigger.text() : $trigger.children('.aui-nav-heading').text();
|
|
490
501
|
|
|
491
502
|
var $container = $(submenuInlineDialog).find('.aui-navgroup-inner');
|
|
492
|
-
$container.children('.aui-nav-heading')
|
|
493
|
-
.attr('title', title)
|
|
494
|
-
.children('strong')
|
|
495
|
-
.text(title);
|
|
503
|
+
$container.children('.aui-nav-heading').attr('title', title).children('strong').text(title);
|
|
496
504
|
|
|
497
505
|
var $submenu = getSubmenu($trigger);
|
|
498
506
|
cloneExpander($submenu).appendTo($container);
|
|
@@ -542,19 +550,27 @@ var tipsyOpts = {
|
|
|
542
550
|
title: function () {
|
|
543
551
|
var $item = $(this);
|
|
544
552
|
if ($item.is('a') || $item.is('button')) {
|
|
545
|
-
return
|
|
553
|
+
return (
|
|
554
|
+
$item.attr('title') ||
|
|
555
|
+
$item.find('.aui-nav-item-label').text() ||
|
|
556
|
+
$item.data('tooltip')
|
|
557
|
+
);
|
|
546
558
|
} else {
|
|
547
|
-
return
|
|
559
|
+
return (
|
|
560
|
+
$item.children('.aui-nav').attr('title') ||
|
|
561
|
+
$item.children('.aui-nav-heading').text()
|
|
562
|
+
);
|
|
548
563
|
}
|
|
549
|
-
}
|
|
564
|
+
},
|
|
550
565
|
};
|
|
551
566
|
|
|
552
567
|
function showTipsy($trigger, opts) {
|
|
553
568
|
$trigger.tooltip({ ...tipsyOpts, ...opts }).tooltip('show');
|
|
554
569
|
var $tip = $trigger.data('tipsy') && $trigger.data('tipsy').$tip;
|
|
555
|
-
if ($tip) {
|
|
570
|
+
if ($tip) {
|
|
571
|
+
// if .aui-sidebar-group does not have a title to display
|
|
556
572
|
// Remove "opacity" inline style from Tipsy to allow the our own styles and transitions to be applied
|
|
557
|
-
$tip.css({opacity: ''}).addClass('tooltip-shown');
|
|
573
|
+
$tip.css({ opacity: '' }).addClass('tooltip-shown');
|
|
558
574
|
}
|
|
559
575
|
}
|
|
560
576
|
|
|
@@ -565,9 +581,10 @@ function hideTipsy($trigger) {
|
|
|
565
581
|
|
|
566
582
|
if (durationStr) {
|
|
567
583
|
// can be denominated in either s or ms
|
|
568
|
-
var timeoutMs =
|
|
569
|
-
|
|
570
|
-
|
|
584
|
+
var timeoutMs =
|
|
585
|
+
durationStr.indexOf('ms') >= 0
|
|
586
|
+
? parseInt(durationStr.substring(0, durationStr.length - 2), 10)
|
|
587
|
+
: 1000 * parseInt(durationStr.substring(0, durationStr.length - 1), 10);
|
|
571
588
|
|
|
572
589
|
// use a timeout because the transitionend event is not reliable (yet),
|
|
573
590
|
// more details here: https://bitbucket.atlassian.net/browse/BB-11599
|
|
@@ -587,11 +604,15 @@ function hideTipsy($trigger) {
|
|
|
587
604
|
}
|
|
588
605
|
}
|
|
589
606
|
|
|
590
|
-
function lazilyInitializeSubmenus
|
|
591
|
-
sidebar.$el.on(
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
607
|
+
function lazilyInitializeSubmenus(sidebar) {
|
|
608
|
+
sidebar.$el.on(
|
|
609
|
+
'mouseenter mouseleave click focus',
|
|
610
|
+
sidebar.collapsedTriggersSelector,
|
|
611
|
+
function (e) {
|
|
612
|
+
const $trigger = $(e.target);
|
|
613
|
+
constructSubmenu(sidebar, $trigger);
|
|
614
|
+
}
|
|
615
|
+
);
|
|
595
616
|
}
|
|
596
617
|
|
|
597
618
|
function initializeHandlers(sidebar) {
|
|
@@ -622,7 +643,9 @@ function initializeHandlers(sidebar) {
|
|
|
622
643
|
|
|
623
644
|
if (sidebar.isAnimated()) {
|
|
624
645
|
sidebar.$el.on('transitionend webkitTransitionEnd', function () {
|
|
625
|
-
sidebar.$el.trigger(
|
|
646
|
+
sidebar.$el.trigger(
|
|
647
|
+
$.Event(EVENT_PREFIX + (sidebar.isCollapsed() ? 'collapse-end' : 'expand-end'))
|
|
648
|
+
);
|
|
626
649
|
});
|
|
627
650
|
}
|
|
628
651
|
|
|
@@ -702,7 +725,13 @@ function initializeHandlers(sidebar) {
|
|
|
702
725
|
}
|
|
703
726
|
|
|
704
727
|
function isNormalSquareBracket(e) {
|
|
705
|
-
return
|
|
728
|
+
return (
|
|
729
|
+
e.which === keyCode.LEFT_SQUARE_BRACKET &&
|
|
730
|
+
!e.shiftKey &&
|
|
731
|
+
!e.ctrlKey &&
|
|
732
|
+
!e.metaKey &&
|
|
733
|
+
!isInput(e.target)
|
|
734
|
+
);
|
|
706
735
|
}
|
|
707
736
|
|
|
708
737
|
function isShiftTab(e) {
|
|
@@ -748,7 +777,10 @@ function initializeHandlers(sidebar) {
|
|
|
748
777
|
focusFirstItemOfInlineDialog($submenuInlineDialog);
|
|
749
778
|
|
|
750
779
|
$submenuInlineDialog.on('keydown', function (e) {
|
|
751
|
-
if (
|
|
780
|
+
if (
|
|
781
|
+
(isShiftTab(e) && isFirstSubmenuItem(e.target, $submenuInlineDialog)) ||
|
|
782
|
+
(isNormalTab(e) && isLastSubmenuItem(e.target, $submenuInlineDialog))
|
|
783
|
+
) {
|
|
752
784
|
triggerEl.focus();
|
|
753
785
|
// unbind event and close submenu as the focus is out of the submenu
|
|
754
786
|
$(this).off('keydown');
|
|
@@ -768,7 +800,7 @@ $(function () {
|
|
|
768
800
|
|
|
769
801
|
var sidebarSubmenuDeprecationLogger = deprecate.getMessageLogger('Sidebar.submenus', {
|
|
770
802
|
removeInVersion: '10.0.0',
|
|
771
|
-
sinceVersion: '5.8.0'
|
|
803
|
+
sinceVersion: '5.8.0',
|
|
772
804
|
});
|
|
773
805
|
|
|
774
806
|
globalize('sidebar', sidebar);
|
package/src/js/aui/spin.js
CHANGED
|
@@ -16,60 +16,72 @@ import { fn } from './internal/deprecation';
|
|
|
16
16
|
* @param {jQuerySpinnerConfig} [maybeArgs]
|
|
17
17
|
* @deprecated since AUI 7.9.4. Use the `<aui-spinner>` web component directly.
|
|
18
18
|
*/
|
|
19
|
-
$.fn.spin = fn(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
19
|
+
$.fn.spin = fn(
|
|
20
|
+
function spinStart(firstArgs, maybeArgs) {
|
|
21
|
+
let args = { size: 'small' };
|
|
22
|
+
if (typeof maybeArgs === 'object') {
|
|
23
|
+
args = $.extend(args, maybeArgs);
|
|
24
|
+
}
|
|
25
|
+
if (typeof firstArgs === 'object') {
|
|
26
|
+
args = $.extend(args, firstArgs);
|
|
27
|
+
}
|
|
28
|
+
if (typeof firstArgs === 'string') {
|
|
29
|
+
args.size = firstArgs;
|
|
30
|
+
}
|
|
31
|
+
if (typeof firstArgs === 'boolean' && firstArgs === false) {
|
|
32
|
+
return this.spinStop();
|
|
33
|
+
}
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
return this.each(function () {
|
|
36
|
+
if (!this || !this.nodeType) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const $this = $(this);
|
|
40
|
+
const data = $this.data();
|
|
41
|
+
if (data) {
|
|
42
|
+
const $spinnerDom = $('<aui-spinner filled></aui-spinner>');
|
|
43
|
+
$spinnerDom.attr('size', args.size); // the web component handles validation
|
|
44
|
+
$spinnerDom.css('color', args.color);
|
|
42
45
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
$this.spinStop();
|
|
47
|
+
$this.append($spinnerDom);
|
|
48
|
+
// AUI-4819 - ensure web component is initialised synchronously.
|
|
49
|
+
skate.init(this);
|
|
47
50
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
},
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
data.spinner = $spinnerDom;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
'jQuery.fn.spin',
|
|
56
|
+
{
|
|
57
|
+
sinceVersion: '7.9.4',
|
|
58
|
+
removeInVersion: '10.0.0',
|
|
59
|
+
alternativeName: '<aui-spinner>',
|
|
60
|
+
}
|
|
61
|
+
);
|
|
56
62
|
|
|
57
63
|
/**
|
|
58
64
|
* @deprecated since AUI 7.9.4. Use the `<aui-spinner>` web component directly.
|
|
59
65
|
*/
|
|
60
|
-
$.fn.spinStop = fn(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
$.fn.spinStop = fn(
|
|
67
|
+
function spinStop() {
|
|
68
|
+
return this.each(function () {
|
|
69
|
+
if (!this || !this.nodeType) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const $this = $(this);
|
|
73
|
+
const data = $this.data();
|
|
74
|
+
if (data && data.spinner) {
|
|
75
|
+
data.spinner.remove();
|
|
67
76
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
},
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
77
|
+
delete data.spinner;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
},
|
|
81
|
+
'jQuery.fn.spinStop',
|
|
82
|
+
{
|
|
83
|
+
sinceVersion: '7.9.4',
|
|
84
|
+
removeInVersion: '10.0.0',
|
|
85
|
+
alternativeName: '<aui-spinner>',
|
|
86
|
+
}
|
|
87
|
+
);
|
package/src/js/aui/spinner.js
CHANGED
|
@@ -47,13 +47,13 @@ See https://css-tricks.com/centering-css-complete-guide/ for techniques.`;
|
|
|
47
47
|
const filledAttributeDeprecatedLogger = getMessageLogger('<aui-spinner> filled attribute', {
|
|
48
48
|
sinceVersion: '7.9.4',
|
|
49
49
|
removeInVersion: '10.0.0',
|
|
50
|
-
extraInfo: filledAttributeReplacementText
|
|
50
|
+
extraInfo: filledAttributeReplacementText,
|
|
51
51
|
});
|
|
52
52
|
|
|
53
53
|
const filledPropDeprecatedLogger = getMessageLogger('<aui-spinner> filled property', {
|
|
54
54
|
sinceVersion: '7.9.4',
|
|
55
55
|
removeInVersion: '10.0.0',
|
|
56
|
-
extraInfo: filledAttributeReplacementText
|
|
56
|
+
extraInfo: filledAttributeReplacementText,
|
|
57
57
|
});
|
|
58
58
|
|
|
59
59
|
/** @deprecated */
|
|
@@ -80,7 +80,7 @@ function validateSize(size) {
|
|
|
80
80
|
let result = SIZE.MEDIUM.name;
|
|
81
81
|
if (typeof size === 'string') {
|
|
82
82
|
size = size.toLowerCase();
|
|
83
|
-
const possibleSizes = Object.keys(SIZE).map(key => key.toLowerCase());
|
|
83
|
+
const possibleSizes = Object.keys(SIZE).map((key) => key.toLowerCase());
|
|
84
84
|
|
|
85
85
|
if (possibleSizes.indexOf(size) > -1) {
|
|
86
86
|
result = size;
|
|
@@ -107,7 +107,7 @@ function setSize(element, size, radius) {
|
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
function refresh(element) {
|
|
110
|
-
const { px, radius } = find(SIZE, s => s.name === element._data.size) || SIZE.MEDIUM;
|
|
110
|
+
const { px, radius } = find(SIZE, (s) => s.name === element._data.size) || SIZE.MEDIUM;
|
|
111
111
|
setSize(element, px, radius);
|
|
112
112
|
|
|
113
113
|
if (element._data.filled) {
|
|
@@ -119,7 +119,8 @@ function refresh(element) {
|
|
|
119
119
|
|
|
120
120
|
const SpinnerEl = skate('aui-spinner', {
|
|
121
121
|
template(element) {
|
|
122
|
-
element.innerHTML =
|
|
122
|
+
element.innerHTML =
|
|
123
|
+
'<div class="aui-spinner spinner"><svg focusable="false"><circle></circle></svg></div>';
|
|
123
124
|
refresh(element);
|
|
124
125
|
},
|
|
125
126
|
attached(element) {
|
|
@@ -128,16 +129,16 @@ const SpinnerEl = skate('aui-spinner', {
|
|
|
128
129
|
attributes: {
|
|
129
130
|
filled: {
|
|
130
131
|
/** @deprecated */
|
|
131
|
-
created: function(element) {
|
|
132
|
+
created: function (element) {
|
|
132
133
|
filledAttributeDeprecatedLogger();
|
|
133
134
|
element._data.filled = true;
|
|
134
135
|
refresh(element);
|
|
135
136
|
},
|
|
136
137
|
/** @deprecated */
|
|
137
|
-
removed: function(element) {
|
|
138
|
+
removed: function (element) {
|
|
138
139
|
element._data.filled = false;
|
|
139
140
|
refresh(element);
|
|
140
|
-
}
|
|
141
|
+
},
|
|
141
142
|
},
|
|
142
143
|
size(element, data) {
|
|
143
144
|
element._data.size = validateSize(data.newValue);
|
|
@@ -149,7 +150,7 @@ const SpinnerEl = skate('aui-spinner', {
|
|
|
149
150
|
return this.__data || (this._data = defaults({}, DEFAULTS));
|
|
150
151
|
},
|
|
151
152
|
set _data(data) {
|
|
152
|
-
return this.__data = data;
|
|
153
|
+
return (this.__data = data);
|
|
153
154
|
},
|
|
154
155
|
/** @deprecated */
|
|
155
156
|
set filled(isFilled) {
|
|
@@ -164,6 +165,4 @@ const SpinnerEl = skate('aui-spinner', {
|
|
|
164
165
|
});
|
|
165
166
|
|
|
166
167
|
export default SpinnerEl;
|
|
167
|
-
export {
|
|
168
|
-
SIZE
|
|
169
|
-
};
|
|
168
|
+
export { SIZE };
|
|
@@ -7,7 +7,7 @@ const DEFAULT_SORT_OPTIONS = {
|
|
|
7
7
|
sortMultiSortKey: '',
|
|
8
8
|
headers: {},
|
|
9
9
|
debug: false,
|
|
10
|
-
tabIndex: false
|
|
10
|
+
tabIndex: false,
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -34,7 +34,6 @@ function sortTable($table, extraOptions) {
|
|
|
34
34
|
|
|
35
35
|
let tablessortable = {
|
|
36
36
|
setup: function () {
|
|
37
|
-
|
|
38
37
|
/*
|
|
39
38
|
This parser is used for issue keys in the format <PROJECT_KEY>-<ISSUE_NUMBER>, where <PROJECT_KEY> is a maximum
|
|
40
39
|
10 character string with characters(A-Z). Assumes that issue number is no larger than 999,999. e.g. not more
|
|
@@ -56,13 +55,18 @@ let tablessortable = {
|
|
|
56
55
|
|
|
57
56
|
const PROJECT_KEY_TEMPLATE = '..........';
|
|
58
57
|
const ISSUE_NUMBER_TEMPLATE = '000000';
|
|
59
|
-
let stringRepresentation = (projectKey + PROJECT_KEY_TEMPLATE).slice(
|
|
60
|
-
|
|
58
|
+
let stringRepresentation = (projectKey + PROJECT_KEY_TEMPLATE).slice(
|
|
59
|
+
0,
|
|
60
|
+
PROJECT_KEY_TEMPLATE.length
|
|
61
|
+
);
|
|
62
|
+
stringRepresentation += (ISSUE_NUMBER_TEMPLATE + issueNumber).slice(
|
|
63
|
+
-ISSUE_NUMBER_TEMPLATE.length
|
|
64
|
+
);
|
|
61
65
|
|
|
62
66
|
return stringRepresentation;
|
|
63
67
|
},
|
|
64
68
|
|
|
65
|
-
type: 'text'
|
|
69
|
+
type: 'text',
|
|
66
70
|
});
|
|
67
71
|
|
|
68
72
|
/*
|
|
@@ -72,12 +76,16 @@ let tablessortable = {
|
|
|
72
76
|
$.tablesorter.addParser({
|
|
73
77
|
id: 'textSortAttributeParser',
|
|
74
78
|
is: function (nodeValue, table, node) {
|
|
75
|
-
return
|
|
79
|
+
return (
|
|
80
|
+
node.hasAttribute('data-sort-value') &&
|
|
81
|
+
(!node.hasAttribute('data-sort-type') ||
|
|
82
|
+
node.getAttribute('data-sort-type') === 'text')
|
|
83
|
+
);
|
|
76
84
|
},
|
|
77
85
|
format: function (nodeValue, table, node) {
|
|
78
86
|
return node.getAttribute('data-sort-value');
|
|
79
87
|
},
|
|
80
|
-
type: 'text'
|
|
88
|
+
type: 'text',
|
|
81
89
|
});
|
|
82
90
|
|
|
83
91
|
/*
|
|
@@ -87,12 +95,15 @@ let tablessortable = {
|
|
|
87
95
|
$.tablesorter.addParser({
|
|
88
96
|
id: 'numericSortAttributeParser',
|
|
89
97
|
is: function (nodeValue, table, node) {
|
|
90
|
-
return
|
|
98
|
+
return (
|
|
99
|
+
node.getAttribute('data-sort-type') === 'numeric' &&
|
|
100
|
+
node.hasAttribute('data-sort-value')
|
|
101
|
+
);
|
|
91
102
|
},
|
|
92
103
|
format: function (nodeValue, table, node) {
|
|
93
104
|
return node.getAttribute('data-sort-value');
|
|
94
105
|
},
|
|
95
|
-
type: 'numeric'
|
|
106
|
+
type: 'numeric',
|
|
96
107
|
});
|
|
97
108
|
|
|
98
109
|
$('.aui-table-sortable').each(function () {
|
|
@@ -105,7 +116,7 @@ let tablessortable = {
|
|
|
105
116
|
*/
|
|
106
117
|
setTableSortable: function ($table, options) {
|
|
107
118
|
return sortTable($table, options);
|
|
108
|
-
}
|
|
119
|
+
},
|
|
109
120
|
};
|
|
110
121
|
|
|
111
122
|
$(tablessortable.setup);
|