@vscode-elements/elements 1.16.1 → 1.17.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 (51) hide show
  1. package/custom-elements.json +1178 -565
  2. package/dist/bundled.js +731 -638
  3. package/dist/includes/VscElement.d.ts.map +1 -1
  4. package/dist/includes/VscElement.js +3 -1
  5. package/dist/includes/VscElement.js.map +1 -1
  6. package/dist/includes/vscode-select/OptionListController.d.ts +61 -0
  7. package/dist/includes/vscode-select/OptionListController.d.ts.map +1 -0
  8. package/dist/includes/vscode-select/OptionListController.js +373 -0
  9. package/dist/includes/vscode-select/OptionListController.js.map +1 -0
  10. package/dist/includes/vscode-select/helpers.d.ts +2 -2
  11. package/dist/includes/vscode-select/helpers.js.map +1 -1
  12. package/dist/includes/vscode-select/styles.d.ts.map +1 -1
  13. package/dist/includes/vscode-select/styles.js +28 -26
  14. package/dist/includes/vscode-select/styles.js.map +1 -1
  15. package/dist/includes/vscode-select/template-elements.d.ts +1 -0
  16. package/dist/includes/vscode-select/template-elements.d.ts.map +1 -1
  17. package/dist/includes/vscode-select/template-elements.js +14 -1
  18. package/dist/includes/vscode-select/template-elements.js.map +1 -1
  19. package/dist/includes/vscode-select/types.d.ts +11 -7
  20. package/dist/includes/vscode-select/types.d.ts.map +1 -1
  21. package/dist/includes/vscode-select/types.js.map +1 -1
  22. package/dist/includes/vscode-select/vscode-select-base.d.ts +26 -31
  23. package/dist/includes/vscode-select/vscode-select-base.d.ts.map +1 -1
  24. package/dist/includes/vscode-select/vscode-select-base.js +228 -325
  25. package/dist/includes/vscode-select/vscode-select-base.js.map +1 -1
  26. package/dist/vscode-button/vscode-button.styles.js +1 -1
  27. package/dist/vscode-button/vscode-button.styles.js.map +1 -1
  28. package/dist/vscode-button-group/vscode-button-group.styles.d.ts.map +1 -1
  29. package/dist/vscode-button-group/vscode-button-group.styles.js +2 -0
  30. package/dist/vscode-button-group/vscode-button-group.styles.js.map +1 -1
  31. package/dist/vscode-icon/vscode-icon.d.ts.map +1 -1
  32. package/dist/vscode-icon/vscode-icon.js +1 -0
  33. package/dist/vscode-icon/vscode-icon.js.map +1 -1
  34. package/dist/vscode-label/vscode-label.d.ts.map +1 -1
  35. package/dist/vscode-label/vscode-label.js +9 -7
  36. package/dist/vscode-label/vscode-label.js.map +1 -1
  37. package/dist/vscode-multi-select/vscode-multi-select.d.ts +9 -1
  38. package/dist/vscode-multi-select/vscode-multi-select.d.ts.map +1 -1
  39. package/dist/vscode-multi-select/vscode-multi-select.js +126 -66
  40. package/dist/vscode-multi-select/vscode-multi-select.js.map +1 -1
  41. package/dist/vscode-scrollable/vscode-scrollable.d.ts +57 -13
  42. package/dist/vscode-scrollable/vscode-scrollable.d.ts.map +1 -1
  43. package/dist/vscode-scrollable/vscode-scrollable.js +187 -82
  44. package/dist/vscode-scrollable/vscode-scrollable.js.map +1 -1
  45. package/dist/vscode-single-select/vscode-single-select.d.ts +4 -4
  46. package/dist/vscode-single-select/vscode-single-select.d.ts.map +1 -1
  47. package/dist/vscode-single-select/vscode-single-select.js +140 -74
  48. package/dist/vscode-single-select/vscode-single-select.js.map +1 -1
  49. package/package.json +7 -5
  50. package/vscode.css-custom-data.json +1 -5
  51. package/vscode.html-custom-data.json +51 -5
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-select-base.js","sourceRoot":"","sources":["../../../src/includes/vscode-select/vscode-select-base.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAiC,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,8BAA8B,CAAC;AACtC,OAAO,8BAA8B,CAAC;AAGtC,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,6BAA6B,EAC7B,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAEvD,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAc9C;;OAEG;IAEH,IAAI,QAAQ,CAAC,QAAiB;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAEhD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAQD;;;;;;;;;OASG;IAEH,IAAI,MAAM,CAAC,GAA8D;QACvE,MAAM,WAAW,GAAmB;YAClC,UAAU;YACV,OAAO;YACP,YAAY;YACZ,mBAAmB;SACpB,CAAC;QAEF,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAmB,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,GAAG,GAAmB,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,OAAO,CAAC,IAAI,CACV,8CAA8C,GAAG,gGAAgG,EACjJ,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAcD;;;OAGG;IAEH,IAAI,OAAO,CAAC,IAAc;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,EAAE,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CACtB,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAC,EAAE,EAAE,CAAC,CAAC;YACpD,KAAK;YACL,KAAK;YACL,WAAW;YACX,QAAQ;YACR,QAAQ;SACT,CAAC,CACH,CAAC;IACJ,CAAC;IAkBD;QACE,KAAK,EAAE,CAAC;QA5HV,gBAAgB;QAEP,iBAAY,GAAG,OAAO,CAAC;QAGhC,cAAS,GAAG,KAAK,CAAC;QAElB;;WAEG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAyBjB;;WAEG;QAEH,YAAO,GAAG,KAAK,CAAC;QAmChB;;WAEG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;WAEG;QAEH,SAAI,GAAG,KAAK,CAAC;QAsBb;;WAEG;QAEH,aAAQ,GAAsB,OAAO,CAAC;QAEtC,gBAAgB;QAEP,aAAQ,GAAG,CAAC,CAAC;QA+BZ,0BAAqB,GAAG,KAAK,CAAC;QAa9B,iBAAY,GAAG,CAAC,CAAC,CAAC;QAGlB,wBAAmB,GAAG,EAAE,CAAC;QAGzB,YAAO,GAAiB,OAAO,CAAC;QAgBhC,mBAAc,GAAG,EAAE,CAAC;QAGpB,mBAAc,GAAG,CAAC,CAAC,CAAC;QAGpB,qBAAgB,GAAa,EAAE,CAAC;QAGhC,aAAQ,GAAqB,EAAE,CAAC;QAGhC,WAAM,GAAG,EAAE,CAAC;QAGZ,YAAO,GAAa,EAAE,CAAC;QAGvB,mBAAc,GAAG,CAAC,CAAC;QAGnB,+BAA0B,GAAG,KAAK,CAAC;QAGrC,qBAAgB,GAAG,KAAK,CAAC;QAKjC,gBAAgB;QACN,cAAS,GAAG,KAAK,CAAC;QAE5B;;;;WAIG;QACO,yBAAoB,GAA4B,EAAE,CAAC;QAErD,sBAAiB,GAAG,KAAK,CAAC;QAC1B,cAAS,GAAG,KAAK,CAAC;QAClB,sBAAiB,GAAuB,SAAS,CAAC;QA6IlD,oBAAe,GAAG,CAAC,KAAiB,EAAQ,EAAE;YACpD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;YAElD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC5B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC;QAEM,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,CAAC,CAAC;QAsPM,wBAAmB,GAAG,CAAC,KAAoB,EAAE,EAAE;YACrD,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChE,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;QAEM,sBAAiB,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC;QAEM,qBAAgB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC,CAAC;QAlhBA,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,CAAC,EAAE,EAAE,EAAE;YACtD,EAAE,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAEQ,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;IAEQ,oBAAoB;QAC3B,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC9D,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1D,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC1D,CAAC;IAIkB,YAAY,CAAC,kBAAkC;QAChE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACpC,CAAC;IAEkB,UAAU,CAAC,iBAAiC;QAC7D,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACpE,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAYD,IAAc,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,KAAK,EAAE,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;QAED,OAAO,sBAAsB,CAC3B,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IA8CD,IAAc,eAAe;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC/D,CAAC;IAED,IAAc,yBAAyB;QACrC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,2BAA2B,GAC/B,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,WAAW,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,OAAO,CAAC,2BAA2B,IAAI,QAAQ,CAAC;IAClD,CAAC;IAES,eAAe,KAAI,CAAC;IAEpB,4BAA4B;QACpC,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACnD,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAE/B,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,EAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAC,GAAG,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACzE,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAC;YACtC,MAAM,EAAE,GAAmB;gBACzB,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE;gBACvB,KAAK;gBACL,WAAW;gBACX,QAAQ;gBACR,KAAK,EAAE,SAAS;gBAChB,QAAQ;aACT,CAAC;YAEF,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE7B,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACxB,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YAED,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;YACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAAgB;QAC9C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAEpC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;YAExC,IAAI,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,CAAC,cAAc,CAAC;gBAE1B,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CACtC,IAAI,CAAC,YAAY,GAAG,UAAU,CAC/B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAES,sBAAsB;QAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC/C,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QACnD,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAErB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAES,oBAAoB;QAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,kBAAkB;YAClB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,YAAY,EAAE;gBAC5B,MAAM,EAAE;oBACN,aAAa,EAAE,IAAI,CAAC,cAAc;oBAClC,KAAK,EAAE,IAAI,CAAC,MAAM;iBACnB;aACF,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,YAAY,EAAE;gBAC5B,MAAM,EAAE;oBACN,eAAe,EAAE,IAAI,CAAC,gBAAgB;oBACtC,KAAK,EAAE,IAAI,CAAC,OAAO;iBACpB;aACF,CAAC,CACH,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,CAAC;IAES,KAAK,CAAC,+BAA+B,KAAI,CAAC;IAE1C,YAAY;QACpB,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAiBO,uBAAuB;QAC7B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAES,sBAAsB;QAC9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAES,wBAAwB,CAAC,EAAiB;QAClD,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAES,kBAAkB,CAAC,EAAc;QACzC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,CAAC,MAAqB,CAAC;QAEpC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;YACxC,IAAI,CAAC,YAAY,GAAG,MAAM,CACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC;IAES,4BAA4B;QACpC,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;IAC1C,CAAC;IAES,iBAAiB,CAAC,EAAc;QACxC,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC;IAES,eAAe,CAAC,EAAiB;QACzC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,MAAM,qBAAqB,GAAG,EAAE,EAAE,YAAY;YAC5C,CAAC,CAAC,EAAE;iBACC,YAAY,EAAE;iBACd,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CACV,EAAkB,CAAC,OAAO;gBACzB,CAAC,CAAE,EAAkB,CAAC,OAAO,CAAC,6BAA6B,CAAC;gBAC5D,CAAC,CAAC,KAAK,CACV;YACL,CAAC,CAAC,KAAK,CAAC;QAEV,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnE,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAEpC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAEvC,IACE,CAAC,IAAI,CAAC,SAAS;YACf,CAAC,gBAAgB;YACjB,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,YAAY,EACzC,CAAC;YACD,IAAI,CAAC,cAAc;gBACjB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM;gBACT,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;oBACtB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK;oBAC1C,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBACpC,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACzC,IAAI,CAAC,cAAc;wBACjB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;4BACpB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK;4BAChD,CAAC,CAAC,CAAC,CAAC,CAAC;gBACX,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,gBAAgB,EAAE,CAAC;oBACxC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC5B,IAAI,CAAC,yBAAyB,EAAE,CAAC;oBACnC,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,IAAI,gBAAgB,EAAE,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/C,MAAM,mBAAmB,GAAa,EAAE,CAAC;YAEzC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC;YAExE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE;gBACvB,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAExC,IAAI,QAAQ,EAAE,CAAC;oBACb,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;QAC9C,CAAC;IACH,CAAC;IAEO,yBAAyB;QAC/B,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACtC,SAAwB,EACxB,WAAmB;QAEnB,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ;YACzB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM;YAC9B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzB,MAAM,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,CAAC;QAE9D,IAAI,sBAAsB,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;QAED,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAExD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAChD,MAAM,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;QAExC,MAAM,YAAY,GAChB,MAAM,IAAI,WAAW;YACrB,MAAM,IAAI,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;QAEjE,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC,YAAY,CAAC,SAAS;oBACzB,WAAW,GAAG,UAAU,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CACtC,IAAI,CAAC,YAAY,GAAG,UAAU,CAC/B,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAES,iBAAiB;QACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjE,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBACpC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;gBAChC,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ;oBAClC,CAAC,CAAC,IAAI,CAAC,gBAAgB;oBACvB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAElB,MAAM,cAAc,GAAG,6BAA6B,CAClD,cAAc,EACd,IAAI,CAAC,YAAY,CAClB,CAAC;gBAEF,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC;oBACnC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAES,mBAAmB;QAC3B,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ;YACzB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM;YAC9B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzB,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ;YAClC,CAAC,CAAC,IAAI,CAAC,gBAAgB;YACvB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAClB,MAAM,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,CAAC;QAE9D,IAAI,sBAAsB,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,0BAA0B,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;gBAChE,OAAO;YACT,CAAC;YAED,IAAI,sBAAsB,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;gBACvC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YACzB,CAAC;iBAAM,IAAI,IAAI,CAAC,YAAY,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC3C,MAAM,cAAc,GAAG,6BAA6B,CAClD,cAAc,EACd,IAAI,CAAC,YAAY,CAClB,CAAC;gBAEF,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC;oBACnC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAqCS,aAAa;QACrB,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAES,qBAAqB,CAAC,EAAc;QAC3C,EAAE,CAAC,MAA2B,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAES,oBAAoB;QAC5B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAChC,CAAC;IAES,qBAAqB,CAAC,EAAc;QAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAI,EAAE,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC5D,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAES,qBAAqB;QAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,KAAK,EAAE,CAAC;QACnD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAES,cAAc,CAAC,GAAe;QACtC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,OAAO;IACT,CAAC;IAES,cAAc;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAEnE,OAAO,IAAI,CAAA;;;iBAGE,IAAI,CAAC,cAAc;qBACf,IAAI,CAAC,kBAAkB;;UAElC,MAAM,CACN,IAAI,EACJ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAChB,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YACZ,MAAM,aAAa,GAAG;gBACpB,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,QAAQ;gBACnD,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,EAAE,CAAC,QAAQ;aACtB,CAAC;YAEF,MAAM,eAAe,GAAG;gBACtB,eAAe,EAAE,IAAI;gBACrB,OAAO,EAAE,EAAE,CAAC,QAAQ;aACrB,CAAC;YAEF,MAAM,SAAS,GACb,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC;gBAC5C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YAEf,OAAO,IAAI,CAAA;;wBAEC,QAAQ,CAAC,aAAa,CAAC;6BAClB,EAAE,CAAC,KAAK;sCACC,KAAK;;kBAEzB,IAAI,CAAC,SAAS;gBACd,CAAC,CAAC,IAAI,CAAA,eAAe,QAAQ,CAAC,eAAe,CAAC;oDACZ,SAAS,SAAS;gBACpD,CAAC,CAAC,SAAS;;aAEhB,CAAC;QACJ,CAAC,CACF;UACC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;;KAEnD,CAAC;IACJ,CAAC;IAES,wBAAwB,CAAC,WAAoB;QACrD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACnD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAA;gBACD,QAAQ,CAAC;gBACf,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,IAAI,CAAC,0BAA0B;aACxC,CAAC;oBACU,IAAI,CAAC,4BAA4B;;eAEtC,IAAI,CAAC,cAAc;YACtB,CAAC;QACT,CAAC;aAAM,CAAC;YACN,OAAO,WAAW;gBAChB,CAAC,CAAC,IAAI,CAAA,iCAAiC,IAAI,CAAC,iBAAiB;;gBAErD;gBACR,CAAC,CAAC,OAAO,CAAC;QACd,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,EAAC,WAAW,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEvD,OAAO,WAAW;YAChB,CAAC,CAAC,IAAI,CAAA,4BAA4B,WAAW,QAAQ;YACrD,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;IAES,iBAAiB;QACzB,OAAO,IAAI,CAAA,GAAG,OAAO,EAAE,CAAC;IAC1B,CAAC;IAEO,uBAAuB;QAC7B,QAAQ,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YACrC,KAAK,CAAC;gBACJ,OAAO,IAAI,CAAA;;UAET,CAAC;YACL,KAAK,CAAC;gBACJ,OAAO,IAAI,CAAA,wDAAwD,CAAC;YACtE;gBACE,OAAO,IAAI,CAAA;aACN,IAAI,CAAC,gBAAgB,CAAC,MAAM;UAC/B,CAAC;QACP,CAAC;IACH,CAAC;IAES,mBAAmB;QAC3B,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,QAAQ;gBACN,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;oBACtB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;oBACnD,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;QAED,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,OAAO;;;;;;mBAMhD,QAAQ;mBACR,IAAI,CAAC,qBAAqB;kBAC3B,IAAI,CAAC,oBAAoB;mBACxB,IAAI,CAAC,qBAAqB;mBAC1B,IAAI,CAAC,qBAAqB;;;;;mBAK1B,IAAI,CAAC,sBAAsB;qBACzB,IAAI,CAAC,wBAAwB;;YAEtC,eAAe;;;KAGtB,CAAC;IACJ,CAAC;IAES,uBAAuB;QAC/B,OAAO,IAAI,CAAA,GAAG,OAAO,EAAE,CAAC;IAC1B,CAAC;IAEO,eAAe;QACrB,MAAM,OAAO,GAAG,QAAQ,CAAC;YACvB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI,CAAC,SAAS;SACzB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAA;mBACI,OAAO;UAChB,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,OAAO;UAC/D,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,uBAAuB,EAAE;UACvD,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,OAAO;;KAEpE,CAAC;IACJ,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAA;4CAC6B,IAAI,CAAC,aAAa;QACtD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE;QACrE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,OAAO;KAC/C,CAAC;IACJ,CAAC;CACF;AA51BU;IADR,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAC,CAAC;sDACpC;AAGhC;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;mDACvB;AAMlB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;kDACxB;AAMjB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;gDAcxC;AAUD;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;iDACzB;AAahB;IADC,QAAQ,EAAE;8CAkBV;AASD;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;iDACzB;AAMhB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;8CAC5B;AAOb;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC;+CAGvB;AAiBD;IADC,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;kDACY;AAI7B;IADR,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;kDACnC;AAMd;IAJP,qBAAqB,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,eAAe;KAC1B,CAAC;0DACwC;AAsChC;IADT,KAAK,EAAE;sDACoB;AAGlB;IADT,KAAK,EAAE;6DAC2B;AAGzB;IADT,KAAK,EAAE;iDACkC;AAG1C;IADC,KAAK,EAAE;wDAWP;AAGS;IADT,KAAK,EAAE;wDACsB;AAGpB;IADT,KAAK,EAAE;wDACsB;AAGpB;IADT,KAAK,EAAE;0DACkC;AAGhC;IADT,KAAK,EAAE;kDACkC;AAGhC;IADT,KAAK,EAAE;gDACc;AAGZ;IADT,KAAK,EAAE;iDACyB;AAGvB;IADT,KAAK,EAAE;wDACqB;AAGnB;IADT,KAAK,EAAE;oEACqC;AAGrC;IADP,KAAK,EAAE;0DACyB;AAGzB;IADP,KAAK,CAAC,UAAU,CAAC;sDACsB","sourcesContent":["import {html, render, nothing, TemplateResult, PropertyValues} from 'lit';\nimport {property, query, queryAssignedElements, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {repeat} from 'lit/directives/repeat.js';\nimport '../../vscode-button/index.js';\nimport '../../vscode-option/index.js';\nimport {VscodeOption} from '../../vscode-option/index.js';\nimport type {InternalOption, Option, SearchMethod} from './types.js';\nimport {\n filterOptionsByPattern,\n findNextSelectableOptionIndex,\n findPrevSelectableOptionIndex,\n highlightRanges,\n} from './helpers.js';\nimport {VscElement} from '../VscElement.js';\nimport {chevronDownIcon} from './template-elements.js';\n\nconst VISIBLE_OPTS = 10;\nconst OPT_HEIGHT = 22;\n\n/**\n * @cssprop --dropdown-z-index - workaround for dropdown z-index issues\n */\nexport class VscodeSelectBase extends VscElement {\n /** @internal */\n @property({type: String, reflect: true, attribute: 'aria-expanded'})\n override ariaExpanded = 'false';\n\n @property({type: Boolean, reflect: true})\n creatable = false;\n\n /**\n * Options can be filtered by typing into a text input field.\n */\n @property({type: Boolean, reflect: true})\n combobox = false;\n\n /**\n * The element cannot be used and is not focusable.\n */\n @property({type: Boolean, reflect: true})\n set disabled(newState: boolean) {\n this._disabled = newState;\n this.ariaDisabled = newState ? 'true' : 'false';\n\n if (newState === true) {\n this._originalTabIndex = this.tabIndex;\n this.tabIndex = -1;\n } else {\n this.tabIndex = this._originalTabIndex ?? 0;\n this._originalTabIndex = undefined;\n }\n\n this.requestUpdate();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Sets the invalid state manually.\n */\n @property({type: Boolean, reflect: true})\n invalid = false;\n\n /**\n * Search method in the filtered list within the combobox mode.\n *\n * - contains - The list item includes the searched pattern at any position.\n * - fuzzy - The list item contains the letters of the search pattern in the same order, but at any position.\n * - startsWith - The search pattern matches the beginning of the searched text.\n * - startsWithPerTerm - The search pattern matches the beginning of any word in the searched text.\n *\n * @default 'fuzzy'\n */\n @property()\n set filter(val: 'contains' | 'fuzzy' | 'startsWith' | 'startsWithPerTerm') {\n const validValues: SearchMethod[] = [\n 'contains',\n 'fuzzy',\n 'startsWith',\n 'startsWithPerTerm',\n ];\n\n if (validValues.includes(val as SearchMethod)) {\n this._filter = val as SearchMethod;\n } else {\n this._filter = 'fuzzy';\n console.warn(\n `[VSCode Webview Elements] Invalid filter: \"${val}\", fallback to default. Valid values are: \"contains\", \"fuzzy\", \"startsWith\", \"startsWithPerm\".`,\n this\n );\n }\n }\n get filter(): 'contains' | 'fuzzy' | 'startsWith' | 'startsWithPerTerm' {\n return this._filter;\n }\n\n /**\n * Its value is true when element is focused.\n */\n @property({type: Boolean, reflect: true})\n focused = false;\n\n /**\n * Toggle the dropdown visibility.\n */\n @property({type: Boolean, reflect: true})\n open = false;\n\n /**\n * @attr [options=[]]\n * @type {Option[]}\n */\n @property({type: Array})\n set options(opts: Option[]) {\n this._options = opts.map((op, index) => ({...op, index}));\n }\n get options(): Option[] {\n return this._options.map(\n ({label, value, description, selected, disabled}) => ({\n label,\n value,\n description,\n selected,\n disabled,\n })\n );\n }\n\n /**\n * Position of the options list when visible.\n */\n @property({reflect: true})\n position: 'above' | 'below' = 'below';\n\n /** @internal */\n @property({type: Number, attribute: true, reflect: true})\n override tabIndex = 0;\n\n @queryAssignedElements({\n flatten: true,\n selector: 'vscode-option',\n })\n private _assignedOptions!: VscodeOption[];\n\n constructor() {\n super();\n this.addEventListener('vsc-option-state-change', (ev) => {\n ev.stopPropagation();\n this._setStateFromSlottedElements();\n this.requestUpdate();\n });\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('keydown', this._onComponentKeyDown);\n this.addEventListener('focus', this._onComponentFocus);\n this.addEventListener('blur', this._onComponentBlur);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._onComponentKeyDown);\n this.removeEventListener('focus', this._onComponentFocus);\n this.removeEventListener('blur', this._onComponentBlur);\n }\n\n protected _firstUpdateCompleted = false;\n\n protected override firstUpdated(_changedProperties: PropertyValues): void {\n this._firstUpdateCompleted = true;\n }\n\n protected override willUpdate(changedProperties: PropertyValues): void {\n if (changedProperties.has('required') && this._firstUpdateCompleted) {\n this._manageRequired();\n }\n }\n\n @state()\n protected _activeIndex = -1;\n\n @state()\n protected _currentDescription = '';\n\n @state()\n protected _filter: SearchMethod = 'fuzzy';\n\n @state()\n protected get _filteredOptions(): InternalOption[] {\n if (!this.combobox || this._filterPattern === '') {\n return this._options;\n }\n\n return filterOptionsByPattern(\n this._options,\n this._filterPattern,\n this._filter\n );\n }\n\n @state()\n protected _filterPattern = '';\n\n @state()\n protected _selectedIndex = -1;\n\n @state()\n protected _selectedIndexes: number[] = [];\n\n @state()\n protected _options: InternalOption[] = [];\n\n @state()\n protected _value = '';\n\n @state()\n protected _values: string[] = [];\n\n @state()\n protected _listScrollTop = 0;\n\n @state()\n protected _isPlaceholderOptionActive = false;\n\n @state()\n private _isBeingFiltered = false;\n\n @query('.options')\n private _listElement!: HTMLUListElement;\n\n /** @internal */\n protected _multiple = false;\n\n /**\n * @internal\n * Quick-searchable map for searching a value in the options list.\n * Keys are the options values, values are the option indexes.\n */\n protected _valueOptionIndexMap: {[key: string]: number} = {};\n\n private _isHoverForbidden = false;\n private _disabled = false;\n private _originalTabIndex: number | undefined = undefined;\n\n protected get _currentOptions(): InternalOption[] {\n return this.combobox ? this._filteredOptions : this._options;\n }\n\n protected get _isSuggestedOptionVisible() {\n if (!(this.combobox && this.creatable)) {\n return false;\n }\n\n const filterPatternExistsAsOption =\n typeof this._valueOptionIndexMap[this._filterPattern] !== 'undefined';\n const filtered = this._filterPattern.length > 0;\n return !filterPatternExistsAsOption && filtered;\n }\n\n protected _manageRequired() {}\n\n protected _setStateFromSlottedElements() {\n const options: InternalOption[] = [];\n let nextIndex = 0;\n const optionElements = this._assignedOptions ?? [];\n const selectedIndexes: number[] = [];\n const values: string[] = [];\n this._valueOptionIndexMap = {};\n\n optionElements.forEach((el, i) => {\n const {innerText, description, disabled} = el;\n const value = typeof el.value === 'string' ? el.value : innerText.trim();\n const selected = el.selected ?? false;\n const op: InternalOption = {\n label: innerText.trim(),\n value,\n description,\n selected,\n index: nextIndex,\n disabled,\n };\n\n nextIndex = options.push(op);\n\n if (selected && !this._multiple) {\n this._activeIndex = i;\n }\n\n if (selected) {\n selectedIndexes.push(options.length - 1);\n values.push(value);\n }\n\n this._valueOptionIndexMap[op.value] = op.index;\n });\n\n this._options = options;\n\n if (selectedIndexes.length > 0) {\n this._selectedIndex = selectedIndexes[0];\n this._selectedIndexes = selectedIndexes;\n this._value = values[0];\n this._values = values;\n }\n\n if (!this._multiple && !this.combobox && selectedIndexes.length === 0) {\n this._selectedIndex = this._options.length > 0 ? 0 : -1;\n }\n }\n\n protected async _toggleDropdown(visible: boolean): Promise<void> {\n this.open = visible;\n this.ariaExpanded = String(visible);\n\n if (visible && !this._multiple) {\n this._activeIndex = this._selectedIndex;\n }\n\n if (visible && !this._multiple && !this.combobox) {\n this._activeIndex = this._selectedIndex;\n\n if (this._activeIndex > VISIBLE_OPTS - 1) {\n await this.updateComplete;\n\n this._listElement.scrollTop = Math.floor(\n this._activeIndex * OPT_HEIGHT\n );\n }\n }\n\n if (visible) {\n window.addEventListener('click', this._onClickOutside);\n } else {\n window.removeEventListener('click', this._onClickOutside);\n }\n }\n\n protected _createSuggestedOption() {\n const nextSelectedIndex = this._options.length;\n const op = document.createElement('vscode-option');\n op.value = this._filterPattern;\n render(this._filterPattern, op);\n this.appendChild(op);\n\n return nextSelectedIndex;\n }\n\n protected _dispatchChangeEvent(): void {\n if (!this._multiple) {\n /** @deprecated */\n this.dispatchEvent(\n new CustomEvent('vsc-change', {\n detail: {\n selectedIndex: this._selectedIndex,\n value: this._value,\n },\n })\n );\n } else {\n /** @deprecated */\n this.dispatchEvent(\n new CustomEvent('vsc-change', {\n detail: {\n selectedIndexes: this._selectedIndexes,\n value: this._values,\n },\n })\n );\n }\n this.dispatchEvent(new Event('change'));\n this.dispatchEvent(new Event('input'));\n }\n\n protected async _createAndSelectSuggestedOption() {}\n\n protected _onFaceClick(): void {\n this._toggleDropdown(!this.open);\n\n if (this._multiple) {\n this._activeIndex = 0;\n }\n }\n\n private _onClickOutside = (event: MouseEvent): void => {\n const path = event.composedPath();\n const found = path.findIndex((et) => et === this);\n\n if (found === -1) {\n this._toggleDropdown(false);\n window.removeEventListener('click', this._onClickOutside);\n }\n };\n\n private _onMouseMove = () => {\n this._isHoverForbidden = false;\n window.removeEventListener('mousemove', this._onMouseMove);\n };\n\n private _toggleComboboxDropdown() {\n this._filterPattern = '';\n this._toggleDropdown(!this.open);\n\n if (this._multiple) {\n this._activeIndex = -1;\n }\n }\n\n protected _onComboboxButtonClick(): void {\n this._toggleComboboxDropdown();\n }\n\n protected _onComboboxButtonKeyDown(ev: KeyboardEvent): void {\n if (ev.key === 'Enter') {\n this._toggleComboboxDropdown();\n }\n }\n\n protected _onOptionMouseOver(ev: MouseEvent): void {\n if (this._isHoverForbidden) {\n return;\n }\n\n const el = ev.target as HTMLElement;\n\n if (!el.matches('.option')) {\n return;\n }\n\n if (el.matches('.placeholder')) {\n this._isPlaceholderOptionActive = true;\n this._activeIndex = -1;\n } else {\n this._isPlaceholderOptionActive = false;\n this._activeIndex = Number(\n this.combobox ? el.dataset.filteredIndex : el.dataset.index\n );\n }\n }\n\n protected _onPlaceholderOptionMouseOut() {\n this._isPlaceholderOptionActive = false;\n }\n\n protected _onNoOptionsClick(ev: MouseEvent) {\n ev.stopPropagation();\n }\n\n protected _onEnterKeyDown(ev: KeyboardEvent): void {\n this._isBeingFiltered = false;\n const clickedOnAcceptButton = ev?.composedPath\n ? ev\n .composedPath()\n .find((el) =>\n (el as HTMLElement).matches\n ? (el as HTMLElement).matches('vscode-button.button-accept')\n : false\n )\n : false;\n\n if (clickedOnAcceptButton) {\n return;\n }\n\n const list = this.combobox ? this._filteredOptions : this._options;\n const showDropdownNext = !this.open;\n\n this._toggleDropdown(showDropdownNext);\n\n if (\n !this._multiple &&\n !showDropdownNext &&\n this._selectedIndex !== this._activeIndex\n ) {\n this._selectedIndex =\n this._activeIndex > -1 ? list[this._activeIndex].index : -1;\n this._value =\n this._selectedIndex > -1\n ? this._options[this._selectedIndex].value\n : '';\n this._dispatchChangeEvent();\n }\n\n if (this.combobox) {\n if (this._isPlaceholderOptionActive) {\n this._createAndSelectSuggestedOption();\n } else {\n if (!this._multiple && !showDropdownNext) {\n this._selectedIndex =\n this._activeIndex > -1\n ? this._filteredOptions[this._activeIndex].index\n : -1;\n }\n\n if (!this._multiple && showDropdownNext) {\n this.updateComplete.then(() => {\n this._scrollActiveElementToTop();\n });\n }\n }\n }\n\n if (this._multiple && showDropdownNext) {\n this._activeIndex = 0;\n }\n }\n\n private _onSpaceKeyDown() {\n if (!this.open) {\n this._toggleDropdown(true);\n return;\n }\n\n if (this.open && this._multiple && this._activeIndex > -1) {\n const opts = this.combobox ? this._filteredOptions : this._options;\n const selectedOption = opts[this._activeIndex];\n const nextSelectedIndexes: number[] = [];\n\n this._options[selectedOption.index].selected = !selectedOption.selected;\n\n opts.forEach(({index}) => {\n const {selected} = this._options[index];\n\n if (selected) {\n nextSelectedIndexes.push(index);\n }\n });\n\n this._selectedIndexes = nextSelectedIndexes;\n }\n }\n\n private _scrollActiveElementToTop() {\n this._listElement.scrollTop = Math.floor(this._activeIndex * OPT_HEIGHT);\n }\n\n private async _adjustOptionListScrollPos(\n direction: 'down' | 'up',\n optionIndex: number\n ) {\n let numOpts = this.combobox\n ? this._filteredOptions.length\n : this._options.length;\n const suggestedOptionVisible = this._isSuggestedOptionVisible;\n\n if (suggestedOptionVisible) {\n numOpts += 1;\n }\n\n if (numOpts <= VISIBLE_OPTS) {\n return;\n }\n\n this._isHoverForbidden = true;\n window.addEventListener('mousemove', this._onMouseMove);\n\n const ulScrollTop = this._listElement.scrollTop;\n const liPosY = optionIndex * OPT_HEIGHT;\n\n const fullyVisible =\n liPosY >= ulScrollTop &&\n liPosY <= ulScrollTop + VISIBLE_OPTS * OPT_HEIGHT - OPT_HEIGHT;\n\n if (direction === 'down') {\n if (!fullyVisible) {\n this._listElement.scrollTop =\n optionIndex * OPT_HEIGHT - (VISIBLE_OPTS - 1) * OPT_HEIGHT;\n }\n }\n\n if (direction === 'up') {\n if (!fullyVisible) {\n this._listElement.scrollTop = Math.floor(\n this._activeIndex * OPT_HEIGHT\n );\n }\n }\n }\n\n protected _onArrowUpKeyDown(): void {\n if (this.open) {\n if (this._activeIndex <= 0 && !(this.combobox && this.creatable)) {\n return;\n }\n\n if (this._isPlaceholderOptionActive) {\n const optionIndex = this._currentOptions.length - 1;\n this._activeIndex = optionIndex;\n this._isPlaceholderOptionActive = false;\n } else {\n const currentOptions = this.combobox\n ? this._filteredOptions\n : this._options;\n\n const prevSelectable = findPrevSelectableOptionIndex(\n currentOptions,\n this._activeIndex\n );\n\n if (prevSelectable > -1) {\n this._activeIndex = prevSelectable;\n this._adjustOptionListScrollPos('up', prevSelectable);\n }\n }\n }\n }\n\n protected _onArrowDownKeyDown(): void {\n let numOpts = this.combobox\n ? this._filteredOptions.length\n : this._options.length;\n const currentOptions = this.combobox\n ? this._filteredOptions\n : this._options;\n const suggestedOptionVisible = this._isSuggestedOptionVisible;\n\n if (suggestedOptionVisible) {\n numOpts += 1;\n }\n\n if (this.open) {\n if (this._isPlaceholderOptionActive && this._activeIndex === -1) {\n return;\n }\n\n if (suggestedOptionVisible && this._activeIndex === numOpts - 2) {\n this._isPlaceholderOptionActive = true;\n this._adjustOptionListScrollPos('down', numOpts - 1);\n this._activeIndex = -1;\n } else if (this._activeIndex < numOpts - 1) {\n const nextSelectable = findNextSelectableOptionIndex(\n currentOptions,\n this._activeIndex\n );\n\n if (nextSelectable > -1) {\n this._activeIndex = nextSelectable;\n this._adjustOptionListScrollPos('down', nextSelectable);\n }\n }\n }\n }\n\n private _onComponentKeyDown = (event: KeyboardEvent) => {\n if ([' ', 'ArrowUp', 'ArrowDown', 'Escape'].includes(event.key)) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n if (event.key === 'Enter') {\n this._onEnterKeyDown(event);\n }\n\n if (event.key === ' ') {\n this._onSpaceKeyDown();\n }\n\n if (event.key === 'Escape') {\n this._toggleDropdown(false);\n }\n\n if (event.key === 'ArrowUp') {\n this._onArrowUpKeyDown();\n }\n\n if (event.key === 'ArrowDown') {\n this._onArrowDownKeyDown();\n }\n };\n\n private _onComponentFocus = () => {\n this.focused = true;\n };\n\n private _onComponentBlur = () => {\n this.focused = false;\n };\n\n protected _onSlotChange(): void {\n this._setStateFromSlottedElements();\n this.requestUpdate();\n }\n\n protected _onComboboxInputFocus(ev: FocusEvent): void {\n (ev.target as HTMLInputElement).select();\n this._isBeingFiltered = false;\n this._filterPattern = '';\n }\n\n protected _onComboboxInputBlur() {\n this._isBeingFiltered = false;\n }\n\n protected _onComboboxInputInput(ev: InputEvent): void {\n this._isBeingFiltered = true;\n this._filterPattern = (ev.target as HTMLInputElement).value;\n this._activeIndex = -1;\n this._toggleDropdown(true);\n }\n\n protected _onComboboxInputClick(): void {\n this._isBeingFiltered = this._filterPattern !== '';\n this._toggleDropdown(true);\n }\n\n protected _onOptionClick(_ev: MouseEvent) {\n this._isBeingFiltered = false;\n return;\n }\n\n protected _renderOptions(): TemplateResult | TemplateResult[] {\n const list = this.combobox ? this._filteredOptions : this._options;\n\n return html`\n <ul\n class=\"options\"\n @click=${this._onOptionClick}\n @mouseover=${this._onOptionMouseOver}\n >\n ${repeat(\n list,\n (op) => op.index,\n (op, index) => {\n const optionClasses = {\n active: index === this._activeIndex && !op.disabled,\n disabled: op.disabled,\n option: true,\n selected: op.selected,\n };\n\n const checkboxClasses = {\n 'checkbox-icon': true,\n checked: op.selected,\n };\n\n const labelText =\n (op.ranges?.length ?? 0 > 0)\n ? highlightRanges(op.label, op.ranges ?? [])\n : op.label;\n\n return html`\n <li\n class=${classMap(optionClasses)}\n data-index=${op.index}\n data-filtered-index=${index}\n >\n ${this._multiple\n ? html`<span class=${classMap(checkboxClasses)}></span\n ><span class=\"option-label\">${labelText}</span>`\n : labelText}\n </li>\n `;\n }\n )}\n ${this._renderPlaceholderOption(list.length < 1)}\n </ul>\n `;\n }\n\n protected _renderPlaceholderOption(isListEmpty: boolean) {\n if (!this.combobox) {\n return nothing;\n }\n\n if (this._valueOptionIndexMap[this._filterPattern]) {\n return nothing;\n }\n\n if (this.creatable && this._filterPattern.length > 0) {\n return html`<li\n class=${classMap({\n option: true,\n placeholder: true,\n active: this._isPlaceholderOptionActive,\n })}\n @mouseout=${this._onPlaceholderOptionMouseOut}\n >\n Add \"${this._filterPattern}\"\n </li>`;\n } else {\n return isListEmpty\n ? html`<li class=\"no-options\" @click=${this._onNoOptionsClick}>\n No options\n </li>`\n : nothing;\n }\n }\n\n private _renderDescription() {\n if (!this._options[this._activeIndex]) {\n return nothing;\n }\n\n const {description} = this._options[this._activeIndex];\n\n return description\n ? html`<div class=\"description\">${description}</div>`\n : nothing;\n }\n\n protected _renderSelectFace(): TemplateResult {\n return html`${nothing}`;\n }\n\n private _renderMultiSelectLabel() {\n switch (this._selectedIndexes.length) {\n case 0:\n return html`<span class=\"select-face-badge no-item\"\n >No items selected</span\n >`;\n case 1:\n return html`<span class=\"select-face-badge\">1 item selected</span>`;\n default:\n return html`<span class=\"select-face-badge\"\n >${this._selectedIndexes.length} items selected</span\n >`;\n }\n }\n\n protected _renderComboboxFace(): TemplateResult {\n let inputVal = '';\n\n if (this._isBeingFiltered) {\n inputVal = this._filterPattern;\n } else {\n inputVal =\n this._selectedIndex > -1\n ? (this._options[this._selectedIndex]?.label ?? '')\n : '';\n }\n\n return html`\n <div class=\"combobox-face face\">\n ${this._multiple ? this._renderMultiSelectLabel() : nothing}\n <input\n class=\"combobox-input\"\n spellcheck=\"false\"\n type=\"text\"\n autocomplete=\"off\"\n .value=${inputVal}\n @focus=${this._onComboboxInputFocus}\n @blur=${this._onComboboxInputBlur}\n @input=${this._onComboboxInputInput}\n @click=${this._onComboboxInputClick}\n >\n <button\n class=\"combobox-button\"\n type=\"button\"\n @click=${this._onComboboxButtonClick}\n @keydown=${this._onComboboxButtonKeyDown}\n >\n ${chevronDownIcon}\n </button>\n </div>\n `;\n }\n\n protected _renderDropdownControls(): TemplateResult {\n return html`${nothing}`;\n }\n\n private _renderDropdown() {\n const classes = classMap({\n dropdown: true,\n multiple: this._multiple,\n });\n\n return html`\n <div class=${classes}>\n ${this.position === 'above' ? this._renderDescription() : nothing}\n ${this._renderOptions()} ${this._renderDropdownControls()}\n ${this.position === 'below' ? this._renderDescription() : nothing}\n </div>\n `;\n }\n\n override render(): TemplateResult {\n return html`\n <slot class=\"main-slot\" @slotchange=${this._onSlotChange}></slot>\n ${this.combobox ? this._renderComboboxFace() : this._renderSelectFace()}\n ${this.open ? this._renderDropdown() : nothing}\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-select-base.js","sourceRoot":"","sources":["../../../src/includes/vscode-select/vscode-select-base.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAiC,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAC,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAC,IAAI,EAAC,MAAM,wBAAwB,CAAC;AAC5C,OAAO,8BAA8B,CAAC;AACtC,OAAO,8BAA8B,CAAC;AAEtC,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,sBAAsB,EAAE,eAAe,EAAC,MAAM,cAAc,CAAC;AAErE,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,8CAA8C,CAAC;AAEtD,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAI9C;;OAEG;IAEH,IAAI,QAAQ,CAAC,OAAgB;QAC3B,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC;IACpC,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;IACjC,CAAC;IASD;;OAEG;IAEH,IAAI,QAAQ,CAAC,QAAiB;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAEhD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAQD;;;;;;;;;OASG;IAEH,IAAI,MAAM,CAAC,GAA8D;QACvE,MAAM,WAAW,GAAmB;YAClC,UAAU;YACV,OAAO;YACP,YAAY;YACZ,mBAAmB;SACpB,CAAC;QAEF,IAAI,EAAgB,CAAC;QAErB,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAmB,CAAC,EAAE,CAAC;YAC9C,sCAAsC;YACtC,EAAE,GAAG,GAAG,CAAC;QACX,CAAC;aAAM,CAAC;YACN,0BAA0B;YAC1B,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,8CAA8C,GAAG,gGAAgG,EACjJ,IAAI,CACL,CAAC;YACF,EAAE,GAAG,OAAO,CAAC;QACf,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;IACjC,CAAC;IAcD;;;OAGG;IAEH,IAAI,OAAO,CAAC,IAAc;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAC3B,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAC,EAAE,EAAE,CAAC,CAAC;YACpD,KAAK;YACL,KAAK;YACL,WAAW;YACX,QAAQ;YACR,QAAQ;SACT,CAAC,CACH,CAAC;IACJ,CAAC;IAgBD;QACE,KAAK,EAAE,CAAC;QAxIV,cAAS,GAAG,KAAK,CAAC;QAalB;;;WAGG;QAEH,UAAK,GAAG,EAAE,CAAC;QAyBX;;WAEG;QAEH,YAAO,GAAG,KAAK,CAAC;QA0ChB;;WAEG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;WAEG;QAEH,SAAI,GAAG,KAAK,CAAC;QAsBb;;WAEG;QAEH,aAAQ,GAAsB,OAAO,CAAC;QAQ5B,UAAK,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;QA0BvC,0BAAqB,GAAG,KAAK,CAAC;QA4B9B,wBAAmB,GAAG,EAAE,CAAC;QAGzB,YAAO,GAAiB,OAAO,CAAC;QAgBhC,qBAAgB,GAAa,EAAE,CAAC;QAGhC,aAAQ,GAAqB,EAAE,CAAC;QAGhC,WAAM,GAAG,EAAE,CAAC;QAGZ,YAAO,GAAa,EAAE,CAAC;QAGvB,+BAA0B,GAAG,KAAK,CAAC;QAGnC,qBAAgB,GAAG,KAAK,CAAC;QAGzB,yBAAoB,GAAG,CAAC,CAAC;QAE3B,sBAAiB,GAAG,KAAK,CAAC;QAC1B,cAAS,GAAG,KAAK,CAAC;QAClB,sBAAiB,GAAuB,SAAS,CAAC;QAmIlD,oBAAe,GAAG,CAAC,KAAiB,EAAQ,EAAE;YACpD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;YAElD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;QAEM,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,CAAC,CAAC;QAYM,wBAAmB,GAAG,CAAC,EAAuB,EAAE,EAAE;YACxD,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,MAAM,CAAC;QACxC,CAAC,CAAC;QAuHM,wBAAmB,GAAG,CAAC,KAAoB,EAAE,EAAE;YACrD,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChE,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;QAEM,sBAAiB,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC;QAEM,qBAAgB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC,CAAC;QAhZA,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,CAAC,EAAE,EAAE,EAAE;YACtD,EAAE,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAEQ,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEQ,oBAAoB;QAC3B,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC9D,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1D,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC1D,CAAC;IAIkB,YAAY,CAAC,kBAAkC;QAChE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACpC,CAAC;IAEkB,UAAU,CAAC,iBAAiC;QAC7D,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACpE,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAEkB,MAAM,CAAC,iBAAiC;QACzD,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEhC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;gBAC7B,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBAEjC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IASD,IAAc,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,EAAE,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;QAED,OAAO,sBAAsB,CAC3B,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,KAAK,CAAC,aAAa,EACxB,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IA2BO,aAAa;QACnB,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpB,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;oBAC5B,IAAI,CAAC,UAAU;wBACb,EAAE,aAAa,CAAmB,iBAAiB,CAAE;yBACpD,KAAK,EAAE,CAAC;gBACb,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;oBAC5B,IAAI,CAAC,UAAU;wBACb,EAAE,aAAa,CAAmB,cAAc,CAAE;yBACjD,KAAK,EAAE,CAAC;gBACb,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAc,yBAAyB;QACrC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,2BAA2B,GAC/B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QACrD,OAAO,CAAC,2BAA2B,IAAI,QAAQ,CAAC;IAClD,CAAC;IAES,eAAe,KAAI,CAAC;IAEpB,4BAA4B;QACpC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEnB,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YAC5B,MAAM,EAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAC,GAAG,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACzE,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAC;YACtC,MAAM,EAAE,GAAW;gBACjB,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE;gBACvB,KAAK;gBACL,WAAW;gBACX,QAAQ;gBACR,QAAQ;aACT,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAES,sBAAsB;QAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAChD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QACnD,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAErB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAES,oBAAoB;QAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,CAAC;IAES,KAAK,CAAC,+BAA+B,KAAI,CAAC;IAE1C,uBAAuB;QAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB,CAAC;IAES,yBAAyB;QACjC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CACpC,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,UAAU,CAC5C,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACtC,SAAwB,EACxB,WAAmB;QAEnB,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAC7C,MAAM,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,CAAC;QAE9D,IAAI,sBAAsB,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;QAED,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAExD,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC9C,MAAM,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;QAExC,MAAM,YAAY,GAChB,MAAM,IAAI,WAAW;YACrB,MAAM,IAAI,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;QAEjE,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC,oBAAoB;oBACvB,WAAW,GAAG,UAAU,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CACpC,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,UAAU,CAC5C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,wBAAwB;IACd,YAAY;QACpB,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB,CAAC;IAgBS,sBAAsB;QAC9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAES,wBAAwB,CAAC,EAAiB;QAClD,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAMS,kBAAkB,CAAC,EAAc;QACzC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,CAAC,MAAqB,CAAC;QAEpC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAM,CAAC;QAC9C,CAAC;IACH,CAAC;IAES,4BAA4B;QACpC,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;IAC1C,CAAC;IAES,iBAAiB,CAAC,EAAc;QACxC,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC;IAES,eAAe,CAAC,EAAiB;QACzC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,MAAM,qBAAqB,GAAG,EAAE,EAAE,YAAY;YAC5C,CAAC,CAAC,EAAE;iBACC,YAAY,EAAE;iBACd,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CACV,EAAkB,CAAC,OAAO;gBACzB,CAAC,CAAE,EAAkB,CAAC,OAAO,CAAC,6BAA6B,CAAC;gBAC5D,CAAC,CAAC,KAAK,CACV;YACL,CAAC,CAAC,KAAK,CAAC;QAEV,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,OAAO;QACT,CAAC;IACH,CAAC;IAES,iBAAiB;QACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtE,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBACpC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;gBACvD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;gBACrC,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAEjC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;oBAC7C,MAAM,mBAAmB,GAAG,MAAM,EAAE,aAAa,IAAI,CAAC,CAAC,CAAC;oBAExD,IAAI,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC;wBAC7B,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAES,mBAAmB;QAC3B,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAC7C,MAAM,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,CAAC;QAE9D,IAAI,sBAAsB,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,0BAA0B,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;gBACrE,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAEjC,IAAI,sBAAsB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC9C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;gBACvC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC3B,MAAM,mBAAmB,GAAG,MAAM,EAAE,aAAa,IAAI,CAAC,CAAC,CAAC;gBACxD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;gBAE7C,IAAI,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC7B,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAqCS,aAAa;QACrB,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAES,qBAAqB,CAAC,EAAc;QAC3C,EAAE,CAAC,MAA2B,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;IAChC,CAAC;IAES,oBAAoB;QAC5B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAChC,CAAC;IAES,qBAAqB,CAAC,EAAc;QAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,GAAI,EAAE,CAAC,MAA2B,CAAC,KAAK,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAES,qBAAqB;QAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAES,4BAA4B,CAAC,EAAiB;QACtD,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACnB,EAAE,CAAC,eAAe,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAES,cAAc,CAAC,GAAe;QACtC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,OAAO;IACT,CAAC;IACD,YAAY;IAEZ,0BAA0B;IAClB,eAAe,CACrB,OAAgB,EAChB,KAAiD;QAEjD,MAAM,eAAe,GAAG;YACtB,eAAe,EAAE,IAAI;YACrB,OAAO;SACR,CAAC;QAEF,OAAO,IAAI,CAAA,eAAe,QAAQ,CAAC,eAAe,CAAC,IAAI,SAAS;oCAChC,KAAK,SAAS,CAAC;IACjD,CAAC;IAES,cAAc;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAEhC,OAAO,IAAI,CAAA;;qBAEM,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;+BACxB,SAAS,CAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAC5C;;;;;iBAKQ,IAAI,CAAC,cAAc;qBACf,IAAI,CAAC,kBAAkB;;UAElC,MAAM,CACN,IAAI,EACJ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAChB,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YACZ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;gBAChB,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;YACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAEzD,MAAM,aAAa,GAAG;gBACpB,MAAM;gBACN,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,MAAM,EAAE,IAAI;gBACZ,QAAQ;aACT,CAAC;YAEF,MAAM,SAAS,GACb,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC;gBAC5C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YAEf,OAAO,IAAI,CAAA;;gCAES,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;wBACnC,QAAQ,CAAC,aAAa,CAAC;6BAClB,EAAE,CAAC,KAAK;sCACC,KAAK;qBACtB,MAAM,EAAE,CAAC,KAAK,EAAE;;;;kBAInB,IAAI,CACJ,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,EAC/C,GAAG,EAAE,CAAC,SAAS,CAChB;;aAEJ,CAAC;QACJ,CAAC,CACF;UACC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;;KAEtE,CAAC;IACJ,CAAC;IAES,wBAAwB,CAAC,WAAoB;QACrD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE1E,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAA;gBACD,QAAQ,CAAC;gBACf,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,IAAI,CAAC,0BAA0B;aACxC,CAAC;oBACU,IAAI,CAAC,4BAA4B;;eAEtC,IAAI,CAAC,KAAK,CAAC,aAAa;YAC3B,CAAC;QACT,CAAC;aAAM,CAAC;YACN,OAAO,WAAW;gBAChB,CAAC,CAAC,IAAI,CAAA,iCAAiC,IAAI,CAAC,iBAAiB;;gBAErD;gBACR,CAAC,CAAC,OAAO,CAAC;QACd,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAExC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,EAAC,WAAW,EAAC,GAAG,EAAE,CAAC;QAEzB,OAAO,WAAW;YAChB,CAAC,CAAC,IAAI,CAAA,4BAA4B,WAAW,QAAQ;YACrD,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;IAES,iBAAiB;QACzB,OAAO,IAAI,CAAA,GAAG,OAAO,EAAE,CAAC;IAC1B,CAAC;IAES,mBAAmB;QAC3B,OAAO,IAAI,CAAA,GAAG,OAAO,EAAE,CAAC;IAC1B,CAAC;IAES,uBAAuB;QAC/B,OAAO,IAAI,CAAA,GAAG,OAAO,EAAE,CAAC;IAC1B,CAAC;IAES,eAAe;QACvB,MAAM,OAAO,GAAG;YACd,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;QAEF,MAAM,cAAc,GAClB,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC;YACpE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC;YACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAErC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAC/B,cAAc,GAAG,UAAU,EAC3B,YAAY,GAAG,UAAU,CAC1B,CAAC;QAEF,OAAO,IAAI,CAAA;mBACI,QAAQ,CAAC,OAAO,CAAC;UAC1B,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,OAAO;;;;;;mCAMtC,IAAI,CAAC,mBAAmB;uBACpC,IAAI,CAAC,oBAAoB;mBAC7B,gBAAgB,CAAC;YACxB,MAAM,EAAE,GAAG,gBAAgB,IAAI;SAChC,CAAC;;YAEA,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,uBAAuB,EAAE;;UAEzD,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,OAAO;;KAEpE,CAAC;IACJ,CAAC;CAEF;AA9uBC;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;mDACvB;AAMlB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;gDAGxC;AAUD;IADC,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;+CACf;AAMX;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;gDAcxC;AAUD;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;iDACzB;AAahB;IADC,QAAQ,EAAE;8CAyBV;AASD;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;iDACzB;AAMhB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;8CAC5B;AAOb;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC;+CAGvB;AAiBD;IADC,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;kDACY;AAM9B;IAJP,qBAAqB,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,eAAe;KAC1B,CAAC;0DACwC;AAwDhC;IADT,KAAK,EAAE;6DAC2B;AAGzB;IADT,KAAK,EAAE;iDACkC;AAG1C;IADC,KAAK,EAAE;wDAWP;AAGS;IADT,KAAK,EAAE;0DACkC;AAGhC;IADT,KAAK,EAAE;kDACkC;AAGhC;IADT,KAAK,EAAE;gDACc;AAGZ;IADT,KAAK,EAAE;iDACyB;AAGvB;IADT,KAAK,EAAE;oEACqC;AAGnC;IADT,KAAK,EAAE;0DAC2B;AAGzB;IADT,KAAK,EAAE;8DAC2B","sourcesContent":["import {html, render, nothing, TemplateResult, PropertyValues} from 'lit';\nimport {property, queryAssignedElements, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport {repeat} from 'lit/directives/repeat.js';\nimport {when} from 'lit/directives/when.js';\nimport '../../vscode-button/index.js';\nimport '../../vscode-option/index.js';\nimport {VscodeOption} from '../../vscode-option/index.js';\nimport {stylePropertyMap} from '../style-property-map.js';\nimport {VscElement} from '../VscElement.js';\nimport {filterOptionsByPattern, highlightRanges} from './helpers.js';\nimport type {InternalOption, Option, FilterMethod} from './types.js';\nimport {OptionListController} from './OptionListController.js';\nimport {checkIcon} from './template-elements.js';\nimport '../../vscode-scrollable/vscode-scrollable.js';\n\nexport const VISIBLE_OPTS = 10;\nexport const OPT_HEIGHT = 22;\n\n/**\n * @cssprop --dropdown-z-index - workaround for dropdown z-index issues\n */\nexport class VscodeSelectBase extends VscElement {\n @property({type: Boolean, reflect: true})\n creatable = false;\n\n /**\n * Options can be filtered by typing into a text input field.\n */\n @property({type: Boolean, reflect: true})\n set combobox(enabled: boolean) {\n this._opts.comboboxMode = enabled;\n }\n get combobox() {\n return this._opts.comboboxMode;\n }\n\n /**\n * Accessible label for screen readers. When a `<vscode-label>` is connected\n * to the component, it will be filled automatically.\n */\n @property({reflect: true})\n label = '';\n\n /**\n * The element cannot be used and is not focusable.\n */\n @property({type: Boolean, reflect: true})\n set disabled(newState: boolean) {\n this._disabled = newState;\n this.ariaDisabled = newState ? 'true' : 'false';\n\n if (newState === true) {\n this._originalTabIndex = this.tabIndex;\n this.tabIndex = -1;\n } else {\n this.tabIndex = this._originalTabIndex ?? 0;\n this._originalTabIndex = undefined;\n }\n\n this.requestUpdate();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Sets the invalid state manually.\n */\n @property({type: Boolean, reflect: true})\n invalid = false;\n\n /**\n * Search method in the filtered list within the combobox mode.\n *\n * - contains - The list item includes the searched pattern at any position.\n * - fuzzy - The list item contains the letters of the search pattern in the same order, but at any position.\n * - startsWith - The search pattern matches the beginning of the searched text.\n * - startsWithPerTerm - The search pattern matches the beginning of any word in the searched text.\n *\n * @default 'fuzzy'\n */\n @property()\n set filter(val: 'contains' | 'fuzzy' | 'startsWith' | 'startsWithPerTerm') {\n const validValues: FilterMethod[] = [\n 'contains',\n 'fuzzy',\n 'startsWith',\n 'startsWithPerTerm',\n ];\n\n let fm: FilterMethod;\n\n if (validValues.includes(val as FilterMethod)) {\n // this._filter = val as FilterMethod;\n fm = val;\n } else {\n // this._filter = 'fuzzy';\n // eslint-disable-next-line no-console\n console.warn(\n `[VSCode Webview Elements] Invalid filter: \"${val}\", fallback to default. Valid values are: \"contains\", \"fuzzy\", \"startsWith\", \"startsWithPerm\".`,\n this\n );\n fm = 'fuzzy';\n }\n\n this._opts.filterMethod = fm;\n }\n get filter(): 'contains' | 'fuzzy' | 'startsWith' | 'startsWithPerTerm' {\n return this._opts.filterMethod;\n }\n\n /**\n * Its value is true when element is focused.\n */\n @property({type: Boolean, reflect: true})\n focused = false;\n\n /**\n * Toggle the dropdown visibility.\n */\n @property({type: Boolean, reflect: true})\n open = false;\n\n /**\n * @attr [options=[]]\n * @type {Option[]}\n */\n @property({type: Array})\n set options(opts: Option[]) {\n this._opts.populate(opts);\n }\n get options(): Option[] {\n return this._opts.options.map(\n ({label, value, description, selected, disabled}) => ({\n label,\n value,\n description,\n selected,\n disabled,\n })\n );\n }\n\n /**\n * Position of the options list when visible.\n */\n @property({reflect: true})\n position: 'above' | 'below' = 'below';\n\n @queryAssignedElements({\n flatten: true,\n selector: 'vscode-option',\n })\n private _assignedOptions!: VscodeOption[];\n\n protected _opts = new OptionListController(this);\n\n constructor() {\n super();\n this.addEventListener('vsc-option-state-change', (ev) => {\n ev.stopPropagation();\n this._setStateFromSlottedElements();\n this.requestUpdate();\n });\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('keydown', this._onComponentKeyDown);\n this.addEventListener('focus', this._onComponentFocus);\n this.addEventListener('blur', this._onComponentBlur);\n this._setAutoFocus();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._onComponentKeyDown);\n this.removeEventListener('focus', this._onComponentFocus);\n this.removeEventListener('blur', this._onComponentBlur);\n }\n\n protected _firstUpdateCompleted = false;\n\n protected override firstUpdated(_changedProperties: PropertyValues): void {\n this._firstUpdateCompleted = true;\n }\n\n protected override willUpdate(changedProperties: PropertyValues): void {\n if (changedProperties.has('required') && this._firstUpdateCompleted) {\n this._manageRequired();\n }\n }\n\n protected override update(changedProperties: PropertyValues) {\n super.update(changedProperties);\n\n if (changedProperties.has('open')) {\n if (this.open) {\n this._opts.activateDefault();\n this._scrollActiveElementToTop();\n\n window.addEventListener('click', this._onClickOutside);\n } else {\n window.removeEventListener('click', this._onClickOutside);\n }\n }\n }\n\n @state()\n protected _currentDescription = '';\n\n @state()\n protected _filter: FilterMethod = 'fuzzy';\n\n @state()\n protected get _filteredOptions(): InternalOption[] {\n if (!this.combobox || this._opts.filterPattern === '') {\n return this._options;\n }\n\n return filterOptionsByPattern(\n this._options,\n this._opts.filterPattern,\n this._filter\n );\n }\n\n @state()\n protected _selectedIndexes: number[] = [];\n\n @state()\n protected _options: InternalOption[] = [];\n\n @state()\n protected _value = '';\n\n @state()\n protected _values: string[] = [];\n\n @state()\n protected _isPlaceholderOptionActive = false;\n\n @state()\n protected _isBeingFiltered = false;\n\n @state()\n protected _optionListScrollPos = 0;\n\n private _isHoverForbidden = false;\n private _disabled = false;\n private _originalTabIndex: number | undefined = undefined;\n\n private _setAutoFocus() {\n if (this.hasAttribute('autofocus')) {\n if (this.tabIndex < 0) {\n this.tabIndex = 0;\n }\n\n if (this.combobox) {\n this.updateComplete.then(() => {\n this.shadowRoot\n ?.querySelector<HTMLInputElement>('.combobox-input')!\n .focus();\n });\n } else {\n this.updateComplete.then(() => {\n this.shadowRoot\n ?.querySelector<HTMLInputElement>('.select-face')!\n .focus();\n });\n }\n }\n }\n\n protected get _isSuggestedOptionVisible() {\n if (!(this.combobox && this.creatable)) {\n return false;\n }\n\n const filterPatternExistsAsOption =\n this._opts.getOptionByValue(this._opts.filterPattern) !== null;\n const filtered = this._opts.filterPattern.length > 0;\n return !filterPatternExistsAsOption && filtered;\n }\n\n protected _manageRequired() {}\n\n protected _setStateFromSlottedElements() {\n const optionElements = this._assignedOptions ?? [];\n this._opts.clear();\n\n optionElements.forEach((el) => {\n const {innerText, description, disabled} = el;\n const value = typeof el.value === 'string' ? el.value : innerText.trim();\n const selected = el.selected ?? false;\n const op: Option = {\n label: innerText.trim(),\n value,\n description,\n selected,\n disabled,\n };\n\n this._opts.add(op);\n });\n }\n\n protected _createSuggestedOption() {\n const nextSelectedIndex = this._opts.numOptions;\n const op = document.createElement('vscode-option');\n op.value = this._opts.filterPattern;\n render(this._opts.filterPattern, op);\n this.appendChild(op);\n\n return nextSelectedIndex;\n }\n\n protected _dispatchChangeEvent(): void {\n this.dispatchEvent(new Event('change'));\n this.dispatchEvent(new Event('input'));\n }\n\n protected async _createAndSelectSuggestedOption() {}\n\n protected _toggleComboboxDropdown() {\n this._opts.filterPattern = '';\n this.open = !this.open;\n }\n\n protected _scrollActiveElementToTop() {\n this._optionListScrollPos = Math.floor(\n this._opts.relativeActiveIndex * OPT_HEIGHT\n );\n }\n\n private async _adjustOptionListScrollPos(\n direction: 'down' | 'up',\n optionIndex: number\n ) {\n let numOpts = this._opts.numOfVisibleOptions;\n const suggestedOptionVisible = this._isSuggestedOptionVisible;\n\n if (suggestedOptionVisible) {\n numOpts += 1;\n }\n\n if (numOpts <= VISIBLE_OPTS) {\n return;\n }\n\n this._isHoverForbidden = true;\n window.addEventListener('mousemove', this._onMouseMove);\n\n const ulScrollTop = this._optionListScrollPos;\n const liPosY = optionIndex * OPT_HEIGHT;\n\n const fullyVisible =\n liPosY >= ulScrollTop &&\n liPosY <= ulScrollTop + VISIBLE_OPTS * OPT_HEIGHT - OPT_HEIGHT;\n\n if (direction === 'down') {\n if (!fullyVisible) {\n this._optionListScrollPos =\n optionIndex * OPT_HEIGHT - (VISIBLE_OPTS - 1) * OPT_HEIGHT;\n }\n }\n\n if (direction === 'up') {\n if (!fullyVisible) {\n this._optionListScrollPos = Math.floor(\n this._opts.relativeActiveIndex * OPT_HEIGHT\n );\n }\n }\n }\n\n //#region event handlers\n protected _onFaceClick(): void {\n this.open = !this.open;\n }\n\n private _onClickOutside = (event: MouseEvent): void => {\n const path = event.composedPath();\n const found = path.findIndex((et) => et === this);\n\n if (found === -1) {\n this.open = false;\n }\n };\n\n private _onMouseMove = () => {\n this._isHoverForbidden = false;\n window.removeEventListener('mousemove', this._onMouseMove);\n };\n\n protected _onComboboxButtonClick(): void {\n this._toggleComboboxDropdown();\n }\n\n protected _onComboboxButtonKeyDown(ev: KeyboardEvent): void {\n if (ev.key === 'Enter') {\n this._toggleComboboxDropdown();\n }\n }\n\n private _onOptionListScroll = (ev: CustomEvent<number>) => {\n this._optionListScrollPos = ev.detail;\n };\n\n protected _onOptionMouseOver(ev: MouseEvent): void {\n if (this._isHoverForbidden) {\n return;\n }\n\n const el = ev.target as HTMLElement;\n\n if (!el.matches('.option')) {\n return;\n }\n\n if (el.matches('.placeholder')) {\n this._isPlaceholderOptionActive = true;\n this._opts.activeIndex = -1;\n } else {\n this._isPlaceholderOptionActive = false;\n this._opts.activeIndex = +el.dataset.index!;\n }\n }\n\n protected _onPlaceholderOptionMouseOut() {\n this._isPlaceholderOptionActive = false;\n }\n\n protected _onNoOptionsClick(ev: MouseEvent) {\n ev.stopPropagation();\n }\n\n protected _onEnterKeyDown(ev: KeyboardEvent): void {\n this._isBeingFiltered = false;\n const clickedOnAcceptButton = ev?.composedPath\n ? ev\n .composedPath()\n .find((el) =>\n (el as HTMLElement).matches\n ? (el as HTMLElement).matches('vscode-button.button-accept')\n : false\n )\n : false;\n\n if (clickedOnAcceptButton) {\n return;\n }\n }\n\n private _onSpaceKeyDown() {\n if (!this.open) {\n this.open = true;\n return;\n }\n }\n\n protected _onArrowUpKeyDown(): void {\n if (this.open) {\n if (this._opts.activeIndex <= 0 && !(this.combobox && this.creatable)) {\n return;\n }\n\n if (this._isPlaceholderOptionActive) {\n const optionIndex = this._opts.numOfVisibleOptions - 1;\n this._opts.activeIndex = optionIndex;\n this._isPlaceholderOptionActive = false;\n } else {\n const prevOp = this._opts.prev();\n\n if (prevOp !== null) {\n this._opts.activeIndex = prevOp?.index ?? -1;\n const prevSelectableIndex = prevOp?.filteredIndex ?? -1;\n\n if (prevSelectableIndex > -1) {\n this._adjustOptionListScrollPos('up', prevSelectableIndex);\n }\n }\n }\n } else {\n this.open = true;\n this._opts.activateDefault();\n }\n }\n\n protected _onArrowDownKeyDown(): void {\n let numOpts = this._opts.numOfVisibleOptions;\n const suggestedOptionVisible = this._isSuggestedOptionVisible;\n\n if (suggestedOptionVisible) {\n numOpts += 1;\n }\n\n if (this.open) {\n if (this._isPlaceholderOptionActive && this._opts.activeIndex === -1) {\n return;\n }\n\n const nextOp = this._opts.next();\n\n if (suggestedOptionVisible && nextOp === null) {\n this._isPlaceholderOptionActive = true;\n this._adjustOptionListScrollPos('down', numOpts - 1);\n this._opts.activeIndex = -1;\n } else if (nextOp !== null) {\n const nextSelectableIndex = nextOp?.filteredIndex ?? -1;\n this._opts.activeIndex = nextOp?.index ?? -1;\n\n if (nextSelectableIndex > -1) {\n this._adjustOptionListScrollPos('down', nextSelectableIndex);\n }\n }\n } else {\n this.open = true;\n this._opts.activateDefault();\n }\n }\n\n private _onEscapeKeyDown() {\n this.open = false;\n }\n\n private _onComponentKeyDown = (event: KeyboardEvent) => {\n if ([' ', 'ArrowUp', 'ArrowDown', 'Escape'].includes(event.key)) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n if (event.key === 'Enter') {\n this._onEnterKeyDown(event);\n }\n\n if (event.key === ' ') {\n this._onSpaceKeyDown();\n }\n\n if (event.key === 'Escape') {\n this._onEscapeKeyDown();\n }\n\n if (event.key === 'ArrowUp') {\n this._onArrowUpKeyDown();\n }\n\n if (event.key === 'ArrowDown') {\n this._onArrowDownKeyDown();\n }\n };\n\n private _onComponentFocus = () => {\n this.focused = true;\n };\n\n private _onComponentBlur = () => {\n this.focused = false;\n };\n\n protected _onSlotChange(): void {\n this._setStateFromSlottedElements();\n this.requestUpdate();\n }\n\n protected _onComboboxInputFocus(ev: FocusEvent): void {\n (ev.target as HTMLInputElement).select();\n this._isBeingFiltered = false;\n this._opts.filterPattern = '';\n }\n\n protected _onComboboxInputBlur() {\n this._isBeingFiltered = false;\n }\n\n protected _onComboboxInputInput(ev: InputEvent): void {\n this._isBeingFiltered = true;\n this._opts.filterPattern = (ev.target as HTMLInputElement).value;\n this._opts.activeIndex = -1;\n this.open = true;\n }\n\n protected _onComboboxInputClick(): void {\n this._isBeingFiltered = this._opts.filterPattern !== '';\n this.open = true;\n }\n\n protected _onComboboxInputSpaceKeyDown(ev: KeyboardEvent) {\n if (ev.key === ' ') {\n ev.stopPropagation();\n }\n }\n\n protected _onOptionClick(_ev: MouseEvent) {\n this._isBeingFiltered = false;\n return;\n }\n //#endregion\n\n //#region render functions\n private _renderCheckbox(\n checked: boolean,\n label: string | TemplateResult | TemplateResult[]\n ) {\n const checkboxClasses = {\n 'checkbox-icon': true,\n checked,\n };\n\n return html`<span class=${classMap(checkboxClasses)}>${checkIcon}</span\n ><span class=\"option-label\">${label}</span>`;\n }\n\n protected _renderOptions(): TemplateResult | TemplateResult[] {\n const list = this._opts.options;\n\n return html`\n <ul\n aria-label=${ifDefined(this.label ?? undefined)}\n aria-multiselectable=${ifDefined(\n this._opts.multiSelect ? 'true' : undefined\n )}\n class=\"options\"\n id=\"select-listbox\"\n role=\"listbox\"\n tabindex=\"-1\"\n @click=${this._onOptionClick}\n @mouseover=${this._onOptionMouseOver}\n >\n ${repeat(\n list,\n (op) => op.index,\n (op, index) => {\n if (!op.visible) {\n return nothing;\n }\n\n const active = op.index === this._opts.activeIndex && !op.disabled;\n const selected = this._opts.getIsIndexSelected(op.index);\n\n const optionClasses = {\n active,\n disabled: op.disabled,\n option: true,\n selected,\n };\n\n const labelText =\n (op.ranges?.length ?? 0 > 0)\n ? highlightRanges(op.label, op.ranges ?? [])\n : op.label;\n\n return html`\n <li\n aria-selected=${selected ? 'true' : 'false'}\n class=${classMap(optionClasses)}\n data-index=${op.index}\n data-filtered-index=${index}\n id=${`op-${op.index}`}\n role=\"option\"\n tabindex=\"-1\"\n >\n ${when(\n this._opts.multiSelect,\n () => this._renderCheckbox(selected, labelText),\n () => labelText\n )}\n </li>\n `;\n }\n )}\n ${this._renderPlaceholderOption(this._opts.numOfVisibleOptions < 1)}\n </ul>\n `;\n }\n\n protected _renderPlaceholderOption(isListEmpty: boolean) {\n if (!this.combobox) {\n return nothing;\n }\n\n const foundOption = this._opts.getOptionByLabel(this._opts.filterPattern);\n\n if (foundOption) {\n return nothing;\n }\n\n if (this.creatable && this._opts.filterPattern.length > 0) {\n return html`<li\n class=${classMap({\n option: true,\n placeholder: true,\n active: this._isPlaceholderOptionActive,\n })}\n @mouseout=${this._onPlaceholderOptionMouseOut}\n >\n Add \"${this._opts.filterPattern}\"\n </li>`;\n } else {\n return isListEmpty\n ? html`<li class=\"no-options\" @click=${this._onNoOptionsClick}>\n No options\n </li>`\n : nothing;\n }\n }\n\n private _renderDescription() {\n const op = this._opts.getActiveOption();\n\n if (!op) {\n return nothing;\n }\n\n const {description} = op;\n\n return description\n ? html`<div class=\"description\">${description}</div>`\n : nothing;\n }\n\n protected _renderSelectFace(): TemplateResult {\n return html`${nothing}`;\n }\n\n protected _renderComboboxFace(): TemplateResult {\n return html`${nothing}`;\n }\n\n protected _renderDropdownControls(): TemplateResult {\n return html`${nothing}`;\n }\n\n protected _renderDropdown() {\n const classes = {\n dropdown: true,\n multiple: this._opts.multiSelect,\n open: this.open,\n };\n\n const visibleOptions =\n this._isSuggestedOptionVisible || this._opts.numOfVisibleOptions === 0\n ? this._opts.numOfVisibleOptions + 1\n : this._opts.numOfVisibleOptions;\n\n const scrollPaneHeight = Math.min(\n visibleOptions * OPT_HEIGHT,\n VISIBLE_OPTS * OPT_HEIGHT\n );\n\n return html`\n <div class=${classMap(classes)}>\n ${this.position === 'above' ? this._renderDescription() : nothing}\n <vscode-scrollable\n always-visible\n class=\"scrollable\"\n min-thumb-size=\"40\"\n tabindex=\"-1\"\n @vsc-scrollable-scroll=${this._onOptionListScroll}\n .scrollPos=${this._optionListScrollPos}\n .style=${stylePropertyMap({\n height: `${scrollPaneHeight}px`,\n })}\n >\n ${this._renderOptions()} ${this._renderDropdownControls()}\n </vscode-scrollable>\n ${this.position === 'below' ? this._renderDescription() : nothing}\n </div>\n `;\n }\n //#endregion\n}\n"]}
@@ -103,7 +103,7 @@ const styles = [
103
103
  display: flex;
104
104
  justify-content: center;
105
105
  position: relative;
106
- width: 100%;
106
+ width: var(--wrapper-width, 100%);
107
107
  height: 100%;
108
108
  padding: 1px 13px;
109
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-button.styles.js","sourceRoot":"","sources":["../../src/vscode-button/vscode-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAkB,SAAS,EAAC,MAAM,KAAK,CAAC;AACnD,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAE3D,MAAM,gBAAgB,GAAG,SAAS,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;+CAU0C,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6J5D;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup, unsafeCSS} from 'lit';\nimport defaultStyles from '../includes/default.styles.js';\nimport {getDefaultFontStack} from '../includes/helpers.js';\n\nconst defaultFontStack = unsafeCSS(getDefaultFontStack());\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n background-color: var(--vscode-button-background, #0078d4);\n border-color: var(--vscode-button-border, transparent);\n border-style: solid;\n border-radius: 2px;\n border-width: 1px;\n color: var(--vscode-button-foreground, #ffffff);\n cursor: pointer;\n display: inline-flex;\n font-family: var(--vscode-font-family, ${defaultFontStack});\n font-size: var(--vscode-font-size, 13px);\n font-weight: var(--vscode-font-weight, normal);\n line-height: 22px;\n overflow: hidden;\n padding: 0;\n user-select: none;\n white-space: nowrap;\n }\n\n :host([secondary]) {\n color: var(--vscode-button-secondaryForeground, #cccccc);\n background-color: var(--vscode-button-secondaryBackground, #313131);\n border-color: var(\n --vscode-button-border,\n var(--vscode-button-secondaryBackground, rgba(255, 255, 255, 0.07))\n );\n }\n\n :host([disabled]) {\n cursor: default;\n opacity: 0.4;\n pointer-events: none;\n }\n\n :host(:hover) {\n background-color: var(--vscode-button-hoverBackground, #026ec1);\n }\n\n :host([disabled]:hover) {\n background-color: var(--vscode-button-background, #0078d4);\n }\n\n :host([secondary]:hover) {\n background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);\n }\n\n :host([secondary][disabled]:hover) {\n background-color: var(--vscode-button-secondaryBackground, #313131);\n }\n\n :host(:focus),\n :host(:active) {\n outline: none;\n }\n\n :host(:focus) {\n background-color: var(--vscode-button-hoverBackground, #026ec1);\n outline: 1px solid var(--vscode-focusBorder, #0078d4);\n outline-offset: 2px;\n }\n\n :host([disabled]:focus) {\n background-color: var(--vscode-button-background, #0078d4);\n outline: 0;\n }\n\n :host([secondary]:focus) {\n background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);\n }\n\n :host([secondary][disabled]:focus) {\n background-color: var(--vscode-button-secondaryBackground, #313131);\n }\n\n ::slotted(*) {\n display: inline-block;\n margin-left: 4px;\n margin-right: 4px;\n }\n\n ::slotted(*:first-child) {\n margin-left: 0;\n }\n\n ::slotted(*:last-child) {\n margin-right: 0;\n }\n\n ::slotted(vscode-icon) {\n color: inherit;\n }\n\n .wrapper {\n align-items: center;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n position: relative;\n width: 100%;\n height: 100%;\n padding: 1px 13px;\n }\n\n :host(:empty) .wrapper,\n :host([icon-only]) .wrapper {\n min-height: 24px;\n min-width: 16px;\n padding: 1px 5px;\n }\n\n slot {\n align-items: center;\n display: flex;\n height: 100%;\n }\n\n .icon,\n .icon-after {\n color: inherit;\n display: block;\n }\n\n :host(:not(:empty)) .icon {\n margin-right: 3px;\n }\n\n :host(:not(:empty)) .icon-after,\n :host([icon]) .icon-after {\n margin-left: 3px;\n }\n\n .divider {\n display: var(--divider-display, none);\n background-color: transparent;\n padding: 4px 0;\n box-sizing: border-box;\n }\n\n :host(:hover) .divider,\n :host(:focus) .divider {\n background-color: var(--vscode-button-hoverBackground, #026ec1);\n }\n\n :host([secondary]) .divider {\n background-color: var(--vscode-button-secondaryBackground, #313131);\n }\n\n :host([secondary]:hover) .divider,\n :host([secondary]:focus) .divider {\n background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);\n }\n\n .divider > div {\n background-color: var(\n --vscode-button-separator,\n rgba(255, 255, 255, 0.4)\n );\n height: 100%;\n width: 1px;\n margin: 0;\n }\n\n :host([secondary]) .divider > div {\n background-color: var(--vscode-button-secondaryForeground, #cccccc);\n opacity: 0.4;\n }\n `,\n];\n\nexport default styles;\n"]}
1
+ {"version":3,"file":"vscode-button.styles.js","sourceRoot":"","sources":["../../src/vscode-button/vscode-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAkB,SAAS,EAAC,MAAM,KAAK,CAAC;AACnD,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAE3D,MAAM,gBAAgB,GAAG,SAAS,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;+CAU0C,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6J5D;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup, unsafeCSS} from 'lit';\nimport defaultStyles from '../includes/default.styles.js';\nimport {getDefaultFontStack} from '../includes/helpers.js';\n\nconst defaultFontStack = unsafeCSS(getDefaultFontStack());\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n background-color: var(--vscode-button-background, #0078d4);\n border-color: var(--vscode-button-border, transparent);\n border-style: solid;\n border-radius: 2px;\n border-width: 1px;\n color: var(--vscode-button-foreground, #ffffff);\n cursor: pointer;\n display: inline-flex;\n font-family: var(--vscode-font-family, ${defaultFontStack});\n font-size: var(--vscode-font-size, 13px);\n font-weight: var(--vscode-font-weight, normal);\n line-height: 22px;\n overflow: hidden;\n padding: 0;\n user-select: none;\n white-space: nowrap;\n }\n\n :host([secondary]) {\n color: var(--vscode-button-secondaryForeground, #cccccc);\n background-color: var(--vscode-button-secondaryBackground, #313131);\n border-color: var(\n --vscode-button-border,\n var(--vscode-button-secondaryBackground, rgba(255, 255, 255, 0.07))\n );\n }\n\n :host([disabled]) {\n cursor: default;\n opacity: 0.4;\n pointer-events: none;\n }\n\n :host(:hover) {\n background-color: var(--vscode-button-hoverBackground, #026ec1);\n }\n\n :host([disabled]:hover) {\n background-color: var(--vscode-button-background, #0078d4);\n }\n\n :host([secondary]:hover) {\n background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);\n }\n\n :host([secondary][disabled]:hover) {\n background-color: var(--vscode-button-secondaryBackground, #313131);\n }\n\n :host(:focus),\n :host(:active) {\n outline: none;\n }\n\n :host(:focus) {\n background-color: var(--vscode-button-hoverBackground, #026ec1);\n outline: 1px solid var(--vscode-focusBorder, #0078d4);\n outline-offset: 2px;\n }\n\n :host([disabled]:focus) {\n background-color: var(--vscode-button-background, #0078d4);\n outline: 0;\n }\n\n :host([secondary]:focus) {\n background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);\n }\n\n :host([secondary][disabled]:focus) {\n background-color: var(--vscode-button-secondaryBackground, #313131);\n }\n\n ::slotted(*) {\n display: inline-block;\n margin-left: 4px;\n margin-right: 4px;\n }\n\n ::slotted(*:first-child) {\n margin-left: 0;\n }\n\n ::slotted(*:last-child) {\n margin-right: 0;\n }\n\n ::slotted(vscode-icon) {\n color: inherit;\n }\n\n .wrapper {\n align-items: center;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n position: relative;\n width: var(--wrapper-width, 100%);\n height: 100%;\n padding: 1px 13px;\n }\n\n :host(:empty) .wrapper,\n :host([icon-only]) .wrapper {\n min-height: 24px;\n min-width: 16px;\n padding: 1px 5px;\n }\n\n slot {\n align-items: center;\n display: flex;\n height: 100%;\n }\n\n .icon,\n .icon-after {\n color: inherit;\n display: block;\n }\n\n :host(:not(:empty)) .icon {\n margin-right: 3px;\n }\n\n :host(:not(:empty)) .icon-after,\n :host([icon]) .icon-after {\n margin-left: 3px;\n }\n\n .divider {\n display: var(--divider-display, none);\n background-color: transparent;\n padding: 4px 0;\n box-sizing: border-box;\n }\n\n :host(:hover) .divider,\n :host(:focus) .divider {\n background-color: var(--vscode-button-hoverBackground, #026ec1);\n }\n\n :host([secondary]) .divider {\n background-color: var(--vscode-button-secondaryBackground, #313131);\n }\n\n :host([secondary]:hover) .divider,\n :host([secondary]:focus) .divider {\n background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);\n }\n\n .divider > div {\n background-color: var(\n --vscode-button-separator,\n rgba(255, 255, 255, 0.4)\n );\n height: 100%;\n width: 1px;\n margin: 0;\n }\n\n :host([secondary]) .divider > div {\n background-color: var(--vscode-button-secondaryForeground, #cccccc);\n opacity: 0.4;\n }\n `,\n];\n\nexport default styles;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-button-group.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-button-group/vscode-button-group.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAC,MAAM,KAAK,CAAC;AAIxC,QAAA,MAAM,MAAM,EAAE,cA4Bb,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"vscode-button-group.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-button-group/vscode-button-group.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAC,MAAM,KAAK,CAAC;AAIxC,QAAA,MAAM,MAAM,EAAE,cA8Bb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -8,6 +8,7 @@ const styles = [
8
8
  align-items: stretch;
9
9
  padding: 0;
10
10
  border: none;
11
+ overflow: hidden;
11
12
  }
12
13
 
13
14
  ::slotted(vscode-button:not(:first-child)) {
@@ -18,6 +19,7 @@ const styles = [
18
19
 
19
20
  ::slotted(vscode-button:not(:last-child)) {
20
21
  --divider-display: block;
22
+ --wrapper-width: calc(100% - 1px);
21
23
 
22
24
  border-top-right-radius: 0;
23
25
  border-bottom-right-radius: 0;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-button-group.styles.js","sourceRoot":"","sources":["../../src/vscode-button-group/vscode-button-group.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAC;AAExC,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup} from 'lit';\n\nimport defaultStyles from '../includes/default.styles.js';\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n display: inline-flex;\n align-items: stretch;\n padding: 0;\n border: none;\n }\n\n ::slotted(vscode-button:not(:first-child)) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n border-left-width: 0;\n }\n\n ::slotted(vscode-button:not(:last-child)) {\n --divider-display: block;\n\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right-width: 0;\n }\n\n ::slotted(vscode-button:focus) {\n z-index: 1;\n }\n `,\n];\n\nexport default styles;\n"]}
1
+ {"version":3,"file":"vscode-button-group.styles.js","sourceRoot":"","sources":["../../src/vscode-button-group/vscode-button-group.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAC;AAExC,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup} from 'lit';\n\nimport defaultStyles from '../includes/default.styles.js';\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n display: inline-flex;\n align-items: stretch;\n padding: 0;\n border: none;\n overflow: hidden;\n }\n\n ::slotted(vscode-button:not(:first-child)) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n border-left-width: 0;\n }\n\n ::slotted(vscode-button:not(:last-child)) {\n --divider-display: block;\n --wrapper-width: calc(100% - 1px);\n\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right-width: 0;\n }\n\n ::slotted(vscode-button:focus) {\n z-index: 1;\n }\n `,\n];\n\nexport default styles;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-icon.d.ts","sourceRoot":"","sources":["../../src/vscode-icon/vscode-icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAC,MAAM,KAAK,CAAC;AAIzC,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAIpE;;;;;;;;;;;GAWG;AACH,qBACa,UAAW,SAAQ,UAAU;IACxC,OAAgB,MAAM,+BAAU;IAChC;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,IAAI,UAAS;IAEb;;OAEG;IAEH,YAAY,SAAO;IAEnB;;OAEG;IAEH,UAAU,UAAS;IAEnB,OAAO,CAAC,MAAM,CAAC,cAAc,CAA0B;IAEvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAA0B;IAErC,iBAAiB,IAAI,IAAI;IASlC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,cAAc,CAIpB;IAEO,MAAM,IAAI,cAAc;CAsClC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
1
+ {"version":3,"file":"vscode-icon.d.ts","sourceRoot":"","sources":["../../src/vscode-icon/vscode-icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAC,MAAM,KAAK,CAAC;AAIzC,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAIpE;;;;;;;;;;;GAWG;AACH,qBACa,UAAW,SAAQ,UAAU;IACxC,OAAgB,MAAM,+BAAU;IAChC;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,IAAI,UAAS;IAEb;;OAEG;IAEH,YAAY,SAAO;IAEnB;;OAEG;IAEH,UAAU,UAAS;IAEnB,OAAO,CAAC,MAAM,CAAC,cAAc,CAA0B;IAEvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAA0B;IAErC,iBAAiB,IAAI,IAAI;IASlC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,cAAc,CAIpB;IAEO,MAAM,IAAI,cAAc;CAsClC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
@@ -75,6 +75,7 @@ let VscodeIcon = VscodeIcon_1 = class VscodeIcon extends VscElement {
75
75
  let msg = '[VSCode Elements] To use the Icon component, the codicons.css file must be included in the page with the id `vscode-codicon-stylesheet`! ';
76
76
  msg +=
77
77
  'See https://vscode-elements.github.io/components/icon/ for more details.';
78
+ // eslint-disable-next-line no-console
78
79
  console.warn(msg);
79
80
  }
80
81
  return { nonce, href };
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-icon.js","sourceRoot":"","sources":["../../src/vscode-icon/vscode-icon.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, TemplateResult} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport {stylePropertyMap} from '../includes/style-property-map.js';\nimport styles from './vscode-icon.styles.js';\n\n/**\n * Display a [Codicon](https://microsoft.github.io/vscode-codicons/dist/codicon.html).\n * In \"action-icon\" mode it behaves like a button. In this case, it is\n * recommended that a meaningful label is specified with the `label` property.\n *\n * @tag vscode-icon\n *\n * @cssprop [--vscode-icon-foreground=#cccccc]\n * @cssprop [--vscode-toolbar-hoverBackground=rgba(90, 93, 94, 0.31)] - Hover state background color in `active-icon` mode\n * @cssprop [--vscode-toolbar-activeBackground=rgba(99, 102, 103, 0.31)] - Active state background color in `active-icon` mode\n * @cssprop [--vscode-focusBorder=#0078d4]\n */\n@customElement('vscode-icon')\nexport class VscodeIcon extends VscElement {\n static override styles = styles;\n /**\n * Set a meaningful label in `action-icon` mode for the screen readers\n */\n @property()\n label = '';\n\n /**\n * [Codicon](https://microsoft.github.io/vscode-codicons/dist/codicon.html) icon name.\n */\n @property({type: String})\n name = '';\n\n /**\n * Icon size in pixels\n */\n @property({type: Number})\n size = 16;\n\n /**\n * Enable rotation animation\n */\n @property({type: Boolean, reflect: true})\n spin = false;\n\n /**\n * Animation duration in seconds\n */\n @property({type: Number, attribute: 'spin-duration'})\n spinDuration = 1.5;\n\n /**\n * Behaves like a button\n */\n @property({type: Boolean, reflect: true, attribute: 'action-icon'})\n actionIcon = false;\n\n private static stylesheetHref: string | undefined = '';\n\n private static nonce: string | undefined = '';\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n const {href, nonce} = this._getStylesheetConfig();\n\n VscodeIcon.stylesheetHref = href;\n VscodeIcon.nonce = nonce;\n }\n\n /**\n * For using web fonts in web components, the font stylesheet must be included\n * twice: on the page and in the web component. This function looks for the\n * font stylesheet on the page and returns the stylesheet URL and the nonce\n * id.\n */\n private _getStylesheetConfig(): {\n href: string | undefined;\n nonce: string | undefined;\n } {\n const linkElement = document.getElementById('vscode-codicon-stylesheet');\n const href = linkElement?.getAttribute('href') || undefined;\n const nonce = linkElement?.nonce || undefined;\n\n if (!linkElement) {\n let msg =\n '[VSCode Elements] To use the Icon component, the codicons.css file must be included in the page with the id `vscode-codicon-stylesheet`! ';\n msg +=\n 'See https://vscode-elements.github.io/components/icon/ for more details.';\n\n console.warn(msg);\n }\n\n return {nonce, href};\n }\n\n private _onButtonClick = (ev: MouseEvent) => {\n this.dispatchEvent(\n new CustomEvent('vsc-click', {detail: {originalEvent: ev}})\n );\n };\n\n override render(): TemplateResult {\n const {stylesheetHref, nonce} = VscodeIcon;\n\n const content = html`<span\n class=${classMap({\n codicon: true,\n ['codicon-' + this.name]: true,\n spin: this.spin,\n })}\n .style=${stylePropertyMap({\n animationDuration: String(this.spinDuration) + 's',\n fontSize: this.size + 'px',\n height: this.size + 'px',\n width: this.size + 'px',\n })}\n ></span>`;\n\n const wrapped = this.actionIcon\n ? html` <button\n class=\"button\"\n @click=${this._onButtonClick}\n aria-label=${this.label}\n >\n ${content}\n </button>`\n : html` <span class=\"icon\" aria-hidden=\"true\" role=\"presentation\"\n >${content}</span\n >`;\n\n return html`\n <link\n rel=\"stylesheet\"\n href=${ifDefined(stylesheetHref)}\n nonce=${ifDefined(nonce)}\n >\n ${wrapped}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-icon': VscodeIcon;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-icon.js","sourceRoot":"","sources":["../../src/vscode-icon/vscode-icon.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, TemplateResult} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport {stylePropertyMap} from '../includes/style-property-map.js';\nimport styles from './vscode-icon.styles.js';\n\n/**\n * Display a [Codicon](https://microsoft.github.io/vscode-codicons/dist/codicon.html).\n * In \"action-icon\" mode it behaves like a button. In this case, it is\n * recommended that a meaningful label is specified with the `label` property.\n *\n * @tag vscode-icon\n *\n * @cssprop [--vscode-icon-foreground=#cccccc]\n * @cssprop [--vscode-toolbar-hoverBackground=rgba(90, 93, 94, 0.31)] - Hover state background color in `active-icon` mode\n * @cssprop [--vscode-toolbar-activeBackground=rgba(99, 102, 103, 0.31)] - Active state background color in `active-icon` mode\n * @cssprop [--vscode-focusBorder=#0078d4]\n */\n@customElement('vscode-icon')\nexport class VscodeIcon extends VscElement {\n static override styles = styles;\n /**\n * Set a meaningful label in `action-icon` mode for the screen readers\n */\n @property()\n label = '';\n\n /**\n * [Codicon](https://microsoft.github.io/vscode-codicons/dist/codicon.html) icon name.\n */\n @property({type: String})\n name = '';\n\n /**\n * Icon size in pixels\n */\n @property({type: Number})\n size = 16;\n\n /**\n * Enable rotation animation\n */\n @property({type: Boolean, reflect: true})\n spin = false;\n\n /**\n * Animation duration in seconds\n */\n @property({type: Number, attribute: 'spin-duration'})\n spinDuration = 1.5;\n\n /**\n * Behaves like a button\n */\n @property({type: Boolean, reflect: true, attribute: 'action-icon'})\n actionIcon = false;\n\n private static stylesheetHref: string | undefined = '';\n\n private static nonce: string | undefined = '';\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n const {href, nonce} = this._getStylesheetConfig();\n\n VscodeIcon.stylesheetHref = href;\n VscodeIcon.nonce = nonce;\n }\n\n /**\n * For using web fonts in web components, the font stylesheet must be included\n * twice: on the page and in the web component. This function looks for the\n * font stylesheet on the page and returns the stylesheet URL and the nonce\n * id.\n */\n private _getStylesheetConfig(): {\n href: string | undefined;\n nonce: string | undefined;\n } {\n const linkElement = document.getElementById('vscode-codicon-stylesheet');\n const href = linkElement?.getAttribute('href') || undefined;\n const nonce = linkElement?.nonce || undefined;\n\n if (!linkElement) {\n let msg =\n '[VSCode Elements] To use the Icon component, the codicons.css file must be included in the page with the id `vscode-codicon-stylesheet`! ';\n msg +=\n 'See https://vscode-elements.github.io/components/icon/ for more details.';\n\n // eslint-disable-next-line no-console\n console.warn(msg);\n }\n\n return {nonce, href};\n }\n\n private _onButtonClick = (ev: MouseEvent) => {\n this.dispatchEvent(\n new CustomEvent('vsc-click', {detail: {originalEvent: ev}})\n );\n };\n\n override render(): TemplateResult {\n const {stylesheetHref, nonce} = VscodeIcon;\n\n const content = html`<span\n class=${classMap({\n codicon: true,\n ['codicon-' + this.name]: true,\n spin: this.spin,\n })}\n .style=${stylePropertyMap({\n animationDuration: String(this.spinDuration) + 's',\n fontSize: this.size + 'px',\n height: this.size + 'px',\n width: this.size + 'px',\n })}\n ></span>`;\n\n const wrapped = this.actionIcon\n ? html` <button\n class=\"button\"\n @click=${this._onButtonClick}\n aria-label=${this.label}\n >\n ${content}\n </button>`\n : html` <span class=\"icon\" aria-hidden=\"true\" role=\"presentation\"\n >${content}</span\n >`;\n\n return html`\n <link\n rel=\"stylesheet\"\n href=${ifDefined(stylesheetHref)}\n nonce=${ifDefined(nonce)}\n >\n ${wrapped}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-icon': VscodeIcon;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-label.d.ts","sourceRoot":"","sources":["../../src/vscode-label/vscode-label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAC,MAAM,KAAK,CAAC;AAIzC,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAWpE;;;;;;GAMG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,+BAAU;IAEhC,IACI,OAAO,CAAC,GAAG,EAAE,MAAM,EAOtB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IACa,EAAE,CAAC,GAAG,EAAE,MAAM,EAE1B;IAED,IAAa,EAAE,IAAI,MAAM,CAExB;IAGD,QAAQ,UAAS;IAER,wBAAwB,CAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,GACZ,IAAI;IAIE,iBAAiB,IAAI,IAAI;IAalC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,QAAQ,CAAM;IAEtB,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,UAAU;YAcJ,kBAAkB;IAuBhC,OAAO,CAAC,YAAY;IAQX,MAAM,IAAI,cAAc;CASlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
1
+ {"version":3,"file":"vscode-label.d.ts","sourceRoot":"","sources":["../../src/vscode-label/vscode-label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAC,MAAM,KAAK,CAAC;AAIzC,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAOpE;;;;;;GAMG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,+BAAU;IAEhC,IACI,OAAO,CAAC,GAAG,EAAE,MAAM,EAOtB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IACa,EAAE,CAAC,GAAG,EAAE,MAAM,EAE1B;IAED,IAAa,EAAE,IAAI,MAAM,CAExB;IAGD,QAAQ,UAAS;IAER,wBAAwB,CAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,GACZ,IAAI;IAIE,iBAAiB,IAAI,IAAI;IAalC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,QAAQ,CAAM;IAEtB,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,UAAU;YAcJ,kBAAkB;IAiChC,OAAO,CAAC,YAAY;IAQX,MAAM,IAAI,cAAc;CASlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
@@ -9,10 +9,6 @@ import { property } from 'lit/decorators.js';
9
9
  import { classMap } from 'lit/directives/class-map.js';
10
10
  import uniqueId from '../includes/uniqueId.js';
11
11
  import { customElement, VscElement } from '../includes/VscElement.js';
12
- import { VscodeCheckboxGroup } from '../vscode-checkbox-group/index.js';
13
- import { VscodeRadioGroup } from '../vscode-radio-group/index.js';
14
- import { VscodeTextarea } from '../vscode-textarea/index.js';
15
- import { VscodeTextfield } from '../vscode-textfield/index.js';
16
12
  import styles from './vscode-label.styles.js';
17
13
  /**
18
14
  * @tag vscode-label
@@ -70,15 +66,21 @@ let VscodeLabel = class VscodeLabel extends VscElement {
70
66
  async _connectWithTarget() {
71
67
  await this.updateComplete;
72
68
  const target = this._getTarget();
73
- if (target instanceof VscodeRadioGroup ||
74
- target instanceof VscodeCheckboxGroup) {
69
+ if (['vscode-radio-group', 'vscode-checkbox-group'].includes(target?.tagName.toLowerCase() ?? '')) {
75
70
  target.setAttribute('aria-labelledby', this._id);
76
71
  }
77
72
  let label = '';
78
73
  if (this.textContent) {
79
74
  label = this.textContent.trim();
80
75
  }
81
- if (target instanceof VscodeTextfield || target instanceof VscodeTextarea) {
76
+ if (target &&
77
+ 'label' in target &&
78
+ [
79
+ 'vscode-textfield',
80
+ 'vscode-textarea',
81
+ 'vscode-single-select',
82
+ 'vscode-multi-select',
83
+ ].includes(target?.tagName.toLowerCase() ?? '')) {
82
84
  target.label = label;
83
85
  }
84
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-label.js","sourceRoot":"","sources":["../../src/vscode-label/vscode-label.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, TemplateResult} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport uniqueId from '../includes/uniqueId.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport {VscodeCheckboxGroup} from '../vscode-checkbox-group/index.js';\nimport {VscodeRadioGroup} from '../vscode-radio-group/index.js';\nimport {VscodeTextarea} from '../vscode-textarea/index.js';\nimport {VscodeTextfield} from '../vscode-textfield/index.js';\nimport styles from './vscode-label.styles.js';\n\ninterface FocusableElement extends Element {\n focus: () => void;\n}\n\n/**\n * @tag vscode-label\n *\n * @cssprop [--vscode-font-family=sans-serif]\n * @cssprop [--vscode-font-size=13px]\n * @cssprop [--vscode-foreground=#cccccc]\n */\n@customElement('vscode-label')\nexport class VscodeLabel extends VscElement {\n static override styles = styles;\n\n @property({reflect: true, attribute: 'for'})\n set htmlFor(val: string) {\n this._htmlFor = val;\n this.setAttribute('for', val);\n\n if (this._connected) {\n this._connectWithTarget();\n }\n }\n\n get htmlFor(): string {\n return this._htmlFor;\n }\n\n @property()\n override set id(val: string) {\n this._id = val;\n }\n\n override get id(): string {\n return this._id;\n }\n\n @property({type: Boolean, reflect: true})\n required = false;\n\n override attributeChangedCallback(\n name: string,\n old: string | null,\n value: string\n ): void {\n super.attributeChangedCallback(name, old, value);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this._connected = true;\n\n if (this._id === '') {\n this._id = uniqueId('vscode-label-');\n this.setAttribute('id', this._id);\n }\n\n this._connectWithTarget();\n }\n\n private _id = '';\n\n private _htmlFor = '';\n\n private _connected = false;\n\n private _getTarget() {\n let target: HTMLElement | null = null;\n\n if (this._htmlFor) {\n const root = this.getRootNode({composed: false}) as Document | ShadowRoot;\n\n if (root) {\n target = root.querySelector(`#${this._htmlFor}`);\n }\n }\n\n return target;\n }\n\n private async _connectWithTarget() {\n await this.updateComplete;\n\n const target = this._getTarget();\n\n if (\n target instanceof VscodeRadioGroup ||\n target instanceof VscodeCheckboxGroup\n ) {\n target.setAttribute('aria-labelledby', this._id);\n }\n\n let label = '';\n\n if (this.textContent) {\n label = this.textContent.trim();\n }\n\n if (target instanceof VscodeTextfield || target instanceof VscodeTextarea) {\n target.label = label;\n }\n }\n\n private _handleClick() {\n const target = this._getTarget();\n\n if (target && 'focus' in target) {\n (target as FocusableElement).focus();\n }\n }\n\n override render(): TemplateResult {\n return html`\n <label\n class=${classMap({wrapper: true, required: this.required})}\n @click=${this._handleClick}\n ><slot></slot\n ></label>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-label': VscodeLabel;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-label.js","sourceRoot":"","sources":["../../src/vscode-label/vscode-label.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, TemplateResult} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport uniqueId from '../includes/uniqueId.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport styles from './vscode-label.styles.js';\n\ninterface FocusableElement extends Element {\n focus: () => void;\n}\n\n/**\n * @tag vscode-label\n *\n * @cssprop [--vscode-font-family=sans-serif]\n * @cssprop [--vscode-font-size=13px]\n * @cssprop [--vscode-foreground=#cccccc]\n */\n@customElement('vscode-label')\nexport class VscodeLabel extends VscElement {\n static override styles = styles;\n\n @property({reflect: true, attribute: 'for'})\n set htmlFor(val: string) {\n this._htmlFor = val;\n this.setAttribute('for', val);\n\n if (this._connected) {\n this._connectWithTarget();\n }\n }\n\n get htmlFor(): string {\n return this._htmlFor;\n }\n\n @property()\n override set id(val: string) {\n this._id = val;\n }\n\n override get id(): string {\n return this._id;\n }\n\n @property({type: Boolean, reflect: true})\n required = false;\n\n override attributeChangedCallback(\n name: string,\n old: string | null,\n value: string\n ): void {\n super.attributeChangedCallback(name, old, value);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this._connected = true;\n\n if (this._id === '') {\n this._id = uniqueId('vscode-label-');\n this.setAttribute('id', this._id);\n }\n\n this._connectWithTarget();\n }\n\n private _id = '';\n\n private _htmlFor = '';\n\n private _connected = false;\n\n private _getTarget() {\n let target: HTMLElement | null = null;\n\n if (this._htmlFor) {\n const root = this.getRootNode({composed: false}) as Document | ShadowRoot;\n\n if (root) {\n target = root.querySelector(`#${this._htmlFor}`);\n }\n }\n\n return target;\n }\n\n private async _connectWithTarget() {\n await this.updateComplete;\n\n const target = this._getTarget();\n\n if (\n ['vscode-radio-group', 'vscode-checkbox-group'].includes(\n target?.tagName.toLowerCase() ?? ''\n )\n ) {\n (target as HTMLElement).setAttribute('aria-labelledby', this._id);\n }\n\n let label = '';\n\n if (this.textContent) {\n label = this.textContent.trim();\n }\n\n if (\n target &&\n 'label' in target &&\n [\n 'vscode-textfield',\n 'vscode-textarea',\n 'vscode-single-select',\n 'vscode-multi-select',\n ].includes(target?.tagName.toLowerCase() ?? '')\n ) {\n target.label = label;\n }\n }\n\n private _handleClick() {\n const target = this._getTarget();\n\n if (target && 'focus' in target) {\n (target as FocusableElement).focus();\n }\n }\n\n override render(): TemplateResult {\n return html`\n <label\n class=${classMap({wrapper: true, required: this.required})}\n @click=${this._handleClick}\n ><slot></slot\n ></label>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-label': VscodeLabel;\n }\n}\n"]}
@@ -49,7 +49,7 @@ export declare class VscodeMultiSelect extends VscodeSelectBase implements Assoc
49
49
  name: string | undefined;
50
50
  set selectedIndexes(val: number[]);
51
51
  get selectedIndexes(): number[];
52
- set value(val: string[] | string);
52
+ set value(val: string[]);
53
53
  get value(): string[];
54
54
  get form(): HTMLFormElement | null;
55
55
  /** @internal */
@@ -59,6 +59,8 @@ export declare class VscodeMultiSelect extends VscodeSelectBase implements Assoc
59
59
  get willValidate(): boolean;
60
60
  checkValidity(): boolean;
61
61
  reportValidity(): boolean;
62
+ selectAll(): void;
63
+ selectNone(): void;
62
64
  private _internals;
63
65
  constructor();
64
66
  connectedCallback(): void;
@@ -68,18 +70,24 @@ export declare class VscodeMultiSelect extends VscodeSelectBase implements Assoc
68
70
  formStateRestoreCallback(state: FormData, _mode: 'restore' | 'autocomplete'): void;
69
71
  private _faceElement;
70
72
  private _setDefaultValue;
73
+ protected _dispatchChangeEvent(): void;
74
+ protected _onFaceClick(): void;
75
+ protected _toggleComboboxDropdown(): void;
71
76
  protected _manageRequired(): void;
72
77
  private _setFormValue;
73
78
  private _requestedValueToSetLater;
74
79
  protected _createAndSelectSuggestedOption(): Promise<void>;
75
80
  protected _onSlotChange(): void;
76
81
  protected _onOptionClick: (ev: MouseEvent) => void;
82
+ protected _onEnterKeyDown(ev: KeyboardEvent): void;
77
83
  private _onMultiAcceptClick;
78
84
  private _onMultiDeselectAllClick;
79
85
  private _onMultiSelectAllClick;
80
86
  private _renderLabel;
87
+ protected _renderComboboxFace(): TemplateResult;
81
88
  protected _renderSelectFace(): TemplateResult;
82
89
  protected _renderDropdownControls(): TemplateResult;
90
+ render(): TemplateResult;
83
91
  }
84
92
  declare global {
85
93
  interface HTMLElementTagNameMap {
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-multi-select.d.ts","sourceRoot":"","sources":["../../src/vscode-multi-select/vscode-multi-select.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,cAAc,EAAC,MAAM,KAAK,CAAC;AAI9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,iDAAiD,CAAC;AAEjF,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAC;AAE3E,MAAM,MAAM,+BAA+B,GAAG,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBACa,iBACX,SAAQ,gBACR,YAAW,qBAAqB;IAEhC,OAAgB,MAAM,4BAAU;IAEhC,gBAAgB;IAChB,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAEF,MAAM,CAAC,cAAc,UAAQ;IAG7B,YAAY,EAAE,MAAM,EAAE,CAAM;IAG5B,QAAQ,UAAS;IAGjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC,IACI,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAahC;IACD,IAAI,eAAe,IAAI,MAAM,EAAE,CAE9B;IAED,IACI,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EA4B/B;IACD,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;IAED,IAAI,IAAI,2BAEP;IAED,gBAAgB;IAChB,IAAI,IAAI,WAEP;IAED,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,YAAY,YAEf;IAED,aAAa,IAAI,OAAO;IAIxB,cAAc,IAAI,OAAO;IAIzB,OAAO,CAAC,UAAU,CAAmB;;IAS5B,iBAAiB,IAAI,IAAI;IASlC,gBAAgB;IAChB,iBAAiB,IAAI,IAAI;IAMzB,gBAAgB;IAChB,wBAAwB,CACtB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,SAAS,GAAG,cAAc,GAChC,IAAI;IASP,OAAO,CAAC,YAAY,CAAkB;IAEtC,OAAO,CAAC,gBAAgB;cAOL,eAAe;IAelC,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,yBAAyB,CAAgB;cAExB,+BAA+B;cAiBrC,aAAa,IAAI,IAAI;IAgBxC,UAAmB,cAAc,GAAI,IAAI,UAAU,UA8CjD;IAEF,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,YAAY;cAeD,iBAAiB,IAAI,cAAc;cAYnC,uBAAuB,IAAI,cAAc;CA+B7D;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,iBAAiB,CAAC;KAC1C;IAED,UAAU,2BAA2B;QACnC,gCAAgC,EAAE,+BAA+B,CAAC;KACnE;CACF"}
1
+ {"version":3,"file":"vscode-multi-select.d.ts","sourceRoot":"","sources":["../../src/vscode-multi-select/vscode-multi-select.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,cAAc,EAAC,MAAM,KAAK,CAAC;AAK9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,iDAAiD,CAAC;AAEjF,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAC;AAE3E,MAAM,MAAM,+BAA+B,GAAG,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBACa,iBACX,SAAQ,gBACR,YAAW,qBAAqB;IAEhC,OAAgB,MAAM,4BAAU;IAEhC,gBAAgB;IAChB,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAEF,MAAM,CAAC,cAAc,UAAQ;IAG7B,YAAY,EAAE,MAAM,EAAE,CAAM;IAG5B,QAAQ,UAAS;IAGjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC,IACI,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAEhC;IACD,IAAI,eAAe,IAAI,MAAM,EAAE,CAE9B;IAED,IACI,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,EAWtB;IACD,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;IAED,IAAI,IAAI,2BAEP;IAED,gBAAgB;IAChB,IAAI,IAAI,WAEP;IAED,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,YAAY,YAEf;IAED,aAAa,IAAI,OAAO;IAIxB,cAAc,IAAI,OAAO;IAIzB,SAAS;IAIT,UAAU;IAIV,OAAO,CAAC,UAAU,CAAmB;;IAQ5B,iBAAiB,IAAI,IAAI;IASlC,gBAAgB;IAChB,iBAAiB,IAAI,IAAI;IAMzB,gBAAgB;IAChB,wBAAwB,CACtB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,SAAS,GAAG,cAAc,GAChC,IAAI;IASP,OAAO,CAAC,YAAY,CAAkB;IAEtC,OAAO,CAAC,gBAAgB;cAOL,oBAAoB,IAAI,IAAI;cAc5B,YAAY,IAAI,IAAI;cAKpB,uBAAuB,IAAI,IAAI;cAK/B,eAAe;IAelC,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,yBAAyB,CAAgB;cAExB,+BAA+B;cAkBrC,aAAa,IAAI,IAAI;IAWxC,UAAmB,cAAc,GAAI,IAAI,UAAU,UA8BjD;cAEiB,eAAe,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;IAkB3D,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,YAAY;cAWD,mBAAmB,IAAI,cAAc;cAkDrC,iBAAiB,IAAI,cAAc;cAyBnC,uBAAuB,IAAI,cAAc;IAgCnD,MAAM,IAAI,cAAc;CAUlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,iBAAiB,CAAC;KAC1C;IAED,UAAU,2BAA2B;QACnC,gCAAgC,EAAE,+BAA+B,CAAC;KACnE;CACF"}