@atlassian/aui 9.10.2 → 9.11.4

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.
Files changed (157) hide show
  1. package/dist/aui/aui-prototyping-design-tokens-api-full.js +2 -2
  2. package/dist/aui/aui-prototyping-design-tokens-api-full.js.map +1 -1
  3. package/dist/aui/aui-prototyping-design-tokens-api.js +2 -2
  4. package/dist/aui/aui-prototyping-design-tokens-api.js.map +1 -1
  5. package/dist/aui/aui-prototyping-design-tokens-base-themes-css.css +2 -2
  6. package/dist/aui/aui-prototyping-design-tokens-base-themes-css.css.map +1 -1
  7. package/dist/aui/aui-prototyping-design-tokens-base-themes-css.js +1 -1
  8. package/dist/aui/aui-prototyping-design-tokens-base-themes.js +2 -2
  9. package/dist/aui/aui-prototyping-design-tokens-base-themes.js.map +1 -1
  10. package/dist/aui/aui-prototyping.css +6 -6
  11. package/dist/aui/aui-prototyping.css.map +1 -1
  12. package/dist/aui/aui-prototyping.js +12 -9
  13. package/dist/aui/aui-prototyping.js.map +1 -1
  14. package/dist/aui/aui-prototyping.nodeps.css +6 -6
  15. package/dist/aui/aui-prototyping.nodeps.css.map +1 -1
  16. package/dist/aui/aui-prototyping.nodeps.js +17 -14
  17. package/dist/aui/aui-prototyping.nodeps.js.map +1 -1
  18. package/dist/aui/themes/dark.js +1 -1
  19. package/dist/aui/themes/dark.js.map +1 -1
  20. package/dist/aui/themes/legacy-dark.js +1 -1
  21. package/dist/aui/themes/legacy-dark.js.map +1 -1
  22. package/dist/aui/themes/legacy-light.js +1 -1
  23. package/dist/aui/themes/legacy-light.js.map +1 -1
  24. package/dist/aui/themes/light.js +1 -1
  25. package/dist/aui/themes/light.js.map +1 -1
  26. package/dist/aui/themes/typography-adg3.js +1 -1
  27. package/dist/aui/themes/typography-adg3.js.map +1 -1
  28. package/dist/aui/themes/typography-minor3.js +1 -1
  29. package/dist/aui/themes/typography-minor3.js.map +1 -1
  30. package/entry/aui.component.form.select2.js +1 -1
  31. package/entry/deprecated/aui.behaviour.jquery-form.js +1 -1
  32. package/entry/token-themes-generated/npm/aui-prototyping-design-tokens-base-themes.css +2 -0
  33. package/entry/token-themes-generated/npm/themes/dark.js +1 -0
  34. package/entry/token-themes-generated/npm/themes/legacy-dark.js +1 -0
  35. package/entry/token-themes-generated/npm/themes/legacy-light.js +1 -0
  36. package/entry/token-themes-generated/npm/themes/light.js +1 -0
  37. package/entry/token-themes-generated/npm/themes/typography-adg3.js +18 -16
  38. package/entry/token-themes-generated/npm/themes/typography-minor3.js +27 -21
  39. package/entry/token-themes-generated/p2/aui-prototyping-design-tokens-theme.css +2 -0
  40. package/entry/token-themes-generated/p2/themes/dark.js +1 -0
  41. package/entry/token-themes-generated/p2/themes/legacy-dark.js +1 -0
  42. package/entry/token-themes-generated/p2/themes/legacy-light.js +1 -0
  43. package/entry/token-themes-generated/p2/themes/light.js +1 -0
  44. package/entry/token-themes-generated/p2/themes/typography-adg3.js +18 -16
  45. package/entry/token-themes-generated/p2/themes/typography-minor3.js +27 -21
  46. package/package.json +79 -73
  47. package/src/js/aui/flag.js +34 -8
  48. package/src/js/aui/focus-manager.js +3 -1
  49. package/src/js/aui/inline-dialog.js +3 -0
  50. package/src/js/aui/internal/a11y/focusable-query.js +4 -0
  51. package/src/js/aui/restful-table/edit-row.js +2 -2
  52. package/src/js/aui/select2.js +24 -7
  53. package/src/js/aui/tables-sortable.js +1 -1
  54. package/src/js/aui/tooltip.js +3 -2
  55. package/src/js/aui/when-i-type.js +1 -1
  56. package/src/js-vendor/jquery-aop/LICENSE +21 -0
  57. package/src/js-vendor/jquery-aop/README.md +54 -0
  58. package/src/js-vendor/jquery-aop/aop.js +404 -0
  59. package/src/js-vendor/jquery-aop/jquery-aop.txt +5 -0
  60. package/src/js-vendor/jquery-aop/package.json +16 -0
  61. package/src/js-vendor/jquery-form/jquery.form.js +813 -0
  62. package/src/js-vendor/jquery-form/package.json +15 -0
  63. package/src/js-vendor/jquery.hotkeys/jquery.hotkeys.js +99 -0
  64. package/src/js-vendor/jquery.hotkeys/package.json +14 -0
  65. package/src/js-vendor/select2/CONTRIBUTING.md +107 -0
  66. package/src/js-vendor/select2/LICENSE +18 -0
  67. package/src/js-vendor/select2/README.md +115 -0
  68. package/src/js-vendor/select2/bower.json +8 -0
  69. package/src/js-vendor/select2/component.json +66 -0
  70. package/src/js-vendor/select2/composer.json +29 -0
  71. package/src/js-vendor/select2/package.json +20 -0
  72. package/src/js-vendor/select2/release.sh +79 -0
  73. package/src/js-vendor/select2/select2-bootstrap.css +87 -0
  74. package/src/{css-vendor/jquery/plugins → js-vendor/select2}/select2-spinner.gif +0 -0
  75. package/src/js-vendor/select2/select2.jquery.json +36 -0
  76. package/src/js-vendor/select2/select2.min.js +23 -0
  77. package/src/js-vendor/select2/select2.png +0 -0
  78. package/src/js-vendor/select2/select2_locale_ar.js +19 -0
  79. package/src/js-vendor/select2/select2_locale_az.js +20 -0
  80. package/src/js-vendor/select2/select2_locale_bg.js +20 -0
  81. package/src/js-vendor/select2/select2_locale_ca.js +19 -0
  82. package/src/js-vendor/select2/select2_locale_cs.js +51 -0
  83. package/src/js-vendor/select2/select2_locale_da.js +19 -0
  84. package/src/js-vendor/select2/select2_locale_de.js +18 -0
  85. package/src/js-vendor/select2/select2_locale_el.js +19 -0
  86. package/src/js-vendor/select2/select2_locale_en.js.template +20 -0
  87. package/src/js-vendor/select2/select2_locale_es.js +19 -0
  88. package/src/js-vendor/select2/select2_locale_et.js +19 -0
  89. package/src/js-vendor/select2/select2_locale_eu.js +45 -0
  90. package/src/js-vendor/select2/select2_locale_fa.js +21 -0
  91. package/src/js-vendor/select2/select2_locale_fi.js +30 -0
  92. package/src/js-vendor/select2/select2_locale_fr.js +18 -0
  93. package/src/js-vendor/select2/select2_locale_gl.js +45 -0
  94. package/src/js-vendor/select2/select2_locale_he.js +19 -0
  95. package/src/js-vendor/select2/select2_locale_hr.js +24 -0
  96. package/src/js-vendor/select2/select2_locale_hu.js +17 -0
  97. package/src/js-vendor/select2/select2_locale_id.js +21 -0
  98. package/src/js-vendor/select2/select2_locale_is.js +17 -0
  99. package/src/js-vendor/select2/select2_locale_it.js +17 -0
  100. package/src/js-vendor/select2/select2_locale_ja.js +17 -0
  101. package/src/js-vendor/select2/select2_locale_ka.js +19 -0
  102. package/src/js-vendor/select2/select2_locale_ko.js +19 -0
  103. package/src/js-vendor/select2/select2_locale_lt.js +26 -0
  104. package/src/js-vendor/select2/select2_locale_lv.js +19 -0
  105. package/src/js-vendor/select2/select2_locale_mk.js +19 -0
  106. package/src/js-vendor/select2/select2_locale_ms.js +21 -0
  107. package/src/js-vendor/select2/select2_locale_nb.js +22 -0
  108. package/src/js-vendor/select2/select2_locale_nl.js +17 -0
  109. package/src/js-vendor/select2/select2_locale_pl.js +54 -0
  110. package/src/js-vendor/select2/select2_locale_pt-BR.js +18 -0
  111. package/src/js-vendor/select2/select2_locale_pt-PT.js +17 -0
  112. package/src/js-vendor/select2/select2_locale_ro.js +17 -0
  113. package/src/js-vendor/select2/select2_locale_rs.js +19 -0
  114. package/src/js-vendor/select2/select2_locale_ru.js +23 -0
  115. package/src/js-vendor/select2/select2_locale_sk.js +50 -0
  116. package/src/js-vendor/select2/select2_locale_sv.js +19 -0
  117. package/src/js-vendor/select2/select2_locale_th.js +19 -0
  118. package/src/js-vendor/select2/select2_locale_tr.js +20 -0
  119. package/src/js-vendor/select2/select2_locale_ug-CN.js +16 -0
  120. package/src/js-vendor/select2/select2_locale_uk.js +25 -0
  121. package/src/js-vendor/select2/select2_locale_vi.js +20 -0
  122. package/src/js-vendor/select2/select2_locale_zh-CN.js +16 -0
  123. package/src/js-vendor/select2/select2_locale_zh-TW.js +16 -0
  124. package/src/js-vendor/select2/select2x2.png +0 -0
  125. package/src/js-vendor/tablesorter/README.md +158 -0
  126. package/src/js-vendor/{jquery → tablesorter}/jquery.tablesorter.js +1 -1
  127. package/src/js-vendor/tablesorter/package.json +43 -0
  128. package/src/less/adg-header-quicksearch.less +2 -2
  129. package/src/less/aui-appheader.less +3 -3
  130. package/src/less/aui-buttons.less +2 -2
  131. package/src/less/aui-experimental-tooltip.less +1 -1
  132. package/src/less/aui-navigation.less +4 -4
  133. package/src/less/aui-page-layout.less +2 -2
  134. package/src/less/aui-page-typography.less +1 -1
  135. package/src/less/aui-select2.less +1 -1
  136. package/src/less/aui-sidebar-config.less +1 -1
  137. package/src/less/aui-sidebar-grouping.less +2 -2
  138. package/src/less/aui-sidebar-navigation.less +2 -2
  139. package/src/less/aui-toggle.less +2 -2
  140. package/src/less/dropdown2.less +2 -4
  141. package/src/less/forms-current.less +1 -1
  142. package/src/less/forms-legacy.less +2 -2
  143. package/src/less/forms-radios-and-checkboxes.less +2 -2
  144. package/src/less/forms.less +2 -2
  145. package/src/less/imports/aui-theme/components/buttons.less +2 -2
  146. package/src/less/imports/aui-theme/components/forms.less +1 -1
  147. package/src/less/imports/aui-theme/components/navigation.less +1 -1
  148. package/src/less/imports/aui-theme/components/toggle.less +2 -2
  149. package/src/less/imports/mixins/typography.less +8 -8
  150. package/src/less/imports/mixins.less +1 -1
  151. package/src/less/single-select.less +1 -1
  152. package/src/css-vendor/jquery/plugins/select2.png +0 -0
  153. package/src/css-vendor/jquery/plugins/select2x2.png +0 -0
  154. package/src/js/jquery/jquery.hotkeys.js +0 -176
  155. package/src/js-vendor/jquery/plugins/jquery.form.js +0 -819
  156. /package/src/{css-vendor/jquery/plugins/jquery.select2.css → js-vendor/select2/select2.css} +0 -0
  157. /package/src/js-vendor/{jquery/plugins/jquery.select2.js → select2/select2.js} +0 -0
@@ -9,10 +9,10 @@
9
9
  @aui-button-border-style: solid;
10
10
  @aui-button-border-width: 1px;
11
11
  @aui-button-font-size: @aui-font-size-medium;
12
- @aui-button-height: unit(@aui-button-effective-height / @aui-button-font-size, em);
12
+ @aui-button-height: unit((@aui-button-effective-height / @aui-button-font-size), em);
13
13
  @aui-button-padding-x: 10px;
14
14
  @aui-button-padding-y: 4px;
15
- @aui-button-line-height: unit((@aui-button-effective-height - (@aui-button-border-width + @aui-button-padding-y) *2) / @aui-button-font-size, em);
15
+ @aui-button-line-height: unit(((@aui-button-effective-height - (@aui-button-border-width + @aui-button-padding-y) *2) / @aui-button-font-size), em);
16
16
 
17
17
  // Default button
18
18
  @aui-button-default-bg-color: var(--aui-button-default-bg-color);
@@ -33,7 +33,7 @@
33
33
  @aui-form-field-width-medium-long: 350px;
34
34
  @aui-form-field-width-long: 500px;
35
35
  @aui-form-field-width-full: none;
36
- @aui-form-field-height: unit(30px / @aui-font-size-medium, em); // 30px - using ems so the fields increase in line with user specified font-sizes
36
+ @aui-form-field-height: unit((30px / @aui-font-size-medium), em); // 30px - using ems so the fields increase in line with user specified font-sizes
37
37
 
38
38
  @aui-form-transition-time: 0.2s;
39
39
 
@@ -48,7 +48,7 @@
48
48
  // but the inner content box is only 16px tall. This enables things like
49
49
  // lozenges and small icons to line up correctly with the text, without explicit treatment.
50
50
  // this is assumed and exploited in places like the sidebar's navigation.
51
- line-height: unit((@height - (2 * @aui-nav-link-spacing-vertical)) / @aui-nav-actions-list-item-font-size);
51
+ line-height: unit(((@height - (2 * @aui-nav-link-spacing-vertical)) / @aui-nav-actions-list-item-font-size));
52
52
  padding: @aui-nav-link-spacing-vertical @aui-nav-link-spacing-horizontal;
53
53
  }
54
54
 
@@ -17,8 +17,8 @@
17
17
  @aui-toggle-width: (@aui-toggle-border-width * 2 + @aui-toggle-horizontal-padding * 3 + @aui-toggle-icon-size * 2);
18
18
 
19
19
  @aui-toggle-effective-height: 26px;
20
- @aui-toggle-height: unit(@aui-toggle-effective-height / @aui-toggle-font-size, em); // note: this is the same as a compact AUI button.
21
- @aui-toggle-icon-top: unit((@aui-toggle-effective-height - @aui-toggle-icon-size) / 2, px);
20
+ @aui-toggle-height: unit((@aui-toggle-effective-height / @aui-toggle-font-size), em); // note: this is the same as a compact AUI button.
21
+ @aui-toggle-icon-top: unit(((@aui-toggle-effective-height - @aui-toggle-icon-size) / 2), px);
22
22
  @aui-toggle-handle-width: .odd(@aui-toggle-icon-size + @aui-toggle-horizontal-padding)[@result]; // circles work better with odd numbers
23
23
  @aui-toggle-slide-width: (@aui-toggle-icon-size * 2);
24
24
 
@@ -16,7 +16,7 @@
16
16
  @size: @aui-font-size-xxxlarge;
17
17
  font-size: @size;
18
18
  font-weight: @aui-font-weight-semibold;
19
- line-height: unit(40 / @size);
19
+ line-height: unit((40 / @size));
20
20
  letter-spacing: -0.01em;
21
21
  text-transform: none;
22
22
  }
@@ -25,7 +25,7 @@
25
25
  @size: @aui-font-size-xxlarge;
26
26
  font-size: @size;
27
27
  font-weight: @aui-font-weight-medium;
28
- line-height: unit(30 / @size);
28
+ line-height: unit((30 / @size));
29
29
  letter-spacing: -0.01em;
30
30
  text-transform: none;
31
31
  }
@@ -34,7 +34,7 @@
34
34
  @size: @aui-font-size-xlarge;
35
35
  font-size: @size;
36
36
  font-weight: @aui-font-weight-medium;
37
- line-height: unit(30 / @size);
37
+ line-height: unit((30 / @size));
38
38
  letter-spacing: -0.008em;
39
39
  text-transform: none;
40
40
  }
@@ -43,7 +43,7 @@
43
43
  @size: @aui-font-size-large;
44
44
  font-size: @size;
45
45
  font-weight: @aui-font-weight-medium;
46
- line-height: unit(20 / @size);
46
+ line-height: unit((20 / @size));
47
47
  letter-spacing: -0.006em;
48
48
  text-transform: none;
49
49
  }
@@ -52,7 +52,7 @@
52
52
  @size: @aui-font-size-medium;
53
53
  font-size: @size;
54
54
  font-weight: @aui-font-weight-semibold;
55
- line-height: unit(20 / @size);
55
+ line-height: unit((20 / @size));
56
56
  letter-spacing: -0.003em;
57
57
  text-transform: none;
58
58
  }
@@ -61,7 +61,7 @@
61
61
  @size: @aui-font-size-small;
62
62
  font-size: @size;
63
63
  font-weight: @aui-font-weight-semibold;
64
- line-height: unit(20 / @size);
64
+ line-height: unit((20 / @size));
65
65
  letter-spacing: 0;
66
66
  text-transform: none;
67
67
  }
@@ -70,7 +70,7 @@
70
70
  color: @color;
71
71
  font-size: @size;
72
72
  font-weight: @aui-font-weight-semibold;
73
- line-height: unit(20 / @size);
73
+ line-height: unit((20 / @size));
74
74
  letter-spacing: 0;
75
75
  text-transform: none;
76
76
  }
@@ -79,7 +79,7 @@
79
79
  color: @color;
80
80
  font-size: @size;
81
81
  font-weight: @aui-font-weight-semibold;
82
- line-height: unit(16 / @size);
82
+ line-height: unit((16 / @size));
83
83
  letter-spacing: 0;
84
84
  text-transform: uppercase;
85
85
  }
@@ -64,7 +64,7 @@
64
64
  font-variant: normal;
65
65
  font-weight: @aui-font-weight-normal;
66
66
  letter-spacing: @aui-font-letter-spacing;
67
- line-height: unit(20 / @aui-font-size-medium);
67
+ line-height: unit((20 / @aui-font-size-medium));
68
68
  text-align: left; // in case anybody used text-align for layout purposes
69
69
  white-space: normal;
70
70
  }
@@ -71,7 +71,7 @@
71
71
  @select-trigger-padding-right: 6px;
72
72
  @select-trigger-arrow-width: 8px;
73
73
  @select-trigger-width: @aui-button-border-width * 2 + @select-trigger-padding-left + @select-trigger-arrow-width + @select-trigger-padding-right;
74
- @select-trigger-arrow-height: @select-trigger-arrow-width / 2;
74
+ @select-trigger-arrow-height: (@select-trigger-arrow-width / 2);
75
75
 
76
76
  form.aui:not(.aui-legacy-forms) aui-select,
77
77
  aui-select {
@@ -1,176 +0,0 @@
1
- /*
2
- * Modified by Atlassian to allow chaining of keys
3
- *
4
- * jQuery Hotkeys Plugin
5
- * Copyright 2010, John Resig
6
- * Dual licensed under the MIT or GPL Version 2 licenses.
7
- *
8
- * Based upon the plugin by Tzury Bar Yochay:
9
- * http://github.com/tzuryby/hotkeys
10
- *
11
- * Original idea by:
12
- * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
13
- */
14
-
15
- (function(jQuery){
16
-
17
- jQuery.hotkeys = {
18
- version: "0.8",
19
-
20
- specialKeys: {
21
- 8: "backspace", 9: "tab", 13: "return", 16: "shift", 17: "ctrl", 18: "alt", 19: "pause",
22
- 20: "capslock", 27: "esc", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home",
23
- 37: "left", 38: "up", 39: "right", 40: "down", 45: "insert", 46: "del",
24
- 91 : "meta",
25
- 96: "0", 97: "1", 98: "2", 99: "3", 100: "4", 101: "5", 102: "6", 103: "7",
26
- 104: "8", 105: "9", 106: "*", 107: "+", 109: "-", 110: ".", 111 : "/",
27
- 112: "f1", 113: "f2", 114: "f3", 115: "f4", 116: "f5", 117: "f6", 118: "f7", 119: "f8",
28
- 120: "f9", 121: "f10", 122: "f11", 123: "f12", 144: "numlock", 145: "scroll",
29
- 188: ",", 190: ".", 191: "/", 224: "meta", 219: '[', 221: ']'
30
- },
31
-
32
- // These only work under Mac Gecko when using keypress (see http://unixpapa.com/js/key.html).
33
- keypressKeys: [ "<", ">", "?" ],
34
-
35
- shiftNums: {
36
- "`": "~", "1": "!", "2": "@", "3": "#", "4": "$", "5": "%", "6": "^", "7": "&",
37
- "8": "*", "9": "(", "0": ")", "-": "_", "=": "+", ";": ":", "'": "\"", ",": "<",
38
- ".": ">", "/": "?", "\\": "|"
39
- }
40
- };
41
-
42
- jQuery.each(jQuery.hotkeys.keypressKeys, function (_, key) {
43
- jQuery.hotkeys.shiftNums[ key ] = key;
44
- });
45
-
46
- function TimedNumber(timer) {
47
- this.num = 0;
48
- this.timer = timer > 0 ? timer : false;
49
- }
50
- TimedNumber.prototype.val = function () {
51
- return this.num;
52
- };
53
- TimedNumber.prototype.inc = function () {
54
- if (this.timer) {
55
- clearTimeout(this.timeout);
56
- this.timeout = setTimeout(jQuery.proxy(TimedNumber.prototype.reset, this), this.timer);
57
- }
58
- this.num++;
59
- };
60
- TimedNumber.prototype.reset = function () {
61
- if (this.timer) {
62
- clearTimeout(this.timeout);
63
- }
64
- this.num = 0;
65
- };
66
-
67
- function keyHandler( handleObj ) {
68
- // Only care when a possible input has been specified
69
- if ( !(jQuery.isPlainObject(handleObj.data) || jQuery.isArray(handleObj.data) || typeof handleObj.data === "string") ) {
70
- return;
71
- }
72
-
73
- var origHandler = handleObj.handler,
74
- options = {
75
- timer: 700,
76
- combo: []
77
- };
78
-
79
- (function (data) {
80
- if (typeof data === 'string') {
81
- options.combo = [ data ];
82
- } else if (jQuery.isArray(data)) {
83
- options.combo = data;
84
- } else {
85
- jQuery.extend(options, data);
86
- }
87
- options.combo = jQuery.map(options.combo, function (key) {
88
- return key.toLowerCase();
89
- });
90
- })(handleObj.data);
91
-
92
- handleObj.index = new TimedNumber(options.timer);
93
- handleObj.handler = function( event ) {
94
- // Don't fire in text-accepting inputs that we didn't directly bind to
95
- // important to note that jQuery.fn.prop is only available on jquery 1.6+
96
- if ( this !== event.target && (/textarea|select|input/i.test( event.target.nodeName ) ||
97
- jQuery(event.target).prop('contenteditable') === 'true' )) {
98
- return;
99
- }
100
-
101
- // Keypress represents characters, not special keys
102
- var special = event.type !== 'keypress' ? jQuery.hotkeys.specialKeys[ event.which ] : null,
103
- character = String.fromCharCode( event.which ).toLowerCase(),
104
- key, modif = "", possible = {};
105
-
106
- // check combinations (alt|ctrl|shift+anything)
107
- if ( event.altKey && special !== "alt" ) {
108
- modif += "alt+";
109
- }
110
-
111
- if ( event.ctrlKey && special !== "ctrl" ) {
112
- modif += "ctrl+";
113
- }
114
-
115
- // TODO: Need to make sure this works consistently across platforms
116
- if ( event.metaKey && !event.ctrlKey && special !== "meta" ) {
117
- modif += "meta+";
118
- }
119
-
120
- if ( event.shiftKey && special !== "shift" ) {
121
- modif += "shift+";
122
- }
123
-
124
- // Under Chrome and Safari, meta's keycode == '['s charcode
125
- // Even if they did type this key combo we could not use it because it is browser back in Chrome/Safari on OS X
126
- if (event.metaKey && character === '[') {
127
- character = null;
128
- }
129
-
130
- if (special) {
131
- possible[ modif + special ] = true;
132
- }
133
- if (character) {
134
- possible[ modif + character ] = true;
135
- }
136
-
137
- // "$" can be specified as "shift+4" or "$"
138
- if ( /shift+/.test(modif) ) {
139
- possible [ modif.replace('shift+', '') + jQuery.hotkeys.shiftNums[ (special || character) ] ] = true;
140
- }
141
-
142
- var index = handleObj.index,
143
- combo = options.combo;
144
-
145
- if ( pressed(combo[index.val()], possible) ) {
146
- if ( index.val() === combo.length - 1 ) {
147
- index.reset();
148
- return origHandler.apply(this, arguments);
149
- } else {
150
- index.inc();
151
- }
152
- } else {
153
- index.reset();
154
- // For mutli-key combinations, we might have restarted the key sequence.
155
- if ( pressed(combo[0], possible) ) {
156
- index.inc();
157
- }
158
- }
159
- };
160
- }
161
-
162
- function pressed(key, possible) {
163
- var keys = key.split(' ');
164
- for (var i = 0, len = keys.length; i < len; i++) {
165
- if ( possible[keys[i]] ) {
166
- return true;
167
- }
168
- }
169
- return false;
170
- }
171
-
172
- jQuery.each([ "keydown", "keyup", "keypress" ], function() {
173
- jQuery.event.special[ this ] = { add: keyHandler };
174
- });
175
-
176
- })( jQuery );