ids-enterprise 4.59.3 → 4.59.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 (34) hide show
  1. package/dist/css/theme-classic-contrast.css +3 -3
  2. package/dist/css/theme-classic-contrast.min.css +3 -3
  3. package/dist/css/theme-classic-dark.css +3 -3
  4. package/dist/css/theme-classic-dark.min.css +3 -3
  5. package/dist/css/theme-classic-light.css +3 -3
  6. package/dist/css/theme-classic-light.min.css +3 -3
  7. package/dist/css/theme-new-contrast.css +3 -3
  8. package/dist/css/theme-new-contrast.min.css +3 -3
  9. package/dist/css/theme-new-dark.css +3 -3
  10. package/dist/css/theme-new-dark.min.css +3 -3
  11. package/dist/css/theme-new-light.css +3 -3
  12. package/dist/css/theme-new-light.min.css +3 -3
  13. package/dist/css/theme-soho-contrast.css +3 -3
  14. package/dist/css/theme-soho-contrast.min.css +3 -3
  15. package/dist/css/theme-soho-dark.css +3 -3
  16. package/dist/css/theme-soho-dark.min.css +3 -3
  17. package/dist/css/theme-soho-light.css +3 -3
  18. package/dist/css/theme-soho-light.min.css +3 -3
  19. package/dist/css/theme-uplift-contrast.css +3 -3
  20. package/dist/css/theme-uplift-contrast.min.css +3 -3
  21. package/dist/css/theme-uplift-dark.css +3 -3
  22. package/dist/css/theme-uplift-dark.min.css +3 -3
  23. package/dist/css/theme-uplift-light.css +3 -3
  24. package/dist/css/theme-uplift-light.min.css +3 -3
  25. package/dist/js/sohoxi.esm.js +28 -42
  26. package/dist/js/sohoxi.js +28 -42
  27. package/dist/js/sohoxi.js.map +1 -1
  28. package/dist/js/sohoxi.min.js +4 -4
  29. package/dist/js/sohoxi.min.js.map +1 -1
  30. package/dist/svg/theme-classic-svg-empty.html +7 -7
  31. package/dist/svg/theme-classic-svg.html +221 -221
  32. package/dist/svg/theme-new-svg-empty.html +6 -6
  33. package/dist/svg/theme-new-svg.html +223 -223
  34. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * IDS Enterprise Components - v4.59.3
4
- * Date: 2022-02-04T18:06:15.861Z
5
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
3
+ * IDS Enterprise Components - v4.59.4
4
+ * Date: 2022-02-09T17:34:20.603Z
5
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
6
6
  *
7
7
  *
8
8
  * Apache License
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";/*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:15.861Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:20.603Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -1,8 +1,8 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * IDS Enterprise Components - v4.59.3
4
- * Date: 2022-02-04T18:06:15.861Z
5
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
3
+ * IDS Enterprise Components - v4.59.4
4
+ * Date: 2022-02-09T17:34:20.603Z
5
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
6
6
  *
7
7
  *
8
8
  * Apache License
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";/*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:15.861Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:20.603Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -1,8 +1,8 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * IDS Enterprise Components - v4.59.3
4
- * Date: 2022-02-04T18:06:15.861Z
5
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
3
+ * IDS Enterprise Components - v4.59.4
4
+ * Date: 2022-02-09T17:34:20.603Z
5
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
6
6
  *
7
7
  *
8
8
  * Apache License
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";/*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:15.861Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:20.603Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -1,8 +1,8 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * IDS Enterprise Components - v4.59.3
4
- * Date: 2022-02-04T18:06:15.861Z
5
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
3
+ * IDS Enterprise Components - v4.59.4
4
+ * Date: 2022-02-09T17:34:20.603Z
5
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
6
6
  *
7
7
  *
8
8
  * Apache License
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";/*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:15.861Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:20.603Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -1,8 +1,8 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * IDS Enterprise Components - v4.59.3
4
- * Date: 2022-02-04T18:06:15.861Z
5
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
3
+ * IDS Enterprise Components - v4.59.4
4
+ * Date: 2022-02-09T17:34:20.603Z
5
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
6
6
  *
7
7
  *
8
8
  * Apache License
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";/*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:15.861Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:20.603Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -1,8 +1,8 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * IDS Enterprise Components - v4.59.3
4
- * Date: 2022-02-04T18:06:15.861Z
5
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
3
+ * IDS Enterprise Components - v4.59.4
4
+ * Date: 2022-02-09T17:34:20.603Z
5
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
6
6
  *
7
7
  *
8
8
  * Apache License
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";/*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:15.861Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:20.603Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -1,8 +1,8 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * IDS Enterprise Components - v4.59.3
4
- * Date: 2022-02-04T18:06:15.861Z
5
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
3
+ * IDS Enterprise Components - v4.59.4
4
+ * Date: 2022-02-09T17:34:20.603Z
5
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
6
6
  *
7
7
  *
8
8
  * Apache License
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";/*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:15.861Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:20.603Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -1,8 +1,8 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * IDS Enterprise Components - v4.59.3
4
- * Date: 2022-02-04T18:06:15.861Z
5
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
3
+ * IDS Enterprise Components - v4.59.4
4
+ * Date: 2022-02-09T17:34:20.603Z
5
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
6
6
  *
7
7
  *
8
8
  * Apache License
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";/*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:15.861Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:20.603Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -1,8 +1,8 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * IDS Enterprise Components - v4.59.3
4
- * Date: 2022-02-04T18:06:15.861Z
5
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
3
+ * IDS Enterprise Components - v4.59.4
4
+ * Date: 2022-02-09T17:34:20.603Z
5
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
6
6
  *
7
7
  *
8
8
  * Apache License
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";/*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:15.861Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:20.603Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -1,8 +1,8 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * IDS Enterprise Components - v4.59.3
4
- * Date: 2022-02-04T18:06:15.861Z
5
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
3
+ * IDS Enterprise Components - v4.59.4
4
+ * Date: 2022-02-09T17:34:20.603Z
5
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
6
6
  *
7
7
  *
8
8
  * Apache License
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";/*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:15.861Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:20.603Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -1,8 +1,8 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * IDS Enterprise Components - v4.59.3
4
- * Date: 2022-02-04T18:06:15.861Z
5
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
3
+ * IDS Enterprise Components - v4.59.4
4
+ * Date: 2022-02-09T17:34:20.603Z
5
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
6
6
  *
7
7
  *
8
8
  * Apache License
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";/*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:15.861Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:20.603Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -1,8 +1,8 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * IDS Enterprise Components - v4.59.3
4
- * Date: 2022-02-04T18:06:15.861Z
5
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
3
+ * IDS Enterprise Components - v4.59.4
4
+ * Date: 2022-02-09T17:34:20.603Z
5
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
6
6
  *
7
7
  *
8
8
  * Apache License
@@ -1,7 +1,7 @@
1
1
  @charset "UTF-8";/*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:15.861Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:20.603Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:16.686Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:21.404Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -345,7 +345,7 @@ if (!isIE11) {
345
345
 
346
346
  var name = "ids-enterprise";
347
347
  var slug = "ids-enterprise";
348
- var version = "4.59.3";
348
+ var version = "4.59.4";
349
349
  var description = "Infor Design System (IDS) Enterprise Components for the web";
350
350
  var repository = {
351
351
  type: "git",
@@ -76007,6 +76007,7 @@ var MODAL_FULLSIZE_SETTINGS = [false, 'responsive', 'always'];
76007
76007
  * @param {boolean} [settings.hideUnderneath=false] if true, causes this modal instance to become hidden when another modal is displayed over top.
76008
76008
  * @param {boolean} [settings.suppressEnterKey=false] if true, causes the modal to not exit when the enter key is pressed.
76009
76009
  * @param {string} [settings.attributes] Add extra attributes like id's to the toast element. For example `attributes: { name: 'id', value: 'my-unique-id' }`
76010
+ * @param {function} [settings.onFocusChange] an optional callback that runs whenever the Modal API attempts to change the focused element inside of its boundaries
76010
76011
  */
76011
76012
 
76012
76013
  var MODAL_DEFAULTS = {
@@ -76917,7 +76918,13 @@ Modal.prototype = {
76917
76918
  $('.skip-link').on("focus.".concat(this.namespace), function (e) {
76918
76919
  e.preventDefault();
76919
76920
 
76920
- _this3.element.find(':focusable').first().focus();
76921
+ var targetElem = _this3.element.find(':focusable').first();
76922
+
76923
+ targetElem.focus(); // Trigger an optional callback that can further modify changes on focus
76924
+
76925
+ if (typeof self.settings.onFocusChange === 'function') {
76926
+ self.settings.onFocusChange(self, targetElem[0]);
76927
+ }
76921
76928
  });
76922
76929
 
76923
76930
  function callOpenEvent(thisElem) {
@@ -76934,42 +76941,19 @@ Modal.prototype = {
76934
76941
  function focusElement(thisElem) {
76935
76942
  if (!self.settings.autoFocus) {
76936
76943
  return;
76937
- }
76938
-
76939
- self.setFocusableElems();
76940
- var focusableElements = $(self.focusableElems).not('.modal-header .searchfield');
76941
- var hiddenFieldTagNames = ['INPUT', 'BUTTON']; // When changes happen within the subtree on the Modal, rebuilds the internal hash of
76944
+ } // When changes happen within the subtree on the Modal, rebuilds the internal hash of
76942
76945
  // tabbable elements used for retaining focus.
76943
76946
 
76944
- self.changeObserver = new MutationObserver(function (mutationsList) {
76945
- var updateFocusableElems = false;
76946
- mutationsList.forEach(function (mutation) {
76947
- if (['childList', 'subtree'].includes(mutation.type)) {
76948
- updateFocusableElems = true;
76949
- } else {
76950
- var mutationTarget = $(mutation.target);
76951
-
76952
- if (hiddenFieldTagNames.includes(mutation.target.tagName)) {
76953
- if (mutationTarget.is(':visible')) {
76954
- mutationTarget.attr('tabindex', '0');
76955
- } else {
76956
- mutationTarget.attr('tabindex', '-1');
76957
- }
76958
- }
76959
- }
76960
- });
76961
76947
 
76962
- if (updateFocusableElems) {
76963
- self.setFocusableElems();
76964
- }
76948
+ self.changeObserver = new MutationObserver(function () {
76949
+ self.setFocusableElems();
76965
76950
  });
76966
76951
  self.changeObserver.observe(self.element[0], {
76967
- attributes: true,
76968
- attributeFilter: ['class', 'style'],
76969
76952
  childList: true,
76970
76953
  subtree: true
76971
76954
  });
76972
- var focusElem = focusableElements.not(':hidden').first();
76955
+ self.setFocusableElems();
76956
+ var focusElem = $(self.focusableElems).not(':hidden').first();
76973
76957
 
76974
76958
  if (focusElem.length === 0) {
76975
76959
  focusElem = thisElem.element.find('.btn-modal-primary');
@@ -77009,7 +76993,11 @@ Modal.prototype = {
77009
76993
  } // Otherwise, just focus
77010
76994
 
77011
76995
 
77012
- focusElem.focus();
76996
+ focusElem.focus(); // Trigger an optional callback that can further modify changes on focus
76997
+
76998
+ if (typeof self.settings.onFocusChange === 'function') {
76999
+ self.settings.onFocusChange(self, focusElem[0]);
77000
+ }
77013
77001
  }
77014
77002
 
77015
77003
  var pagerElem = this.element.find('.paginated');
@@ -77229,13 +77217,7 @@ Modal.prototype = {
77229
77217
  */
77230
77218
  setFocusableElems: function setFocusableElems() {
77231
77219
  var extraSelectors = [];
77232
- var ignoredSelectors = ['option']; // Pre-configure some element types that can be visually-hidden when the Modal opens
77233
- // to make it impossible to become focused while hidden (see infor-design/enterprise#6806)
77234
-
77235
- var nonFocusableElems = $(this.element).find('input:hidden');
77236
- nonFocusableElems.each(function (i, elem) {
77237
- elem.tabIndex = -1;
77238
- });
77220
+ var ignoredSelectors = ['option'];
77239
77221
  var elems = DOM.focusableElems(this.element[0], extraSelectors, ignoredSelectors);
77240
77222
  this.focusableElems = elems;
77241
77223
  this.focusableElems.first = elems[0];
@@ -77271,7 +77253,11 @@ Modal.prototype = {
77271
77253
 
77272
77254
  if (target) {
77273
77255
  target.focus();
77274
- target.classList.remove('hide-focus');
77256
+ target.classList.remove('hide-focus'); // Trigger an optional callback that can further modify changes on focus
77257
+
77258
+ if (typeof this.settings.onFocusChange === 'function') {
77259
+ this.settings.onFocusChange(this, target);
77260
+ }
77275
77261
  }
77276
77262
  },
77277
77263
 
package/dist/js/sohoxi.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * IDS Enterprise Components - v4.59.3
3
- * Date: 2022-02-04T18:06:16.686Z
4
- * Revision: ad0aab79db17cff3c380fc486eefe565f08077eb
2
+ * IDS Enterprise Components - v4.59.4
3
+ * Date: 2022-02-09T17:34:21.404Z
4
+ * Revision: fa0ed2d5e598093a78bd159f7f2ceb0d7330345c
5
5
  *
6
6
  *
7
7
  * Apache License
@@ -348,7 +348,7 @@ var Soho = (function (exports) {
348
348
 
349
349
  var name = "ids-enterprise";
350
350
  var slug = "ids-enterprise";
351
- var version = "4.59.3";
351
+ var version = "4.59.4";
352
352
  var description = "Infor Design System (IDS) Enterprise Components for the web";
353
353
  var repository = {
354
354
  type: "git",
@@ -76010,6 +76010,7 @@ var Soho = (function (exports) {
76010
76010
  * @param {boolean} [settings.hideUnderneath=false] if true, causes this modal instance to become hidden when another modal is displayed over top.
76011
76011
  * @param {boolean} [settings.suppressEnterKey=false] if true, causes the modal to not exit when the enter key is pressed.
76012
76012
  * @param {string} [settings.attributes] Add extra attributes like id's to the toast element. For example `attributes: { name: 'id', value: 'my-unique-id' }`
76013
+ * @param {function} [settings.onFocusChange] an optional callback that runs whenever the Modal API attempts to change the focused element inside of its boundaries
76013
76014
  */
76014
76015
 
76015
76016
  var MODAL_DEFAULTS = {
@@ -76920,7 +76921,13 @@ var Soho = (function (exports) {
76920
76921
  $('.skip-link').on("focus.".concat(this.namespace), function (e) {
76921
76922
  e.preventDefault();
76922
76923
 
76923
- _this3.element.find(':focusable').first().focus();
76924
+ var targetElem = _this3.element.find(':focusable').first();
76925
+
76926
+ targetElem.focus(); // Trigger an optional callback that can further modify changes on focus
76927
+
76928
+ if (typeof self.settings.onFocusChange === 'function') {
76929
+ self.settings.onFocusChange(self, targetElem[0]);
76930
+ }
76924
76931
  });
76925
76932
 
76926
76933
  function callOpenEvent(thisElem) {
@@ -76937,42 +76944,19 @@ var Soho = (function (exports) {
76937
76944
  function focusElement(thisElem) {
76938
76945
  if (!self.settings.autoFocus) {
76939
76946
  return;
76940
- }
76941
-
76942
- self.setFocusableElems();
76943
- var focusableElements = $(self.focusableElems).not('.modal-header .searchfield');
76944
- var hiddenFieldTagNames = ['INPUT', 'BUTTON']; // When changes happen within the subtree on the Modal, rebuilds the internal hash of
76947
+ } // When changes happen within the subtree on the Modal, rebuilds the internal hash of
76945
76948
  // tabbable elements used for retaining focus.
76946
76949
 
76947
- self.changeObserver = new MutationObserver(function (mutationsList) {
76948
- var updateFocusableElems = false;
76949
- mutationsList.forEach(function (mutation) {
76950
- if (['childList', 'subtree'].includes(mutation.type)) {
76951
- updateFocusableElems = true;
76952
- } else {
76953
- var mutationTarget = $(mutation.target);
76954
-
76955
- if (hiddenFieldTagNames.includes(mutation.target.tagName)) {
76956
- if (mutationTarget.is(':visible')) {
76957
- mutationTarget.attr('tabindex', '0');
76958
- } else {
76959
- mutationTarget.attr('tabindex', '-1');
76960
- }
76961
- }
76962
- }
76963
- });
76964
76950
 
76965
- if (updateFocusableElems) {
76966
- self.setFocusableElems();
76967
- }
76951
+ self.changeObserver = new MutationObserver(function () {
76952
+ self.setFocusableElems();
76968
76953
  });
76969
76954
  self.changeObserver.observe(self.element[0], {
76970
- attributes: true,
76971
- attributeFilter: ['class', 'style'],
76972
76955
  childList: true,
76973
76956
  subtree: true
76974
76957
  });
76975
- var focusElem = focusableElements.not(':hidden').first();
76958
+ self.setFocusableElems();
76959
+ var focusElem = $(self.focusableElems).not(':hidden').first();
76976
76960
 
76977
76961
  if (focusElem.length === 0) {
76978
76962
  focusElem = thisElem.element.find('.btn-modal-primary');
@@ -77012,7 +76996,11 @@ var Soho = (function (exports) {
77012
76996
  } // Otherwise, just focus
77013
76997
 
77014
76998
 
77015
- focusElem.focus();
76999
+ focusElem.focus(); // Trigger an optional callback that can further modify changes on focus
77000
+
77001
+ if (typeof self.settings.onFocusChange === 'function') {
77002
+ self.settings.onFocusChange(self, focusElem[0]);
77003
+ }
77016
77004
  }
77017
77005
 
77018
77006
  var pagerElem = this.element.find('.paginated');
@@ -77232,13 +77220,7 @@ var Soho = (function (exports) {
77232
77220
  */
77233
77221
  setFocusableElems: function setFocusableElems() {
77234
77222
  var extraSelectors = [];
77235
- var ignoredSelectors = ['option']; // Pre-configure some element types that can be visually-hidden when the Modal opens
77236
- // to make it impossible to become focused while hidden (see infor-design/enterprise#6806)
77237
-
77238
- var nonFocusableElems = $(this.element).find('input:hidden');
77239
- nonFocusableElems.each(function (i, elem) {
77240
- elem.tabIndex = -1;
77241
- });
77223
+ var ignoredSelectors = ['option'];
77242
77224
  var elems = DOM.focusableElems(this.element[0], extraSelectors, ignoredSelectors);
77243
77225
  this.focusableElems = elems;
77244
77226
  this.focusableElems.first = elems[0];
@@ -77274,7 +77256,11 @@ var Soho = (function (exports) {
77274
77256
 
77275
77257
  if (target) {
77276
77258
  target.focus();
77277
- target.classList.remove('hide-focus');
77259
+ target.classList.remove('hide-focus'); // Trigger an optional callback that can further modify changes on focus
77260
+
77261
+ if (typeof this.settings.onFocusChange === 'function') {
77262
+ this.settings.onFocusChange(this, target);
77263
+ }
77278
77264
  }
77279
77265
  },
77280
77266