@atlassian/aui 9.10.5 → 9.10.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +7 -9
- package/dist/aui/aui-css-deprecations.js.map +1 -1
- package/dist/aui/aui-prototyping-browserfocus.css +2 -651
- package/dist/aui/aui-prototyping-browserfocus.css.map +1 -0
- package/dist/aui/aui-prototyping-darkmode.css +2 -285
- package/dist/aui/aui-prototyping-darkmode.css.map +1 -0
- package/dist/aui/aui-prototyping-design-tokens-api-full.js +1 -1
- package/dist/aui/aui-prototyping-design-tokens-api-full.js.map +1 -1
- package/dist/aui/aui-prototyping-design-tokens-api.js +1 -1
- package/dist/aui/aui-prototyping-design-tokens-api.js.map +1 -1
- package/dist/aui/aui-prototyping-design-tokens-base-themes-css.css +2 -2
- package/dist/aui/aui-prototyping-design-tokens-base-themes-css.css.map +1 -1
- package/dist/aui/aui-prototyping-design-tokens-base-themes-css.js +1 -1
- package/dist/aui/aui-prototyping-design-tokens-base-themes.js +1 -1
- package/dist/aui/aui-prototyping-design-tokens-compatibility.css +2 -115
- package/dist/aui/aui-prototyping-design-tokens-compatibility.css.map +1 -0
- package/dist/aui/aui-prototyping.css +10 -10
- package/dist/aui/aui-prototyping.css.map +1 -1
- package/dist/aui/aui-prototyping.js +4 -4
- package/dist/aui/aui-prototyping.js.map +1 -1
- package/dist/aui/aui-prototyping.nodeps.css +10 -10
- package/dist/aui/aui-prototyping.nodeps.css.map +1 -1
- package/dist/aui/aui-prototyping.nodeps.js +4 -4
- package/dist/aui/aui-prototyping.nodeps.js.map +1 -1
- package/dist/aui/fonts/adgs-icons.eot +0 -0
- package/dist/aui/fonts/adgs-icons.ttf +0 -0
- package/dist/aui/fonts/adgs-icons.woff +0 -0
- package/entry/aui.batch.components.js +23 -23
- package/entry/aui.batch.page.js +3 -3
- package/entry/aui.batch.patterns.js +20 -20
- package/entry/aui.batch.prototyping.js +3 -11
- package/entry/aui.component.nav.js +1 -1
- package/entry/aui.component.progressbar.js +4 -1
- package/entry/aui.side-effects.js +2 -2
- package/entry/behaviours/aui.behaviour.format.js +1 -1
- package/entry/behaviours/aui.behaviour.i18n.js +1 -1
- package/entry/behaviours/aui.behaviour.keyboard-shortcuts.js +1 -1
- package/entry/behaviours/aui.behaviour.progressive-data-set.js +1 -1
- package/entry/behaviours/aui.behaviour.version.js +1 -1
- package/entry/deprecated/aui.component.inline-dialog1.js +1 -1
- package/entry/styles/aui-design-tokens-compatibility.less +114 -115
- package/entry/token-themes-generated/p2/aui-prototyping-design-tokens-base-themes.js +26 -0
- package/entry/token-themes-generated/p2/aui-prototyping-design-tokens-theme-import-map.js +51 -0
- package/entry/token-themes-generated/p2/aui-prototyping-design-tokens-theme.css +795 -0
- package/entry/token-themes-generated/p2/themes/dark-future.js +7 -0
- package/entry/token-themes-generated/p2/themes/dark-new-input-border.js +7 -0
- package/entry/token-themes-generated/p2/themes/dark.js +394 -0
- package/entry/token-themes-generated/p2/themes/legacy-dark.js +394 -0
- package/entry/token-themes-generated/p2/themes/legacy-light.js +394 -0
- package/entry/token-themes-generated/p2/themes/light-future.js +7 -0
- package/entry/token-themes-generated/p2/themes/light-new-input-border.js +7 -0
- package/entry/token-themes-generated/p2/themes/light.js +394 -0
- package/entry/token-themes-generated/p2/themes/shape.js +15 -0
- package/entry/token-themes-generated/p2/themes/spacing.js +27 -0
- package/entry/token-themes-generated/p2/themes/typography-adg3.js +48 -0
- package/entry/token-themes-generated/p2/themes/typography-minor3.js +35 -0
- package/package.json +3 -7
- package/src/js/aui/alphanum.js +1 -1
- package/src/js/aui/avatar-badged.js +4 -5
- package/src/js/aui/avatar-group.js +58 -28
- package/src/js/aui/avatar.js +16 -14
- package/src/js/aui/banner.js +5 -4
- package/src/js/aui/blanket.js +11 -14
- package/src/js/aui/button.js +5 -5
- package/src/js/aui/checkbox-multiselect.js +79 -76
- package/src/js/aui/clone.js +1 -1
- package/src/js/aui/close-button.js +2 -6
- package/src/js/aui/contain-dropdown.js +5 -5
- package/src/js/aui/contains.js +1 -1
- package/src/js/aui/cookie.js +12 -16
- package/src/js/aui/date-picker.js +94 -77
- package/src/js/aui/debounce.js +5 -8
- package/src/js/aui/design-tokens/design-tokens-full.js +4 -13
- package/src/js/aui/design-tokens/design-tokens-init.js +3 -5
- package/src/js/aui/design-tokens/design-tokens-testing-theme.js +12 -18
- package/src/js/aui/design-tokens/design-tokens.js +2 -4
- package/src/js/aui/dialog.js +206 -172
- package/src/js/aui/dialog2.js +36 -25
- package/src/js/aui/dropdown2.js +221 -189
- package/src/js/aui/escape-html.js +2 -2
- package/src/js/aui/escape.js +1 -1
- package/src/js/aui/event.js +4 -8
- package/src/js/aui/expander.js +15 -13
- package/src/js/aui/flag.js +14 -16
- package/src/js/aui/focus-manager.js +19 -18
- package/src/js/aui/form-notification.js +15 -14
- package/src/js/aui/form-validation/basic-validators.js +39 -30
- package/src/js/aui/form-validation/validator-register.js +9 -5
- package/src/js/aui/form-validation.js +12 -13
- package/src/js/aui/format.js +9 -6
- package/src/js/aui/forms/create-forms-component-body.js +6 -9
- package/src/js/aui/forms/custom-checkbox.js +2 -6
- package/src/js/aui/forms/custom-radio.js +2 -6
- package/src/js/aui/forms.js +4 -8
- package/src/js/aui/header-async.js +1 -1
- package/src/js/aui/header.js +2 -2
- package/src/js/aui/i18n.js +2 -5
- package/src/js/aui/index-of.js +1 -1
- package/src/js/aui/inline-dialog.js +171 -117
- package/src/js/aui/inline-dialog2.js +40 -33
- package/src/js/aui/internal/add-id.js +1 -1
- package/src/js/aui/internal/alignment.js +57 -49
- package/src/js/aui/internal/amdify.js +0 -1
- package/src/js/aui/internal/animation.js +2 -5
- package/src/js/aui/internal/attributes.js +2 -3
- package/src/js/aui/internal/browser.js +5 -6
- package/src/js/aui/internal/constants.js +1 -3
- package/src/js/aui/internal/deduplicateIDs.js +8 -7
- package/src/js/aui/internal/deprecation/deprecated-adg2-icons.js +132 -132
- package/src/js/aui/internal/deprecation.js +53 -31
- package/src/js/aui/internal/detect-children-change.js +3 -2
- package/src/js/aui/internal/elements.js +2 -5
- package/src/js/aui/internal/enforcer.js +11 -13
- package/src/js/aui/internal/globalize.js +3 -3
- package/src/js/aui/internal/has-touch.js +1 -2
- package/src/js/aui/internal/header/create-header.js +54 -30
- package/src/js/aui/internal/i18n/aui.js +10 -6
- package/src/js/aui/internal/i18n/aui_af.js +31 -31
- package/src/js/aui/internal/i18n/aui_ar.js +31 -31
- package/src/js/aui/internal/i18n/aui_ar_DZ.js +31 -31
- package/src/js/aui/internal/i18n/aui_az.js +31 -31
- package/src/js/aui/internal/i18n/aui_bg.js +31 -31
- package/src/js/aui/internal/i18n/aui_bs.js +31 -31
- package/src/js/aui/internal/i18n/aui_ca.js +31 -31
- package/src/js/aui/internal/i18n/aui_cs.js +31 -31
- package/src/js/aui/internal/i18n/aui_da.js +31 -31
- package/src/js/aui/internal/i18n/aui_de.js +31 -31
- package/src/js/aui/internal/i18n/aui_el.js +31 -31
- package/src/js/aui/internal/i18n/aui_en_AU.js +31 -31
- package/src/js/aui/internal/i18n/aui_en_GB.js +31 -31
- package/src/js/aui/internal/i18n/aui_en_NZ.js +31 -31
- package/src/js/aui/internal/i18n/aui_eo.js +31 -31
- package/src/js/aui/internal/i18n/aui_es.js +31 -31
- package/src/js/aui/internal/i18n/aui_et.js +31 -31
- package/src/js/aui/internal/i18n/aui_eu.js +31 -31
- package/src/js/aui/internal/i18n/aui_fa.js +31 -31
- package/src/js/aui/internal/i18n/aui_fi.js +31 -31
- package/src/js/aui/internal/i18n/aui_fo.js +31 -31
- package/src/js/aui/internal/i18n/aui_fr.js +31 -31
- package/src/js/aui/internal/i18n/aui_fr_CH.js +31 -31
- package/src/js/aui/internal/i18n/aui_gl.js +31 -31
- package/src/js/aui/internal/i18n/aui_he.js +31 -31
- package/src/js/aui/internal/i18n/aui_hr.js +31 -31
- package/src/js/aui/internal/i18n/aui_hu.js +31 -31
- package/src/js/aui/internal/i18n/aui_hy.js +31 -31
- package/src/js/aui/internal/i18n/aui_id.js +31 -31
- package/src/js/aui/internal/i18n/aui_is.js +31 -31
- package/src/js/aui/internal/i18n/aui_it.js +31 -31
- package/src/js/aui/internal/i18n/aui_ja.js +31 -31
- package/src/js/aui/internal/i18n/aui_ko.js +31 -31
- package/src/js/aui/internal/i18n/aui_kz.js +31 -31
- package/src/js/aui/internal/i18n/aui_lt.js +31 -31
- package/src/js/aui/internal/i18n/aui_lv.js +31 -31
- package/src/js/aui/internal/i18n/aui_ml.js +31 -31
- package/src/js/aui/internal/i18n/aui_ms.js +31 -31
- package/src/js/aui/internal/i18n/aui_nl.js +31 -31
- package/src/js/aui/internal/i18n/aui_no.js +31 -31
- package/src/js/aui/internal/i18n/aui_pl.js +31 -31
- package/src/js/aui/internal/i18n/aui_pt.js +31 -31
- package/src/js/aui/internal/i18n/aui_pt_BR.js +31 -31
- package/src/js/aui/internal/i18n/aui_rm.js +31 -31
- package/src/js/aui/internal/i18n/aui_ro.js +31 -31
- package/src/js/aui/internal/i18n/aui_ru.js +31 -31
- package/src/js/aui/internal/i18n/aui_sk.js +31 -31
- package/src/js/aui/internal/i18n/aui_sl.js +31 -31
- package/src/js/aui/internal/i18n/aui_sq.js +31 -31
- package/src/js/aui/internal/i18n/aui_sr.js +31 -31
- package/src/js/aui/internal/i18n/aui_sr_SR.js +31 -31
- package/src/js/aui/internal/i18n/aui_sv.js +31 -31
- package/src/js/aui/internal/i18n/aui_ta.js +31 -31
- package/src/js/aui/internal/i18n/aui_th.js +31 -31
- package/src/js/aui/internal/i18n/aui_tj.js +31 -31
- package/src/js/aui/internal/i18n/aui_tr.js +31 -31
- package/src/js/aui/internal/i18n/aui_uk.js +31 -31
- package/src/js/aui/internal/i18n/aui_vi.js +31 -31
- package/src/js/aui/internal/i18n/aui_zh_CN.js +31 -31
- package/src/js/aui/internal/i18n/aui_zh_HK.js +31 -31
- package/src/js/aui/internal/i18n/aui_zh_TW.js +31 -31
- package/src/js/aui/internal/log.js +2 -6
- package/src/js/aui/internal/mediaQuery.js +2 -3
- package/src/js/aui/internal/select/option.js +3 -3
- package/src/js/aui/internal/select/suggestion-model.js +1 -1
- package/src/js/aui/internal/select/suggestions-model.js +4 -5
- package/src/js/aui/internal/select/suggestions-view.js +17 -12
- package/src/js/aui/internal/state.js +2 -3
- package/src/js/aui/is-clipped.js +2 -2
- package/src/js/aui/key-code.js +1 -1
- package/src/js/aui/label.js +6 -6
- package/src/js/aui/layer.js +101 -89
- package/src/js/aui/messages.js +67 -43
- package/src/js/aui/navigation.js +7 -9
- package/src/js/aui/on-text-resize.js +7 -5
- package/src/js/aui/params.js +11 -8
- package/src/js/aui/polyfills/custom-event.js +7 -7
- package/src/js/aui/polyfills/placeholder.js +4 -4
- package/src/js/aui/populate-parameters.js +4 -4
- package/src/js/aui/progress-indicator.js +35 -27
- package/src/js/aui/progressive-data-set.js +13 -8
- package/src/js/aui/query-input.js +1 -1
- package/src/js/aui/restful-table/class-names.js +1 -1
- package/src/js/aui/restful-table/data-keys.js +1 -1
- package/src/js/aui/restful-table/edit-row.js +63 -63
- package/src/js/aui/restful-table/entry-model.js +6 -13
- package/src/js/aui/restful-table/event-handlers.js +4 -8
- package/src/js/aui/restful-table/event-names.js +1 -1
- package/src/js/aui/restful-table/row.js +41 -23
- package/src/js/aui/restful-table.js +101 -72
- package/src/js/aui/result-set.js +5 -5
- package/src/js/aui/results-list.js +3 -3
- package/src/js/aui/select.js +72 -51
- package/src/js/aui/select2.js +16 -8
- package/src/js/aui/sidebar.js +81 -51
- package/src/js/aui/spin.js +61 -49
- package/src/js/aui/spinner.js +11 -12
- package/src/js/aui/tables-sortable.js +21 -10
- package/src/js/aui/tabs.js +108 -77
- package/src/js/aui/to-init.js +1 -1
- package/src/js/aui/toggle.js +55 -43
- package/src/js/aui/tooltip.js +35 -34
- package/src/js/aui/trigger.js +20 -18
- package/src/js/aui/truncating-progressive-data-set.js +1 -1
- package/src/js/aui/unbind-text-resize.js +1 -1
- package/src/js/aui/unique-id.js +1 -1
- package/src/js/aui/when-i-type.js +66 -39
- package/src/js/aui-css-deprecations.js +52 -51
- package/src/js/jquery/jquery.hotkeys.js +124 -49
- package/src/js/jquery/jquery.moveto.js +18 -12
- package/src/less/adg-fancy-file-input.less +2 -3
- package/src/less/adg-header-quicksearch.less +4 -1
- package/src/less/adg-iconfont.less +242 -242
- package/src/less/adgs-icons.less +262 -262
- package/src/less/aui-appheader.less +11 -7
- package/src/less/aui-avatars.less +1 -1
- package/src/less/aui-banner.less +2 -1
- package/src/less/aui-buttons.less +6 -5
- package/src/less/aui-dark-mode.less +1 -1
- package/src/less/aui-date-picker.less +9 -6
- package/src/less/aui-experimental-expander.less +3 -3
- package/src/less/aui-experimental-labels.less +1 -1
- package/src/less/aui-experimental-progress-indicator.less +10 -4
- package/src/less/aui-experimental-progress-tracker.less +9 -6
- package/src/less/aui-experimental-restfultable.less +11 -3
- package/src/less/aui-experimental-tables-sortable.less +5 -3
- package/src/less/aui-experimental-tooltip.less +1 -1
- package/src/less/aui-link.less +0 -1
- package/src/less/aui-lozenge.less +6 -3
- package/src/less/aui-navigation.less +13 -13
- package/src/less/aui-page-layout.less +3 -4
- package/src/less/aui-page-typography.less +8 -3
- package/src/less/aui-reset.less +22 -6
- package/src/less/aui-select2.less +11 -8
- package/src/less/aui-sidebar-badges.less +1 -2
- package/src/less/aui-sidebar-config.less +7 -2
- package/src/less/aui-sidebar-grouping.less +16 -6
- package/src/less/aui-sidebar-navigation.less +7 -5
- package/src/less/aui-sidebar-skeleton.less +12 -7
- package/src/less/aui-skip-link.less +2 -1
- package/src/less/aui-spinner.less +2 -2
- package/src/less/aui-toggle.less +2 -2
- package/src/less/aui-toolbar2.less +1 -1
- package/src/less/checkbox-multiselect.less +13 -13
- package/src/less/dialog.less +3 -3
- package/src/less/dialog2.less +11 -10
- package/src/less/dropdown2-temp.css +4 -4
- package/src/less/dropdown2.less +4 -4
- package/src/less/flag.less +2 -2
- package/src/less/form-notification.less +10 -6
- package/src/less/forms-current.less +6 -5
- package/src/less/forms-legacy.less +4 -2
- package/src/less/forms-radios-and-checkboxes.less +18 -16
- package/src/less/forms.less +2 -4
- package/src/less/iconfont-mixin.less +7 -4
- package/src/less/imports/aui-theme/adg/adg-colors.less +40 -40
- package/src/less/imports/aui-theme/adg/adg-neutral-dark.less +20 -20
- package/src/less/imports/aui-theme/adg/adg-neutral-light.less +20 -20
- package/src/less/imports/aui-theme/components/buttons.less +5 -1
- package/src/less/imports/aui-theme/components/dropdown.less +3 -1
- package/src/less/imports/aui-theme/components/flag.less +1 -1
- package/src/less/imports/aui-theme/components/form-notification.less +2 -1
- package/src/less/imports/aui-theme/components/forms.less +20 -3
- package/src/less/imports/aui-theme/components/inline-dialog2.less +1 -1
- package/src/less/imports/aui-theme/components/navigation.less +3 -3
- package/src/less/imports/aui-theme/components/progress-tracker.less +6 -2
- package/src/less/imports/aui-theme/components/tables.less +3 -2
- package/src/less/imports/aui-theme/components/toggle.less +8 -3
- package/src/less/imports/aui-theme/core/icons.less +22 -22
- package/src/less/imports/aui-theme/core/spaces.less +1 -1
- package/src/less/imports/aui-theme/core/text.less +6 -3
- package/src/less/imports/aui-theme/theme.less +1 -3
- package/src/less/imports/mixins/dropdown2-trigger-chevron-icon.less +0 -1
- package/src/less/imports/mixins/focus.less +12 -4
- package/src/less/imports/mixins/media-queries.less +2 -2
- package/src/less/imports/mixins/shadows.less +3 -1
- package/src/less/imports/mixins/tab-indicator.less +2 -2
- package/src/less/imports/mixins.less +11 -4
- package/src/less/inline-dialog.less +21 -19
- package/src/less/layer.less +0 -2
- package/src/less/messages.less +2 -1
- package/src/less/single-select.less +15 -10
- package/src/less/tables.less +3 -2
- package/src/less/tabs.less +4 -3
- package/entry/token-themes-generated/npm/themes/typography.js +0 -27
|
@@ -3,18 +3,26 @@ import skate from './internal/skate';
|
|
|
3
3
|
const DEFAULT_SIZE = 'medium';
|
|
4
4
|
const VISIBLE_AVATAR_COUNT = 4;
|
|
5
5
|
const OVERLAP_FACTOR = 0.25;
|
|
6
|
-
const SIZES = {
|
|
6
|
+
const SIZES = {
|
|
7
|
+
xsmall: 16,
|
|
8
|
+
small: 24,
|
|
9
|
+
medium: 32,
|
|
10
|
+
large: 48,
|
|
11
|
+
xlarge: 64,
|
|
12
|
+
xxlarge: 96,
|
|
13
|
+
xxxlarge: 128,
|
|
14
|
+
};
|
|
7
15
|
|
|
8
16
|
const setAvatarGroupSize = (element, newValue, oldValue) => {
|
|
9
17
|
if (oldValue) {
|
|
10
18
|
element.classList.remove(`aui-avatar-group-${oldValue}`);
|
|
11
19
|
}
|
|
12
20
|
element.classList.add(`aui-avatar-group-${newValue}`);
|
|
13
|
-
}
|
|
21
|
+
};
|
|
14
22
|
|
|
15
23
|
const getAvatarGroupSize = (value) => {
|
|
16
24
|
return Object.keys(SIZES).includes(value) ? value : DEFAULT_SIZE;
|
|
17
|
-
}
|
|
25
|
+
};
|
|
18
26
|
|
|
19
27
|
const updateAvatarGroup = (element, size) => {
|
|
20
28
|
const avatars = element.querySelectorAll('aui-avatar');
|
|
@@ -27,12 +35,14 @@ const updateAvatarGroup = (element, size) => {
|
|
|
27
35
|
oldDropdown.remove();
|
|
28
36
|
}
|
|
29
37
|
|
|
30
|
-
if (hiddenAvatars.length === 0) {
|
|
38
|
+
if (hiddenAvatars.length === 0) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
31
41
|
|
|
32
42
|
const dropdown = createDropdown(size, hiddenAvatars);
|
|
33
43
|
|
|
34
44
|
element.appendChild(dropdown);
|
|
35
|
-
}
|
|
45
|
+
};
|
|
36
46
|
|
|
37
47
|
const createDropdown = (size, hiddenAvatars) => {
|
|
38
48
|
const dropdown = document.createElement('div');
|
|
@@ -41,13 +51,13 @@ const createDropdown = (size, hiddenAvatars) => {
|
|
|
41
51
|
|
|
42
52
|
hiddenAvatars.forEach((hiddenAvatar) => {
|
|
43
53
|
menu.append(hiddenAvatar);
|
|
44
|
-
})
|
|
54
|
+
});
|
|
45
55
|
dropdown.classList.add('aui-avatar-group-dropdown');
|
|
46
56
|
dropdown.style.left = getLeftPosition(size, VISIBLE_AVATAR_COUNT + 0.2);
|
|
47
57
|
dropdown.appendChild(button);
|
|
48
58
|
dropdown.appendChild(menu);
|
|
49
59
|
return dropdown;
|
|
50
|
-
}
|
|
60
|
+
};
|
|
51
61
|
|
|
52
62
|
const createAvatarGroupDropdownButton = (content) => {
|
|
53
63
|
const button = document.createElement('button');
|
|
@@ -56,18 +66,20 @@ const createAvatarGroupDropdownButton = (content) => {
|
|
|
56
66
|
button.setAttribute('aria-expanded', false);
|
|
57
67
|
button.setAttribute('aria-haspopup', 'dialog');
|
|
58
68
|
return button;
|
|
59
|
-
}
|
|
69
|
+
};
|
|
60
70
|
|
|
61
71
|
const createAvatarGroupDropdownMenu = () => {
|
|
62
72
|
const dropdown = document.createElement('div');
|
|
63
73
|
dropdown.classList.add('aui-avatar-group-dropdown-menu');
|
|
64
74
|
return dropdown;
|
|
65
|
-
}
|
|
75
|
+
};
|
|
66
76
|
|
|
67
77
|
const updateAvatarGroupItems = (avatars, size) => {
|
|
68
78
|
avatars.forEach((avatar, index) => {
|
|
69
79
|
const isHidden = index >= VISIBLE_AVATAR_COUNT;
|
|
70
|
-
avatar.classList.add(
|
|
80
|
+
avatar.classList.add(
|
|
81
|
+
!isHidden ? 'aui-avatar-group-item' : 'aui-avatar-group-dropdown-item'
|
|
82
|
+
);
|
|
71
83
|
|
|
72
84
|
if (!isHidden) {
|
|
73
85
|
avatar.setAttribute('size', size);
|
|
@@ -90,23 +102,33 @@ document.addEventListener('click', (e) => {
|
|
|
90
102
|
const isDropdownButton = e.target.matches('.aui-avatar-group-dropdown-button');
|
|
91
103
|
const closestDropdown = e.target.closest('.aui-avatar-group-dropdown');
|
|
92
104
|
|
|
93
|
-
if (!isDropdownButton && closestDropdown !== null)
|
|
105
|
+
if (!isDropdownButton && closestDropdown !== null) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
94
108
|
|
|
95
109
|
if (isDropdownButton) {
|
|
96
|
-
closestDropdown.classList.contains('aui-avatar-group-dropdown-show')
|
|
110
|
+
closestDropdown.classList.contains('aui-avatar-group-dropdown-show')
|
|
111
|
+
? closeDropdown(closestDropdown)
|
|
112
|
+
: openDropdown(closestDropdown);
|
|
97
113
|
}
|
|
98
114
|
|
|
99
|
-
document.querySelectorAll('.aui-avatar-group-dropdown-show').forEach(dropdown => {
|
|
100
|
-
if (dropdown === closestDropdown)
|
|
115
|
+
document.querySelectorAll('.aui-avatar-group-dropdown-show').forEach((dropdown) => {
|
|
116
|
+
if (dropdown === closestDropdown) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
101
119
|
|
|
102
|
-
closeDropdown(dropdown)
|
|
103
|
-
})
|
|
120
|
+
closeDropdown(dropdown);
|
|
121
|
+
});
|
|
104
122
|
});
|
|
105
123
|
|
|
106
124
|
document.addEventListener('keydown', (e) => {
|
|
107
|
-
if (e.key !== 'Escape')
|
|
125
|
+
if (e.key !== 'Escape') {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
108
128
|
const dropdown = document.querySelector('.aui-avatar-group-dropdown-show');
|
|
109
|
-
if (!dropdown)
|
|
129
|
+
if (!dropdown) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
110
132
|
|
|
111
133
|
closeDropdown(dropdown);
|
|
112
134
|
});
|
|
@@ -115,12 +137,12 @@ const closeDropdown = (dropdown) => {
|
|
|
115
137
|
const button = dropdown.querySelector('.aui-avatar-group-dropdown-button');
|
|
116
138
|
dropdown.classList.remove('aui-avatar-group-dropdown-show');
|
|
117
139
|
button.setAttribute('aria-expanded', 'false');
|
|
118
|
-
}
|
|
140
|
+
};
|
|
119
141
|
const openDropdown = (dropdown) => {
|
|
120
142
|
const button = dropdown.querySelector('.aui-avatar-group-dropdown-button');
|
|
121
143
|
dropdown.classList.add('aui-avatar-group-dropdown-show');
|
|
122
144
|
button.setAttribute('aria-expanded', 'true');
|
|
123
|
-
}
|
|
145
|
+
};
|
|
124
146
|
|
|
125
147
|
const AvatarGroupEl = skate('aui-avatar-group', {
|
|
126
148
|
attributes: {
|
|
@@ -133,7 +155,7 @@ const AvatarGroupEl = skate('aui-avatar-group', {
|
|
|
133
155
|
skate.init(element);
|
|
134
156
|
|
|
135
157
|
updateAvatarGroup(element, size);
|
|
136
|
-
}
|
|
158
|
+
},
|
|
137
159
|
},
|
|
138
160
|
},
|
|
139
161
|
created(element) {
|
|
@@ -142,15 +164,23 @@ const AvatarGroupEl = skate('aui-avatar-group', {
|
|
|
142
164
|
});
|
|
143
165
|
|
|
144
166
|
const wasNodeRemoved = (mutation, target) => {
|
|
145
|
-
return
|
|
146
|
-
|
|
167
|
+
return (
|
|
168
|
+
mutation.removedNodes.length > 0 &&
|
|
169
|
+
target.classList.contains('aui-avatar-group') &&
|
|
170
|
+
mutation.removedNodes[0].classList.contains('aui-avatar-group-item')
|
|
171
|
+
);
|
|
172
|
+
};
|
|
147
173
|
|
|
148
174
|
const wasNodeAdded = (mutation, target) => {
|
|
149
|
-
return
|
|
150
|
-
|
|
175
|
+
return (
|
|
176
|
+
mutation.addedNodes.length > 0 &&
|
|
177
|
+
target.classList.contains('aui-avatar-group') &&
|
|
178
|
+
mutation.addedNodes[0].classList.contains('aui-avatar')
|
|
179
|
+
);
|
|
180
|
+
};
|
|
151
181
|
|
|
152
|
-
const mutationObserver = new MutationObserver(function(mutation) {
|
|
153
|
-
mutation.forEach(function(mutation) {
|
|
182
|
+
const mutationObserver = new MutationObserver(function (mutation) {
|
|
183
|
+
mutation.forEach(function (mutation) {
|
|
154
184
|
const target = mutation.target;
|
|
155
185
|
|
|
156
186
|
if (wasNodeRemoved(mutation, target)) {
|
|
@@ -171,7 +201,7 @@ mutationObserver.observe(document.documentElement, {
|
|
|
171
201
|
childList: true,
|
|
172
202
|
subtree: true,
|
|
173
203
|
attributeOldValue: false,
|
|
174
|
-
characterDataOldValue: false
|
|
204
|
+
characterDataOldValue: false,
|
|
175
205
|
});
|
|
176
206
|
|
|
177
207
|
export { AvatarGroupEl };
|
package/src/js/aui/avatar.js
CHANGED
|
@@ -5,7 +5,7 @@ import projectImage from '../../../../../packages/docs/src/docs/images/avatar-pr
|
|
|
5
5
|
|
|
6
6
|
const DEFAULT_AVATAR_IMAGES = new Map([
|
|
7
7
|
['project', projectImage],
|
|
8
|
-
['user', personImage]
|
|
8
|
+
['user', personImage],
|
|
9
9
|
]);
|
|
10
10
|
|
|
11
11
|
const getElementWrapper = (element, elementFind) => element.querySelector(elementFind);
|
|
@@ -16,21 +16,23 @@ const replaceClass = (element, newValue, oldValue) => {
|
|
|
16
16
|
|
|
17
17
|
elementWrapper.classList.remove(`aui-avatar-${oldValue}`);
|
|
18
18
|
elementWrapper.classList.add(`aui-avatar-${newValue}`);
|
|
19
|
-
}
|
|
19
|
+
};
|
|
20
20
|
|
|
21
|
-
const getAvatarType = (element) =>
|
|
21
|
+
const getAvatarType = (element) =>
|
|
22
|
+
element.getAttribute('type') === 'project' ? 'project' : 'user';
|
|
22
23
|
|
|
23
24
|
const setDefaultAvatarImage = (element) => {
|
|
24
|
-
if (element.hasAttribute('src')){
|
|
25
|
+
if (element.hasAttribute('src')) {
|
|
25
26
|
setImageSrc(element, element.getAttribute('src'));
|
|
26
27
|
} else {
|
|
27
28
|
const avatarType = getAvatarType(element);
|
|
28
29
|
const avatarSvg = DEFAULT_AVATAR_IMAGES.get(avatarType);
|
|
29
30
|
setImageSrc(element, avatarSvg);
|
|
30
31
|
}
|
|
31
|
-
}
|
|
32
|
+
};
|
|
32
33
|
|
|
33
|
-
const setImageAttr = (element, name, value) =>
|
|
34
|
+
const setImageAttr = (element, name, value) =>
|
|
35
|
+
getElementWrapper(element, 'img').setAttribute(name, value);
|
|
34
36
|
const setImageSrc = (element, src) => setImageAttr(element, 'src', src);
|
|
35
37
|
const setImageAlt = (element, alt) => setImageAttr(element, 'alt', alt);
|
|
36
38
|
const setImageTitle = (element, title) => setImageAttr(element, 'title', title);
|
|
@@ -46,10 +48,10 @@ const AvatarEl = skate('aui-avatar', {
|
|
|
46
48
|
`),
|
|
47
49
|
|
|
48
50
|
attributes: {
|
|
49
|
-
size(element, { newValue
|
|
51
|
+
size(element, { newValue, oldValue }) {
|
|
50
52
|
replaceClass(element, newValue, oldValue);
|
|
51
53
|
},
|
|
52
|
-
type(element, { newValue, oldValue}) {
|
|
54
|
+
type(element, { newValue, oldValue }) {
|
|
53
55
|
replaceClass(element, newValue, oldValue);
|
|
54
56
|
setDefaultAvatarImage(element);
|
|
55
57
|
},
|
|
@@ -58,23 +60,23 @@ const AvatarEl = skate('aui-avatar', {
|
|
|
58
60
|
},
|
|
59
61
|
alt: {
|
|
60
62
|
value: '',
|
|
61
|
-
fallback(element, {newValue: value}) {
|
|
63
|
+
fallback(element, { newValue: value }) {
|
|
62
64
|
setImageAlt(element, value);
|
|
63
|
-
}
|
|
65
|
+
},
|
|
64
66
|
},
|
|
65
|
-
title(element, {newValue: value}) {
|
|
67
|
+
title(element, { newValue: value }) {
|
|
66
68
|
setImageTitle(element, value);
|
|
67
69
|
},
|
|
68
70
|
},
|
|
69
71
|
|
|
70
|
-
created: function(element) {
|
|
72
|
+
created: function (element) {
|
|
71
73
|
element.className = 'aui-avatar';
|
|
72
74
|
setDefaultAvatarImage(element);
|
|
73
75
|
|
|
74
76
|
if (containsBadge(element)) {
|
|
75
|
-
element.setAttribute('role', 'img')
|
|
77
|
+
element.setAttribute('role', 'img');
|
|
76
78
|
}
|
|
77
|
-
}
|
|
79
|
+
},
|
|
78
80
|
});
|
|
79
81
|
|
|
80
82
|
export { AvatarEl };
|
package/src/js/aui/banner.js
CHANGED
|
@@ -26,10 +26,10 @@ function createBannerElement({ body = '', type = 'error' }) {
|
|
|
26
26
|
banner.className = `aui-banner aui-banner-${type}`;
|
|
27
27
|
banner.setAttribute('role', 'alert');
|
|
28
28
|
banner.innerHTML = body;
|
|
29
|
-
|
|
29
|
+
|
|
30
30
|
const screenReaderInfo = document.createElement('div');
|
|
31
31
|
screenReaderInfo.innerText = `${type}`;
|
|
32
|
-
screenReaderInfo.classList.add('assistive')
|
|
32
|
+
screenReaderInfo.classList.add('assistive');
|
|
33
33
|
banner.prepend(screenReaderInfo);
|
|
34
34
|
|
|
35
35
|
return banner;
|
|
@@ -41,7 +41,8 @@ function removeHiddenBanners(bannerContainer) {
|
|
|
41
41
|
removeInVersion: '10.0.0',
|
|
42
42
|
sinceVersion: '9.8.0',
|
|
43
43
|
deprecationType: 'ATTRIBUTE',
|
|
44
|
-
extraInfo:
|
|
44
|
+
extraInfo:
|
|
45
|
+
"The hidden attribute on the banner is no longer effective. Future banner function calls won't remove banners with this attribute.",
|
|
45
46
|
});
|
|
46
47
|
|
|
47
48
|
hiddenBanners.forEach(function (banner) {
|
|
@@ -57,4 +58,4 @@ function renderBannerElement(bannerElement, bannerContainer) {
|
|
|
57
58
|
|
|
58
59
|
amdify('aui/banner', banner);
|
|
59
60
|
globalize('banner', banner);
|
|
60
|
-
export default banner;
|
|
61
|
+
export default banner;
|
package/src/js/aui/blanket.js
CHANGED
|
@@ -21,14 +21,15 @@ var overflowEl;
|
|
|
21
21
|
* Dims the screen using a blanket div
|
|
22
22
|
* @param useShim deprecated, it is calculated by dim() now
|
|
23
23
|
*/
|
|
24
|
-
function dim
|
|
25
|
-
|
|
24
|
+
function dim(useShim, zIndex) {
|
|
26
25
|
//if we're blanketing the page it means we want to hide the whatever is under the blanket from the screen readers as well
|
|
27
|
-
|
|
26
|
+
// eslint-disable-next-line no-unused-vars
|
|
27
|
+
function hasAriaHidden(element) {
|
|
28
28
|
return element.hasAttribute('aria-hidden');
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
// eslint-disable-next-line no-unused-vars
|
|
32
|
+
function isAuiLayer(element) {
|
|
32
33
|
return element.classList && element.classList.contains('aui-layer');
|
|
33
34
|
}
|
|
34
35
|
|
|
@@ -40,7 +41,7 @@ function dim (useShim, zIndex) {
|
|
|
40
41
|
useShimDeprecationLogger();
|
|
41
42
|
}
|
|
42
43
|
|
|
43
|
-
const isBlanketShowing =
|
|
44
|
+
const isBlanketShowing = !!dim.$dim && !dim.$dim[0].hasAttribute('hidden');
|
|
44
45
|
|
|
45
46
|
if (!!dim.$dim) {
|
|
46
47
|
dim.$dim.remove();
|
|
@@ -58,7 +59,7 @@ function dim (useShim, zIndex) {
|
|
|
58
59
|
dim.cachedOverflow = {
|
|
59
60
|
overflow: overflowEl.style.overflow,
|
|
60
61
|
overflowX: overflowEl.style.overflowX,
|
|
61
|
-
overflowY: overflowEl.style.overflowY
|
|
62
|
+
overflowY: overflowEl.style.overflowY,
|
|
62
63
|
};
|
|
63
64
|
|
|
64
65
|
overflowEl.style.overflowX = 'hidden';
|
|
@@ -69,7 +70,7 @@ function dim (useShim, zIndex) {
|
|
|
69
70
|
dim.$dim.removeAttr('hidden');
|
|
70
71
|
|
|
71
72
|
if (zIndex) {
|
|
72
|
-
dim.$dim.css({zIndex: zIndex});
|
|
73
|
+
dim.$dim.css({ zIndex: zIndex });
|
|
73
74
|
}
|
|
74
75
|
|
|
75
76
|
return dim.$dim;
|
|
@@ -79,8 +80,7 @@ function dim (useShim, zIndex) {
|
|
|
79
80
|
* Removes semitransparent DIV
|
|
80
81
|
* @see dim
|
|
81
82
|
*/
|
|
82
|
-
function undim
|
|
83
|
-
|
|
83
|
+
function undim() {
|
|
84
84
|
if (dim.$dim) {
|
|
85
85
|
dim.$dim[0].setAttribute('hidden', '');
|
|
86
86
|
|
|
@@ -93,13 +93,10 @@ function undim () {
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
const useShimDeprecationLogger = getMessageLogger('useShim', {
|
|
96
|
-
extraInfo: 'useShim has no alternative as it is now calculated by dim().'
|
|
96
|
+
extraInfo: 'useShim has no alternative as it is now calculated by dim().',
|
|
97
97
|
});
|
|
98
98
|
|
|
99
99
|
globalize('dim', dim);
|
|
100
100
|
globalize('undim', undim);
|
|
101
101
|
|
|
102
|
-
export {
|
|
103
|
-
dim,
|
|
104
|
-
undim
|
|
105
|
-
};
|
|
102
|
+
export { dim, undim };
|
package/src/js/aui/button.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as logger from './internal/log';
|
|
2
2
|
import amdify from './internal/amdify';
|
|
3
3
|
import skate from './internal/skate';
|
|
4
|
-
import SpinnerEl, {SIZE} from './spinner';
|
|
4
|
+
import SpinnerEl, { SIZE } from './spinner';
|
|
5
5
|
|
|
6
|
-
function isBusy
|
|
6
|
+
function isBusy(button) {
|
|
7
7
|
return button.hasAttribute('aria-busy') && button.getAttribute('aria-busy') === 'true';
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
function isInputNode
|
|
10
|
+
function isInputNode(button) {
|
|
11
11
|
return button.nodeName === 'INPUT';
|
|
12
12
|
}
|
|
13
13
|
|
|
@@ -66,8 +66,8 @@ skate('aui-button', {
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
return isBusy(this);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
71
|
});
|
|
72
72
|
|
|
73
73
|
amdify('aui/button');
|