@ui5/webcomponents 2.24.0 → 2.25.0-rc.0

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 (47) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Carousel.js +3 -1
  4. package/dist/Carousel.js.map +1 -1
  5. package/dist/ColorPalette.d.ts +1 -0
  6. package/dist/ColorPalette.js +23 -12
  7. package/dist/ColorPalette.js.map +1 -1
  8. package/dist/ColorPalettePopover.js +6 -5
  9. package/dist/ColorPalettePopover.js.map +1 -1
  10. package/dist/DayPicker.d.ts +1 -0
  11. package/dist/DayPicker.js +10 -2
  12. package/dist/DayPicker.js.map +1 -1
  13. package/dist/Dialog.d.ts +39 -0
  14. package/dist/Dialog.js +107 -3
  15. package/dist/Dialog.js.map +1 -1
  16. package/dist/DialogTemplate.js +4 -2
  17. package/dist/DialogTemplate.js.map +1 -1
  18. package/dist/FileUploader.d.ts +5 -2
  19. package/dist/FileUploader.js +22 -1
  20. package/dist/FileUploader.js.map +1 -1
  21. package/dist/FileUploaderTemplate.js +3 -2
  22. package/dist/FileUploaderTemplate.js.map +1 -1
  23. package/dist/Popup.d.ts +2 -0
  24. package/dist/Popup.js +7 -1
  25. package/dist/Popup.js.map +1 -1
  26. package/dist/css/themes/Dialog.css +1 -1
  27. package/dist/css/themes/TableHeaderCell.css +1 -1
  28. package/dist/custom-elements-internal.json +21 -1
  29. package/dist/custom-elements.json +20 -1
  30. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  31. package/dist/generated/i18n/i18n-defaults.js +3 -1
  32. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  33. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  34. package/dist/generated/themes/Dialog.css.js +1 -1
  35. package/dist/generated/themes/Dialog.css.js.map +1 -1
  36. package/dist/generated/themes/TableHeaderCell.css.d.ts +1 -1
  37. package/dist/generated/themes/TableHeaderCell.css.js +1 -1
  38. package/dist/generated/themes/TableHeaderCell.css.js.map +1 -1
  39. package/dist/vscode.html-custom-data.json +6 -1
  40. package/dist/web-types.json +12 -2
  41. package/package-scripts.cjs +1 -0
  42. package/package.json +11 -9
  43. package/src/DialogTemplate.tsx +13 -0
  44. package/src/FileUploaderTemplate.tsx +4 -0
  45. package/src/i18n/messagebundle.properties +7 -0
  46. package/src/themes/Dialog.css +22 -1
  47. package/src/themes/TableHeaderCell.css +1 -0
package/dist/Carousel.js CHANGED
@@ -243,13 +243,15 @@ let Carousel = Carousel_1 = class Carousel extends UI5Element {
243
243
  _onResize() {
244
244
  const previousItemsPerPage = this.effectiveItemsPerPage;
245
245
  // Set the resizing flag to suppress animation while resizing
246
+ const previousWidth = this._width;
246
247
  this._resizing = true;
247
248
  // Change transitively effectiveItemsPerPage by modifying _width
248
249
  this._width = this.offsetWidth;
249
250
  this._itemWidth = Math.floor(this._width / this.effectiveItemsPerPage);
250
251
  // Items per page did not change,
251
252
  // therefore page index does not need to be re-adjusted
252
- if (this.effectiveItemsPerPage === previousItemsPerPage) {
253
+ if (this._width === previousWidth && this.effectiveItemsPerPage === previousItemsPerPage) {
254
+ this._resizing = false;
253
255
  this._updateVisibleItems(this._currentPageIndex);
254
256
  return;
255
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.js","sourceRoot":"","sources":["../src/Carousel.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,KAAK,EACL,UAAU,EACV,QAAQ,GACR,MAAM,sCAAsC,CAAC;AAE9C,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,gBAAgB,MAAM,2DAA2D,CAAC;AAEzF,OAAO,aAAa,MAAM,wDAAwD,CAAC;AAEnF,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,aAAa,MAAM,qDAAqD,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAC1G,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,4BAA4B,EAC5B,wBAAwB,EACxB,8BAA8B,EAC9B,wBAAwB,GACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,uBAAuB,MAAM,oCAAoC,CAAC;AACzE,OAAO,yBAAyB,MAAM,sCAAsC,CAAC;AAG7E,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AAClG,OAAO,KAAK,MAAM,4CAA4C,CAAC;AAE/D,SAAS;AACT,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAqB7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAqBH,IAAM,QAAQ,gBAAd,MAAM,QAAS,SAAQ,UAAU;IA6LhC,MAAM,KAAK,aAAa;QACvB,OAAO,CAAC,CAAC;IACV,CAAC;IAED;QACC,KAAK,EAAE,CAAC;QA5KT;;;;WAIG;QAEH,WAAM,GAAG,KAAK,CAAC;QAEf;;;;;;;;;;;WAWG;QAEH,iBAAY,GAAG,cAAc,CAAC;QAE9B;;;;;;;WAOG;QAEH,yBAAoB,GAAG,KAAK,CAAC;QAE7B;;;;;;WAMG;QAEH,sBAAiB,GAAG,KAAK,CAAC;QAE1B;;;;;;;;;WASG;QAEH,sBAAiB,GAAmC,SAAS,CAAC;QAE9D;;;;;WAKG;QAEH,qBAAgB,GAA0B,aAAa,CAAC;QAExD;;;;;WAKG;QAEH,kCAA6B,GAA0B,OAAO,CAAC;QAE/D;;;;;WAKG;QAEH,8BAAyB,GAAsB,OAAO,CAAC;QAEvD;;;;WAIG;QAEH,sBAAiB,GAAG,CAAC,CAAC;QAEtB;;;;;;;;;WASG;QAEH,oBAAe,GAAiC,SAAS,CAAC;QAgB1D;;;;WAIG;QAEH,6BAAwB,GAAG,KAAK,CAAC;QAEjC;;;;WAIG;QAEH,uBAAkB,GAAG,CAAC,CAAC;QAEvB;;;;WAIG;QAEH,sBAAiB,GAAW,CAAC,CAAC;QAQ9B,cAAS,GAAW,EAAE,CAAC;QAGvB,uBAAkB,GAAuB,EAAE,CAAC;QAsB3C,IAAI,CAAC,qBAAqB,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE;YACtD,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAEpD,IAAI,IAAI,CAAC,kBAAkB,KAAK,iBAAiB,EAAE,CAAC;gBACnD,OAAO;YACR,CAAC;YAED,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;YAE5C,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACvH,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE;YAClD,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,sDAAsD;QAE9E,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,eAAe,KAAK,uBAAuB,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACjF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC7B,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,EAAG,CAAC;QAC3D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,mBAAmB;IAC5C,CAAC;IAED,UAAU;QACT,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,SAAS,EAAE,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;IAED,SAAS;QACR,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,oBAAoB;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAED,SAAS;QACR,MAAM,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAExD,6DAA6D;QAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,gEAAgE;QAChE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAEvE,iCAAiC;QACjC,uDAAuD;QACvD,IAAI,IAAI,CAAC,qBAAqB,KAAK,oBAAoB,EAAE,CAAC;YACzD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjD,OAAO;QACR,CAAC;QAED,mEAAmE;QACnE,iEAAiE;QACjE,sEAAsE;QACtE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACjF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QAEpE,IAAI,IAAI,CAAC,iBAAiB,KAAK,YAAY,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC;YACtC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;IACzI,CAAC;IAED,gBAAgB,CAAC,CAAqC;QACrD,IAAI,CAAC,CAAC,EAAE,CAAC;YACR,OAAO;QACR,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;aAAM,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC;IACF,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACrB,OAAO;QACR,CAAC;QACD,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;aAAM,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC;IACF,CAAC;IAED,UAAU,CAAC,CAAa;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QAEvC,IAAI,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACjC,OAAO;QACR,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAgB,CAAC,EAAE,CAAC;gBACzG,SAAS,GAAG,CAAC,CAAC;gBACd,MAAM;YACP,CAAC;QACF,CAAC;QAED,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,2DAA2D;QAC3D,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;QAE9C,MAAM,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzE,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzG,CAAC;IACF,CAAC;IAED,WAAW;QACV,IAAI,IAAI,CAAC,eAAe,KAAK,uBAAuB,CAAC,OAAO,EAAE,CAAC;YAC9D,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACvC,CAAC;IACF,CAAC;IAED,YAAY;QACX,IAAI,IAAI,CAAC,eAAe,KAAK,uBAAuB,CAAC,OAAO,EAAE,CAAC;YAC9D,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACtC,CAAC;IACF,CAAC;IAED,aAAa,CAAC,CAAa;QAC1B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QACvC,IAAI,MAAM,CAAC,YAAY,CAAC,wBAAwB,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACjG,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,YAAY,CAAC,CAAa;QACzB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QACvC,IAAI,MAAM,CAAC,YAAY,CAAC,wBAAwB,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACjG,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,CAAgB;QAClC,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACpF,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACpC,MAAM,cAAc,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/F,cAAc,EAAE,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,wBAAwB,GAAG,cAAc,IAAI,SAAS,CAAC;QAC7D,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,kBAAkB,IAAI,kBAAkB,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YACzH,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC,MAAqB,CAAC;QACzD,CAAC;aAAM,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC1C,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACvC,CAAC;IACF,CAAC;IAED,oBAAoB;QACnB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,OAAO;QACR,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE;oBACxC,aAAa,EAAE,KAAK;oBACpB,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,CAAC,QAAQ,CAAC;iBAC3B,CAAC,CAAC;YACJ,CAAC;QACF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC;IACxC,CAAC;IAED,IAAI,kBAAkB;QACrB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,CAAgB;QACjC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,CAAgB;QAChC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,CAAgB;QACnC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,MAAM,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,CAAgB;QACrC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,MAAM,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,wBAAwB;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAEnD,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,IAAI,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;YAC5C,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAC5C,MAAM,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,aAAa;QAClB,IAAI,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,IAAI,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,mBAAmB,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAC5C,MAAM,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,kBAAkB;QACvB,IAAI,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,IAAI,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzF,mBAAmB,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QAC3C,MAAM,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,iBAAiB;QACtB,IAAI,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;YAC5C,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QAC3C,MAAM,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,SAAS;QACR,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,eAAe,CAAC,CAAgC;QAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAc,CAAC;QAEhC,IAAI,MAAM,CAAC,YAAY,CAAC,wBAAwB,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,SAAiB;QAC3B,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,gBAAgB,CAAC,SAAiB,EAAE,UAA6B,EAAE;QAClE,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;QACxD,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAEzF,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,YAAY,IAAI,IAAI,CAAC,iBAAiB,GAAG,YAAY,GAAG,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,EAAE,CAAC;YACpI,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,KAAK,YAAY,EAAE,CAAC;YAC7C,OAAO;QACR,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC;QACtC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAEvC,IAAI,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;QACtE,CAAC;IACF,CAAC;IAED,iBAAiB,CAAC,SAAiB;QAClC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvD,IAAI,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAE1C,IAAI,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxC,YAAY,GAAG,SAAS,CAAC;QAC1B,CAAC;aAAM,IAAI,SAAS,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,GAAG,CAAC,EAAE,CAAC;YAChF,YAAY,GAAG,SAAS,GAAG,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,KAAK,YAAY,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC;YACtC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;YAEvC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,IAAI,mBAAmB;QACtB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC3C,OAAO;gBACN,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,kBAAkB,GAAG,GAAG,CAAC,EAAE;gBAC1C,IAAI;gBACJ,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7D,QAAQ,EAAE,GAAG,GAAG,CAAC;gBACjB,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBAClC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;aAChC,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,qBAAqB;QACxB,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,iBAAiB,GAAG,CAAC,EACxB,iBAAiB,GAAG,CAAC,EACrB,iBAAiB,GAAG,CAAC,EACrB,kBAAkB,GAAG,CAAC,CAAC;QAExB,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACnC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC;iBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC;iBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC;iBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpD,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,iBAAiB,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACvB,OAAO,iBAAiB,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YAC9C,OAAO,iBAAiB,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YAC/C,OAAO,iBAAiB,CAAC;QAC1B,CAAC;QAED,OAAO,kBAAkB,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,mBAAmB,CAAC,KAAa;QAChC,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;YACzD,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,qBAAqB,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,aAAa,GAAG,YAAY,GAAG,qBAAqB,CAAC;QAE3D,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAE/B,KAAK,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,cAAc,CAAC,KAAa;QAC3B,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,IAAI,gBAAgB;QACnB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,KAAK,uBAAuB,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/F,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO;QACV,OAAO;YACN,QAAQ,EAAE;gBACT,uBAAuB,EAAE,IAAI;gBAC7B,+BAA+B,EAAE,IAAI,CAAC,UAAU,KAAK,CAAC;aACtD;YACD,OAAO,EAAE;gBACR,sBAAsB,EAAE,IAAI;gBAC5B,mCAAmC,EAAE,IAAI,CAAC,iBAAiB;gBAC3D,qCAAqC,EAAE,IAAI,CAAC,gBAAgB;gBAC5D,iDAAiD,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,uBAAuB,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,oBAAoB;aACrK;YACD,UAAU,EAAE;gBACX,iCAAiC,EAAE,IAAI;gBACvC,sCAAsC,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,uBAAuB,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,oBAAoB;gBAC1J,CAAC,sCAAsC,IAAI,CAAC,6BAA6B,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI;gBAChG,CAAC,0CAA0C,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI;aAChG;SACD,CAAC;IACH,CAAC;IAED,IAAI,UAAU;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACxC,OAAO,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,cAAc;QACjB,IAAI,IAAI,CAAC,iBAAiB,KAAK,yBAAyB,CAAC,OAAO,EAAE,CAAC;YAClE,OAAO,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,GAAG,UAAQ,CAAC,aAAa,CAAC;IACjD,CAAC;IAED,IAAI,IAAI;QACP,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAE9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC,iBAAiB;gBACxC,SAAS,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC;aAC3E,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,UAAU;QACb,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,YAAY,CAAC;QACzE,OAAO;YACN,OAAO,EAAE,CAAC,IAAI,CAAC,oBAAoB,IAAI,aAAa,IAAI,IAAI,CAAC,eAAe,KAAK,uBAAuB,CAAC,OAAO;YAChH,UAAU,EAAE,CAAC,IAAI,CAAC,oBAAoB,IAAI,aAAa,IAAI,IAAI,CAAC,eAAe,KAAK,uBAAuB,CAAC,UAAU;SACtH,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IACrI,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,SAAS,IAAI,gBAAgB,EAAE,KAAK,aAAa,CAAC,IAAI,CAAC;IACpE,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC;IACpC,CAAC;IAED,IAAI,MAAM;QACT,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,YAAY;QACf,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,YAAY;QACf,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;OAKG;IACH,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,kBAAkB,CAAC,GAAW;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QAC7E,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC/C,OAAO,KAAK,KAAK,GAAG,CAAC;QACtB,CAAC,CAAuB,CAAC;IAC1B,CAAC;CACD,CAAA;AA3xBA;IADC,QAAQ,EAAE;gDACa;AASxB;IADC,QAAQ,EAAE;mDACgB;AAQ3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCACb;AAef;IADC,QAAQ,EAAE;8CACmB;AAW9B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDACC;AAU7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDACF;AAa1B;IADC,QAAQ,EAAE;mDACmD;AAS9D;IADC,QAAQ,EAAE;kDAC6C;AASxD;IADC,QAAQ,EAAE;+DACoD;AAS/D;IADC,QAAQ,EAAE;2DAC4C;AAQvD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;mDACxB;AAatB;IADC,QAAQ,EAAE;iDAC+C;AAO1D;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACX;AAOhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACP;AAQpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;0DACd;AAQjC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;oDACvB;AAQvB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;mDAChB;AAqB9B;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;yCACjC;AAG5B;IADN,IAAI,CAAC,oBAAoB,CAAC;kCACG;AA3LzB,QAAQ;IApBb,aAAa,CAAC;QACd,GAAG,EAAE,cAAc;QACnB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,gBAAgB;KAC1B,CAAC;IACF;;;;;;;OAOG;;IACF,KAAK,CAAC,UAAU,EAAE;QAClB,OAAO,EAAE,IAAI;KACb,CAAC;GAEI,QAAQ,CAsyBb;AAED,QAAQ,CAAC,MAAM,EAAE,CAAC;AAElB,eAAe,QAAQ,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisDown,\n\tisUp,\n\tisF7,\n\tisHome,\n\tisEnd,\n\tisPageDown,\n\tisPageUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport type { ScrollEnablementEventListenerParam } from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport AnimationMode from \"@ui5/webcomponents-base/dist/types/AnimationMode.js\";\nimport { getAnimationMode } from \"@ui5/webcomponents-base/dist/config/AnimationMode.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport {\n\tCAROUSEL_OF_TEXT,\n\tCAROUSEL_DOT_TEXT,\n\tCAROUSEL_PREVIOUS_ARROW_TEXT,\n\tCAROUSEL_NEXT_ARROW_TEXT,\n\tCAROUSEL_ARIA_ROLE_DESCRIPTION,\n\tCAROUSEL_ARIA_LIST_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport CarouselArrowsPlacement from \"./types/CarouselArrowsPlacement.js\";\nimport CarouselPageIndicatorType from \"./types/CarouselPageIndicatorType.js\";\nimport type BackgroundDesign from \"./types/BackgroundDesign.js\";\nimport type BorderDesign from \"./types/BorderDesign.js\";\nimport CarouselTemplate from \"./CarouselTemplate.js\";\nimport type Icon from \"./Icon.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport clamp from \"@ui5/webcomponents-base/dist/util/clamp.js\";\n\n// Styles\nimport CarouselCss from \"./generated/themes/Carousel.css.js\";\n\ntype CarouselNavigateEventDetail = {\n\tselectedIndex: number;\n}\n\ntype ChangePageOptions = {\n\tfireEvent?: boolean;\n\tmoveFocus?: boolean;\n}\n\ntype ItemsInfo = {\n\tid: string,\n\titem: HTMLElement & { _individualSlot?: string },\n\ttabIndex: number,\n\tposinset: number,\n\tsetsize: number,\n\tvisible: boolean,\n\t_individualSlot?: string,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The Carousel allows the user to browse through a set of items.\n * The component is mostly used for showing a gallery of images, but can hold any other HTML element.\n *\n * There are several ways to perform navigation:\n *\n * - on desktop - the user can navigate using the navigation arrows or with keyboard shortcuts.\n * - on touch devices - the user can navigate using the navigation arrows (always visible) or can use swipe gestures.\n *\n * ### Usage\n *\n * #### When to use:\n *\n * - The items you want to display are very different from each other.\n * - You want to display the items one after the other.\n *\n * #### When not to use:\n *\n * - The items you want to display need to be visible at the same time.\n * - The items you want to display are uniform and very similar.\n *\n * ### Hidden Items\n *\n * Carousel items can be conditionally hidden by adding the `hidden` attribute to any child element.\n * Hidden items are automatically excluded from carousel navigation and will not be displayed or counted in pagination.\n * This allows for dynamic showing or hiding of carousel items without affecting the overall carousel behavior.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * When the `ui5-carousel` is focused the user can navigate between the items\n * with the following keyboard shortcuts:\n *\n * - [Up] or [Down] - Navigates to previous and next item\n * - [Left] or [Right] - Navigates to previous and next item\n *\n * ### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n *\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Carousel.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.6\n * @public\n * @csspart content - Used to style the content of the component\n */\n@customElement({\n\ttag: \"ui5-carousel\",\n\tlanguageAware: true,\n\tfastNavigation: true,\n\trenderer: jsxRenderer,\n\tstyles: CarouselCss,\n\ttemplate: CarouselTemplate,\n})\n/**\n * Fired whenever the page changes due to user interaction,\n * when the user clicks on the navigation arrows or while resizing,\n * based on the `items-per-page` property.\n * @param {Integer} selectedIndex the current selected index\n * @public\n * @since 1.0.0-rc.7\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\n\nclass Carousel extends UI5Element {\n\teventDetails!: {\n\t\tnavigate: CarouselNavigateEventDetail;\n\t}\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the input.\n\t * @default undefined\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines whether the carousel should loop, i.e show the first page after the last page is reached and vice versa.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tcyclic = false;\n\n\t/**\n\t * Defines the number of items per page depending on the carousel width.\n\t *\n\t * - 'S' for screens smaller than 600 pixels.\n\t * - 'M' for screens greater than or equal to 600 pixels and smaller than 1024 pixels.\n\t * - 'L' for screens greater than or equal to 1024 pixels and smaller than 1440 pixels.\n\t * - 'XL' for screens greater than or equal to 1440 pixels.\n\t *\n\t * One item per page is shown by default.\n\t * @default \"S1 M1 L1 XL1\"\n\t * @public\n\t */\n\t@property()\n\titemsPerPage = \"S1 M1 L1 XL1\";\n\n\t/**\n\t * Defines the visibility of the navigation arrows.\n\t * If set to true the navigation arrows will be hidden.\n\t *\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideNavigationArrows = false;\n\n\t/**\n\t * Defines the visibility of the page indicator.\n\t * If set to true the page indicator will be hidden.\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thidePageIndicator = false;\n\n\t/**\n\t * Defines the style of the page indicator.\n\t * Available options are:\n\t *\n\t * - `Default` - The page indicator will be visualized as dots if there are fewer than 9 pages. If there are more pages, the page indicator will switch to displaying the current page and the total number of pages. (e.g. X of Y)\n\t * - `Numeric` - The page indicator will display the current page and the total number of pages. (e.g. X of Y)\n\t * @since 1.10\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorType: `${CarouselPageIndicatorType}` = \"Default\";\n\n\t/**\n\t * Defines the carousel's background design.\n\t * @since 1.14\n\t * @default \"Translucent\"\n\t * @public\n\t */\n\t@property()\n\tbackgroundDesign: `${BackgroundDesign}` = \"Translucent\";\n\n\t/**\n\t * Defines the page indicator background design.\n\t * @since 1.14\n\t * @default \"Solid\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorBackgroundDesign: `${BackgroundDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the page indicator border design.\n\t * @since 1.14\n\t * @default \"Solid\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorBorderDesign: `${BorderDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the index of the initially selected item.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_focusedItemIndex = 0;\n\n\t/**\n\t * Defines the position of arrows.\n\t *\n\t * Available options are:\n\t *\n\t * - `Content` - the arrows are placed on the sides of the current page.\n\t * - `Navigation` - the arrows are placed on the sides of the page indicator.\n\t * @default \"Content\"\n\t * @public\n\t */\n\t@property()\n\tarrowsPlacement: `${CarouselArrowsPlacement}` = \"Content\";\n\n\t/**\n\t * Defines the carousel width in pixels.\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_width?: number;\n\n\t/**\n\t * Defines the carousel item width in pixels.\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_itemWidth?: number;\n\n\t/**\n\t * If set to true navigation arrows are shown.\n\t * @private\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_visibleNavigationArrows = false;\n\n\t/**\n\t * Internal trigger flag that forces component re-rendering when content items change.\n\t * @private\n\t * @since 2.16.0\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_visibleItemsCount = 0;\n\n\t/**\n\t * Defines the current page index, which determines the first visible item.\n\t * @private\n\t * @since 2.16.0-r.c1\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_currentPageIndex: number = 0;\n\n\t_scrollEnablement: ScrollEnablement;\n\t_onResizeBound: ResizeObserverCallback;\n\t_resizing: boolean;\n\t_lastFocusedElements: Array<HTMLElement>;\n\t_orderOfLastFocusedItems: Array<number>;\n\t_lastInnerFocusedElement?: HTMLElement;\n\t_pageStep: number = 10;\n\t_visibleItemsIndexes: Array<number>;\n\t_contentItemsObserver: MutationObserver;\n\t_observableContent: Array<HTMLElement> = [];\n\n\t/**\n\t * Defines the content of the component.\n\t *\n\t * **Note:** Items with the `hidden` attribute will be automatically excluded from carousel navigation and page calculations.\n\t * They will not be displayed or accessible via keyboard navigation. See [sample](./#carousel-with-hidden-items).\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, individualSlots: true })\n\tcontent!: DefaultSlot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic get pageTypeLimit() {\n\t\treturn 9;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._contentItemsObserver = new MutationObserver(() => {\n\t\t\tconst visibleItemsCount = this._visibleItems.length;\n\n\t\t\tif (this._visibleItemsCount === visibleItemsCount) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._visibleItemsCount = visibleItemsCount;\n\n\t\t\tthis._currentPageIndex = clamp(this._currentPageIndex, 0, Math.max(0, this.items.length - this.effectiveItemsPerPage));\n\t\t\tthis._focusedItemIndex = clamp(this._focusedItemIndex, this._currentPageIndex, this.items.length - 1);\n\t\t\tthis._changePageIndex(this._currentPageIndex, { fireEvent: false });\n\t\t});\n\n\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\tthis._scrollEnablement.attachEvent(\"touchend\", e => {\n\t\t\tthis._updateScrolling(e);\n\t\t});\n\t\tthis._onResizeBound = this._onResize.bind(this);\n\t\tthis._resizing = false; // indicates if the carousel is in process of resizing\n\n\t\tthis._lastFocusedElements = [];\n\t\tthis._orderOfLastFocusedItems = [];\n\t\tthis._visibleItemsIndexes = [];\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._observeContentItems();\n\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation || !isDesktop()) {\n\t\t\tthis._visibleNavigationArrows = true;\n\t\t}\n\n\t\tthis.validateFocusedIndex();\n\t}\n\n\tonAfterRendering() {\n\t\tthis._scrollEnablement.scrollContainer = this.getDomRef()!;\n\t\tthis._resizing = false; // not invalidating\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResizeBound);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tthis._contentItemsObserver.disconnect();\n\t\tthis._observableContent = [];\n\t\tResizeHandler.deregister(this, this._onResizeBound);\n\t}\n\n\tvalidateFocusedIndex() {\n\t\tif (!this.isIndexInRange(this._focusedItemIndex)) {\n\t\t\tthis._focusedItemIndex = 0;\n\t\t}\n\t}\n\n\t_onResize() {\n\t\tconst previousItemsPerPage = this.effectiveItemsPerPage;\n\n\t\t// Set the resizing flag to suppress animation while resizing\n\t\tthis._resizing = true;\n\n\t\t// Change transitively effectiveItemsPerPage by modifying _width\n\t\tthis._width = this.offsetWidth;\n\t\tthis._itemWidth = Math.floor(this._width / this.effectiveItemsPerPage);\n\n\t\t// Items per page did not change,\n\t\t// therefore page index does not need to be re-adjusted\n\t\tif (this.effectiveItemsPerPage === previousItemsPerPage) {\n\t\t\tthis._updateVisibleItems(this._currentPageIndex);\n\t\t\treturn;\n\t\t}\n\n\t\t// When items per page changes, clamp page index to the valid range\n\t\t// to prevent items from becoming unreachable (e.g. when resizing\n\t\t// from showing 2 to 3 items while on page 1 with only 3 items total).\n\t\tconst maxPageIndex = Math.max(0, this.items.length - this.effectiveItemsPerPage);\n\t\tconst newPageIndex = clamp(this._currentPageIndex, 0, maxPageIndex);\n\n\t\tif (this._currentPageIndex !== newPageIndex) {\n\t\t\tthis._currentPageIndex = newPageIndex;\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: newPageIndex });\n\t\t}\n\n\t\tthis._updateVisibleItems(this._currentPageIndex);\n\t\tthis._focusedItemIndex = clamp(this._focusedItemIndex, this._currentPageIndex, this._currentPageIndex + this.effectiveItemsPerPage - 1);\n\t}\n\n\t_updateScrolling(e: ScrollEnablementEventListenerParam) {\n\t\tif (!e) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.isLeft) {\n\t\t\tthis.navigateLeft();\n\t\t} else if (e.isRight) {\n\t\t\tthis.navigateRight();\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isF7(e)) {\n\t\t\tthis._handleF7Key(e);\n\t\t\treturn;\n\t\t}\n\t\tif (isHome(e)) {\n\t\t\tthis._handleHome(e);\n\t\t}\n\t\tif (isEnd(e)) {\n\t\t\tthis._handleEnd(e);\n\t\t}\n\t\tif (isPageUp(e)) {\n\t\t\tthis._handlePageUp(e);\n\t\t}\n\t\tif (isPageDown(e)) {\n\t\t\tthis._handlePageDown(e);\n\t\t}\n\n\t\tif (isLeft(e) || isUp(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.navigateLeft();\n\t\t} else if (isRight(e) || isDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.navigateRight();\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (target === this.getDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet itemIndex = -1;\n\t\tfor (let i = 0; i < this._visibleItems.length; i++) {\n\t\t\tif (this._visibleItems[i].isEqualNode(target?.querySelector(\"slot\")?.assignedNodes()[0] as HTMLElement)) {\n\t\t\t\titemIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (itemIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedItemIndex = itemIndex;\n\t\t// Save reference of the last focused element for each item\n\t\tthis._lastFocusedElements[itemIndex] = target;\n\n\t\tconst sortedItemIndex = this._orderOfLastFocusedItems.indexOf(itemIndex);\n\t\tif (sortedItemIndex === -1) {\n\t\t\tthis._orderOfLastFocusedItems.unshift(itemIndex);\n\t\t} else {\n\t\t\tthis._orderOfLastFocusedItems.splice(0, 0, this._orderOfLastFocusedItems.splice(sortedItemIndex, 1)[0]);\n\t\t}\n\t}\n\n\t_onmouseout() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Content) {\n\t\t\tthis._visibleNavigationArrows = false;\n\t\t}\n\t}\n\n\t_onmouseover() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Content) {\n\t\t\tthis._visibleNavigationArrows = true;\n\t\t}\n\t}\n\n\t_ontouchstart(e: TouchEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\") || target.hasAttribute(\"data-ui5-arrow-back\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\") || target.hasAttribute(\"data-ui5-arrow-back\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tasync _handleF7Key(e: KeyboardEvent) {\n\t\tconst lastFocusedElement = this._lastFocusedElements[this._getLastFocusedItemIndex];\n\t\tif (!this._lastInnerFocusedElement) {\n\t\t\tconst firstFocusable = await getFirstFocusableElement(this.items[this._focusedItemIndex].item);\n\t\t\tfirstFocusable?.focus();\n\t\t\tthis._lastInnerFocusedElement = firstFocusable || undefined;\n\t\t} else if (this.carouselItemDomRef(this._focusedItemIndex)[0] === lastFocusedElement && lastFocusedElement !== e.target) {\n\t\t\tlastFocusedElement.focus();\n\t\t\tthis._lastInnerFocusedElement = e.target as HTMLElement;\n\t\t} else if (this._lastInnerFocusedElement) {\n\t\t\tthis._lastInnerFocusedElement.focus();\n\t\t}\n\t}\n\n\t_observeContentItems() {\n\t\tif (this.hasMatchingContent) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.content.forEach(item => {\n\t\t\tif (!this._observableContent.includes(item)) {\n\t\t\t\tthis._contentItemsObserver.observe(item, {\n\t\t\t\t\tcharacterData: false,\n\t\t\t\t\tchildList: false,\n\t\t\t\t\tsubtree: false,\n\t\t\t\t\tattributes: true,\n\t\t\t\t\tattributeFilter: [\"hidden\"],\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tthis._observableContent = this.content;\n\t}\n\n\tget hasMatchingContent() {\n\t\tif (this._observableContent.length !== this.content.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst observableContentSet = new WeakSet(this._observableContent);\n\t\treturn this.content.every(item => observableContentSet.has(item));\n\t}\n\n\tasync _handleHome(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(0, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handleEnd(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(this.items.length - 1, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handlePageUp(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(this._currentPageIndex + this._pageStep, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handlePageDown(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(this._currentPageIndex - this._pageStep, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tget _backgroundDesign() {\n\t\treturn this.backgroundDesign.toLowerCase();\n\t}\n\n\tget _getLastFocusedItemIndex() {\n\t\tfor (let i = 0; i < this._orderOfLastFocusedItems.length; i++) {\n\t\t\tconst itemIndex = this._orderOfLastFocusedItems[i];\n\n\t\t\tif (this.isItemVisible(itemIndex)) {\n\t\t\t\treturn itemIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn this._focusedItemIndex;\n\t}\n\n\tasync navigateLeft() {\n\t\tlet newFocusedItemIndex = this._focusedItemIndex - 1;\n\t\tif (this.cyclic && newFocusedItemIndex < 0) {\n\t\t\tnewFocusedItemIndex = this.items.length - 1;\n\t\t}\n\n\t\tthis._changeFocusIndex(newFocusedItemIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync navigateRight() {\n\t\tlet newFocusedItemIndex = this._focusedItemIndex + 1;\n\t\tif (this.cyclic && newFocusedItemIndex > this.items.length - 1) {\n\t\t\tnewFocusedItemIndex = 0;\n\t\t}\n\n\t\tthis._changeFocusIndex(newFocusedItemIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync navigateArrowRight() {\n\t\tlet newCurrentPageIndex = this._currentPageIndex + 1;\n\t\tif (this.cyclic && newCurrentPageIndex > this.items.length - this.effectiveItemsPerPage) {\n\t\t\tnewCurrentPageIndex = 0;\n\t\t}\n\n\t\tthis._changePageIndex(newCurrentPageIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync navigateArrowLeft() {\n\t\tlet newCurrentPageIndex = this._currentPageIndex - 1;\n\t\tif (this.cyclic && newCurrentPageIndex < 0) {\n\t\t\tnewCurrentPageIndex = this.items.length - 1;\n\t\t}\n\n\t\tthis._changePageIndex(newCurrentPageIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tfocusItem() {\n\t\tthis.carouselItemDomRef(this._focusedItemIndex)[0].focus({ preventScroll: true });\n\t}\n\n\t_navButtonClick(e: UI5CustomEvent<Icon, \"click\">) {\n\t\tconst target = e.target as Icon;\n\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\")) {\n\t\t\tthis.navigateArrowRight();\n\t\t} else {\n\t\t\tthis.navigateArrowLeft();\n\t\t}\n\t}\n\n\t/**\n\t * Changes the currently displayed page.\n\t * @param itemIndex The index of the target item\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\tnavigateTo(itemIndex: number): void {\n\t\tthis._changePageIndex(itemIndex, { fireEvent: false });\n\t}\n\n\t_changePageIndex(itemIndex: number, options: ChangePageOptions = {}): void {\n\t\tconst { fireEvent = true, moveFocus = false } = options;\n\t\tconst newPageIndex = clamp(itemIndex, 0, this.items.length - this.effectiveItemsPerPage);\n\n\t\tif (moveFocus || (this._focusedItemIndex < newPageIndex || this._focusedItemIndex > newPageIndex + this.effectiveItemsPerPage - 1)) {\n\t\t\tthis._focusedItemIndex = clamp(itemIndex, 0, this.items.length - 1);\n\t\t}\n\n\t\tif (this._currentPageIndex === newPageIndex) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._currentPageIndex = newPageIndex;\n\t\tthis._updateVisibleItems(newPageIndex);\n\n\t\tif (fireEvent) {\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: newPageIndex });\n\t\t}\n\t}\n\n\t_changeFocusIndex(itemIndex: number) {\n\t\titemIndex = clamp(itemIndex, 0, this.items.length - 1);\n\t\tlet newPageIndex = this._currentPageIndex;\n\n\t\tif (itemIndex < this._currentPageIndex) {\n\t\t\tnewPageIndex = itemIndex;\n\t\t} else if (itemIndex > this._currentPageIndex + this.effectiveItemsPerPage - 1) {\n\t\t\tnewPageIndex = itemIndex - this.effectiveItemsPerPage + 1;\n\t\t}\n\n\t\tif (this._currentPageIndex !== newPageIndex) {\n\t\t\tthis._currentPageIndex = newPageIndex;\n\t\t\tthis._updateVisibleItems(newPageIndex);\n\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: newPageIndex });\n\t\t}\n\n\t\tthis._focusedItemIndex = itemIndex;\n\t}\n\n\t/**\n\t * The indices of the currently visible items of the component.\n\t * @public\n\t * @since 1.0.0-rc.15\n\t * @default []\n\t */\n\tget visibleItemsIndices() : Array<number> {\n\t\treturn this._visibleItemsIndexes;\n\t}\n\n\t/**\n\t * Assuming that all items have the same width\n\t * @private\n\t */\n\tget items(): Array<ItemsInfo> {\n\t\treturn this._visibleItems.map((item, idx) => {\n\t\t\treturn {\n\t\t\t\tid: `${this._id}-carousel-item-${idx + 1}`,\n\t\t\t\titem,\n\t\t\t\ttabIndex: this.isItemVisible(this._focusedItemIndex) ? 0 : -1,\n\t\t\t\tposinset: idx + 1,\n\t\t\t\tsetsize: this._visibleItems.length,\n\t\t\t\tvisible: this.isItemVisible(idx),\n\t\t\t};\n\t\t});\n\t}\n\tget effectiveItemsPerPage(): number {\n\t\tconst itemsPerPageArray = this.itemsPerPage.split(\" \");\n\t\tlet itemsPerPageSizeS = 1,\n\t\t\titemsPerPageSizeM = 1,\n\t\t\titemsPerPageSizeL = 1,\n\t\t\titemsPerPageSizeXL = 1;\n\n\t\titemsPerPageArray.forEach(element => {\n\t\t\tif (element.startsWith(\"S\")) {\n\t\t\t\titemsPerPageSizeS = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"M\")) {\n\t\t\t\titemsPerPageSizeM = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"L\")) {\n\t\t\t\titemsPerPageSizeL = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"XL\")) {\n\t\t\t\titemsPerPageSizeXL = Number(element.slice(2)) || 1;\n\t\t\t}\n\t\t});\n\n\t\tif (!this._width) {\n\t\t\treturn itemsPerPageSizeL;\n\t\t}\n\n\t\tif (this._width < 600) {\n\t\t\treturn itemsPerPageSizeS;\n\t\t}\n\n\t\tif (this._width >= 600 && this._width < 1024) {\n\t\t\treturn itemsPerPageSizeM;\n\t\t}\n\n\t\tif (this._width >= 1024 && this._width < 1440) {\n\t\t\treturn itemsPerPageSizeL;\n\t\t}\n\n\t\treturn itemsPerPageSizeXL;\n\t}\n\n\tisItemVisible(index: number): boolean {\n\t\treturn this._visibleItemsIndexes.includes(index);\n\t}\n\n\t_updateVisibleItems(index: number) {\n\t\tlet newItemIndex = index;\n\t\tconst effectiveItemsPerPage = this.effectiveItemsPerPage;\n\t\tconst items = this.items;\n\n\t\tif (!items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (newItemIndex > items.length - effectiveItemsPerPage) {\n\t\t\tnewItemIndex = Math.max(0, items.length - effectiveItemsPerPage);\n\t\t}\n\t\tconst lastItemIndex = newItemIndex + effectiveItemsPerPage;\n\n\t\tthis._visibleItemsIndexes = [];\n\n\t\tfor (let i = newItemIndex; i < lastItemIndex; i++) {\n\t\t\tthis._visibleItemsIndexes.push(i);\n\t\t}\n\t}\n\n\tisIndexInRange(index: number): boolean {\n\t\treturn index >= 0 && index <= this.items.length - 1;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tget renderNavigation() {\n\t\tif (!this.hasManyPages) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.hidePageIndicator) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tget hasManyPages() {\n\t\treturn this.pagesCount > 1;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tviewport: {\n\t\t\t\t\"ui5-carousel-viewport\": true,\n\t\t\t\t\"ui5-carousel-viewport--single\": this.pagesCount === 1,\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-carousel-content\": true,\n\t\t\t\t\"ui5-carousel-content-no-animation\": this.suppressAnimation,\n\t\t\t\t\"ui5-carousel-content-has-navigation\": this.renderNavigation,\n\t\t\t\t\"ui5-carousel-content-has-navigation-and-buttons\": this.renderNavigation && this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows,\n\t\t\t},\n\t\t\tnavigation: {\n\t\t\t\t\"ui5-carousel-navigation-wrapper\": true,\n\t\t\t\t\"ui5-carousel-navigation-with-buttons\": this.renderNavigation && this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows,\n\t\t\t\t[`ui5-carousel-navigation-wrapper-bg-${this.pageIndicatorBackgroundDesign.toLowerCase()}`]: true,\n\t\t\t\t[`ui5-carousel-navigation-wrapper-border-${this.pageIndicatorBorderDesign.toLowerCase()}`]: true,\n\t\t\t},\n\t\t};\n\t}\n\n\tget pagesCount() {\n\t\tconst items = this._visibleItems.length;\n\t\treturn items > this.effectiveItemsPerPage ? items - this.effectiveItemsPerPage + 1 : 1;\n\t}\n\n\tget isPageTypeDots() {\n\t\tif (this.pageIndicatorType === CarouselPageIndicatorType.Numeric) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.pagesCount < Carousel.pageTypeLimit;\n\t}\n\n\tget dots() {\n\t\tconst dots = [];\n\t\tconst pages = this.pagesCount;\n\n\t\tfor (let index = 0; index < pages; index++) {\n\t\t\tdots.push({\n\t\t\t\tactive: index === this._currentPageIndex,\n\t\t\t\tariaLabel: Carousel.i18nBundle.getText(CAROUSEL_DOT_TEXT, index + 1, pages),\n\t\t\t});\n\t\t}\n\n\t\treturn dots;\n\t}\n\n\tget showArrows() {\n\t\tconst displayArrows = this._visibleNavigationArrows && this.hasManyPages;\n\t\treturn {\n\t\t\tcontent: !this.hideNavigationArrows && displayArrows && this.arrowsPlacement === CarouselArrowsPlacement.Content,\n\t\t\tnavigation: !this.hideNavigationArrows && displayArrows && this.arrowsPlacement === CarouselArrowsPlacement.Navigation,\n\t\t};\n\t}\n\n\tget hasPrev() {\n\t\treturn this.cyclic || (this._focusedItemIndex - 1 >= 0 && this._currentPageIndex !== 0);\n\t}\n\n\tget hasNext() {\n\t\treturn this.cyclic || (this._focusedItemIndex + 1 <= this._visibleItems.length - 1 && this._currentPageIndex < this.pagesCount - 1);\n\t}\n\n\tget suppressAnimation() {\n\t\treturn this._resizing || getAnimationMode() === AnimationMode.None;\n\t}\n\n\tget _isRTL() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget ofText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_OF_TEXT);\n\t}\n\n\tget ariaLabelTxt() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget nextPageText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_NEXT_ARROW_TEXT);\n\t}\n\n\tget previousPageText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_PREVIOUS_ARROW_TEXT);\n\t}\n\n\tget _roleDescription() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_ARIA_ROLE_DESCRIPTION);\n\t}\n\n\tget _ariaListLabel() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_ARIA_LIST_LABEL);\n\t}\n\n\t/**\n \t * Returns only visible (non-hidden) content items.\n\t * Items with the 'hidden' attribute are automatically excluded from carousel navigation.\n\t * @default []\n\t * @private\n\t */\n\tget _visibleItems(): Array<HTMLElement> {\n\t\treturn this.content.filter(x => !x.hasAttribute(\"hidden\"));\n\t}\n\n\tcarouselItemDomRef(idx: number) : Array<HTMLElement> {\n\t\tconst items = this.getDomRef()?.querySelectorAll(\".ui5-carousel-item\") || [];\n\t\treturn Array.from(items).filter((item, index) => {\n\t\t\treturn index === idx;\n\t\t}) as Array<HTMLElement>;\n\t}\n}\n\nCarousel.define();\n\nexport default Carousel;\nexport type {\n\tCarouselNavigateEventDetail,\n};\n"]}
1
+ {"version":3,"file":"Carousel.js","sourceRoot":"","sources":["../src/Carousel.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisDown,\n\tisUp,\n\tisF7,\n\tisHome,\n\tisEnd,\n\tisPageDown,\n\tisPageUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport type { ScrollEnablementEventListenerParam } from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport AnimationMode from \"@ui5/webcomponents-base/dist/types/AnimationMode.js\";\nimport { getAnimationMode } from \"@ui5/webcomponents-base/dist/config/AnimationMode.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport {\n\tCAROUSEL_OF_TEXT,\n\tCAROUSEL_DOT_TEXT,\n\tCAROUSEL_PREVIOUS_ARROW_TEXT,\n\tCAROUSEL_NEXT_ARROW_TEXT,\n\tCAROUSEL_ARIA_ROLE_DESCRIPTION,\n\tCAROUSEL_ARIA_LIST_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport CarouselArrowsPlacement from \"./types/CarouselArrowsPlacement.js\";\nimport CarouselPageIndicatorType from \"./types/CarouselPageIndicatorType.js\";\nimport type BackgroundDesign from \"./types/BackgroundDesign.js\";\nimport type BorderDesign from \"./types/BorderDesign.js\";\nimport CarouselTemplate from \"./CarouselTemplate.js\";\nimport type Icon from \"./Icon.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport clamp from \"@ui5/webcomponents-base/dist/util/clamp.js\";\n\n// Styles\nimport CarouselCss from \"./generated/themes/Carousel.css.js\";\n\ntype CarouselNavigateEventDetail = {\n\tselectedIndex: number;\n}\n\ntype ChangePageOptions = {\n\tfireEvent?: boolean;\n\tmoveFocus?: boolean;\n}\n\ntype ItemsInfo = {\n\tid: string,\n\titem: HTMLElement & { _individualSlot?: string },\n\ttabIndex: number,\n\tposinset: number,\n\tsetsize: number,\n\tvisible: boolean,\n\t_individualSlot?: string,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The Carousel allows the user to browse through a set of items.\n * The component is mostly used for showing a gallery of images, but can hold any other HTML element.\n *\n * There are several ways to perform navigation:\n *\n * - on desktop - the user can navigate using the navigation arrows or with keyboard shortcuts.\n * - on touch devices - the user can navigate using the navigation arrows (always visible) or can use swipe gestures.\n *\n * ### Usage\n *\n * #### When to use:\n *\n * - The items you want to display are very different from each other.\n * - You want to display the items one after the other.\n *\n * #### When not to use:\n *\n * - The items you want to display need to be visible at the same time.\n * - The items you want to display are uniform and very similar.\n *\n * ### Hidden Items\n *\n * Carousel items can be conditionally hidden by adding the `hidden` attribute to any child element.\n * Hidden items are automatically excluded from carousel navigation and will not be displayed or counted in pagination.\n * This allows for dynamic showing or hiding of carousel items without affecting the overall carousel behavior.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * When the `ui5-carousel` is focused the user can navigate between the items\n * with the following keyboard shortcuts:\n *\n * - [Up] or [Down] - Navigates to previous and next item\n * - [Left] or [Right] - Navigates to previous and next item\n *\n * ### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n *\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Carousel.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.6\n * @public\n * @csspart content - Used to style the content of the component\n */\n@customElement({\n\ttag: \"ui5-carousel\",\n\tlanguageAware: true,\n\tfastNavigation: true,\n\trenderer: jsxRenderer,\n\tstyles: CarouselCss,\n\ttemplate: CarouselTemplate,\n})\n/**\n * Fired whenever the page changes due to user interaction,\n * when the user clicks on the navigation arrows or while resizing,\n * based on the `items-per-page` property.\n * @param {Integer} selectedIndex the current selected index\n * @public\n * @since 1.0.0-rc.7\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\n\nclass Carousel extends UI5Element {\n\teventDetails!: {\n\t\tnavigate: CarouselNavigateEventDetail;\n\t}\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the input.\n\t * @default undefined\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines whether the carousel should loop, i.e show the first page after the last page is reached and vice versa.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tcyclic = false;\n\n\t/**\n\t * Defines the number of items per page depending on the carousel width.\n\t *\n\t * - 'S' for screens smaller than 600 pixels.\n\t * - 'M' for screens greater than or equal to 600 pixels and smaller than 1024 pixels.\n\t * - 'L' for screens greater than or equal to 1024 pixels and smaller than 1440 pixels.\n\t * - 'XL' for screens greater than or equal to 1440 pixels.\n\t *\n\t * One item per page is shown by default.\n\t * @default \"S1 M1 L1 XL1\"\n\t * @public\n\t */\n\t@property()\n\titemsPerPage = \"S1 M1 L1 XL1\";\n\n\t/**\n\t * Defines the visibility of the navigation arrows.\n\t * If set to true the navigation arrows will be hidden.\n\t *\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideNavigationArrows = false;\n\n\t/**\n\t * Defines the visibility of the page indicator.\n\t * If set to true the page indicator will be hidden.\n\t * @since 1.0.0-rc.15\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thidePageIndicator = false;\n\n\t/**\n\t * Defines the style of the page indicator.\n\t * Available options are:\n\t *\n\t * - `Default` - The page indicator will be visualized as dots if there are fewer than 9 pages. If there are more pages, the page indicator will switch to displaying the current page and the total number of pages. (e.g. X of Y)\n\t * - `Numeric` - The page indicator will display the current page and the total number of pages. (e.g. X of Y)\n\t * @since 1.10\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorType: `${CarouselPageIndicatorType}` = \"Default\";\n\n\t/**\n\t * Defines the carousel's background design.\n\t * @since 1.14\n\t * @default \"Translucent\"\n\t * @public\n\t */\n\t@property()\n\tbackgroundDesign: `${BackgroundDesign}` = \"Translucent\";\n\n\t/**\n\t * Defines the page indicator background design.\n\t * @since 1.14\n\t * @default \"Solid\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorBackgroundDesign: `${BackgroundDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the page indicator border design.\n\t * @since 1.14\n\t * @default \"Solid\"\n\t * @public\n\t */\n\t@property()\n\tpageIndicatorBorderDesign: `${BorderDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the index of the initially selected item.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_focusedItemIndex = 0;\n\n\t/**\n\t * Defines the position of arrows.\n\t *\n\t * Available options are:\n\t *\n\t * - `Content` - the arrows are placed on the sides of the current page.\n\t * - `Navigation` - the arrows are placed on the sides of the page indicator.\n\t * @default \"Content\"\n\t * @public\n\t */\n\t@property()\n\tarrowsPlacement: `${CarouselArrowsPlacement}` = \"Content\";\n\n\t/**\n\t * Defines the carousel width in pixels.\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_width?: number;\n\n\t/**\n\t * Defines the carousel item width in pixels.\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_itemWidth?: number;\n\n\t/**\n\t * If set to true navigation arrows are shown.\n\t * @private\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_visibleNavigationArrows = false;\n\n\t/**\n\t * Internal trigger flag that forces component re-rendering when content items change.\n\t * @private\n\t * @since 2.16.0\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_visibleItemsCount = 0;\n\n\t/**\n\t * Defines the current page index, which determines the first visible item.\n\t * @private\n\t * @since 2.16.0-r.c1\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_currentPageIndex: number = 0;\n\n\t_scrollEnablement: ScrollEnablement;\n\t_onResizeBound: ResizeObserverCallback;\n\t_resizing: boolean;\n\t_lastFocusedElements: Array<HTMLElement>;\n\t_orderOfLastFocusedItems: Array<number>;\n\t_lastInnerFocusedElement?: HTMLElement;\n\t_pageStep: number = 10;\n\t_visibleItemsIndexes: Array<number>;\n\t_contentItemsObserver: MutationObserver;\n\t_observableContent: Array<HTMLElement> = [];\n\n\t/**\n\t * Defines the content of the component.\n\t *\n\t * **Note:** Items with the `hidden` attribute will be automatically excluded from carousel navigation and page calculations.\n\t * They will not be displayed or accessible via keyboard navigation. See [sample](./#carousel-with-hidden-items).\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, individualSlots: true })\n\tcontent!: DefaultSlot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic get pageTypeLimit() {\n\t\treturn 9;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._contentItemsObserver = new MutationObserver(() => {\n\t\t\tconst visibleItemsCount = this._visibleItems.length;\n\n\t\t\tif (this._visibleItemsCount === visibleItemsCount) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._visibleItemsCount = visibleItemsCount;\n\n\t\t\tthis._currentPageIndex = clamp(this._currentPageIndex, 0, Math.max(0, this.items.length - this.effectiveItemsPerPage));\n\t\t\tthis._focusedItemIndex = clamp(this._focusedItemIndex, this._currentPageIndex, this.items.length - 1);\n\t\t\tthis._changePageIndex(this._currentPageIndex, { fireEvent: false });\n\t\t});\n\n\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\tthis._scrollEnablement.attachEvent(\"touchend\", e => {\n\t\t\tthis._updateScrolling(e);\n\t\t});\n\t\tthis._onResizeBound = this._onResize.bind(this);\n\t\tthis._resizing = false; // indicates if the carousel is in process of resizing\n\n\t\tthis._lastFocusedElements = [];\n\t\tthis._orderOfLastFocusedItems = [];\n\t\tthis._visibleItemsIndexes = [];\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._observeContentItems();\n\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation || !isDesktop()) {\n\t\t\tthis._visibleNavigationArrows = true;\n\t\t}\n\n\t\tthis.validateFocusedIndex();\n\t}\n\n\tonAfterRendering() {\n\t\tthis._scrollEnablement.scrollContainer = this.getDomRef()!;\n\t\tthis._resizing = false; // not invalidating\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResizeBound);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tthis._contentItemsObserver.disconnect();\n\t\tthis._observableContent = [];\n\t\tResizeHandler.deregister(this, this._onResizeBound);\n\t}\n\n\tvalidateFocusedIndex() {\n\t\tif (!this.isIndexInRange(this._focusedItemIndex)) {\n\t\t\tthis._focusedItemIndex = 0;\n\t\t}\n\t}\n\n\t_onResize() {\n\t\tconst previousItemsPerPage = this.effectiveItemsPerPage;\n\n\t\t// Set the resizing flag to suppress animation while resizing\n\t\tconst previousWidth = this._width;\n\n\t\tthis._resizing = true;\n\n\t\t// Change transitively effectiveItemsPerPage by modifying _width\n\t\tthis._width = this.offsetWidth;\n\t\tthis._itemWidth = Math.floor(this._width / this.effectiveItemsPerPage);\n\n\t\t// Items per page did not change,\n\t\t// therefore page index does not need to be re-adjusted\n\t\tif (this._width === previousWidth && this.effectiveItemsPerPage === previousItemsPerPage) {\n\t\t\tthis._resizing = false;\n\t\t\tthis._updateVisibleItems(this._currentPageIndex);\n\t\t\treturn;\n\t\t}\n\n\t\t// When items per page changes, clamp page index to the valid range\n\t\t// to prevent items from becoming unreachable (e.g. when resizing\n\t\t// from showing 2 to 3 items while on page 1 with only 3 items total).\n\t\tconst maxPageIndex = Math.max(0, this.items.length - this.effectiveItemsPerPage);\n\t\tconst newPageIndex = clamp(this._currentPageIndex, 0, maxPageIndex);\n\n\t\tif (this._currentPageIndex !== newPageIndex) {\n\t\t\tthis._currentPageIndex = newPageIndex;\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: newPageIndex });\n\t\t}\n\n\t\tthis._updateVisibleItems(this._currentPageIndex);\n\t\tthis._focusedItemIndex = clamp(this._focusedItemIndex, this._currentPageIndex, this._currentPageIndex + this.effectiveItemsPerPage - 1);\n\t}\n\n\t_updateScrolling(e: ScrollEnablementEventListenerParam) {\n\t\tif (!e) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.isLeft) {\n\t\t\tthis.navigateLeft();\n\t\t} else if (e.isRight) {\n\t\t\tthis.navigateRight();\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isF7(e)) {\n\t\t\tthis._handleF7Key(e);\n\t\t\treturn;\n\t\t}\n\t\tif (isHome(e)) {\n\t\t\tthis._handleHome(e);\n\t\t}\n\t\tif (isEnd(e)) {\n\t\t\tthis._handleEnd(e);\n\t\t}\n\t\tif (isPageUp(e)) {\n\t\t\tthis._handlePageUp(e);\n\t\t}\n\t\tif (isPageDown(e)) {\n\t\t\tthis._handlePageDown(e);\n\t\t}\n\n\t\tif (isLeft(e) || isUp(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.navigateLeft();\n\t\t} else if (isRight(e) || isDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.navigateRight();\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (target === this.getDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet itemIndex = -1;\n\t\tfor (let i = 0; i < this._visibleItems.length; i++) {\n\t\t\tif (this._visibleItems[i].isEqualNode(target?.querySelector(\"slot\")?.assignedNodes()[0] as HTMLElement)) {\n\t\t\t\titemIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (itemIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedItemIndex = itemIndex;\n\t\t// Save reference of the last focused element for each item\n\t\tthis._lastFocusedElements[itemIndex] = target;\n\n\t\tconst sortedItemIndex = this._orderOfLastFocusedItems.indexOf(itemIndex);\n\t\tif (sortedItemIndex === -1) {\n\t\t\tthis._orderOfLastFocusedItems.unshift(itemIndex);\n\t\t} else {\n\t\t\tthis._orderOfLastFocusedItems.splice(0, 0, this._orderOfLastFocusedItems.splice(sortedItemIndex, 1)[0]);\n\t\t}\n\t}\n\n\t_onmouseout() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Content) {\n\t\t\tthis._visibleNavigationArrows = false;\n\t\t}\n\t}\n\n\t_onmouseover() {\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Content) {\n\t\t\tthis._visibleNavigationArrows = true;\n\t\t}\n\t}\n\n\t_ontouchstart(e: TouchEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\") || target.hasAttribute(\"data-ui5-arrow-back\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\") || target.hasAttribute(\"data-ui5-arrow-back\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tasync _handleF7Key(e: KeyboardEvent) {\n\t\tconst lastFocusedElement = this._lastFocusedElements[this._getLastFocusedItemIndex];\n\t\tif (!this._lastInnerFocusedElement) {\n\t\t\tconst firstFocusable = await getFirstFocusableElement(this.items[this._focusedItemIndex].item);\n\t\t\tfirstFocusable?.focus();\n\t\t\tthis._lastInnerFocusedElement = firstFocusable || undefined;\n\t\t} else if (this.carouselItemDomRef(this._focusedItemIndex)[0] === lastFocusedElement && lastFocusedElement !== e.target) {\n\t\t\tlastFocusedElement.focus();\n\t\t\tthis._lastInnerFocusedElement = e.target as HTMLElement;\n\t\t} else if (this._lastInnerFocusedElement) {\n\t\t\tthis._lastInnerFocusedElement.focus();\n\t\t}\n\t}\n\n\t_observeContentItems() {\n\t\tif (this.hasMatchingContent) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.content.forEach(item => {\n\t\t\tif (!this._observableContent.includes(item)) {\n\t\t\t\tthis._contentItemsObserver.observe(item, {\n\t\t\t\t\tcharacterData: false,\n\t\t\t\t\tchildList: false,\n\t\t\t\t\tsubtree: false,\n\t\t\t\t\tattributes: true,\n\t\t\t\t\tattributeFilter: [\"hidden\"],\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tthis._observableContent = this.content;\n\t}\n\n\tget hasMatchingContent() {\n\t\tif (this._observableContent.length !== this.content.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst observableContentSet = new WeakSet(this._observableContent);\n\t\treturn this.content.every(item => observableContentSet.has(item));\n\t}\n\n\tasync _handleHome(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(0, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handleEnd(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(this.items.length - 1, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handlePageUp(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(this._currentPageIndex + this._pageStep, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync _handlePageDown(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changePageIndex(this._currentPageIndex - this._pageStep, { moveFocus: true });\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tget _backgroundDesign() {\n\t\treturn this.backgroundDesign.toLowerCase();\n\t}\n\n\tget _getLastFocusedItemIndex() {\n\t\tfor (let i = 0; i < this._orderOfLastFocusedItems.length; i++) {\n\t\t\tconst itemIndex = this._orderOfLastFocusedItems[i];\n\n\t\t\tif (this.isItemVisible(itemIndex)) {\n\t\t\t\treturn itemIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn this._focusedItemIndex;\n\t}\n\n\tasync navigateLeft() {\n\t\tlet newFocusedItemIndex = this._focusedItemIndex - 1;\n\t\tif (this.cyclic && newFocusedItemIndex < 0) {\n\t\t\tnewFocusedItemIndex = this.items.length - 1;\n\t\t}\n\n\t\tthis._changeFocusIndex(newFocusedItemIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync navigateRight() {\n\t\tlet newFocusedItemIndex = this._focusedItemIndex + 1;\n\t\tif (this.cyclic && newFocusedItemIndex > this.items.length - 1) {\n\t\t\tnewFocusedItemIndex = 0;\n\t\t}\n\n\t\tthis._changeFocusIndex(newFocusedItemIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync navigateArrowRight() {\n\t\tlet newCurrentPageIndex = this._currentPageIndex + 1;\n\t\tif (this.cyclic && newCurrentPageIndex > this.items.length - this.effectiveItemsPerPage) {\n\t\t\tnewCurrentPageIndex = 0;\n\t\t}\n\n\t\tthis._changePageIndex(newCurrentPageIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tasync navigateArrowLeft() {\n\t\tlet newCurrentPageIndex = this._currentPageIndex - 1;\n\t\tif (this.cyclic && newCurrentPageIndex < 0) {\n\t\t\tnewCurrentPageIndex = this.items.length - 1;\n\t\t}\n\n\t\tthis._changePageIndex(newCurrentPageIndex);\n\t\tawait renderFinished();\n\t\tthis.focusItem();\n\t}\n\n\tfocusItem() {\n\t\tthis.carouselItemDomRef(this._focusedItemIndex)[0].focus({ preventScroll: true });\n\t}\n\n\t_navButtonClick(e: UI5CustomEvent<Icon, \"click\">) {\n\t\tconst target = e.target as Icon;\n\n\t\tif (target.hasAttribute(\"data-ui5-arrow-forward\")) {\n\t\t\tthis.navigateArrowRight();\n\t\t} else {\n\t\t\tthis.navigateArrowLeft();\n\t\t}\n\t}\n\n\t/**\n\t * Changes the currently displayed page.\n\t * @param itemIndex The index of the target item\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\tnavigateTo(itemIndex: number): void {\n\t\tthis._changePageIndex(itemIndex, { fireEvent: false });\n\t}\n\n\t_changePageIndex(itemIndex: number, options: ChangePageOptions = {}): void {\n\t\tconst { fireEvent = true, moveFocus = false } = options;\n\t\tconst newPageIndex = clamp(itemIndex, 0, this.items.length - this.effectiveItemsPerPage);\n\n\t\tif (moveFocus || (this._focusedItemIndex < newPageIndex || this._focusedItemIndex > newPageIndex + this.effectiveItemsPerPage - 1)) {\n\t\t\tthis._focusedItemIndex = clamp(itemIndex, 0, this.items.length - 1);\n\t\t}\n\n\t\tif (this._currentPageIndex === newPageIndex) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._currentPageIndex = newPageIndex;\n\t\tthis._updateVisibleItems(newPageIndex);\n\n\t\tif (fireEvent) {\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: newPageIndex });\n\t\t}\n\t}\n\n\t_changeFocusIndex(itemIndex: number) {\n\t\titemIndex = clamp(itemIndex, 0, this.items.length - 1);\n\t\tlet newPageIndex = this._currentPageIndex;\n\n\t\tif (itemIndex < this._currentPageIndex) {\n\t\t\tnewPageIndex = itemIndex;\n\t\t} else if (itemIndex > this._currentPageIndex + this.effectiveItemsPerPage - 1) {\n\t\t\tnewPageIndex = itemIndex - this.effectiveItemsPerPage + 1;\n\t\t}\n\n\t\tif (this._currentPageIndex !== newPageIndex) {\n\t\t\tthis._currentPageIndex = newPageIndex;\n\t\t\tthis._updateVisibleItems(newPageIndex);\n\n\t\t\tthis.fireDecoratorEvent(\"navigate\", { selectedIndex: newPageIndex });\n\t\t}\n\n\t\tthis._focusedItemIndex = itemIndex;\n\t}\n\n\t/**\n\t * The indices of the currently visible items of the component.\n\t * @public\n\t * @since 1.0.0-rc.15\n\t * @default []\n\t */\n\tget visibleItemsIndices() : Array<number> {\n\t\treturn this._visibleItemsIndexes;\n\t}\n\n\t/**\n\t * Assuming that all items have the same width\n\t * @private\n\t */\n\tget items(): Array<ItemsInfo> {\n\t\treturn this._visibleItems.map((item, idx) => {\n\t\t\treturn {\n\t\t\t\tid: `${this._id}-carousel-item-${idx + 1}`,\n\t\t\t\titem,\n\t\t\t\ttabIndex: this.isItemVisible(this._focusedItemIndex) ? 0 : -1,\n\t\t\t\tposinset: idx + 1,\n\t\t\t\tsetsize: this._visibleItems.length,\n\t\t\t\tvisible: this.isItemVisible(idx),\n\t\t\t};\n\t\t});\n\t}\n\tget effectiveItemsPerPage(): number {\n\t\tconst itemsPerPageArray = this.itemsPerPage.split(\" \");\n\t\tlet itemsPerPageSizeS = 1,\n\t\t\titemsPerPageSizeM = 1,\n\t\t\titemsPerPageSizeL = 1,\n\t\t\titemsPerPageSizeXL = 1;\n\n\t\titemsPerPageArray.forEach(element => {\n\t\t\tif (element.startsWith(\"S\")) {\n\t\t\t\titemsPerPageSizeS = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"M\")) {\n\t\t\t\titemsPerPageSizeM = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"L\")) {\n\t\t\t\titemsPerPageSizeL = Number(element.slice(1)) || 1;\n\t\t\t} else if (element.startsWith(\"XL\")) {\n\t\t\t\titemsPerPageSizeXL = Number(element.slice(2)) || 1;\n\t\t\t}\n\t\t});\n\n\t\tif (!this._width) {\n\t\t\treturn itemsPerPageSizeL;\n\t\t}\n\n\t\tif (this._width < 600) {\n\t\t\treturn itemsPerPageSizeS;\n\t\t}\n\n\t\tif (this._width >= 600 && this._width < 1024) {\n\t\t\treturn itemsPerPageSizeM;\n\t\t}\n\n\t\tif (this._width >= 1024 && this._width < 1440) {\n\t\t\treturn itemsPerPageSizeL;\n\t\t}\n\n\t\treturn itemsPerPageSizeXL;\n\t}\n\n\tisItemVisible(index: number): boolean {\n\t\treturn this._visibleItemsIndexes.includes(index);\n\t}\n\n\t_updateVisibleItems(index: number) {\n\t\tlet newItemIndex = index;\n\t\tconst effectiveItemsPerPage = this.effectiveItemsPerPage;\n\t\tconst items = this.items;\n\n\t\tif (!items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (newItemIndex > items.length - effectiveItemsPerPage) {\n\t\t\tnewItemIndex = Math.max(0, items.length - effectiveItemsPerPage);\n\t\t}\n\t\tconst lastItemIndex = newItemIndex + effectiveItemsPerPage;\n\n\t\tthis._visibleItemsIndexes = [];\n\n\t\tfor (let i = newItemIndex; i < lastItemIndex; i++) {\n\t\t\tthis._visibleItemsIndexes.push(i);\n\t\t}\n\t}\n\n\tisIndexInRange(index: number): boolean {\n\t\treturn index >= 0 && index <= this.items.length - 1;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tget renderNavigation() {\n\t\tif (!this.hasManyPages) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.hidePageIndicator) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tget hasManyPages() {\n\t\treturn this.pagesCount > 1;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tviewport: {\n\t\t\t\t\"ui5-carousel-viewport\": true,\n\t\t\t\t\"ui5-carousel-viewport--single\": this.pagesCount === 1,\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-carousel-content\": true,\n\t\t\t\t\"ui5-carousel-content-no-animation\": this.suppressAnimation,\n\t\t\t\t\"ui5-carousel-content-has-navigation\": this.renderNavigation,\n\t\t\t\t\"ui5-carousel-content-has-navigation-and-buttons\": this.renderNavigation && this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows,\n\t\t\t},\n\t\t\tnavigation: {\n\t\t\t\t\"ui5-carousel-navigation-wrapper\": true,\n\t\t\t\t\"ui5-carousel-navigation-with-buttons\": this.renderNavigation && this.arrowsPlacement === CarouselArrowsPlacement.Navigation && !this.hideNavigationArrows,\n\t\t\t\t[`ui5-carousel-navigation-wrapper-bg-${this.pageIndicatorBackgroundDesign.toLowerCase()}`]: true,\n\t\t\t\t[`ui5-carousel-navigation-wrapper-border-${this.pageIndicatorBorderDesign.toLowerCase()}`]: true,\n\t\t\t},\n\t\t};\n\t}\n\n\tget pagesCount() {\n\t\tconst items = this._visibleItems.length;\n\t\treturn items > this.effectiveItemsPerPage ? items - this.effectiveItemsPerPage + 1 : 1;\n\t}\n\n\tget isPageTypeDots() {\n\t\tif (this.pageIndicatorType === CarouselPageIndicatorType.Numeric) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.pagesCount < Carousel.pageTypeLimit;\n\t}\n\n\tget dots() {\n\t\tconst dots = [];\n\t\tconst pages = this.pagesCount;\n\n\t\tfor (let index = 0; index < pages; index++) {\n\t\t\tdots.push({\n\t\t\t\tactive: index === this._currentPageIndex,\n\t\t\t\tariaLabel: Carousel.i18nBundle.getText(CAROUSEL_DOT_TEXT, index + 1, pages),\n\t\t\t});\n\t\t}\n\n\t\treturn dots;\n\t}\n\n\tget showArrows() {\n\t\tconst displayArrows = this._visibleNavigationArrows && this.hasManyPages;\n\t\treturn {\n\t\t\tcontent: !this.hideNavigationArrows && displayArrows && this.arrowsPlacement === CarouselArrowsPlacement.Content,\n\t\t\tnavigation: !this.hideNavigationArrows && displayArrows && this.arrowsPlacement === CarouselArrowsPlacement.Navigation,\n\t\t};\n\t}\n\n\tget hasPrev() {\n\t\treturn this.cyclic || (this._focusedItemIndex - 1 >= 0 && this._currentPageIndex !== 0);\n\t}\n\n\tget hasNext() {\n\t\treturn this.cyclic || (this._focusedItemIndex + 1 <= this._visibleItems.length - 1 && this._currentPageIndex < this.pagesCount - 1);\n\t}\n\n\tget suppressAnimation() {\n\t\treturn this._resizing || getAnimationMode() === AnimationMode.None;\n\t}\n\n\tget _isRTL() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget ofText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_OF_TEXT);\n\t}\n\n\tget ariaLabelTxt() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget nextPageText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_NEXT_ARROW_TEXT);\n\t}\n\n\tget previousPageText() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_PREVIOUS_ARROW_TEXT);\n\t}\n\n\tget _roleDescription() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_ARIA_ROLE_DESCRIPTION);\n\t}\n\n\tget _ariaListLabel() {\n\t\treturn Carousel.i18nBundle.getText(CAROUSEL_ARIA_LIST_LABEL);\n\t}\n\n\t/**\n \t * Returns only visible (non-hidden) content items.\n\t * Items with the 'hidden' attribute are automatically excluded from carousel navigation.\n\t * @default []\n\t * @private\n\t */\n\tget _visibleItems(): Array<HTMLElement> {\n\t\treturn this.content.filter(x => !x.hasAttribute(\"hidden\"));\n\t}\n\n\tcarouselItemDomRef(idx: number) : Array<HTMLElement> {\n\t\tconst items = this.getDomRef()?.querySelectorAll(\".ui5-carousel-item\") || [];\n\t\treturn Array.from(items).filter((item, index) => {\n\t\t\treturn index === idx;\n\t\t}) as Array<HTMLElement>;\n\t}\n}\n\nCarousel.define();\n\nexport default Carousel;\nexport type {\n\tCarouselNavigateEventDetail,\n};\n"]}
@@ -158,6 +158,7 @@ declare class ColorPalette extends UI5Element {
158
158
  _isPrevious(e: KeyboardEvent): boolean;
159
159
  _isNext(e: KeyboardEvent): boolean;
160
160
  _isFirstSwatch(target: ColorPaletteItem, swatches: Array<ColorPaletteItem>): boolean;
161
+ _getColorPaletteItemFromEvent(e: KeyboardEvent, swatches: Array<ColorPaletteItem>): ColorPaletteItem | undefined;
161
162
  _isLastSwatch(target: ColorPaletteItem, swatches: Array<ColorPaletteItem>): boolean;
162
163
  /**
163
164
  * Checks if the target swatch is the first swatch in its row.
@@ -318,8 +318,8 @@ let ColorPalette = ColorPalette_1 = class ColorPalette extends UI5Element {
318
318
  }
319
319
  }
320
320
  _onColorContainerKeyDown(e) {
321
- const target = e.target;
322
- const isLastSwatchInSingleRow = this._isSingleRow() && this._isLastSwatch(target, this.displayedColors);
321
+ const eventTarget = e.target;
322
+ const swatchTarget = this._getColorPaletteItemFromEvent(e, this.displayedColors);
323
323
  // Prevent Home/End keys from working in embedded mode - they only work in popup mode as per design
324
324
  if (this._shouldPreventHomeEnd(e)) {
325
325
  e.preventDefault();
@@ -331,37 +331,41 @@ let ColorPalette = ColorPalette_1 = class ColorPalette extends UI5Element {
331
331
  }
332
332
  if (isTabNext(e) && this.popupMode) {
333
333
  e.preventDefault();
334
- this.selectColor(target);
334
+ this.selectColor(swatchTarget || eventTarget);
335
+ }
336
+ if (!swatchTarget) {
337
+ return;
335
338
  }
336
- if (this._isPrevious(e) && this._isFirstSwatch(target, this.displayedColors)) {
339
+ const isLastSwatchInSingleRow = this._isSingleRow() && this._isLastSwatch(swatchTarget, this.displayedColors);
340
+ if (this._isPrevious(e) && this._isFirstSwatch(swatchTarget, this.displayedColors)) {
337
341
  e.preventDefault();
338
342
  e.stopPropagation();
339
343
  this._focusFirstAvailable(() => this._focusDefaultColor(), () => this._focusLastRecentColor(), () => this._focusMoreColors(), () => this._focusLastSwatchOfLastFullRow(), () => this._focusLastDisplayedColor());
340
344
  }
341
- else if ((isRight(e) && this._isLastSwatch(target, this.displayedColors))
342
- || (isDown(e) && (this._isLastSwatchOfLastFullRow(target) || isLastSwatchInSingleRow))) {
345
+ else if ((isRight(e) && this._isLastSwatch(swatchTarget, this.displayedColors))
346
+ || (isDown(e) && (this._isLastSwatchOfLastFullRow(swatchTarget) || isLastSwatchInSingleRow))) {
343
347
  e.preventDefault();
344
348
  e.stopPropagation();
345
349
  this._focusFirstAvailable(() => this._focusMoreColors(), () => this._focusFirstRecentColor(), () => this._focusDefaultColor(), () => this._focusFirstDisplayedColor());
346
350
  }
347
- else if (isHome(e) && this._isFirstSwatchInRow(target)) {
351
+ else if (isHome(e) && this._isFirstSwatchInRow(swatchTarget)) {
348
352
  e.preventDefault();
349
353
  e.stopPropagation();
350
354
  this._focusFirstAvailable(() => this._focusDefaultColor(), () => this._focusMoreColors(), () => this._focusFirstDisplayedColor());
351
355
  }
352
- else if (isEnd(e) && this._isLastSwatchInRow(target)) {
356
+ else if (isEnd(e) && this._isLastSwatchInRow(swatchTarget)) {
353
357
  e.preventDefault();
354
358
  e.stopPropagation();
355
359
  this._focusFirstAvailable(() => this._focusMoreColors(), () => this._focusDefaultColor(), () => this._focusLastDisplayedColor());
356
360
  }
357
- else if (isEnd(e) && this._isSwatchInLastRow(target)) {
361
+ else if (isEnd(e) && this._isSwatchInLastRow(swatchTarget)) {
358
362
  e.preventDefault();
359
363
  e.stopPropagation();
360
364
  this._focusLastDisplayedColor();
361
365
  }
362
366
  }
363
367
  _onRecentColorsContainerKeyDown(e) {
364
- const target = e.target;
368
+ const swatchTarget = this._getColorPaletteItemFromEvent(e, this.recentColorsElements);
365
369
  // Prevent Home/End keys from working in embedded mode - they only work in popup mode as per design
366
370
  if (this._shouldPreventHomeEnd(e)) {
367
371
  e.preventDefault();
@@ -371,12 +375,15 @@ let ColorPalette = ColorPalette_1 = class ColorPalette extends UI5Element {
371
375
  if (this._isUpOrDownNavigatableColorPaletteItem(e)) {
372
376
  this._currentlySelected = undefined;
373
377
  }
374
- if (this._isNext(e) && this._isLastSwatch(target, this.recentColorsElements)) {
378
+ if (!swatchTarget) {
379
+ return;
380
+ }
381
+ if (this._isNext(e) && this._isLastSwatch(swatchTarget, this.recentColorsElements)) {
375
382
  e.preventDefault();
376
383
  e.stopPropagation();
377
384
  this._focusFirstAvailable(() => this._focusDefaultColor(), () => this._focusMoreColors(), () => this._focusFirstDisplayedColor());
378
385
  }
379
- else if (this._isPrevious(e) && this._isFirstSwatch(target, this.recentColorsElements)) {
386
+ else if (this._isPrevious(e) && this._isFirstSwatch(swatchTarget, this.recentColorsElements)) {
380
387
  e.preventDefault();
381
388
  e.stopPropagation();
382
389
  this._focusFirstAvailable(() => this._focusMoreColors(), () => this._focusLastSwatchOfLastFullRow(), () => this._focusLastDisplayedColor(), () => this._focusDefaultColor());
@@ -407,6 +414,10 @@ let ColorPalette = ColorPalette_1 = class ColorPalette extends UI5Element {
407
414
  _isFirstSwatch(target, swatches) {
408
415
  return swatches && Boolean(swatches.length) && swatches[0] === (target);
409
416
  }
417
+ _getColorPaletteItemFromEvent(e, swatches) {
418
+ const path = e.composedPath();
419
+ return swatches.find(swatch => path.includes(swatch));
420
+ }
410
421
  _isLastSwatch(target, swatches) {
411
422
  return swatches && Boolean(swatches.length) && swatches[swatches.length - 1] === (target);
412
423
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ColorPalette.js","sourceRoot":"","sources":["../src/ColorPalette.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport ItemNavigationBehavior from \"@ui5/webcomponents-base/dist/types/ItemNavigationBehavior.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type { JsxTemplate } from \"@ui5/webcomponents-base/dist/index.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisRight,\n\tisUp,\n\tisLeft,\n\tisTabNext,\n\tisHome,\n\tisEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport ColorPaletteTemplate from \"./ColorPaletteTemplate.js\";\nimport type ColorPaletteItem from \"./ColorPaletteItem.js\";\nimport type Button from \"./Button.js\";\nimport type ColorPicker from \"./ColorPicker.js\";\nimport \"./ColorPaletteItem.js\";\n\nimport {\n\tCOLORPALETTE_CONTAINER_LABEL,\n\tCOLOR_PALETTE_MORE_COLORS_TEXT,\n\tCOLOR_PALETTE_DEFAULT_COLOR_TEXT,\n\tCOLOR_PALETTE_DIALOG_CANCEL_BUTTON,\n\tCOLOR_PALETTE_DIALOG_OK_BUTTON,\n\tCOLOR_PALETTE_DIALOG_TITLE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport ColorPaletteCss from \"./generated/themes/ColorPalette.css.js\";\nimport ColorPaletteDialogCss from \"./generated/themes/ColorPaletteDialog.css.js\";\n\n/**\n * Interface for components that may be used inside a `ui5-color-palette` or `ui5-color-palette-popover`\n * @public\n */\ninterface IColorPaletteItem extends UI5Element, ITabbable {\n\tvalue?: string,\n\tindex?: number,\n\tselected?: boolean,\n}\n\ntype ColorPaletteNavigationItem = ColorPaletteItem | Button;\n\ntype ColorPaletteItemClickEventDetail = {\n\tcolor: string,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-color-palette` provides the users with a range of predefined colors. The colors are fixed and do not change with the theme.\n *\n * ### Usage\n *\n * The `ui5-color-palette` is meant for users that need to select a color from a predefined set.\n * To define the colors, use the `ui5-color-palette-item` component inside the default slot of the `ui5-color-palette`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/ColorPalette.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.12\n * @public\n */\n@customElement({\n\ttag: \"ui5-color-palette\",\n\trenderer: jsxRenderer,\n\ttemplate: ColorPaletteTemplate,\n\tstyles: [ColorPaletteCss, ColorPaletteDialogCss],\n})\n\n/**\n * Fired when the user selects a color.\n * @public\n * @since 1.0.0-rc.15\n * @param {string} color the selected color\n */\n@event(\"item-click\")\nclass ColorPalette extends UI5Element {\n\teventDetails!: {\n\t\t\"item-click\": ColorPaletteItemClickEventDetail,\n\t}\n\n\t/**\n\t * Defines whether the user can see the last used colors in the bottom of the component\n\t * @private\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\tshowRecentColors = false;\n\n\t/**\n\t * Defines whether the user can choose a custom color from a color picker\n\t *\n\t * @private\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\tshowMoreColors = false;\n\n\t/**\n\t * Defines whether the user can choose the default color from a button.\n\t * @default false\n\t * @private\n\t * @since 1.0.0-rc.16\n\t */\n\t@property({ type: Boolean })\n\tshowDefaultColor = false;\n\n\t/**\n\t * Defines the default color of the color palette, only valid CSS color values accepted\n\t *\n\t * **Note:** The default color should be a part of the ColorPalette colors`\n\t * @private\n\t * @since 1.0.0-rc.16\n\t */\n\t@property()\n\tdefaultColor?: string;\n\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.20.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.20.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the selected color, only valid CSS color values accepted\n\t * @private\n\t */\n\t@property()\n\t_selectedColor?: string;\n\n\t/**\n\t * Defines if the palette is in Popup or Embeded mode.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpopupMode = false;\n\n\t/**\n\t * Defines if the palette is rendered on phone.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tonPhone = false;\n\n\t/**\n\n\t * The showMoreColors template.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tshowMoreColorsTemplate?: JsxTemplate;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tdialogOpen = false;\n\n\t/**\n\t * @private\n\t */\n\t@property()\n\tcolorPickerValue = \"rgba(255,255,255,1)\";\n\n\t/**\n\t * Defines the `ui5-color-palette-item` elements.\n\t * @public\n\t */\n\t@slot({\n\t\t\"default\": true,\n\t\ttype: HTMLElement,\n\t\tinvalidateOnChildChange: true,\n\t\tindividualSlots: true,\n\t})\n\tcolors!: DefaultSlot<ColorPaletteItem>;\n\n\t_itemNavigation: ItemNavigation;\n\t_itemNavigationRecentColors: ItemNavigation;\n\t_recentColors: Array<string>;\n\t_currentlySelected?: ColorPaletteItem;\n\t_shouldFocusRecentColors = false;\n\n\t@query(\".ui5-cp-default-color-button\")\n\t_defaultColorButton!: Button;\n\n\t@query(\".ui5-cp-more-colors\")\n\t_moreColorsButton!: Button;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tgetItemsCallback: () => this.displayedColors,\n\t\t\trowSize: this.rowSize,\n\t\t\tbehavior: ItemNavigationBehavior.Cyclic,\n\t\t});\n\n\t\tthis._itemNavigationRecentColors = new ItemNavigation(this, {\n\t\t\tgetItemsCallback: () => this.recentColorsElements,\n\t\t\trowSize: this.rowSize,\n\t\t\tbehavior: ItemNavigationBehavior.Cyclic,\n\t\t});\n\n\t\tthis._recentColors = [];\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._ensureSingleSelectionOrDeselectAll();\n\n\t\tconst selectedItem = this.selectedItem;\n\n\t\tif (selectedItem && !this.showRecentColors) {\n\t\t\tthis._selectedColor = selectedItem.value;\n\t\t}\n\n\t\tthis.displayedColors.forEach((item, index) => {\n\t\t\titem.index = index + 1;\n\t\t});\n\n\t\tif (this.showMoreColors) {\n\t\t\t// If the feature is preloaded (the user manually imported ColorPaletteMoreColors.js), the teplate is already available on the constructor\n\t\t\tif (ColorPalette.ColorPaletteMoreColorsTemplate) {\n\t\t\t\tthis.showMoreColorsTemplate = ColorPalette.ColorPaletteMoreColorsTemplate;\n\t\t\t// If feature is not preloaded, load the template dynamically\n\t\t\t} else {\n\t\t\t\timport(\"./features/ColorPaletteMoreColorsTemplate.js\").then(module => {\n\t\t\t\t\tthis.showMoreColorsTemplate = module.default;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthis.onPhone = isPhone();\n\t}\n\n\tonAfterRendering() {\n\t\tif (this.hasRecentColors && this._shouldFocusRecentColors) {\n\t\t\tif (this.selectedItem) {\n\t\t\t\tthis.selectedItem.selected = false;\n\t\t\t}\n\t\t\tconst firstRecentColor = this.recentColorsElements[0];\n\t\t\tfirstRecentColor.selected = true;\n\t\t\tthis._currentlySelected = firstRecentColor;\n\t\t\tthis._currentlySelected.focus();\n\t\t\tthis._shouldFocusRecentColors = false;\n\t\t}\n\t}\n\n\tselectColor(item: ColorPaletteItem) {\n\t\tif (!item.value) {\n\t\t\treturn;\n\t\t}\n\n\t\titem.focus();\n\n\t\tif (this.displayedColors.includes(item)) {\n\t\t\tthis._itemNavigation.setCurrentItem(item);\n\t\t}\n\n\t\tthis._setColor(item.value);\n\t}\n\n\t_setColor(color: string) {\n\t\tthis._selectedColor = color;\n\n\t\tif (this._recentColors[0] !== this._selectedColor) {\n\t\t\tif (this._recentColors.includes(this._selectedColor)) {\n\t\t\t\tthis._recentColors.unshift(this._recentColors.splice(this._recentColors.indexOf(this._selectedColor), 1)[0]);\n\t\t\t} else {\n\t\t\t\tthis._addRecentColor(this._selectedColor);\n\t\t\t}\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"item-click\", {\n\t\t\tcolor: this._selectedColor,\n\t\t});\n\t}\n\n\tget effectiveColorItems(): ColorPaletteItem[] {\n\t\tif (this.popupMode) {\n\t\t\treturn this.getSlottedNodes<ColorPaletteItem>(\"colors\");\n\t\t}\n\t\treturn this.colors;\n\t}\n\n\t/**\n\t * Ensures that only one item is selected or only the last selected item remains active if more than one are explicitly set as 'selected'.\n\t * @private\n\t */\n\t_ensureSingleSelectionOrDeselectAll() {\n\t\tlet lastSelectedItem: ColorPaletteItem | undefined;\n\n\t\tthis.allColorsInPalette.forEach(item => {\n\t\t\tif (item.selected) {\n\t\t\t\tif (lastSelectedItem) {\n\t\t\t\t\tlastSelectedItem.selected = false;\n\t\t\t\t}\n\t\t\t\tlastSelectedItem = item;\n\t\t\t}\n\t\t});\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.handleSelection(e.target as ColorPaletteItem);\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (!target.hasAttribute(\"ui5-color-palette-item\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst colorItem = target as ColorPaletteItem;\n\n\t\tif (this.displayedColors.includes(colorItem)) {\n\t\t\tthis._itemNavigation.setCurrentItem(colorItem);\n\t\t} else if (this.recentColorsElements.includes(colorItem)) {\n\t\t\tthis._itemNavigationRecentColors.setCurrentItem(colorItem);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tconst target = e.target as ColorPaletteItem;\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.handleSelection(target);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst target = e.target as ColorPaletteItem;\n\t\tif (isEnter(e)) {\n\t\t\tthis.handleSelection(target);\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\thandleSelection(target: ColorPaletteItem) {\n\t\tif (!target.hasAttribute(\"ui5-color-palette-item\") || !target.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._shouldFocusRecentColors = false;\n\n\t\tthis.selectColor(target);\n\n\t\t// Handle selection for items within the 'recentColorsElements'\n\t\tif (this.recentColorsElements.includes(target)) {\n\t\t\tthis.recentColorsElements[0].selected = true;\n\t\t\tthis.recentColorsElements[0].focus();\n\t\t\tthis._currentlySelected = this.recentColorsElements[0];\n\t\t} else {\n\t\t\tthis.allColorsInPalette.forEach(item => {\n\t\t\t\titem.selected = item === target;\n\t\t\t});\n\t\t\tthis._currentlySelected = target;\n\t\t}\n\n\t\tthis._ensureSingleSelectionOrDeselectAll();\n\t}\n\n\tgetFocusDomRef(): HTMLElement | undefined {\n\t\treturn this._itemNavigation._getCurrentItem();\n\t}\n\n\t_handleDefaultColorClick(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._onDefaultColorClick();\n\t}\n\n\t_onDefaultColorKeyUp(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._handleDefaultColorClick(e);\n\t\t}\n\t}\n\n\t_onDefaultColorKeyDown(e: KeyboardEvent) {\n\t\tif (isTabNext(e) && this.popupMode) {\n\t\t\tthis._handleDefaultColorClick(e);\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._handleDefaultColorClick(e);\n\t\t}\n\n\t\tif (this._isNext(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstDisplayedColor();\n\t\t} else if (isLeft(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusLastRecentColor(),\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t);\n\t\t} else if (isUp(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusLastRecentColor(),\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusLastSwatchOfLastFullRow(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t);\n\t\t} else if (isEnd(e)) {\n\t\t\t// Prevent Home/End keys from working in embedded mode - they only work in popup mode as per design\n\t\t\tif (this._shouldPreventHomeEnd(e)) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t);\n\t\t}\n\t}\n\n\t_onMoreColorsKeyDown(e: KeyboardEvent) {\n\t\tif (isLeft(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusLastDisplayedColor();\n\t\t} else if (isUp(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusLastSwatchOfLastFullRow(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t);\n\t\t} else if (this._isNext(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusFirstRecentColor(),\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusFirstDisplayedColor(),\n\t\t\t);\n\t\t} else if (isHome(e)) {\n\t\t\t// Prevent Home/End keys from working in embedded mode - they only work in popup mode as per design\n\t\t\tif (this._shouldPreventHomeEnd(e)) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusFirstDisplayedColor(),\n\t\t\t);\n\t\t} else if (isEnd(e)) {\n\t\t\t// Prevent Home/End keys from working in embedded mode - they only work in popup mode as per design\n\t\t\tif (this._shouldPreventHomeEnd(e)) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// More Colors button is typically the last element, so END key stays here\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n\n\t_onColorContainerKeyDown(e: KeyboardEvent) {\n\t\tconst target = e.target as ColorPaletteItem;\n\t\tconst isLastSwatchInSingleRow = this._isSingleRow() && this._isLastSwatch(target, this.displayedColors);\n\n\t\t// Prevent Home/End keys from working in embedded mode - they only work in popup mode as per design\n\t\tif (this._shouldPreventHomeEnd(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isUpOrDownNavigatableColorPaletteItem(e)) {\n\t\t\tthis._currentlySelected = undefined;\n\t\t}\n\n\t\tif (isTabNext(e) && this.popupMode) {\n\t\t\te.preventDefault();\n\t\t\tthis.selectColor(target);\n\t\t}\n\n\t\tif (this._isPrevious(e) && this._isFirstSwatch(target, this.displayedColors)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusLastRecentColor(),\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusLastSwatchOfLastFullRow(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t);\n\t\t} else if ((isRight(e) && this._isLastSwatch(target, this.displayedColors))\n\t\t\t|| (isDown(e) && (this._isLastSwatchOfLastFullRow(target) || isLastSwatchInSingleRow))\n\t\t) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusFirstRecentColor(),\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusFirstDisplayedColor(),\n\t\t\t);\n\t\t} else if (isHome(e) && this._isFirstSwatchInRow(target)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusFirstDisplayedColor(),\n\t\t\t);\n\t\t} else if (isEnd(e) && this._isLastSwatchInRow(target)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t);\n\t\t} else if (isEnd(e) && this._isSwatchInLastRow(target)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusLastDisplayedColor();\n\t\t}\n\t}\n\n\t_onRecentColorsContainerKeyDown(e: KeyboardEvent) {\n\t\tconst target = e.target as ColorPaletteItem;\n\n\t\t// Prevent Home/End keys from working in embedded mode - they only work in popup mode as per design\n\t\tif (this._shouldPreventHomeEnd(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isUpOrDownNavigatableColorPaletteItem(e)) {\n\t\t\tthis._currentlySelected = undefined;\n\t\t}\n\n\t\tif (this._isNext(e) && this._isLastSwatch(target, this.recentColorsElements)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusFirstDisplayedColor(),\n\t\t\t);\n\t\t} else if (this._isPrevious(e) && this._isFirstSwatch(target, this.recentColorsElements)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusLastSwatchOfLastFullRow(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t);\n\t\t} else if (isEnd(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusLastRecentColor();\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the keyboard event is up/down navigation on a displayed color palette item\n\t * @private\n\t */\n\t_isUpOrDownNavigatableColorPaletteItem(e: KeyboardEvent): boolean {\n\t\tif (!(isUp(e) || isDown(e)) || !this._currentlySelected) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.displayedColors.includes(this._currentlySelected)\n\t\t\t|| this.recentColorsElements.includes(this._currentlySelected);\n\t}\n\n\t_isPrevious(e: KeyboardEvent): boolean {\n\t\treturn isUp(e) || isLeft(e);\n\t}\n\n\t_isNext(e: KeyboardEvent): boolean {\n\t\treturn isDown(e) || isRight(e);\n\t}\n\n\t_isFirstSwatch(target: ColorPaletteItem, swatches: Array<ColorPaletteItem>): boolean {\n\t\treturn swatches && Boolean(swatches.length) && swatches[0] === (target);\n\t}\n\n\t_isLastSwatch(target: ColorPaletteItem, swatches: Array<ColorPaletteItem>): boolean {\n\t\treturn swatches && Boolean(swatches.length) && swatches[swatches.length - 1] === (target);\n\t}\n\n\t/**\n\t * Checks if the target swatch is the first swatch in its row.\n\t * @private\n\t */\n\t_isFirstSwatchInRow(target: ColorPaletteItem): boolean {\n\t\tconst index = this.displayedColors.indexOf(target);\n\t\treturn index >= 0 ? index % this.rowSize === 0 : false;\n\t}\n\n\t/**\n\t * Checks if the target swatch is the last swatch in its row.\n\t * @private\n\t */\n\t_isLastSwatchInRow(target: ColorPaletteItem): boolean {\n\t\tconst index = this.displayedColors.indexOf(target);\n\t\treturn index >= 0 ? (index + 1) % this.rowSize === 0 || index === this.displayedColors.length - 1 : false;\n\t}\n\n\t/**\n\t * Checks if the given color swatch is the last swatch of the last full row.\n\t *\n\t * Example 1: 12 colors with rowSize 5\n\t * Row 1: [0, 1, 2, 3, 4] ← Complete row\n\t * Row 2: [5, 6, 7, 8, 9] ← Complete row (last complete row)\n\t * Row 3: [10, 11] ← Incomplete row\n\t *\n\t * @param target The color swatch to check.\n\t * @returns True if the swatch is the last of the last full row, false otherwise.\n\t */\n\t_isLastSwatchOfLastFullRow(target: ColorPaletteItem): boolean {\n\t\tconst index = this.displayedColors.indexOf(target);\n\t\tconst rowSize = this.rowSize;\n\t\tconst total = this.displayedColors.length;\n\t\tconst lastCompleteRowEndIndex = this._getLastCompleteRowEndIndex(total, rowSize);\n\t\treturn index >= 0 && index === lastCompleteRowEndIndex;\n\t}\n\n\t_isSwatchInLastRow(target: ColorPaletteItem): boolean {\n\t\tconst index = this.displayedColors.indexOf(target);\n\t\tconst lastRowSwatchesCount = this.displayedColors.length % this.rowSize;\n\t\treturn index >= 0 && index >= this.displayedColors.length - lastRowSwatchesCount;\n\t}\n\n\t/**\n\t * Checks if HOME/END navigation should be prevented in embedded mode.\n\t * In embedded mode, HOME/END keys are blocked as they only work in popup mode per design.\n\t * @private\n\t * @param e The keyboard event to check\n\t * @returns True if the event should be prevented, false otherwise\n\t */\n\t_shouldPreventHomeEnd(e: KeyboardEvent): boolean {\n\t\treturn !this.popupMode && (isHome(e) || isEnd(e));\n\t}\n\n\t/**\n\t * Helper to check if all displayed colors fit in a single row\n\t * @private\n\t */\n\t_isSingleRow(): boolean {\n\t\treturn this.displayedColors.length <= this.rowSize;\n\t}\n\n\t/**\n\t * Helper to focus the first available element from a list of candidates.\n\t *\n\t * This method implements a fallback chain pattern for keyboard navigation in the color palette.\n\t * It attempts to execute focus actions in priority order, stopping at the first successful one.\n\t *\n\t * For example when navigating left from the default color button, try these options in order:\n\t * this._focusFirstAvailable(\n\t * () => this._focusLastRecentColor(), // 1st choice: focus last recent color if available\n\t * () => this._focusMoreColors(), // 2nd choice: focus \"More Colors\" button if available\n\t * () => this._focusLastDisplayedColor() // 3rd choice: focus last color in the main palette\n\t * );\n\t *\n\t * @private\n\t * @param candidates - Functions that attempt to focus an element. Each function should return true if focus was successful, false otherwise.\n\t * @returns True if any candidate successfully focused an element, false if all failed.\n\t */\n\t_focusFirstAvailable(...candidates: Array<() => boolean>): boolean {\n\t\treturn candidates.some(focusAction => focusAction());\n\t}\n\n\t/**\n\t * Helper to focus default color button if available\n\t * @private\n\t */\n\t_focusDefaultColor(): boolean {\n\t\tif (this.showDefaultColor && this._defaultColorButton) {\n\t\t\tthis._defaultColorButton.focus();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Helper to focus more colors button if available\n\t * @private\n\t */\n\t_focusMoreColors(): boolean {\n\t\tif (this.showMoreColors && this._moreColorsButton) {\n\t\t\tthis._moreColorsButton.focus();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Helper to focus first displayed color if available\n\t * @private\n\t */\n\t_focusFirstDisplayedColor(): boolean {\n\t\tif (this.displayedColors.length) {\n\t\t\tthis.focusColorElement(this.displayedColors[0], this._itemNavigation);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Helper to focus last displayed color if available\n\t * @private\n\t */\n\t_focusLastDisplayedColor(): boolean {\n\t\tif (this.displayedColors.length) {\n\t\t\tthis.focusColorElement(this.displayedColors[this.displayedColors.length - 1], this._itemNavigation);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Helper to focus last swatch of last full row if available\n\t * @private\n\t */\n\t_focusLastSwatchOfLastFullRow(): boolean {\n\t\tconst rowSize = this.rowSize;\n\t\tconst total = this.displayedColors.length;\n\t\tconst lastCompleteRowEndIndex = this._getLastCompleteRowEndIndex(total, rowSize);\n\n\t\t// Return false if there are no full rows (less than one complete row)\n\t\tif (lastCompleteRowEndIndex < 0 || !this.displayedColors[lastCompleteRowEndIndex]) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.focusColorElement(this.displayedColors[lastCompleteRowEndIndex], this._itemNavigation);\n\t\treturn true;\n\t}\n\n\t/**\n\t * Returns the index of the last swatch in the last complete row.\n\t * @private\n\t */\n\t_getLastCompleteRowEndIndex(total: number, rowSize: number): number {\n\t\treturn Math.floor(total / rowSize) * rowSize - 1;\n\t}\n\n\t/**\n\t * Helper to focus first recent color if available\n\t * @private\n\t */\n\t_focusFirstRecentColor(): boolean {\n\t\tif (this.hasRecentColors && this.recentColorsElements.length) {\n\t\t\tthis.focusColorElement(this.recentColorsElements[0], this._itemNavigationRecentColors);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Helper to focus last recent color if available\n\t * @private\n\t */\n\t_focusLastRecentColor(): boolean {\n\t\tif (this.hasRecentColors && this.recentColorsElements.length) {\n\t\t\tthis.focusColorElement(this.recentColorsElements[this.recentColorsElements.length - 1], this._itemNavigationRecentColors);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tfocusColorElement(element: ColorPaletteNavigationItem, itemNavigation: ItemNavigation) {\n\t\titemNavigation.setCurrentItem(element);\n\t\titemNavigation._focusCurrentItem();\n\t}\n\n\tonColorPickerChange(e: Event) {\n\t\tthis.colorPickerValue = (e.target as ColorPicker).value;\n\t}\n\n\t_chooseCustomColor() {\n\t\tthis._setColor(this.colorPickerValue);\n\t\tthis._closeDialog();\n\t\tthis._shouldFocusRecentColors = true;\n\t}\n\n\t_addRecentColor(color: string) {\n\t\tif (this.showRecentColors && !this._recentColors.includes(color)) {\n\t\t\tthis._recentColors.unshift(color);\n\t\t\tif (this._recentColors.length > this.rowSize) {\n\t\t\t\tthis._recentColors.pop();\n\t\t\t}\n\t\t}\n\t}\n\n\t_closeDialog() {\n\t\tthis.dialogOpen = false;\n\t}\n\n\t_openMoreColorsDialog() {\n\t\tconst value = this._currentlySelected ? this._currentlySelected.value : undefined;\n\n\t\tif (value) {\n\t\t\tthis.colorPickerValue = value;\n\t\t}\n\t\tthis.dialogOpen = true;\n\t}\n\n\t_onDefaultColorClick() {\n\t\tif (this.defaultColor) {\n\t\t\tthis._setColor(this.defaultColor);\n\t\t\tthis._addRecentColor(this.defaultColor);\n\n\t\t\tif (this.selectedItem) {\n\t\t\t\tthis.selectedItem.selected = false;\n\t\t\t\tthis._currentlySelected = undefined;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the selected item.\n\t */\n\tget selectedItem() {\n\t\treturn this.allColorsInPalette.find(item => item.selected);\n\t}\n\n\tget allColorsInPalette() {\n\t\treturn [...this.effectiveColorItems, ...this.recentColorsElements];\n\t}\n\n\tget colorPaletteDialogTitle() {\n\t\treturn ColorPalette.i18nBundle.getText(COLOR_PALETTE_DIALOG_TITLE);\n\t}\n\n\tget colorPaletteDialogOKButton() {\n\t\treturn ColorPalette.i18nBundle.getText(COLOR_PALETTE_DIALOG_OK_BUTTON);\n\t}\n\n\tget colorPaletteCancelButton() {\n\t\treturn ColorPalette.i18nBundle.getText(COLOR_PALETTE_DIALOG_CANCEL_BUTTON);\n\t}\n\n\t/**\n\t * Returns the selected color.\n\t */\n\tget selectedColor() {\n\t\treturn this._selectedColor;\n\t}\n\n\tget displayedColors(): Array<ColorPaletteItem> {\n\t\tconst colors = this.getSlottedNodes<ColorPaletteItem>(\"colors\");\n\t\treturn colors.filter(item => item.value).slice(0, 15);\n\t}\n\n\tget colorContainerLabel() {\n\t\tconst effectiveLabel = getEffectiveAriaLabelText(this);\n\t\treturn effectiveLabel\n\t\t\t? `${ColorPalette.i18nBundle.getText(COLORPALETTE_CONTAINER_LABEL)} ${effectiveLabel}`\n\t\t\t: ColorPalette.i18nBundle.getText(COLORPALETTE_CONTAINER_LABEL);\n\t}\n\n\tget colorPaletteMoreColorsText() {\n\t\treturn ColorPalette.i18nBundle.getText(COLOR_PALETTE_MORE_COLORS_TEXT);\n\t}\n\n\tget colorPaletteDefaultColorText() {\n\t\treturn ColorPalette.i18nBundle.getText(COLOR_PALETTE_DEFAULT_COLOR_TEXT);\n\t}\n\n\tget rowSize() {\n\t\treturn 5;\n\t}\n\n\tget hasRecentColors() {\n\t\treturn this.showRecentColors && this.recentColors[0];\n\t}\n\n\tget recentColors() {\n\t\tif (this._recentColors.length > this.rowSize) {\n\t\t\tthis._recentColors = this._recentColors.slice(0, this.rowSize);\n\t\t}\n\n\t\twhile (this._recentColors.length < this.rowSize) {\n\t\t\tthis._recentColors.push(\"\");\n\t\t}\n\n\t\treturn this._recentColors;\n\t}\n\n\tget recentColorsElements(): Array<ColorPaletteItem> {\n\t\tconst domRef = this.getDomRef();\n\t\tif (domRef) {\n\t\t\treturn Array.from(domRef.querySelectorAll<ColorPaletteItem>(\".ui5-cp-recent-colors-wrapper [ui5-color-palette-item]\")).filter(x => x.value !== \"\");\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tget classes() {\n\t\t// Remove after deleting the hbs template, it's added in the jsx template\n\t\treturn {\n\t\t\tcolorPaletteRoot: {\n\t\t\t\t\"ui5-cp-root\": true,\n\t\t\t\t\"ui5-cp-root-phone\": isPhone(),\n\t\t\t},\n\t\t};\n\t}\n\n\tstatic ColorPaletteMoreColorsTemplate?: JsxTemplate;\n}\n\nColorPalette.define();\n\nexport default ColorPalette;\nexport type {\n\tColorPaletteItemClickEventDetail,\n\tIColorPaletteItem,\n};\n"]}
1
+ {"version":3,"file":"ColorPalette.js","sourceRoot":"","sources":["../src/ColorPalette.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport ItemNavigationBehavior from \"@ui5/webcomponents-base/dist/types/ItemNavigationBehavior.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type { JsxTemplate } from \"@ui5/webcomponents-base/dist/index.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisRight,\n\tisUp,\n\tisLeft,\n\tisTabNext,\n\tisHome,\n\tisEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport ColorPaletteTemplate from \"./ColorPaletteTemplate.js\";\nimport type ColorPaletteItem from \"./ColorPaletteItem.js\";\nimport type Button from \"./Button.js\";\nimport type ColorPicker from \"./ColorPicker.js\";\nimport \"./ColorPaletteItem.js\";\n\nimport {\n\tCOLORPALETTE_CONTAINER_LABEL,\n\tCOLOR_PALETTE_MORE_COLORS_TEXT,\n\tCOLOR_PALETTE_DEFAULT_COLOR_TEXT,\n\tCOLOR_PALETTE_DIALOG_CANCEL_BUTTON,\n\tCOLOR_PALETTE_DIALOG_OK_BUTTON,\n\tCOLOR_PALETTE_DIALOG_TITLE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport ColorPaletteCss from \"./generated/themes/ColorPalette.css.js\";\nimport ColorPaletteDialogCss from \"./generated/themes/ColorPaletteDialog.css.js\";\n\n/**\n * Interface for components that may be used inside a `ui5-color-palette` or `ui5-color-palette-popover`\n * @public\n */\ninterface IColorPaletteItem extends UI5Element, ITabbable {\n\tvalue?: string,\n\tindex?: number,\n\tselected?: boolean,\n}\n\ntype ColorPaletteNavigationItem = ColorPaletteItem | Button;\n\ntype ColorPaletteItemClickEventDetail = {\n\tcolor: string,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-color-palette` provides the users with a range of predefined colors. The colors are fixed and do not change with the theme.\n *\n * ### Usage\n *\n * The `ui5-color-palette` is meant for users that need to select a color from a predefined set.\n * To define the colors, use the `ui5-color-palette-item` component inside the default slot of the `ui5-color-palette`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/ColorPalette.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.12\n * @public\n */\n@customElement({\n\ttag: \"ui5-color-palette\",\n\trenderer: jsxRenderer,\n\ttemplate: ColorPaletteTemplate,\n\tstyles: [ColorPaletteCss, ColorPaletteDialogCss],\n})\n\n/**\n * Fired when the user selects a color.\n * @public\n * @since 1.0.0-rc.15\n * @param {string} color the selected color\n */\n@event(\"item-click\")\nclass ColorPalette extends UI5Element {\n\teventDetails!: {\n\t\t\"item-click\": ColorPaletteItemClickEventDetail,\n\t}\n\n\t/**\n\t * Defines whether the user can see the last used colors in the bottom of the component\n\t * @private\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\tshowRecentColors = false;\n\n\t/**\n\t * Defines whether the user can choose a custom color from a color picker\n\t *\n\t * @private\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\tshowMoreColors = false;\n\n\t/**\n\t * Defines whether the user can choose the default color from a button.\n\t * @default false\n\t * @private\n\t * @since 1.0.0-rc.16\n\t */\n\t@property({ type: Boolean })\n\tshowDefaultColor = false;\n\n\t/**\n\t * Defines the default color of the color palette, only valid CSS color values accepted\n\t *\n\t * **Note:** The default color should be a part of the ColorPalette colors`\n\t * @private\n\t * @since 1.0.0-rc.16\n\t */\n\t@property()\n\tdefaultColor?: string;\n\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.20.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.20.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the selected color, only valid CSS color values accepted\n\t * @private\n\t */\n\t@property()\n\t_selectedColor?: string;\n\n\t/**\n\t * Defines if the palette is in Popup or Embeded mode.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpopupMode = false;\n\n\t/**\n\t * Defines if the palette is rendered on phone.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tonPhone = false;\n\n\t/**\n\n\t * The showMoreColors template.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tshowMoreColorsTemplate?: JsxTemplate;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tdialogOpen = false;\n\n\t/**\n\t * @private\n\t */\n\t@property()\n\tcolorPickerValue = \"rgba(255,255,255,1)\";\n\n\t/**\n\t * Defines the `ui5-color-palette-item` elements.\n\t * @public\n\t */\n\t@slot({\n\t\t\"default\": true,\n\t\ttype: HTMLElement,\n\t\tinvalidateOnChildChange: true,\n\t\tindividualSlots: true,\n\t})\n\tcolors!: DefaultSlot<ColorPaletteItem>;\n\n\t_itemNavigation: ItemNavigation;\n\t_itemNavigationRecentColors: ItemNavigation;\n\t_recentColors: Array<string>;\n\t_currentlySelected?: ColorPaletteItem;\n\t_shouldFocusRecentColors = false;\n\n\t@query(\".ui5-cp-default-color-button\")\n\t_defaultColorButton!: Button;\n\n\t@query(\".ui5-cp-more-colors\")\n\t_moreColorsButton!: Button;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tgetItemsCallback: () => this.displayedColors,\n\t\t\trowSize: this.rowSize,\n\t\t\tbehavior: ItemNavigationBehavior.Cyclic,\n\t\t});\n\n\t\tthis._itemNavigationRecentColors = new ItemNavigation(this, {\n\t\t\tgetItemsCallback: () => this.recentColorsElements,\n\t\t\trowSize: this.rowSize,\n\t\t\tbehavior: ItemNavigationBehavior.Cyclic,\n\t\t});\n\n\t\tthis._recentColors = [];\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._ensureSingleSelectionOrDeselectAll();\n\n\t\tconst selectedItem = this.selectedItem;\n\n\t\tif (selectedItem && !this.showRecentColors) {\n\t\t\tthis._selectedColor = selectedItem.value;\n\t\t}\n\n\t\tthis.displayedColors.forEach((item, index) => {\n\t\t\titem.index = index + 1;\n\t\t});\n\n\t\tif (this.showMoreColors) {\n\t\t\t// If the feature is preloaded (the user manually imported ColorPaletteMoreColors.js), the teplate is already available on the constructor\n\t\t\tif (ColorPalette.ColorPaletteMoreColorsTemplate) {\n\t\t\t\tthis.showMoreColorsTemplate = ColorPalette.ColorPaletteMoreColorsTemplate;\n\t\t\t// If feature is not preloaded, load the template dynamically\n\t\t\t} else {\n\t\t\t\timport(\"./features/ColorPaletteMoreColorsTemplate.js\").then(module => {\n\t\t\t\t\tthis.showMoreColorsTemplate = module.default;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthis.onPhone = isPhone();\n\t}\n\n\tonAfterRendering() {\n\t\tif (this.hasRecentColors && this._shouldFocusRecentColors) {\n\t\t\tif (this.selectedItem) {\n\t\t\t\tthis.selectedItem.selected = false;\n\t\t\t}\n\t\t\tconst firstRecentColor = this.recentColorsElements[0];\n\t\t\tfirstRecentColor.selected = true;\n\t\t\tthis._currentlySelected = firstRecentColor;\n\t\t\tthis._currentlySelected.focus();\n\t\t\tthis._shouldFocusRecentColors = false;\n\t\t}\n\t}\n\n\tselectColor(item: ColorPaletteItem) {\n\t\tif (!item.value) {\n\t\t\treturn;\n\t\t}\n\n\t\titem.focus();\n\n\t\tif (this.displayedColors.includes(item)) {\n\t\t\tthis._itemNavigation.setCurrentItem(item);\n\t\t}\n\n\t\tthis._setColor(item.value);\n\t}\n\n\t_setColor(color: string) {\n\t\tthis._selectedColor = color;\n\n\t\tif (this._recentColors[0] !== this._selectedColor) {\n\t\t\tif (this._recentColors.includes(this._selectedColor)) {\n\t\t\t\tthis._recentColors.unshift(this._recentColors.splice(this._recentColors.indexOf(this._selectedColor), 1)[0]);\n\t\t\t} else {\n\t\t\t\tthis._addRecentColor(this._selectedColor);\n\t\t\t}\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"item-click\", {\n\t\t\tcolor: this._selectedColor,\n\t\t});\n\t}\n\n\tget effectiveColorItems(): ColorPaletteItem[] {\n\t\tif (this.popupMode) {\n\t\t\treturn this.getSlottedNodes<ColorPaletteItem>(\"colors\");\n\t\t}\n\t\treturn this.colors;\n\t}\n\n\t/**\n\t * Ensures that only one item is selected or only the last selected item remains active if more than one are explicitly set as 'selected'.\n\t * @private\n\t */\n\t_ensureSingleSelectionOrDeselectAll() {\n\t\tlet lastSelectedItem: ColorPaletteItem | undefined;\n\n\t\tthis.allColorsInPalette.forEach(item => {\n\t\t\tif (item.selected) {\n\t\t\t\tif (lastSelectedItem) {\n\t\t\t\t\tlastSelectedItem.selected = false;\n\t\t\t\t}\n\t\t\t\tlastSelectedItem = item;\n\t\t\t}\n\t\t});\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.handleSelection(e.target as ColorPaletteItem);\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (!target.hasAttribute(\"ui5-color-palette-item\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst colorItem = target as ColorPaletteItem;\n\n\t\tif (this.displayedColors.includes(colorItem)) {\n\t\t\tthis._itemNavigation.setCurrentItem(colorItem);\n\t\t} else if (this.recentColorsElements.includes(colorItem)) {\n\t\t\tthis._itemNavigationRecentColors.setCurrentItem(colorItem);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tconst target = e.target as ColorPaletteItem;\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.handleSelection(target);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst target = e.target as ColorPaletteItem;\n\t\tif (isEnter(e)) {\n\t\t\tthis.handleSelection(target);\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\thandleSelection(target: ColorPaletteItem) {\n\t\tif (!target.hasAttribute(\"ui5-color-palette-item\") || !target.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._shouldFocusRecentColors = false;\n\n\t\tthis.selectColor(target);\n\n\t\t// Handle selection for items within the 'recentColorsElements'\n\t\tif (this.recentColorsElements.includes(target)) {\n\t\t\tthis.recentColorsElements[0].selected = true;\n\t\t\tthis.recentColorsElements[0].focus();\n\t\t\tthis._currentlySelected = this.recentColorsElements[0];\n\t\t} else {\n\t\t\tthis.allColorsInPalette.forEach(item => {\n\t\t\t\titem.selected = item === target;\n\t\t\t});\n\t\t\tthis._currentlySelected = target;\n\t\t}\n\n\t\tthis._ensureSingleSelectionOrDeselectAll();\n\t}\n\n\tgetFocusDomRef(): HTMLElement | undefined {\n\t\treturn this._itemNavigation._getCurrentItem();\n\t}\n\n\t_handleDefaultColorClick(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._onDefaultColorClick();\n\t}\n\n\t_onDefaultColorKeyUp(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._handleDefaultColorClick(e);\n\t\t}\n\t}\n\n\t_onDefaultColorKeyDown(e: KeyboardEvent) {\n\t\tif (isTabNext(e) && this.popupMode) {\n\t\t\tthis._handleDefaultColorClick(e);\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._handleDefaultColorClick(e);\n\t\t}\n\n\t\tif (this._isNext(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstDisplayedColor();\n\t\t} else if (isLeft(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusLastRecentColor(),\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t);\n\t\t} else if (isUp(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusLastRecentColor(),\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusLastSwatchOfLastFullRow(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t);\n\t\t} else if (isEnd(e)) {\n\t\t\t// Prevent Home/End keys from working in embedded mode - they only work in popup mode as per design\n\t\t\tif (this._shouldPreventHomeEnd(e)) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t);\n\t\t}\n\t}\n\n\t_onMoreColorsKeyDown(e: KeyboardEvent) {\n\t\tif (isLeft(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusLastDisplayedColor();\n\t\t} else if (isUp(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusLastSwatchOfLastFullRow(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t);\n\t\t} else if (this._isNext(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusFirstRecentColor(),\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusFirstDisplayedColor(),\n\t\t\t);\n\t\t} else if (isHome(e)) {\n\t\t\t// Prevent Home/End keys from working in embedded mode - they only work in popup mode as per design\n\t\t\tif (this._shouldPreventHomeEnd(e)) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusFirstDisplayedColor(),\n\t\t\t);\n\t\t} else if (isEnd(e)) {\n\t\t\t// Prevent Home/End keys from working in embedded mode - they only work in popup mode as per design\n\t\t\tif (this._shouldPreventHomeEnd(e)) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// More Colors button is typically the last element, so END key stays here\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n\n\t_onColorContainerKeyDown(e: KeyboardEvent) {\n\t\tconst eventTarget = e.target as ColorPaletteItem;\n\t\tconst swatchTarget = this._getColorPaletteItemFromEvent(e, this.displayedColors);\n\n\t\t// Prevent Home/End keys from working in embedded mode - they only work in popup mode as per design\n\t\tif (this._shouldPreventHomeEnd(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isUpOrDownNavigatableColorPaletteItem(e)) {\n\t\t\tthis._currentlySelected = undefined;\n\t\t}\n\n\t\tif (isTabNext(e) && this.popupMode) {\n\t\t\te.preventDefault();\n\t\t\tthis.selectColor(swatchTarget || eventTarget);\n\t\t}\n\n\t\tif (!swatchTarget) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isLastSwatchInSingleRow = this._isSingleRow() && this._isLastSwatch(swatchTarget, this.displayedColors);\n\n\t\tif (this._isPrevious(e) && this._isFirstSwatch(swatchTarget, this.displayedColors)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusLastRecentColor(),\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusLastSwatchOfLastFullRow(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t);\n\t\t} else if ((isRight(e) && this._isLastSwatch(swatchTarget, this.displayedColors))\n\t\t\t|| (isDown(e) && (this._isLastSwatchOfLastFullRow(swatchTarget) || isLastSwatchInSingleRow))\n\t\t) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusFirstRecentColor(),\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusFirstDisplayedColor(),\n\t\t\t);\n\t\t} else if (isHome(e) && this._isFirstSwatchInRow(swatchTarget)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusFirstDisplayedColor(),\n\t\t\t);\n\t\t} else if (isEnd(e) && this._isLastSwatchInRow(swatchTarget)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t);\n\t\t} else if (isEnd(e) && this._isSwatchInLastRow(swatchTarget)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusLastDisplayedColor();\n\t\t}\n\t}\n\n\t_onRecentColorsContainerKeyDown(e: KeyboardEvent) {\n\t\tconst swatchTarget = this._getColorPaletteItemFromEvent(e, this.recentColorsElements);\n\n\t\t// Prevent Home/End keys from working in embedded mode - they only work in popup mode as per design\n\t\tif (this._shouldPreventHomeEnd(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isUpOrDownNavigatableColorPaletteItem(e)) {\n\t\t\tthis._currentlySelected = undefined;\n\t\t}\n\n\t\tif (!swatchTarget) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isNext(e) && this._isLastSwatch(swatchTarget, this.recentColorsElements)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusFirstDisplayedColor(),\n\t\t\t);\n\t\t} else if (this._isPrevious(e) && this._isFirstSwatch(swatchTarget, this.recentColorsElements)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusFirstAvailable(\n\t\t\t\t() => this._focusMoreColors(),\n\t\t\t\t() => this._focusLastSwatchOfLastFullRow(),\n\t\t\t\t() => this._focusLastDisplayedColor(),\n\t\t\t\t() => this._focusDefaultColor(),\n\t\t\t);\n\t\t} else if (isEnd(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._focusLastRecentColor();\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the keyboard event is up/down navigation on a displayed color palette item\n\t * @private\n\t */\n\t_isUpOrDownNavigatableColorPaletteItem(e: KeyboardEvent): boolean {\n\t\tif (!(isUp(e) || isDown(e)) || !this._currentlySelected) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.displayedColors.includes(this._currentlySelected)\n\t\t\t|| this.recentColorsElements.includes(this._currentlySelected);\n\t}\n\n\t_isPrevious(e: KeyboardEvent): boolean {\n\t\treturn isUp(e) || isLeft(e);\n\t}\n\n\t_isNext(e: KeyboardEvent): boolean {\n\t\treturn isDown(e) || isRight(e);\n\t}\n\n\t_isFirstSwatch(target: ColorPaletteItem, swatches: Array<ColorPaletteItem>): boolean {\n\t\treturn swatches && Boolean(swatches.length) && swatches[0] === (target);\n\t}\n\n\t_getColorPaletteItemFromEvent(e: KeyboardEvent, swatches: Array<ColorPaletteItem>): ColorPaletteItem | undefined {\n\t\tconst path = e.composedPath();\n\t\treturn swatches.find(swatch => path.includes(swatch));\n\t}\n\n\t_isLastSwatch(target: ColorPaletteItem, swatches: Array<ColorPaletteItem>): boolean {\n\t\treturn swatches && Boolean(swatches.length) && swatches[swatches.length - 1] === (target);\n\t}\n\n\t/**\n\t * Checks if the target swatch is the first swatch in its row.\n\t * @private\n\t */\n\t_isFirstSwatchInRow(target: ColorPaletteItem): boolean {\n\t\tconst index = this.displayedColors.indexOf(target);\n\t\treturn index >= 0 ? index % this.rowSize === 0 : false;\n\t}\n\n\t/**\n\t * Checks if the target swatch is the last swatch in its row.\n\t * @private\n\t */\n\t_isLastSwatchInRow(target: ColorPaletteItem): boolean {\n\t\tconst index = this.displayedColors.indexOf(target);\n\t\treturn index >= 0 ? (index + 1) % this.rowSize === 0 || index === this.displayedColors.length - 1 : false;\n\t}\n\n\t/**\n\t * Checks if the given color swatch is the last swatch of the last full row.\n\t *\n\t * Example 1: 12 colors with rowSize 5\n\t * Row 1: [0, 1, 2, 3, 4] ← Complete row\n\t * Row 2: [5, 6, 7, 8, 9] ← Complete row (last complete row)\n\t * Row 3: [10, 11] ← Incomplete row\n\t *\n\t * @param target The color swatch to check.\n\t * @returns True if the swatch is the last of the last full row, false otherwise.\n\t */\n\t_isLastSwatchOfLastFullRow(target: ColorPaletteItem): boolean {\n\t\tconst index = this.displayedColors.indexOf(target);\n\t\tconst rowSize = this.rowSize;\n\t\tconst total = this.displayedColors.length;\n\t\tconst lastCompleteRowEndIndex = this._getLastCompleteRowEndIndex(total, rowSize);\n\t\treturn index >= 0 && index === lastCompleteRowEndIndex;\n\t}\n\n\t_isSwatchInLastRow(target: ColorPaletteItem): boolean {\n\t\tconst index = this.displayedColors.indexOf(target);\n\t\tconst lastRowSwatchesCount = this.displayedColors.length % this.rowSize;\n\t\treturn index >= 0 && index >= this.displayedColors.length - lastRowSwatchesCount;\n\t}\n\n\t/**\n\t * Checks if HOME/END navigation should be prevented in embedded mode.\n\t * In embedded mode, HOME/END keys are blocked as they only work in popup mode per design.\n\t * @private\n\t * @param e The keyboard event to check\n\t * @returns True if the event should be prevented, false otherwise\n\t */\n\t_shouldPreventHomeEnd(e: KeyboardEvent): boolean {\n\t\treturn !this.popupMode && (isHome(e) || isEnd(e));\n\t}\n\n\t/**\n\t * Helper to check if all displayed colors fit in a single row\n\t * @private\n\t */\n\t_isSingleRow(): boolean {\n\t\treturn this.displayedColors.length <= this.rowSize;\n\t}\n\n\t/**\n\t * Helper to focus the first available element from a list of candidates.\n\t *\n\t * This method implements a fallback chain pattern for keyboard navigation in the color palette.\n\t * It attempts to execute focus actions in priority order, stopping at the first successful one.\n\t *\n\t * For example when navigating left from the default color button, try these options in order:\n\t * this._focusFirstAvailable(\n\t * () => this._focusLastRecentColor(), // 1st choice: focus last recent color if available\n\t * () => this._focusMoreColors(), // 2nd choice: focus \"More Colors\" button if available\n\t * () => this._focusLastDisplayedColor() // 3rd choice: focus last color in the main palette\n\t * );\n\t *\n\t * @private\n\t * @param candidates - Functions that attempt to focus an element. Each function should return true if focus was successful, false otherwise.\n\t * @returns True if any candidate successfully focused an element, false if all failed.\n\t */\n\t_focusFirstAvailable(...candidates: Array<() => boolean>): boolean {\n\t\treturn candidates.some(focusAction => focusAction());\n\t}\n\n\t/**\n\t * Helper to focus default color button if available\n\t * @private\n\t */\n\t_focusDefaultColor(): boolean {\n\t\tif (this.showDefaultColor && this._defaultColorButton) {\n\t\t\tthis._defaultColorButton.focus();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Helper to focus more colors button if available\n\t * @private\n\t */\n\t_focusMoreColors(): boolean {\n\t\tif (this.showMoreColors && this._moreColorsButton) {\n\t\t\tthis._moreColorsButton.focus();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Helper to focus first displayed color if available\n\t * @private\n\t */\n\t_focusFirstDisplayedColor(): boolean {\n\t\tif (this.displayedColors.length) {\n\t\t\tthis.focusColorElement(this.displayedColors[0], this._itemNavigation);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Helper to focus last displayed color if available\n\t * @private\n\t */\n\t_focusLastDisplayedColor(): boolean {\n\t\tif (this.displayedColors.length) {\n\t\t\tthis.focusColorElement(this.displayedColors[this.displayedColors.length - 1], this._itemNavigation);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Helper to focus last swatch of last full row if available\n\t * @private\n\t */\n\t_focusLastSwatchOfLastFullRow(): boolean {\n\t\tconst rowSize = this.rowSize;\n\t\tconst total = this.displayedColors.length;\n\t\tconst lastCompleteRowEndIndex = this._getLastCompleteRowEndIndex(total, rowSize);\n\n\t\t// Return false if there are no full rows (less than one complete row)\n\t\tif (lastCompleteRowEndIndex < 0 || !this.displayedColors[lastCompleteRowEndIndex]) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.focusColorElement(this.displayedColors[lastCompleteRowEndIndex], this._itemNavigation);\n\t\treturn true;\n\t}\n\n\t/**\n\t * Returns the index of the last swatch in the last complete row.\n\t * @private\n\t */\n\t_getLastCompleteRowEndIndex(total: number, rowSize: number): number {\n\t\treturn Math.floor(total / rowSize) * rowSize - 1;\n\t}\n\n\t/**\n\t * Helper to focus first recent color if available\n\t * @private\n\t */\n\t_focusFirstRecentColor(): boolean {\n\t\tif (this.hasRecentColors && this.recentColorsElements.length) {\n\t\t\tthis.focusColorElement(this.recentColorsElements[0], this._itemNavigationRecentColors);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Helper to focus last recent color if available\n\t * @private\n\t */\n\t_focusLastRecentColor(): boolean {\n\t\tif (this.hasRecentColors && this.recentColorsElements.length) {\n\t\t\tthis.focusColorElement(this.recentColorsElements[this.recentColorsElements.length - 1], this._itemNavigationRecentColors);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tfocusColorElement(element: ColorPaletteNavigationItem, itemNavigation: ItemNavigation) {\n\t\titemNavigation.setCurrentItem(element);\n\t\titemNavigation._focusCurrentItem();\n\t}\n\n\tonColorPickerChange(e: Event) {\n\t\tthis.colorPickerValue = (e.target as ColorPicker).value;\n\t}\n\n\t_chooseCustomColor() {\n\t\tthis._setColor(this.colorPickerValue);\n\t\tthis._closeDialog();\n\t\tthis._shouldFocusRecentColors = true;\n\t}\n\n\t_addRecentColor(color: string) {\n\t\tif (this.showRecentColors && !this._recentColors.includes(color)) {\n\t\t\tthis._recentColors.unshift(color);\n\t\t\tif (this._recentColors.length > this.rowSize) {\n\t\t\t\tthis._recentColors.pop();\n\t\t\t}\n\t\t}\n\t}\n\n\t_closeDialog() {\n\t\tthis.dialogOpen = false;\n\t}\n\n\t_openMoreColorsDialog() {\n\t\tconst value = this._currentlySelected ? this._currentlySelected.value : undefined;\n\n\t\tif (value) {\n\t\t\tthis.colorPickerValue = value;\n\t\t}\n\t\tthis.dialogOpen = true;\n\t}\n\n\t_onDefaultColorClick() {\n\t\tif (this.defaultColor) {\n\t\t\tthis._setColor(this.defaultColor);\n\t\t\tthis._addRecentColor(this.defaultColor);\n\n\t\t\tif (this.selectedItem) {\n\t\t\t\tthis.selectedItem.selected = false;\n\t\t\t\tthis._currentlySelected = undefined;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the selected item.\n\t */\n\tget selectedItem() {\n\t\treturn this.allColorsInPalette.find(item => item.selected);\n\t}\n\n\tget allColorsInPalette() {\n\t\treturn [...this.effectiveColorItems, ...this.recentColorsElements];\n\t}\n\n\tget colorPaletteDialogTitle() {\n\t\treturn ColorPalette.i18nBundle.getText(COLOR_PALETTE_DIALOG_TITLE);\n\t}\n\n\tget colorPaletteDialogOKButton() {\n\t\treturn ColorPalette.i18nBundle.getText(COLOR_PALETTE_DIALOG_OK_BUTTON);\n\t}\n\n\tget colorPaletteCancelButton() {\n\t\treturn ColorPalette.i18nBundle.getText(COLOR_PALETTE_DIALOG_CANCEL_BUTTON);\n\t}\n\n\t/**\n\t * Returns the selected color.\n\t */\n\tget selectedColor() {\n\t\treturn this._selectedColor;\n\t}\n\n\tget displayedColors(): Array<ColorPaletteItem> {\n\t\tconst colors = this.getSlottedNodes<ColorPaletteItem>(\"colors\");\n\t\treturn colors.filter(item => item.value).slice(0, 15);\n\t}\n\n\tget colorContainerLabel() {\n\t\tconst effectiveLabel = getEffectiveAriaLabelText(this);\n\t\treturn effectiveLabel\n\t\t\t? `${ColorPalette.i18nBundle.getText(COLORPALETTE_CONTAINER_LABEL)} ${effectiveLabel}`\n\t\t\t: ColorPalette.i18nBundle.getText(COLORPALETTE_CONTAINER_LABEL);\n\t}\n\n\tget colorPaletteMoreColorsText() {\n\t\treturn ColorPalette.i18nBundle.getText(COLOR_PALETTE_MORE_COLORS_TEXT);\n\t}\n\n\tget colorPaletteDefaultColorText() {\n\t\treturn ColorPalette.i18nBundle.getText(COLOR_PALETTE_DEFAULT_COLOR_TEXT);\n\t}\n\n\tget rowSize() {\n\t\treturn 5;\n\t}\n\n\tget hasRecentColors() {\n\t\treturn this.showRecentColors && this.recentColors[0];\n\t}\n\n\tget recentColors() {\n\t\tif (this._recentColors.length > this.rowSize) {\n\t\t\tthis._recentColors = this._recentColors.slice(0, this.rowSize);\n\t\t}\n\n\t\twhile (this._recentColors.length < this.rowSize) {\n\t\t\tthis._recentColors.push(\"\");\n\t\t}\n\n\t\treturn this._recentColors;\n\t}\n\n\tget recentColorsElements(): Array<ColorPaletteItem> {\n\t\tconst domRef = this.getDomRef();\n\t\tif (domRef) {\n\t\t\treturn Array.from(domRef.querySelectorAll<ColorPaletteItem>(\".ui5-cp-recent-colors-wrapper [ui5-color-palette-item]\")).filter(x => x.value !== \"\");\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tget classes() {\n\t\t// Remove after deleting the hbs template, it's added in the jsx template\n\t\treturn {\n\t\t\tcolorPaletteRoot: {\n\t\t\t\t\"ui5-cp-root\": true,\n\t\t\t\t\"ui5-cp-root-phone\": isPhone(),\n\t\t\t},\n\t\t};\n\t}\n\n\tstatic ColorPaletteMoreColorsTemplate?: JsxTemplate;\n}\n\nColorPalette.define();\n\nexport default ColorPalette;\nexport type {\n\tColorPaletteItemClickEventDetail,\n\tIColorPaletteItem,\n};\n"]}