@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/tabs.js
CHANGED
|
@@ -10,9 +10,10 @@ import skate from './internal/skate';
|
|
|
10
10
|
var template = window.skateTemplateHtml;
|
|
11
11
|
|
|
12
12
|
var STORAGE_PREFIX = '_internal-aui-tabs-';
|
|
13
|
-
var RESPONSIVE_OPT_IN_SELECTOR =
|
|
13
|
+
var RESPONSIVE_OPT_IN_SELECTOR =
|
|
14
|
+
'.aui-tabs.horizontal-tabs[data-aui-responsive]:not([data-aui-responsive="false"]), aui-tabs[responsive]:not([responsive="false"])';
|
|
14
15
|
|
|
15
|
-
function getPaneIdFromTabLink
|
|
16
|
+
function getPaneIdFromTabLink(el) {
|
|
16
17
|
let $el = $(el);
|
|
17
18
|
let maybeId = String($el.attr('href') || '').trim();
|
|
18
19
|
return maybeId.indexOf('#') === 0 ? maybeId.substr(1) : null;
|
|
@@ -23,17 +24,20 @@ function getPaneIdFromTabLink (el) {
|
|
|
23
24
|
* @param {HTMLElement} el a tab link element with an href attribute pointing to a tab panel
|
|
24
25
|
* @returns {HTMLElement|null} the element with matching ID if it exists, otherwise null
|
|
25
26
|
*/
|
|
26
|
-
function getPaneFromTabLink
|
|
27
|
+
function getPaneFromTabLink(el) {
|
|
27
28
|
let maybeId = getPaneIdFromTabLink(el);
|
|
28
29
|
return maybeId ? document.getElementById(maybeId) : null;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
function enhanceTabLink
|
|
32
|
+
function enhanceTabLink(link) {
|
|
32
33
|
var $thisLink = $(link);
|
|
33
34
|
var targetPane = getPaneFromTabLink($thisLink);
|
|
34
35
|
|
|
35
36
|
if (!getPaneIdFromTabLink(link)) {
|
|
36
|
-
logger.error(
|
|
37
|
+
logger.error(
|
|
38
|
+
'A tab link must use an anchor link (e.g., <a href="#a-valid-id"></a>) to work correctly.',
|
|
39
|
+
link
|
|
40
|
+
);
|
|
37
41
|
}
|
|
38
42
|
|
|
39
43
|
if (targetPane) {
|
|
@@ -47,8 +51,11 @@ function enhanceTabLink (link) {
|
|
|
47
51
|
$thisLink.attr('aria-selected', 'false');
|
|
48
52
|
}
|
|
49
53
|
} else {
|
|
50
|
-
logger.warn(
|
|
51
|
-
|
|
54
|
+
logger.warn(
|
|
55
|
+
"A tab panel could not be found with the tab link's configured href." +
|
|
56
|
+
' Check whether the tab link href is correct.',
|
|
57
|
+
link
|
|
58
|
+
);
|
|
52
59
|
}
|
|
53
60
|
}
|
|
54
61
|
|
|
@@ -93,7 +100,10 @@ var ResponsiveAdapter = {
|
|
|
93
100
|
},
|
|
94
101
|
|
|
95
102
|
createResponsiveDropdown: function ($tabsContainer, id) {
|
|
96
|
-
var dropdownMarkup =
|
|
103
|
+
var dropdownMarkup =
|
|
104
|
+
'<div class="aui-dropdown2 aui-tabs-responsive-dropdown" id="aui-tabs-responsive-dropdown-' +
|
|
105
|
+
id +
|
|
106
|
+
'">' +
|
|
97
107
|
'<ul>' +
|
|
98
108
|
'</ul>' +
|
|
99
109
|
'</div>';
|
|
@@ -109,7 +119,12 @@ var ResponsiveAdapter = {
|
|
|
109
119
|
|
|
110
120
|
var currentTotalTabWidth = 0;
|
|
111
121
|
|
|
112
|
-
for (
|
|
122
|
+
for (
|
|
123
|
+
var i = 0;
|
|
124
|
+
hasMoreSpace(currentTotalTabWidth, dropdownTriggerTabWidth, parentWidth) &&
|
|
125
|
+
i < tabs.length;
|
|
126
|
+
i++
|
|
127
|
+
) {
|
|
113
128
|
var $tab = $(tabs[i]);
|
|
114
129
|
var tabWidth = $tab.outerWidth(true);
|
|
115
130
|
currentTotalTabWidth += tabWidth;
|
|
@@ -122,7 +137,11 @@ var ResponsiveAdapter = {
|
|
|
122
137
|
moveVisibleTabs: function (oldVisibleTabs, $tabsParent, $dropdownTriggerTab) {
|
|
123
138
|
var dropdownId = $dropdownTriggerTab.find('a').attr('aria-controls');
|
|
124
139
|
var $dropdown = $('#' + dropdownId);
|
|
125
|
-
var newVisibleTabs = this.findNewVisibleTabs(
|
|
140
|
+
var newVisibleTabs = this.findNewVisibleTabs(
|
|
141
|
+
oldVisibleTabs,
|
|
142
|
+
$tabsParent.outerWidth(),
|
|
143
|
+
$dropdownTriggerTab.parent().outerWidth(true)
|
|
144
|
+
);
|
|
126
145
|
var lastTabIndex = newVisibleTabs.length - 1;
|
|
127
146
|
|
|
128
147
|
for (var j = oldVisibleTabs.length - 1; j >= lastTabIndex; j--) {
|
|
@@ -168,14 +187,16 @@ var ResponsiveAdapter = {
|
|
|
168
187
|
moveTabOutOfDropdown: function ($tab, $dropdownTriggerTab) {
|
|
169
188
|
var isTabInDropdownActive = $tab.find('a').hasClass('aui-dropdown2-checked');
|
|
170
189
|
|
|
171
|
-
if (isTabInDropdownActive){
|
|
190
|
+
if (isTabInDropdownActive) {
|
|
172
191
|
$tab.addClass('active-tab');
|
|
173
192
|
$dropdownTriggerTab.removeClass('active-tab');
|
|
174
193
|
}
|
|
175
194
|
|
|
176
|
-
$tab.children('a').removeClass(
|
|
195
|
+
$tab.children('a').removeClass(
|
|
196
|
+
'aui-dropdown2-radio aui-tabs-responsive-item aui-dropdown2-checked'
|
|
197
|
+
);
|
|
177
198
|
$dropdownTriggerTab.before($tab);
|
|
178
|
-
}
|
|
199
|
+
},
|
|
179
200
|
};
|
|
180
201
|
|
|
181
202
|
// this function is run by jquery .each() where 'this' is the current tabs container
|
|
@@ -185,7 +206,7 @@ function calculateResponsiveTabs(tabsContainer, index) {
|
|
|
185
206
|
var $visibleTabs = $tabsMenu.find('li:not(.aui-tabs-responsive-trigger-item)');
|
|
186
207
|
var $dropdownTriggerTab = $tabsMenu.find('.aui-tabs-responsive-trigger').parent();
|
|
187
208
|
var $dropdownTrigger = $dropdownTriggerTab.find('a');
|
|
188
|
-
var dropdownId =
|
|
209
|
+
var dropdownId = $dropdownTrigger.attr('aria-controls');
|
|
189
210
|
var $dropdown = $(document.getElementById(dropdownId)).attr('aria-checked', false);
|
|
190
211
|
var isResponsive = $dropdown.length > 0;
|
|
191
212
|
var totalTabsWidth = ResponsiveAdapter.totalTabsWidth($visibleTabs, $dropdown);
|
|
@@ -203,14 +224,23 @@ function calculateResponsiveTabs(tabsContainer, index) {
|
|
|
203
224
|
$dropdown.attr('id', 'aui-tabs-responsive-dropdown-' + index);
|
|
204
225
|
|
|
205
226
|
if (needsResponsive) {
|
|
206
|
-
var $newVisibleTabs = ResponsiveAdapter.moveVisibleTabs(
|
|
227
|
+
var $newVisibleTabs = ResponsiveAdapter.moveVisibleTabs(
|
|
228
|
+
$visibleTabs.toArray(),
|
|
229
|
+
$tabsContainer,
|
|
230
|
+
$dropdownTriggerTab
|
|
231
|
+
);
|
|
207
232
|
var visibleTabWidth = ResponsiveAdapter.totalVisibleTabWidth($newVisibleTabs);
|
|
208
|
-
var remainingSpace =
|
|
233
|
+
var remainingSpace =
|
|
234
|
+
$tabsContainer.outerWidth() - visibleTabWidth - $dropdownTriggerTab.outerWidth(true);
|
|
209
235
|
var hasSpace = remainingSpace > 0;
|
|
210
236
|
|
|
211
237
|
if (hasSpace) {
|
|
212
238
|
var $tabsInDropdown = $dropdown.find('li');
|
|
213
|
-
ResponsiveAdapter.moveInvisibleTabs(
|
|
239
|
+
ResponsiveAdapter.moveInvisibleTabs(
|
|
240
|
+
$tabsInDropdown.toArray(),
|
|
241
|
+
remainingSpace,
|
|
242
|
+
$dropdownTriggerTab
|
|
243
|
+
);
|
|
214
244
|
}
|
|
215
245
|
|
|
216
246
|
if (!$tabsContainer.hasClass('aui-tabs-disabled')) {
|
|
@@ -234,7 +264,7 @@ function calculateResponsiveTabs(tabsContainer, index) {
|
|
|
234
264
|
}
|
|
235
265
|
}
|
|
236
266
|
|
|
237
|
-
function switchToTab
|
|
267
|
+
function switchToTab(tab) {
|
|
238
268
|
var $tab = $(tab);
|
|
239
269
|
|
|
240
270
|
// This probably isn't needed anymore. Remove once confirmed.
|
|
@@ -244,17 +274,17 @@ function switchToTab (tab) {
|
|
|
244
274
|
|
|
245
275
|
var pane = getPaneFromTabLink($tab);
|
|
246
276
|
if (!pane) {
|
|
247
|
-
logger.error(
|
|
248
|
-
'
|
|
277
|
+
logger.error(
|
|
278
|
+
'Cannot switch to tab panel because it does not exist.' +
|
|
279
|
+
' Check whether the tab link href is correct.',
|
|
280
|
+
tab
|
|
281
|
+
);
|
|
249
282
|
return;
|
|
250
283
|
}
|
|
251
284
|
|
|
252
285
|
var $pane = $(pane);
|
|
253
286
|
|
|
254
|
-
$pane
|
|
255
|
-
.addClass('active-pane')
|
|
256
|
-
.siblings('.tabs-pane')
|
|
257
|
-
.removeClass('active-pane')
|
|
287
|
+
$pane.addClass('active-pane').siblings('.tabs-pane').removeClass('active-pane');
|
|
258
288
|
|
|
259
289
|
var $dropdownTriggerTab = $tab.parents('.aui-tabs').find('.aui-tabs-responsive-trigger-item a');
|
|
260
290
|
var dropdownId = $dropdownTriggerTab.attr('aria-controls');
|
|
@@ -263,41 +293,52 @@ function switchToTab (tab) {
|
|
|
263
293
|
$dropdown.find('li a').attr('aria-checked', false).removeClass('checked aui-dropdown2-checked');
|
|
264
294
|
$dropdown.find('li').removeClass('active-tab');
|
|
265
295
|
|
|
266
|
-
$tab
|
|
267
|
-
.parent('li.menu-item')
|
|
296
|
+
$tab.parent('li.menu-item')
|
|
268
297
|
.addClass('active-tab')
|
|
269
298
|
.siblings('.menu-item')
|
|
270
299
|
.removeClass('active-tab');
|
|
271
300
|
|
|
272
301
|
if ($tab.hasClass('aui-tabs-responsive-item')) {
|
|
273
|
-
var $visibleTabs = $pane
|
|
302
|
+
var $visibleTabs = $pane
|
|
303
|
+
.parent('.aui-tabs')
|
|
304
|
+
.find('li.menu-item:not(.aui-tabs-responsive-trigger-item)');
|
|
274
305
|
|
|
275
306
|
$visibleTabs.removeClass('active-tab');
|
|
276
307
|
$visibleTabs.find('a').removeClass('checked').removeAttr('aria-checked');
|
|
277
308
|
}
|
|
278
309
|
|
|
279
310
|
if ($tab.hasClass('aui-tabs-responsive-item')) {
|
|
280
|
-
$pane
|
|
311
|
+
$pane
|
|
312
|
+
.parent('.aui-tabs')
|
|
313
|
+
.find('li.menu-item.aui-tabs-responsive-trigger-item')
|
|
314
|
+
.addClass('active-tab');
|
|
281
315
|
}
|
|
282
316
|
|
|
283
317
|
$tab.closest('.tabs-menu').find('a').attr('aria-selected', 'false');
|
|
284
318
|
$tab.attr('aria-selected', 'true');
|
|
285
319
|
$tab.trigger('tabSelect', {
|
|
286
320
|
tab: $tab,
|
|
287
|
-
pane: $pane
|
|
321
|
+
pane: $pane,
|
|
288
322
|
});
|
|
289
323
|
}
|
|
290
324
|
|
|
291
325
|
function isPersistentTabGroup($tabGroup) {
|
|
292
326
|
// Tab group persistent attribute exists and is not false
|
|
293
|
-
return
|
|
327
|
+
return (
|
|
328
|
+
$tabGroup.attr('data-aui-persist') !== undefined &&
|
|
329
|
+
$tabGroup.attr('data-aui-persist') !== 'false'
|
|
330
|
+
);
|
|
294
331
|
}
|
|
295
332
|
|
|
296
333
|
function createPersistentKey($tabGroup) {
|
|
297
334
|
var tabGroupId = $tabGroup.attr('id');
|
|
298
335
|
var value = $tabGroup.attr('data-aui-persist');
|
|
299
336
|
|
|
300
|
-
return
|
|
337
|
+
return (
|
|
338
|
+
STORAGE_PREFIX +
|
|
339
|
+
(tabGroupId ? tabGroupId : '') +
|
|
340
|
+
(value && value !== 'true' ? '-' + value : '')
|
|
341
|
+
);
|
|
301
342
|
}
|
|
302
343
|
|
|
303
344
|
/* eslint max-depth: 1 */
|
|
@@ -321,13 +362,15 @@ function updateTabsFromLocalStorage($tabGroups) {
|
|
|
321
362
|
}
|
|
322
363
|
}
|
|
323
364
|
} else {
|
|
324
|
-
logger.warn(
|
|
365
|
+
logger.warn(
|
|
366
|
+
'A tab group must specify an id attribute if it specifies data-aui-persist.'
|
|
367
|
+
);
|
|
325
368
|
}
|
|
326
369
|
}
|
|
327
370
|
}
|
|
328
371
|
}
|
|
329
372
|
|
|
330
|
-
function updateLocalStorageEntry
|
|
373
|
+
function updateLocalStorageEntry($tab) {
|
|
331
374
|
var $tabGroup = $tab.closest('.aui-tabs');
|
|
332
375
|
var tabGroupId = $tabGroup.attr('id');
|
|
333
376
|
|
|
@@ -335,14 +378,14 @@ function updateLocalStorageEntry ($tab) {
|
|
|
335
378
|
var tabId = getPaneIdFromTabLink($tab);
|
|
336
379
|
|
|
337
380
|
if (tabId) {
|
|
338
|
-
window.localStorage.setItem(createPersistentKey($tabGroup),'#' + tabId);
|
|
381
|
+
window.localStorage.setItem(createPersistentKey($tabGroup), '#' + tabId);
|
|
339
382
|
}
|
|
340
383
|
} else {
|
|
341
384
|
logger.warn('A tab group must specify an id attribute if it specifies data-aui-persist.');
|
|
342
385
|
}
|
|
343
386
|
}
|
|
344
387
|
|
|
345
|
-
function handleTabClick
|
|
388
|
+
function handleTabClick(e) {
|
|
346
389
|
tabs.change($(e.target).closest('a'));
|
|
347
390
|
|
|
348
391
|
if (e) {
|
|
@@ -350,31 +393,30 @@ function handleTabClick (e) {
|
|
|
350
393
|
}
|
|
351
394
|
}
|
|
352
395
|
|
|
353
|
-
function responsiveResizeHandler
|
|
396
|
+
function responsiveResizeHandler(tabs) {
|
|
354
397
|
tabs.forEach(function (tab, index) {
|
|
355
398
|
calculateResponsiveTabs(tab, index);
|
|
356
399
|
});
|
|
357
400
|
}
|
|
358
401
|
|
|
359
|
-
|
|
360
402
|
// Initialisation
|
|
361
403
|
// --------------
|
|
362
404
|
|
|
363
|
-
function getTabs
|
|
405
|
+
function getTabs() {
|
|
364
406
|
return $('.aui-tabs:not(.aui-tabs-disabled)');
|
|
365
407
|
}
|
|
366
408
|
|
|
367
|
-
function getResponsiveTabs
|
|
409
|
+
function getResponsiveTabs() {
|
|
368
410
|
return $(RESPONSIVE_OPT_IN_SELECTOR).toArray();
|
|
369
411
|
}
|
|
370
412
|
|
|
371
|
-
function initWindow
|
|
413
|
+
function initWindow() {
|
|
372
414
|
const handler = debounce(responsiveResizeHandler, 200);
|
|
373
415
|
handler(getResponsiveTabs());
|
|
374
416
|
$(window).on('resize.aui-tabs', () => handler(getResponsiveTabs()));
|
|
375
417
|
}
|
|
376
418
|
|
|
377
|
-
function initTab
|
|
419
|
+
function initTab(tab) {
|
|
378
420
|
var $tab = $(tab);
|
|
379
421
|
|
|
380
422
|
tab.setAttribute('role', 'application');
|
|
@@ -399,7 +441,7 @@ function initTab (tab) {
|
|
|
399
441
|
}
|
|
400
442
|
}
|
|
401
443
|
|
|
402
|
-
function initTabs
|
|
444
|
+
function initTabs() {
|
|
403
445
|
var tabs = getTabs();
|
|
404
446
|
|
|
405
447
|
tabs.each(function () {
|
|
@@ -409,27 +451,29 @@ function initTabs () {
|
|
|
409
451
|
updateTabsFromLocalStorage(tabs);
|
|
410
452
|
}
|
|
411
453
|
|
|
412
|
-
function initPane
|
|
454
|
+
function initPane(pane) {
|
|
413
455
|
pane.setAttribute('role', 'tabpanel');
|
|
414
456
|
}
|
|
415
457
|
|
|
416
|
-
function initPanes
|
|
458
|
+
function initPanes(tab) {
|
|
417
459
|
[].slice.call(tab.querySelectorAll('.tabs-pane')).forEach(initPane);
|
|
418
460
|
}
|
|
419
461
|
|
|
420
|
-
function initVerticalTabs
|
|
462
|
+
function initVerticalTabs() {
|
|
421
463
|
// Vertical tab truncation setup (adds title if clipped)
|
|
422
|
-
$('.aui-tabs.vertical-tabs')
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
//
|
|
428
|
-
if (
|
|
429
|
-
|
|
464
|
+
$('.aui-tabs.vertical-tabs')
|
|
465
|
+
.find('a')
|
|
466
|
+
.each(function () {
|
|
467
|
+
var thisTab = $(this);
|
|
468
|
+
|
|
469
|
+
// don't override existing titles
|
|
470
|
+
if (!thisTab.attr('title')) {
|
|
471
|
+
// if text has been truncated, add title
|
|
472
|
+
if (isClipped(thisTab)) {
|
|
473
|
+
thisTab.attr('title', thisTab.text());
|
|
474
|
+
}
|
|
430
475
|
}
|
|
431
|
-
}
|
|
432
|
-
});
|
|
476
|
+
});
|
|
433
477
|
}
|
|
434
478
|
|
|
435
479
|
var tabs = {
|
|
@@ -449,24 +493,23 @@ var tabs = {
|
|
|
449
493
|
if (isPersistentTabGroup($tabGroup) && window.localStorage) {
|
|
450
494
|
updateLocalStorageEntry($a);
|
|
451
495
|
}
|
|
452
|
-
}
|
|
496
|
+
},
|
|
453
497
|
};
|
|
454
498
|
|
|
455
499
|
$(tabs.setup);
|
|
456
500
|
|
|
457
|
-
|
|
458
501
|
// Web Components
|
|
459
502
|
// --------------
|
|
460
503
|
|
|
461
|
-
function findComponent
|
|
504
|
+
function findComponent(element) {
|
|
462
505
|
return $(element).closest('aui-tabs').get(0);
|
|
463
506
|
}
|
|
464
507
|
|
|
465
|
-
function findPanes
|
|
508
|
+
function findPanes(tabs) {
|
|
466
509
|
return tabs.querySelectorAll('aui-tabs-pane');
|
|
467
510
|
}
|
|
468
511
|
|
|
469
|
-
function findTabs
|
|
512
|
+
function findTabs(tabs) {
|
|
470
513
|
return tabs.querySelectorAll('li[is=aui-tabs-tab]');
|
|
471
514
|
}
|
|
472
515
|
|
|
@@ -497,8 +540,8 @@ const TabContainerEl = skate('aui-tabs', {
|
|
|
497
540
|
}
|
|
498
541
|
|
|
499
542
|
return this;
|
|
500
|
-
}
|
|
501
|
-
}
|
|
543
|
+
},
|
|
544
|
+
},
|
|
502
545
|
});
|
|
503
546
|
|
|
504
547
|
const TabItemEl = skate('aui-tabs-tab', {
|
|
@@ -506,13 +549,7 @@ const TabItemEl = skate('aui-tabs-tab', {
|
|
|
506
549
|
created: function (element) {
|
|
507
550
|
$(element).addClass('menu-item');
|
|
508
551
|
},
|
|
509
|
-
template: template(
|
|
510
|
-
'<a href="#">',
|
|
511
|
-
'<strong>',
|
|
512
|
-
'<content></content>',
|
|
513
|
-
'</strong>',
|
|
514
|
-
'</a>'
|
|
515
|
-
)
|
|
552
|
+
template: template('<a href="#">', '<strong>', '<content></content>', '</strong>', '</a>'),
|
|
516
553
|
});
|
|
517
554
|
|
|
518
555
|
const TabPaneEl = skate('aui-tabs-pane', {
|
|
@@ -537,16 +574,10 @@ const TabPaneEl = skate('aui-tabs-pane', {
|
|
|
537
574
|
|
|
538
575
|
$element.siblings('ul').append(tab);
|
|
539
576
|
},
|
|
540
|
-
template: template(
|
|
541
|
-
'<content></content>'
|
|
542
|
-
)
|
|
577
|
+
template: template('<content></content>'),
|
|
543
578
|
});
|
|
544
579
|
|
|
545
580
|
globalize('tabs', tabs);
|
|
546
581
|
|
|
547
582
|
export default tabs;
|
|
548
|
-
export {
|
|
549
|
-
TabContainerEl,
|
|
550
|
-
TabPaneEl,
|
|
551
|
-
TabItemEl
|
|
552
|
-
};
|
|
583
|
+
export { TabContainerEl, TabPaneEl, TabItemEl };
|
package/src/js/aui/to-init.js
CHANGED
|
@@ -12,7 +12,7 @@ import globalize from './internal/globalize';
|
|
|
12
12
|
*
|
|
13
13
|
* @return {Object}
|
|
14
14
|
*/
|
|
15
|
-
function toInit
|
|
15
|
+
function toInit(func) {
|
|
16
16
|
$.when($.ready).then(function () {
|
|
17
17
|
// Ensure that every function passed through toInit happens asynchronously after DomContentLoaded events,
|
|
18
18
|
// and will be executed in its own stack, meaning that the UI can be updated in-between expensive handlers.
|
package/src/js/aui/toggle.js
CHANGED
|
@@ -9,8 +9,8 @@ import skateTemplateHtml from 'skatejs-template-html';
|
|
|
9
9
|
import skate from './internal/skate';
|
|
10
10
|
import { INPUT_SUFFIX } from './internal/constants';
|
|
11
11
|
import CustomEvent from './polyfills/custom-event';
|
|
12
|
-
import SpinnerEl, {SIZE} from './spinner';
|
|
13
|
-
import { I18n } from './i18n'
|
|
12
|
+
import SpinnerEl, { SIZE } from './spinner';
|
|
13
|
+
import { I18n } from './i18n';
|
|
14
14
|
|
|
15
15
|
function fireChangeEvent(element) {
|
|
16
16
|
if (element._canFireEventsNow) {
|
|
@@ -18,11 +18,11 @@ function fireChangeEvent(element) {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
function getInput
|
|
21
|
+
function getInput(element) {
|
|
22
22
|
return element._input || (element._input = element.querySelector('input'));
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
function getSpinner
|
|
25
|
+
function getSpinner(element) {
|
|
26
26
|
return element._spinner || (element._spinner = new SpinnerEl());
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -34,10 +34,10 @@ function fallbackAttributeHandler(attributeName, element, change) {
|
|
|
34
34
|
getInput(element).setAttribute(attributeName, change.newValue);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
function getAttributeHandler
|
|
37
|
+
function getAttributeHandler(attributeName) {
|
|
38
38
|
return {
|
|
39
39
|
removed: removedAttributeHandler.bind(this, attributeName),
|
|
40
|
-
fallback: fallbackAttributeHandler.bind(this, attributeName)
|
|
40
|
+
fallback: fallbackAttributeHandler.bind(this, attributeName),
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
43
|
|
|
@@ -49,7 +49,7 @@ const formAttributeHandler = {
|
|
|
49
49
|
fallback: function (element, change) {
|
|
50
50
|
fallbackAttributeHandler.call(this, 'form', element, change);
|
|
51
51
|
element._formId = change.newValue;
|
|
52
|
-
}
|
|
52
|
+
},
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
var idAttributeHandler = {
|
|
@@ -57,11 +57,11 @@ var idAttributeHandler = {
|
|
|
57
57
|
fallback: function (element, change) {
|
|
58
58
|
const val = `${change.newValue}${INPUT_SUFFIX}`;
|
|
59
59
|
getInput(element).setAttribute('id', val);
|
|
60
|
-
}
|
|
60
|
+
},
|
|
61
61
|
};
|
|
62
62
|
|
|
63
63
|
var valueAttributeHandler = {
|
|
64
|
-
removed: function(element) {
|
|
64
|
+
removed: function (element) {
|
|
65
65
|
removedAttributeHandler.call(this, 'value', element);
|
|
66
66
|
// Internet Explorer 11 has a bug where it doesn't clear out the previous value
|
|
67
67
|
// when the attribute is removed.
|
|
@@ -69,7 +69,7 @@ var valueAttributeHandler = {
|
|
|
69
69
|
},
|
|
70
70
|
fallback: function (element, change) {
|
|
71
71
|
fallbackAttributeHandler.call(this, 'value', element, change);
|
|
72
|
-
}
|
|
72
|
+
},
|
|
73
73
|
};
|
|
74
74
|
|
|
75
75
|
var checkedAttributeHandler = {
|
|
@@ -78,7 +78,7 @@ var checkedAttributeHandler = {
|
|
|
78
78
|
},
|
|
79
79
|
fallback: function (element) {
|
|
80
80
|
getInput(element).checked = true;
|
|
81
|
-
}
|
|
81
|
+
},
|
|
82
82
|
};
|
|
83
83
|
|
|
84
84
|
var labelHandler = {
|
|
@@ -87,7 +87,7 @@ var labelHandler = {
|
|
|
87
87
|
},
|
|
88
88
|
fallback: function (element, change) {
|
|
89
89
|
getInput(element).setAttribute('aria-label', change.newValue);
|
|
90
|
-
}
|
|
90
|
+
},
|
|
91
91
|
};
|
|
92
92
|
|
|
93
93
|
function clickHandler(element, e) {
|
|
@@ -104,9 +104,12 @@ function setDisabledForLabels(element, disabled) {
|
|
|
104
104
|
if (!element.id) {
|
|
105
105
|
return;
|
|
106
106
|
}
|
|
107
|
-
Array.prototype.forEach.call(
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
Array.prototype.forEach.call(
|
|
108
|
+
document.querySelectorAll(`aui-label[for="${element.id}"]`),
|
|
109
|
+
function (el) {
|
|
110
|
+
el.disabled = disabled;
|
|
111
|
+
}
|
|
112
|
+
);
|
|
110
113
|
}
|
|
111
114
|
|
|
112
115
|
/**
|
|
@@ -152,10 +155,12 @@ const ToggleEl = skate('aui-toggle', {
|
|
|
152
155
|
|
|
153
156
|
$(getInput(element)).tooltip({
|
|
154
157
|
title: function () {
|
|
155
|
-
return this.checked
|
|
158
|
+
return this.checked
|
|
159
|
+
? this.getAttribute('tooltip-on')
|
|
160
|
+
: this.getAttribute('tooltip-off');
|
|
156
161
|
},
|
|
157
162
|
gravity: 's',
|
|
158
|
-
hoverable: false
|
|
163
|
+
hoverable: false,
|
|
159
164
|
});
|
|
160
165
|
bindEventsToInput(element);
|
|
161
166
|
if (element.hasAttribute('checked')) {
|
|
@@ -167,38 +172,44 @@ const ToggleEl = skate('aui-toggle', {
|
|
|
167
172
|
enforce(element).attributeExists('label');
|
|
168
173
|
},
|
|
169
174
|
events: {
|
|
170
|
-
click: clickHandler
|
|
175
|
+
click: clickHandler,
|
|
171
176
|
},
|
|
172
177
|
attributes: {
|
|
173
|
-
id: idAttributeHandler,
|
|
174
|
-
checked: checkedAttributeHandler,
|
|
175
|
-
disabled: getAttributeHandler('disabled'),
|
|
176
|
-
form: formAttributeHandler,
|
|
177
|
-
name: getAttributeHandler('name'),
|
|
178
|
-
value: valueAttributeHandler,
|
|
178
|
+
'id': idAttributeHandler,
|
|
179
|
+
'checked': checkedAttributeHandler,
|
|
180
|
+
'disabled': getAttributeHandler('disabled'),
|
|
181
|
+
'form': formAttributeHandler,
|
|
182
|
+
'name': getAttributeHandler('name'),
|
|
183
|
+
'value': valueAttributeHandler,
|
|
179
184
|
'tooltip-on': {
|
|
180
185
|
value: I18n.getText('aui.toggle.on'),
|
|
181
186
|
fallback: function (element, change) {
|
|
182
|
-
getInput(element).setAttribute(
|
|
183
|
-
|
|
187
|
+
getInput(element).setAttribute(
|
|
188
|
+
'tooltip-on',
|
|
189
|
+
change.newValue || I18n.getText('aui.toggle.on')
|
|
190
|
+
);
|
|
191
|
+
},
|
|
184
192
|
},
|
|
185
193
|
'tooltip-off': {
|
|
186
194
|
value: I18n.getText('aui.toggle.off'),
|
|
187
195
|
fallback: function (element, change) {
|
|
188
|
-
getInput(element).setAttribute(
|
|
189
|
-
|
|
196
|
+
getInput(element).setAttribute(
|
|
197
|
+
'tooltip-off',
|
|
198
|
+
change.newValue || I18n.getText('aui.toggle.off')
|
|
199
|
+
);
|
|
200
|
+
},
|
|
190
201
|
},
|
|
191
|
-
label: labelHandler
|
|
202
|
+
'label': labelHandler,
|
|
192
203
|
},
|
|
193
204
|
prototype: {
|
|
194
205
|
focus: function () {
|
|
195
206
|
getInput(this).focus();
|
|
196
207
|
return this;
|
|
197
208
|
},
|
|
198
|
-
get checked
|
|
209
|
+
get checked() {
|
|
199
210
|
return getInput(this).checked;
|
|
200
211
|
},
|
|
201
|
-
set checked
|
|
212
|
+
set checked(value) {
|
|
202
213
|
// Need to explicitly set the property on the checkbox because the
|
|
203
214
|
// checkbox's property doesn't change with it's attribute after it
|
|
204
215
|
// is clicked.
|
|
@@ -207,41 +218,42 @@ const ToggleEl = skate('aui-toggle', {
|
|
|
207
218
|
setBooleanAttribute(this, 'checked', value);
|
|
208
219
|
}
|
|
209
220
|
},
|
|
210
|
-
get disabled
|
|
221
|
+
get disabled() {
|
|
211
222
|
// AUI-4958 - this may be accessed by a jQuery event handler in response to
|
|
212
223
|
// a DOMNodeInserted event being fired. In this scenario, the `template`
|
|
213
224
|
// function has been called by skate, but the `created` callback has not.
|
|
214
225
|
return getInput(this).disabled;
|
|
215
226
|
},
|
|
216
|
-
set disabled
|
|
227
|
+
set disabled(value) {
|
|
217
228
|
return setBooleanAttribute(this, 'disabled', value);
|
|
218
229
|
},
|
|
219
|
-
get form
|
|
230
|
+
get form() {
|
|
220
231
|
return document.getElementById(this._formId);
|
|
221
232
|
},
|
|
222
|
-
set form
|
|
233
|
+
set form(value) {
|
|
223
234
|
formAttributeHandler.fallback.call(this, this, { newValue: value || null });
|
|
224
235
|
return this.form;
|
|
225
236
|
},
|
|
226
|
-
get name
|
|
237
|
+
get name() {
|
|
227
238
|
return getInput(this).name;
|
|
228
239
|
},
|
|
229
|
-
set name
|
|
240
|
+
set name(value) {
|
|
230
241
|
this.setAttribute('name', value);
|
|
231
242
|
return value;
|
|
232
243
|
},
|
|
233
|
-
get value
|
|
244
|
+
get value() {
|
|
234
245
|
return getInput(this).value;
|
|
235
246
|
},
|
|
236
|
-
set value
|
|
247
|
+
set value(value) {
|
|
248
|
+
// Setting the value of an input to null sets it to empty string.
|
|
237
249
|
let newVal = value === null ? '' : value;
|
|
238
250
|
this.setAttribute('value', newVal);
|
|
239
251
|
return newVal;
|
|
240
252
|
},
|
|
241
|
-
get busy
|
|
253
|
+
get busy() {
|
|
242
254
|
return getInput(this).getAttribute('aria-busy') === 'true';
|
|
243
255
|
},
|
|
244
|
-
set busy
|
|
256
|
+
set busy(value) {
|
|
245
257
|
const input = getInput(this);
|
|
246
258
|
const spinner = getSpinner(this);
|
|
247
259
|
|
|
@@ -266,8 +278,8 @@ const ToggleEl = skate('aui-toggle', {
|
|
|
266
278
|
}
|
|
267
279
|
setDisabledForLabels(this, !!value);
|
|
268
280
|
return value;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
281
|
+
},
|
|
282
|
+
},
|
|
271
283
|
});
|
|
272
284
|
|
|
273
285
|
export default ToggleEl;
|