@omegagrid/commands 0.8.4 → 0.9.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 (56) hide show
  1. package/dist/adapters/adapter.d.ts +19 -0
  2. package/dist/adapters/adapter.d.ts.map +1 -0
  3. package/dist/adapters/adapter.js +23 -0
  4. package/dist/adapters/adapter.js.map +1 -0
  5. package/dist/adapters/commandsFlowAdapter.d.ts +25 -0
  6. package/dist/adapters/commandsFlowAdapter.d.ts.map +1 -0
  7. package/dist/adapters/commandsFlowAdapter.js +61 -0
  8. package/dist/adapters/commandsFlowAdapter.js.map +1 -0
  9. package/dist/adapters/index.d.ts +3 -0
  10. package/dist/adapters/index.d.ts.map +1 -0
  11. package/dist/adapters/index.js +3 -0
  12. package/dist/adapters/index.js.map +1 -0
  13. package/dist/commandManager.d.ts +34 -0
  14. package/dist/commandManager.d.ts.map +1 -0
  15. package/dist/commandManager.js +101 -0
  16. package/dist/commandManager.js.map +1 -0
  17. package/dist/common.d.ts +5 -0
  18. package/dist/common.d.ts.map +1 -0
  19. package/dist/common.js +18 -0
  20. package/dist/common.js.map +1 -0
  21. package/dist/constants.d.ts +2 -0
  22. package/dist/constants.d.ts.map +1 -1
  23. package/dist/constants.js +1 -0
  24. package/dist/constants.js.map +1 -1
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +3 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/model/commands.d.ts +54 -22
  30. package/dist/model/commands.d.ts.map +1 -1
  31. package/dist/model/commands.js +71 -52
  32. package/dist/model/commands.js.map +1 -1
  33. package/dist/model/index.d.ts +0 -1
  34. package/dist/model/index.d.ts.map +1 -1
  35. package/dist/model/index.js +0 -1
  36. package/dist/model/index.js.map +1 -1
  37. package/dist/model/options.d.ts +6 -2
  38. package/dist/model/options.d.ts.map +1 -1
  39. package/dist/model/options.js +5 -1
  40. package/dist/model/options.js.map +1 -1
  41. package/dist/ui/commandWindow.d.ts +40 -27
  42. package/dist/ui/commandWindow.d.ts.map +1 -1
  43. package/dist/ui/commandWindow.js +249 -170
  44. package/dist/ui/commandWindow.js.map +1 -1
  45. package/dist/ui/commandWindow.style.d.ts.map +1 -1
  46. package/dist/ui/commandWindow.style.js +71 -9
  47. package/dist/ui/commandWindow.style.js.map +1 -1
  48. package/dist/ui/floatingCommandWindow.d.ts +7 -0
  49. package/dist/ui/floatingCommandWindow.d.ts.map +1 -0
  50. package/dist/ui/floatingCommandWindow.js +41 -0
  51. package/dist/ui/floatingCommandWindow.js.map +1 -0
  52. package/package.json +4 -2
  53. package/dist/model/adapter.d.ts +0 -9
  54. package/dist/model/adapter.d.ts.map +0 -1
  55. package/dist/model/adapter.js +0 -7
  56. package/dist/model/adapter.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"commandWindow.js","sourceRoot":"","sources":["../../src/ui/commandWindow.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAmB,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,GAAG,EAA2C,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,MAAM,OAAO,YAAa,SAAQ,KAAK;IAKtC,YAAY,IAAY,EAAE,IAA4B;QACrD,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;QACzD,IAAI,IAAI;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;CACD;AAMM,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAK5C,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAA,CAAC,CAAC;IAC3C,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAA,CAAC,CAAC;IAGnD,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IA8D1C,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA,CAAC,CAAC;IAE5E,IAAI,CAAC,aAAa,GAAG,IAAI;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;gBACxF,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;YAC7D,CAAC;QACF,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;mBACxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAY,CAAC;YACjG,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;gBAChD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;gBACxB,IAAI,aAAa;oBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE;wBAC9D,OAAO;wBACP,KAAK,EAAE,IAAI,CAAC,UAAU;qBACtB,CAAC,CAAC,CAAC;gBACJ,IAAI,CAAC,KAAK,EAAE,CAAC;YACd,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAY,CAAC;YACtE,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAI,aAAa;gBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE;oBAC9D,OAAO,EAAE,OAAO;oBAChB,KAAK,EAAE,IAAI,CAAC,UAAU;iBACtB,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;IACF,CAAC;IAsCD;QACC,KAAK,EAAE,CAAC;QA9ID,aAAQ,GAAG,SAAS,EAAoB,CAAC;QAIzC,YAAO,GAAG,SAAS,EAAQ,CAAC;QAQpC;;;;WAIG;QAEH,SAAI,GAAgC,QAAQ,CAAC;QAS7C,aAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAS1B,eAAU,GAAG,IAAI,CAAC;QAGlB,gBAAW,GAAG,EAAE,CAAC;QAGjB,iBAAY,GAAG,KAAK,CAAA;QAEpB,0BAAqB,GAAG,IAAI,CAAC;QAE7B,qBAAgB,GAAoB,CAAC,GAAmB,EAAE,OAAgB,EAAE,EAAE;YAC7E,OAAO,IAAI,CAAA;;MAEP,OAAO,CAAC,IAAI;;GAEf,CAAC;QACH,CAAC,CAAC;QAEF,qBAAgB,GAAoB,CAAC,GAAmB,EAAE,OAAuB,EAAE,EAAE;YACpF,OAAO,IAAI,CAAA;sCACyB,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE;;4BAE/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;;OAGpD,OAAO,CAAC,IAAI;;;GAGhB,CAAC;QACH,CAAC,CAAC;QAwCF,eAAU,GAAG,CAAC,CAAgB,EAAE,EAAE;YACjC,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;gBACf,KAAK,WAAW;oBACf,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACrB,MAAM;gBACP,KAAK,SAAS;oBACb,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACnB,MAAM;gBACP,KAAK,OAAO;oBACX,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,cAAc;wBACvE,IAAI,CAAC,aAAa,CAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAoB,CAAC,EAAE,CAAC,CAAC;;wBAClF,IAAI,CAAC,IAAI,EAAE,CAAC;oBACjB,MAAM;gBACP,KAAK,QAAQ,CAAC;gBACd,KAAK,IAAI,CAAC,UAAU;oBACnB,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,MAAM;YACR,CAAC;QACF,CAAC,CAAA;QAED,aAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE;YACvB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC5G,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACvC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBAC3C,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAA;QAyCF,qBAAgB,GAAG,CAAC,CAAgB,EAAE,EAAE;YACvC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC9B,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,EAAE,CAAC;YACb,CAAC;QACF,CAAC,CAAA;QAyBD,cAAS,GAAG,CAAC,CAAkB,EAAE,EAAE;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,IAAI,YAAY,OAAO,EAAE,CAAC;gBAC7B,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ;oBAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxD,IAAI,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,KAAK;oBAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/F,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBAClF,IAAI,CAAC,aAAa,CAAE,IAAuB,CAAC,EAAE,CAAC,CAAC;gBACjD,CAAC;YACF,CAAC;YAED,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACtC,CAAC,CAAA;QAED,kBAAa,GAAqB,CAAC,GAAmB,EAAE,KAAa,EAAE,EAAE;YACxE,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,cAAc;gBACxD,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAmB,CAAC;gBACxE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAY,CAAC,CAAC;QACpE,CAAC,CAAA;QAuDD,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;YAER,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;;oBAEV,IAAI,CAAC,WAAW;cACtB,IAAI,CAAC,KAAK;;;IAGpB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA,qBAAqB,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;;;cAGzD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;;oBAEX,SAAS;;;;;;EAM3B,CAAC;QAjKD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAE5D,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,aAAa;YAAE,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,aAAa,GAAG,IAAI;QACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,aAAa;gBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC;IACF,CAAC;IAED,iBAAiB;QAChB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACnB,CAAC;IAUD,KAAK,CAAC,UAAU,CAAC,KAAqB;QACrC,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAChD,IAAI,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACrC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe;gBAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YACvF,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe;gBAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QACxF,CAAC;IACF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgC;QAC7C,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAgB,CAAC;YACrD,IAAI,SAAS;gBAAE,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/E,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAC5D,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QACvD,IAAI,CAAC,cAAc,EAAE,CAAC;IACvB,CAAC;IAuBD,YAAY;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,cAAc;QACnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtF,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACpF,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAC3C,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACzB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9C,CAAC;gBACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IAC3C,CAAC;IAED,cAAc;QACb,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;gBACjB,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;aAC9E,CAAC,CAAC;YACH,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;YAC9E,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,EAAC,CAAC,EAAE,GAAG,EAAC,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;;AA7RM,oBAAM,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW;AAYxB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;8CACR;AAQjB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;2CACoB;AAG7C;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;4CACX;AAGd;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;2CACZ;AAGb;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;+CACC;AAG1B;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;8CACA;AAGzB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;6CACL;AAGpB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;iDACP;AAGlB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;kDACR;AAGjB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;mDACN;AA9CR,aAAa;IADzB,aAAa,CAAC,aAAa,CAAC;GAChB,aAAa,CAsTzB","sourcesContent":["import { Commands, Command, CommandsAdapter, CommandSection } from \"../model\";\nimport { dom, List, ListItemRenderer, ListSelectEvent, ListSelectTrigger } from \"@omegagrid/core\";\nimport { LitElement, html, TemplateResult, PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { debounce } from \"ts-debounce\";\nimport { style, itemStyle } from \"./commandWindow.style\";\nimport constants from \"../constants\";\nimport { Options } from \"../model\";\n\nexport class CommandEvent extends Event {\n\n\treadonly command?: Command;\n\treadonly value?: string;\n\n\tconstructor(type: string, args?: Partial<CommandEvent>) {\n\t\tsuper(`command.${type}`, {bubbles: true, composed: true})\n\t\tif (args) Object.assign(this, args);\n\t}\n}\n\nexport type CommandRenderer = (div: HTMLDivElement, command: Command) => string | TemplateResult<1> | null;\nexport type SectionRenderer = (div: HTMLDivElement, section: CommandSection) => string | TemplateResult<1> | null;\n\n@customElement('og-commands')\nexport class CommandWindow extends LitElement {\n\n\tstatic styles = [style];\n\n\tprivate inputRef = createRef<HTMLInputElement>();\n\tget input() { return this.inputRef?.value }\n\tget inputValue() { return this.input?.value ?? '' }\n\n\tprivate listRef = createRef<List>();\n\tget list() { return this.listRef?.value; }\n\n\tprivate visibleItems: (Command|CommandSection)[];\n\n\t@property({type: Object})\n\toptions: Options;\n\n\t/**\n\t * search = commands are filtered by input value\n\t * input = commands are not filtered, input is used to enter custom value\n\t * none = no input, only command list is shown\n\t */\n\t@property({type: String})\n\tmode: 'search' | 'input' | 'none' = 'search';\n\n\t@property({type: String})\n\tvalue: string;\n\n\t@property({type: String})\n\ttext: string;\n\n\t@property({type: Object})\n\tcommands = new Commands();\n\t\n\t@property({type: Object})\n\tadapter: CommandsAdapter;\n\n\t@property({type: Object})\n\ttarget: HTMLElement;\n\n\t@property({type: String})\n\ttriggerKey = 'F1';\n\n\t@property({type: String})\n\tplaceholder = '';\n\t\n\t@property({type: Boolean})\n\tshowSections = false\n\n\trequireUpdateCommands = true;\n\n\t_commandRenderer: CommandRenderer = (div: HTMLDivElement, command: Command) => {\n\t\treturn html`\n\t\t\t<div class=\"command\">\n\t\t\t\t${command.name}\n\t\t\t</div>\n\t\t`;\n\t};\n\n\t_sectionRenderer: SectionRenderer = (div: HTMLDivElement, section: CommandSection) => {\n\t\treturn html`\n\t\t\t<div class=\"section\" @mousedown=\"${(e: MouseEvent) => e.preventDefault()}\">\n\t\t\t\t<div class=\"section-toggle\">\n\t\t\t\t\t<og-icon icon=\"angle-${section.open ? 'down' : 'right'}\"></og-icon>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"section-text\">\n\t\t\t\t\t${section.name}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t};\n\n\tget filterValue() { return this.mode == 'search' ? this.input.value : null }\n\n\texec(dispatchEvent = true) {\n\t\tconst tokens = this.input.value.split('>').map(t => t.trim());\n\t\tif (tokens[0].length == 0) {\n\t\t\tif (this.list.selectedIndex > -1 && this.list.selectedIndex < this.visibleItems.length) {\n\t\t\t\ttokens[0] = this.visibleItems[this.list.selectedIndex].name;\n\t\t\t}\n\t\t}\n\n\t\tif (this.mode == 'search') {\n\t\t\tconst command = this.commands.get(tokens[0])\n\t\t\t\t?? this.visibleItems.find(item => item instanceof Command && item.name == tokens[0]) as Command;\n\t\t\tif (!command) return;\n\t\t\tif (tokens.length - 1 < command.requiredParams) {\n\t\t\t\ttokens.push('');\n\t\t\t\tthis.input.value = tokens.join(' > ');\n\t\t\t\tthis.input.focus();\n\t\t\t} else {\n\t\t\t\ttokens.shift();\n\t\t\t\tcommand.exec(...tokens);\n\t\t\t\tif (dispatchEvent) this.dispatchEvent(new CommandEvent('exec', { \n\t\t\t\t\tcommand, \n\t\t\t\t\tvalue: this.inputValue\n\t\t\t\t}));\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t} else {\n\t\t\tconst command = this.visibleItems[this.list.selectedIndex] as Command;\n\t\t\tif (!command) return;\n\t\t\tif (dispatchEvent) this.dispatchEvent(new CommandEvent('exec', { \n\t\t\t\tcommand: command,\n\t\t\t\tvalue: this.inputValue\n\t\t\t}));\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\t_onKeyDown = (e: KeyboardEvent) => {\n\t\te.stopPropagation();\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.list.moveDown();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.list.moveUp();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\te.preventDefault();\n\t\t\t\tif (this.visibleItems[this.list.selectedIndex] instanceof CommandSection) \n\t\t\t\t\tthis.toggleSection((this.visibleItems[this.list.selectedIndex] as CommandSection).id);\n\t\t\t\telse this.exec();\n\t\t\t\tbreak;\n\t\t\tcase 'Escape':\n\t\t\tcase this.triggerKey:\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.close();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t_onKeyUp = debounce(e => {\n\t\te.stopPropagation();\n\t\tif (this.mode == 'search') {\n\t\t\tconst excludedKeys = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Shift', 'Enter', this.triggerKey];\n\t\t\tif (excludedKeys.indexOf(e.key) == -1) {\n\t\t\t\tthis.updateCommands();\n\t\t\t\tthis.list.size = this.visibleItems.length;\n\t\t\t}\n\t\t}\n\t})\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.addEventListener('click', e => e.stopPropagation());\n\t\tthis.addEventListener('keyup', this._onKeyUp);\n\t\tthis.addEventListener('keydown', this._onKeyDown);\n\t\tthis.addEventListener('blur', () => this.close());\n\t}\n\n\tasync open(dispatchEvent = true) {\n\t\tif (!this.target) throw new Error('target element not set');\n\n\t\tdom.showElement(this);\n\t\tthis.input.value = this.value ?? '';\n\t\t\n\t\tif (this.requireUpdateCommands) {\n\t\t\tthis.requireUpdateCommands = false;\n\t\t\tawait this.updateCommands();\n\t\t}\n\t\t\n\t\tthis.input.focus();\n\t\tthis.visibleItems = this.commands.filter(null, this.showSections);\n\t\tthis.updatePosition();\n\t\t\n\t\tif (dispatchEvent) this.dispatchEvent(new CommandEvent('open'));\n\t}\n\n\tclose(dispatchEvent = true) {\n\t\tif (this.target) {\n\t\t\tdom.hideElement(this);\n\t\t\tthis.target.focus();\n\t\t\tif (dispatchEvent) this.dispatchEvent(new CommandEvent('close'));\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.tabIndex = 0;\n\t}\n\n\t_onTargetKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.key == this.triggerKey) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\tthis.open();\n\t\t}\n\t}\n\n\tasync willUpdate(props: PropertyValues) {\n\t\tif (props.has('adapter') && this.adapter) {\n\t\t\tconst options = await this.adapter.getOptions();\n\t\t\tif (options) this.options = options;\n\t\t}\n\n\t\tif (this.options) {\n\t\t\tif (this.options.commandRenderer) this._commandRenderer = this.options.commandRenderer;\n\t\t\tif (this.options.sectionRenderer) this._sectionRenderer = this.options.sectionRenderer;\n\t\t}\n\t}\n\n\tasync updated(props: Map<PropertyKey, unknown>) {\n\t\tif (props.has('target')) {\n\t\t\tconst oldTarget = props.get('target') as HTMLElement;\n\t\t\tif (oldTarget) oldTarget.removeEventListener('keydown', this._onTargetKeyDown);\n\t\t\tif (this.target) this.target.addEventListener('keydown', this._onTargetKeyDown);\n\t\t}\n\t\tif (props.has('adapter')) this.requireUpdateCommands = true;\n\t\tif (props.has('commands')) await this.updateCommands();\n\t\tthis.updatePosition();\n\t}\n\n\t_onSelect = (e: ListSelectEvent) => {\n\t\tconst item = this.visibleItems[e.index];\n\t\tif (item instanceof Command) {\n\t\t\tif (this.mode == 'search') this.input.value = item.name;\t\t\t\n\t\t\tif (e.trigger == ListSelectTrigger.Click || e.trigger == ListSelectTrigger.Enter) this.exec();\n\t\t} else {\n\t\t\tthis.input.value = '';\n\t\t\tif (e.trigger == ListSelectTrigger.Click || e.trigger == ListSelectTrigger.Enter) {\n\t\t\t\tthis.toggleSection((item as CommandSection).id);\n\t\t\t}\n\t\t}\n\n\t\tsetTimeout(() => this.input.focus());\n\t}\n\n\t_itemRenderer: ListItemRenderer = (div: HTMLDivElement, index: number) => {\n\t\treturn this.visibleItems[index] instanceof CommandSection\n\t\t\t? this._sectionRenderer(div, this.visibleItems[index] as CommandSection)\n\t\t\t: this._commandRenderer(div, this.visibleItems[index] as Command);\n\t}\n\n\tfirstUpdated() {\n\t\tthis.list.itemRenderer = this._itemRenderer;\n\t\tthis.list.addEventListener('select', this._onSelect);\n\t}\n\n\tasync updateCommands() {\n\t\tif (this.adapter) {\n\t\t\tthis.commands.clear();\n\t\t\tconst sections = (await Promise.all([this.adapter.getSections(this.filterValue)]))[0];\n\t\t\tsections.forEach(section => this.commands.registerSection(section, false));\n\t\t\tthis.visibleItems = this.commands.filter(null, this.showSections, true);\n\t\t} else {\n\t\t\tthis.visibleItems = this.commands.filter(this.filterValue, this.showSections);\n\t\t}\n\n\t\tthis.list.size = this.visibleItems.length;\n\t\tthis.list.selectedIndex = this.list.size > 0 ? 0 : -1;\n\t\tthis.list.renderItems(true);\n\t\tawait this.list.updateComplete;\n\t}\n\n\tasync toggleSection(sectionId: string) {\n\t\tconst section = this.commands.sections.get(sectionId);\n\t\tif (section.open) {\n\t\t\tsection.open = false;\n\t\t\tthis.visibleItems = this.commands.filter(this.filterValue, this.showSections, true);\n\t\t\tthis.list.size = this.visibleItems.length;\n\t\t} else {\n\t\t\tsection.open = true;\n\t\t\tif (this.adapter) {\n\t\t\t\tconst commands = (await Promise.all([this.adapter.getCommands(sectionId, this.filterValue)]))[0];\n\t\t\t\tif (commands.length > 0) {\n\t\t\t\t\tsection.commands.clear();\n\t\t\t\t\tcommands.forEach(c => section.addCommand(c));\n\t\t\t\t}\n\t\t\t\tthis.visibleItems = this.commands.filter(null, this.showSections, true);\n\t\t\t} else {\n\t\t\t\tthis.visibleItems = this.commands.filter(this.filterValue, this.showSections, true);\n\t\t\t}\n\t\t}\n\t\tthis.list.size = this.visibleItems.length;\n\t}\n\n\tupdatePosition() {\n\t\tif (this.target) {\n\t\t\tdom.setSize(this, {\n\t\t\t\tw: Math.min(constants.COMMAND_WINDOW_MAX_WIDTH, 0.9 * this.target.clientWidth)\n\t\t\t});\n\t\t\tdom.setCenterPosition(this, this.target, {horizontal: true, vertical: false});\n\t\t\tdom.setPosition(this, {t: 100});\n\t\t}\n\t}\n\n\trender = () => html`\n\t\t<div class=\"input\">\n\t\t\t<input ${ref(this.inputRef)}\n\t\t\t\ttype=\"text\"\n\t\t\t\t.placeholder=\"${this.placeholder}\"\n\t\t\t\t.value=\"${this.value}\">\n\t\t</div>\n\n\t\t${this.text != null ? html`<div class=\"text\">${this.text}</div>` : ''}\n\t\t\n\t\t<div class=\"list\">\n\t\t\t<og-list ${ref(this.listRef)}\n\t\t\t\tmaxHeight=\"300\"\n\t\t\t\t.customStyle=\"${itemStyle}\"\n\t\t\t\titemHeight=\"22\"\n\t\t\t\tlineHeight=\"20\"\n\t\t\t\tarrowEvents>\n\t\t\t</og-list>\n\t\t</div>\n\t`;\n\n}"]}
1
+ {"version":3,"file":"commandWindow.js","sourceRoot":"","sources":["../../src/ui/commandWindow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Commands, Command, CommandGroup, CommandsSection, initOptions, CommandMode, CommandSource } from \"../model\";\nimport { CommandsAdapter} from \"../adapters\";\nimport { Button, DropdownList, events, List, ListItemRenderer, ListItemRendererOptions, ListSelectEvent, ListSelectTrigger } from \"@omegagrid/core\";\nimport { LitElement, html, TemplateResult, PropertyValues } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { debounce } from \"ts-debounce\";\nimport { style, itemStyle } from \"./commandWindow.style\";\nimport { styleMap } from \"lit-html/directives/style-map.js\";\nimport { TabEvent } from \"@omegagrid/tabs\";\nimport { msg } from \"@omegagrid/localize\";\n\nexport class CommandEvent extends Event {\n\n\treadonly command?: Command;\n\treadonly value?: string;\n\treadonly section?: CommandsSection;\n\n\tconstructor(type: string, args?: Partial<CommandEvent>) {\n\t\tsuper(`command.${type}`, {bubbles: true, composed: true})\n\t\tif (args) Object.assign(this, args);\n\t}\n}\n\nexport type CommandRenderer = (div: HTMLDivElement, command: Command, opts?: ListItemRendererOptions) => string | void | TemplateResult<1> | null;\nexport type GroupRenderer = (div: HTMLDivElement, group: CommandGroup, opts?: ListItemRendererOptions) => string | void | TemplateResult<1> | null;\n\n@customElement('og-commands')\nexport class CommandWindow extends LitElement {\n\n\tstatic styles = [style];\n\n\tprivate visibleItems: (Command|CommandGroup)[];\n\n\t@property({type: Object})\n\toptions = initOptions();\n\n\t/**\n\t * search = commands are filtered by input value\n\t * input = commands are not filtered, input is used to enter custom value\n\t * none = no input, only command list is shown\n\t */\n\t@property({type: String})\n\tmode: CommandMode = 'search';\n\n\t@property({type: String})\n\tvalue: string;\n\n\t@property({type: String, reflect: true})\n\tsectionPosition: 'top'|'bottom'|'left'|'right' = 'right';\n\n\t@property({type: String})\n\ttext: string;\n\n\t@property({type: Array})\n\tcommands: CommandSource[];\n\t\n\t@property({type: Object})\n\tadapter: CommandsAdapter;\n\n\t@property({type: Object})\n\ttarget: HTMLElement;\n\n\t@property({type: String})\n\tplaceholder = '';\n\t\n\t@property({type: Boolean})\n\tshowGroups = false\n\n\t@property({type: Object})\n\tmodel = new Commands();\n\n\t@state()\n\tsections: CommandsSection[] = [{id: 'default'}];\n\n\t@state()\n\tactiveSectionIndex = 0;\n\n\t@state()\n\tnoResults = false;\n\n\t@query('og-list')\n\tlist: List;\n\n\t@query('input')\n\tinput: HTMLInputElement;\n\n\t@query('og-dropdown-list')\n\tdropdown: DropdownList;\n\n\tget activeSection() { return this.sections?.[this.activeSectionIndex] }\n\n\tget inputValue() { return this.input?.value ?? '' }\n\tget parsedInput() {\n\t\tconst input = this.inputValue;\n\t\tconst chunks = input.split(' ', 2);\n\t\tif (chunks.length > 1) {\n\t\t\tconst section = (this.sections ?? []).findIndex(s => s?.triggerCommand == chunks[0]);\n\t\t\tconst value = section > -1 ? chunks[1] ?? '' : input;\n\t\t\treturn { section, value };\n\t\t} else {\n\t\t\treturn { section: -1, value: input};\n\t\t}\n\t}\n\n\tget filterValue() {\n\t\treturn this.mode == 'search' ? this.parsedInput?.value ?? '' : '';\n\t}\n\n\t_commandRenderer: CommandRenderer = (div: HTMLDivElement, command: Command) => {\n\t\treturn html`<div class=\"command\">${command.name}</div>`;\n\t};\n\n\t_groupRenderer: GroupRenderer = (div: HTMLDivElement, group: CommandGroup) => {\n\t\treturn html`\n\t\t\t<div class=\"group\" @mousedown=\"${(e: MouseEvent) => e.preventDefault()}\">\n\t\t\t\t<div class=\"group-toggle\">\n\t\t\t\t\t<og-icon icon=\"angle-${group.open ? 'down' : 'right'}\"></og-icon>\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t\t<div class=\"group-text\">\n\t\t\t\t\t${group.name}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t};\n\n\tasync exec(dispatchEvent = true) {\n\t\tconst input = this.parsedInput;\n\t\tconst command = this.visibleItems[this.list.selectedIndex];\n\n\t\tif (!(command instanceof Command)) return;\n\t\t\n\t\tthis.clearFilter(false);\n\t\t\n\t\tcommand.exec(input.value);\n\t\tif (this.adapter) {\n\t\t\tthis.adapter.exec(command, input.value);\n\t\t}\n\t\t\n\t\tif (dispatchEvent) this.dispatchEvent(new CommandEvent('exec', { \n\t\t\tcommand: command,\n\t\t\tsection: this.sections.find(s => s.id === input.section),\n\t\t\tvalue: input.value\n\t\t}));\n\t}\n\n\t_onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.key != 'Escape') e.stopPropagation();\n\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.list.moveDown();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.list.moveUp();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\te.preventDefault();\n\t\t\t\tif (this.visibleItems[this.list.selectedIndex] instanceof CommandGroup) \n\t\t\t\t\tthis.toggleGroup((this.visibleItems[this.list.selectedIndex] as CommandGroup).id);\n\t\t\t\telse this.exec();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t_debounceInput = debounce(() => {\n\t\tif (this.mode != 'search') return;\n\t\tconst input = this.parsedInput;\n\t\tif (input.section > -1) {\n\t\t\tthis.activeSectionIndex = input.section;\n\t\t\tthis.input.value = '';\n\t\t}\n\t\tthis.updateCommands();\n\t})\n\n\t_onInput = (e: InputEvent) => {\n\t\te.stopPropagation();\n\t\tthis._debounceInput();\n\t}\n\n\t_onSectionSelect = (e: TabEvent) => {\n\t\tif (this.activeSectionIndex == e.index) return;\n\t\tthis.activeSectionIndex = e.index;\n\t\tif (this.activeSection?.triggerCommand != null) {\n\t\t\t//this.input.value = this.activeSection?.triggerCommand + ' ';\n\t\t\tthis.updateCommands();\n\t\t}\n\t\tthis.focus();\n\t}\n\n\t_onDropdownChange = (e: events.ChangeEvent) => {\n\t\tthis.activeSectionIndex = this.sections.findIndex(s => s.id === this.dropdown.value);\n\t\tif (this.activeSection?.triggerCommand != null) {\n\t\t\t//this.input.value = this.activeSection?.triggerCommand + ' ';\n\t\t\tthis.updateCommands();\n\t\t}\n\t\tthis.focus();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.addEventListener('click', e => e.stopPropagation());\n\t\tthis.addEventListener('keydown', this._onKeyDown);\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.tabIndex = 0;\n\t}\n\n\tfocus() {\n\t\tthis.input?.focus();\n\t}\n\n\tclearFilter(updateCommands = true) {\n\t\tthis.input.value = '';\n\t\tthis.focus();\n\t\tif (updateCommands) this.updateCommands();\n\t}\n\n\tasync willUpdate(props: PropertyValues) {\n\t\tif (props.has('adapter') && this.adapter) {\n\t\t\tthis.adapter.attach(this);\n\t\t\tconst [sections, options] = await Promise.all([this.adapter.getSections(), this.adapter.getOptions()]);\n\t\t\tthis.sections = sections;\n\t\t\tif (options) this.options = initOptions(options, this.options);\n\t\t} else if (props.has('commands') && this.commands) {\n\t\t\tthis.model.clear();\n\t\t\tthis.commands.forEach(c => this.model.register(c));\n\t\t}\n\n\t\tif (this.options) {\n\t\t\tif (this.options.commandRenderer) this._commandRenderer = this.options.commandRenderer;\n\t\t\tif (this.options.groupRenderer) this._groupRenderer = this.options.groupRenderer;\n\t\t}\n\t}\n\n\tasync updated(props: Map<PropertyKey, unknown>) {\n\t\tif (props.has('commands') || props.has('adapter') || props.has('model')) {\n\t\t\tawait this.updateCommands();\n\t\t}\n\t}\n\n\t_onSelect = (e: ListSelectEvent) => {\n\t\tconst item = this.visibleItems[e.index];\n\t\tif (item instanceof Command) {\n\t\t\tif (this.mode == 'search') this.input.value = item.name;\t\t\t\n\t\t\tif (e.trigger == ListSelectTrigger.Click || e.trigger == ListSelectTrigger.Enter) {\n\t\t\t\tthis.exec();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.input.value = '';\n\t\t\tif (e.trigger == ListSelectTrigger.Click || e.trigger == ListSelectTrigger.Enter) {\n\t\t\t\tthis.toggleGroup((item as CommandGroup).id);\n\t\t\t}\n\t\t}\n\n\t\tsetTimeout(() => this.input.focus());\n\t}\n\n\t_itemRenderer: ListItemRenderer = (div: HTMLDivElement, index: number, opts?: ListItemRendererOptions) => {\n\t\treturn this.visibleItems[index] instanceof CommandGroup\n\t\t\t? this._groupRenderer(div, this.visibleItems[index] as CommandGroup, opts)\n\t\t\t: this._commandRenderer(div, this.visibleItems[index] as Command, opts);\n\t}\n\n\tasync updateCommands() {\n\t\tif (this.adapter) {\n\t\t\tthis.model.clear();\n\t\t\tconst switches = this.activeSection?.switches?.filter(s => s.checked).map(s => s.key) || [];\n\t\t\tconst [groups, commands] = (await Promise.all([this.adapter.getGroups({\n\t\t\t\tsectionId: this.activeSection?.id,\n\t\t\t\tfilter: this.filterValue,\n\t\t\t\tswitches\n\t\t\t}), this.adapter.getCommands({\n\t\t\t\tsectionId: this.activeSection?.id,\n\t\t\t\tfilter: this.filterValue,\n\t\t\t\tswitches\n\t\t\t})]));\n\t\t\tgroups?.forEach(group => this.model.registerGroup(group));\n\t\t\tcommands?.forEach(command => this.model.register(command));\n\t\t\tthis.visibleItems = this.model.filter(null, this.showGroups, true);\n\t\t} else {\n\t\t\tthis.visibleItems = this.model.filter(this.filterValue, this.showGroups);\n\t\t}\n\n\t\tthis.placeholder = this.activeSection?.placeholder || '';\n\t\tthis.list.reset();\n\t\tthis.list.size = this.visibleItems.length;\n\t\tthis.list.selectedIndex = this.visibleItems.findIndex(item => item instanceof Command) ?? 0;\n\t\tthis.list.renderItems(true);\n\n\t\tthis.noResults = this.visibleItems.length == 0;\n\t\tawait this.list.updateComplete;\n\t}\n\n\tasync toggleGroup(groupId: string) {\n\t\tconst group = this.model.groups.get(groupId);\n\t\tthis.list.reset();\n\t\t\n\t\tif (group.open) {\n\t\t\tgroup.open = false;\n\t\t\tthis.visibleItems = this.model.filter(this.filterValue, this.showGroups, true);\n\t\t\tthis.list.size = this.visibleItems.length;\n\t\t} else {\n\t\t\tgroup.open = true;\n\t\t\tif (this.adapter) {\n\t\t\t\tconst commands = (await Promise.all([this.adapter.getCommands({\n\t\t\t\t\tsectionId: this.activeSection?.id,\n\t\t\t\t\tgroupId, \n\t\t\t\t\tfilter: this.filterValue\n\t\t\t\t})]))[0];\n\n\t\t\t\tif (commands.length > 0) {\n\t\t\t\t\tgroup.commands.clear();\n\t\t\t\t\tcommands.forEach(c => {\n\t\t\t\t\t\tif (!c.group || c.group == groupId) group.addCommand(c);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.visibleItems = this.model.filter(null, this.showGroups, true);\n\t\t\t} else {\n\t\t\t\tthis.visibleItems = this.model.filter(this.filterValue, this.showGroups, true);\n\t\t\t}\n\t\t}\n\t\tthis.list.size = this.visibleItems.length;\n\t}\n\n\tprivate getSectionTitle(section: CommandsSection) {\n\t\treturn (section.title ?? section.id) + (section.triggerCommand ? ` (${section.triggerCommand})` : '');\n\t}\n\n\trenderTabs = () => this.sections?.length > 1 ? html`\n\t\t<og-container \n\t\t\t.horizontalSliderPosition=\"${this.sectionPosition == 'top' ? 'bottom' : 'top'}\"\n\t\t\tscrollMode=\"horizontal\" \n\t\t\tsliderSize=\"4\">\n\t\t\t<og-tabs\n\t\t\t\tslot=\"content\"\n\t\t\t\tclass=\"tabs\"\n\t\t\t\ttabSize=\"stretch\"\n\t\t\t\ttabAlign=\"center\"\n\t\t\t\tstyle=\"${styleMap({borderTop: this.sectionPosition == 'bottom' ? '1px solid var(--og-border)' : ''})}\"\n\t\t\t\t@tab.select=\"${this._onSectionSelect}\"\n\t\t\t\t.position=\"${this.sectionPosition == 'top' ? 'top' : 'bottom'}\"\n\t\t\t\t.selectedIndex=\"${this.activeSectionIndex}\"\n\t\t\t\t.items=\"${this.sections.map(section => ({...section, title: this.getSectionTitle(section)}))}\">\n\t\t\t</og-tabs>\n\t\t</og-container>\n\t` : ''\n\n\trenderDropdown = () => this.sections?.length > 1 ? html`\n\t\t<og-dropdown-list \n\t\t\tcolor=\"transparent\"\n\t\t\t.value=\"${this.activeSection?.id}\"\n\t\t\t@change=\"${this._onDropdownChange}\"\n\t\t\t.items=\"${this.sections.map(section => ({\n\t\t\t\tk: section.id as string,\n\t\t\t\tv: this.getSectionTitle(section),\n\t\t\t\ticon: section.icon\n\t\t\t}))}\">\n\t\t</og-dropdown-list>\n\t` : '';\n\n\trenderSwitches = () => this.activeSection?.switches?.length > 0 ? html`\n\t\t<div class=\"switches\">\n\t\t\t${this.activeSection.switches.map((s) => html`\n\t\t\t\t<og-button \n\t\t\t\t\ttype=\"toggle\"\n\t\t\t\t\t.text=\"${s.value}\"\n\t\t\t\t\t.state=\"${s.checked ? 'checked' : 'unchecked'}\"\n\t\t\t\t\t@click=\"${(e: PointerEvent) => {\n\t\t\t\t\t\ts.checked = (e.target as Button).state === 'checked';\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\tthis.updateCommands();\n\t\t\t\t\t}}\">\n\t\t\t\t</og-button>\n\t\t\t`)}\n\t\t</div>\n\t` : '';\n\n\trender = () => html`\n\t\t<div class=\"input\">\n\t\t\t${this.sectionPosition == 'left' ? this.renderDropdown() : ''}\n\t\t\t\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\t@input=\"${this._onInput}\"\n\t\t\t\t.placeholder=\"${this.placeholder}\"\n\t\t\t\t.value=\"${this.value ?? ''}\">\n\n\t\t\t${this.sectionPosition == 'right' ? this.renderDropdown() : ''}\n\t\t</div>\n\n\t\t${this.sectionPosition != 'bottom' ? this.renderSwitches() : ''}\n\n\t\t${this.text != null ? html`<div class=\"text\">${this.text}</div>` : ''}\n\n\t\t${this.sectionPosition == 'top' ? this.renderTabs() : ''}\n\n\t\t${this.noResults ? html`\n\t\t\t<div class=\"no-results\">${msg('No results found')}</div>\n\t\t` : ''}\n\n\t\t<div class=\"list\">\n\t\t\t<og-list\n\t\t\t\tarrowEvents\n\t\t\t\tmaxHeight=\"300\"\n\t\t\t\t?dynamicItemHeight=\"${this.options?.commandRenderer != null}\"\n\t\t\t\t.customStyle=\"${[this.options?.itemStyle, itemStyle]}\"\n\t\t\t\t.lineHeight=\"${this.options.itemHeight - 2}\"\n\t\t\t\t.itemHeight=\"${this.options.itemHeight}\"\n\t\t\t\t.itemRenderer=\"${this._itemRenderer}\"\n\t\t\t\t@select=\"${this._onSelect}\">\n\t\t\t</og-list>\n\t\t</div>\n\n\t\t${this.sectionPosition == 'bottom' ? this.renderSwitches() : ''}\n\n\t\t${this.sectionPosition == 'bottom' ? this.renderTabs() : ''}\n\t`;\n\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"commandWindow.style.d.ts","sourceRoot":"","sources":["../../src/ui/commandWindow.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,yBAkDjB,CAAC;AAEF,eAAO,MAAM,SAAS,yBAgCrB,CAAC"}
1
+ {"version":3,"file":"commandWindow.style.d.ts","sourceRoot":"","sources":["../../src/ui/commandWindow.style.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,yBA0GjB,CAAC;AAEF,eAAO,MAAM,SAAS,yBAqCrB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { css } from 'lit';
2
+ import constants from '../constants';
2
3
  export const style = css `
3
4
  * {
4
5
  box-sizing: border-box;
@@ -7,7 +8,6 @@ export const style = css `
7
8
  :host {
8
9
  background: var(--og-commands-background);
9
10
  color: var(--og-commands-color);
10
- z-index: 100000;
11
11
  display: flex;
12
12
  flex-direction: column;
13
13
  box-shadow: 0px 0px 6px 1px var(--og-commands-shadow);
@@ -15,7 +15,6 @@ export const style = css `
15
15
  border-radius: var(--og-base-radius);
16
16
  font-family: var(--og-font-family);
17
17
  font-size: var(--og-font-size);
18
- display: none;
19
18
  }
20
19
 
21
20
  .text {
@@ -25,18 +24,53 @@ export const style = css `
25
24
  .input {
26
25
  width: 100%;
27
26
  padding: 6px;
28
- background: var(--og-background-color-2);
27
+ display: flex;
28
+ flex-direction: row;
29
+ }
30
+
31
+ :host([sectionposition="left"]) .input > input {
32
+ border-top-left-radius: 0;
33
+ border-bottom-left-radius: 0;
34
+ }
35
+
36
+ :host([sectionposition="right"]) .input > input {
37
+ border-top-right-radius: 0;
38
+ border-bottom-right-radius: 0;
39
+ }
40
+
41
+ :host([sectionposition="left"]) .input > og-dropdown-list {
42
+ border-right: none;
43
+ border-top-right-radius: 0;
44
+ border-bottom-right-radius: 0;
29
45
  }
30
46
 
31
- .input>input {
47
+ :host([sectionposition="right"]) .input > og-dropdown-list {
48
+ border-left: none;
49
+ border-top-left-radius: 0;
50
+ border-bottom-left-radius: 0;
51
+ }
52
+
53
+ .input > og-dropdown-list {
54
+ flex: 0 0 100px;
55
+ height: 100%;
56
+ border: 1px solid var(--og-border);
57
+ padding-right: 5px;
58
+ }
59
+
60
+ .input > input {
32
61
  width: 100%;
33
62
  font-size: 16px;
34
63
  padding: 4px;
35
- border: 1px solid var(--og-accent-color);
64
+ border: 1px solid var(--og-border);
36
65
  border-radius: var(--og-base-radius);
37
66
  background-color: var(--og-commands-input-background);
38
67
  color: var(--og-commands-color);
39
68
  outline: none;
69
+ flex: 1;
70
+ }
71
+
72
+ .tabs {
73
+ flex: 0;
40
74
  }
41
75
 
42
76
  .list {
@@ -46,9 +80,32 @@ export const style = css `
46
80
  height: 100%;
47
81
  }
48
82
 
83
+ og-container {
84
+ height: 30px;
85
+ }
86
+
49
87
  og-list {
50
88
  height: 250px;
51
89
  }
90
+
91
+ .no-results {
92
+ padding: 0 10px 10px 10px;
93
+ }
94
+
95
+ :host([sectionposition="bottom"]) .switches {
96
+ padding-top: 6px;
97
+ }
98
+
99
+ .switches {
100
+ padding: 0 6px 6px 6px;
101
+ }
102
+
103
+ .switches og-button {
104
+ font-size: 0.8em;
105
+ height: 16px;
106
+ border: 1px solid var(--og-accent-color);
107
+ border-radius: 8px;
108
+ }
52
109
  `;
53
110
  export const itemStyle = css `
54
111
  .item {
@@ -67,16 +124,21 @@ export const itemStyle = css `
67
124
  padding: 0 5px;
68
125
  }
69
126
 
70
- .item .section {
127
+ .item .group {
71
128
  background-color: var(--og-commands-header-background);
72
129
  }
73
130
 
74
- .item .section-toggle {
131
+ .item .group-toggle {
75
132
  width: 15px;
76
133
  }
77
134
 
78
- .item .section og-icon {
79
- line-height: 20px;
135
+ .item .group-text {
136
+ line-height: ${constants.COMMAND_ITEM_HEIGHT - 2}px;
137
+ }
138
+
139
+ .item .group og-icon {
140
+ line-height: ${constants.COMMAND_ITEM_HEIGHT - 2}px;
141
+ display: inline;
80
142
  }
81
143
 
82
144
  .item .command {
@@ -1 +1 @@
1
- {"version":3,"file":"commandWindow.style.js","sourceRoot":"","sources":["../../src/ui/commandWindow.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDvB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC3B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const style = css`\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\n\t:host {\n\t\tbackground: var(--og-commands-background);\n\t\tcolor: var(--og-commands-color);\n\t\tz-index: 100000;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tbox-shadow: 0px 0px 6px 1px var(--og-commands-shadow);\n\t\tborder: 1px solid var(--og-border);\n\t\tborder-radius: var(--og-base-radius);\n\t\tfont-family: var(--og-font-family);\n\t\tfont-size: var(--og-font-size);\n\t\tdisplay: none;\n\t}\n\n\t.text {\n\t\tpadding: 4px 4px 8px 4px;\n\t}\n\n\t.input {\n\t\twidth: 100%;\n\t\tpadding: 6px;\n\t\tbackground: var(--og-background-color-2);\n\t}\n\n\t.input>input {\n\t\twidth: 100%;\n\t\tfont-size: 16px;\n\t\tpadding: 4px;\n\t\tborder: 1px solid var(--og-accent-color);\n\t\tborder-radius: var(--og-base-radius);\n\t\tbackground-color: var(--og-commands-input-background);\n\t\tcolor: var(--og-commands-color);\n\t\toutline: none;\n\t}\n\n\t.list {\n\t\tflex: 1;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\theight: 100%;\n\t}\n\n\tog-list {\n\t\theight: 250px;\n\t}\n`;\n\nexport const itemStyle = css`\n\t.item {\n\t\tborder: 1px solid transparent;\n\t}\n\n\t.item.selected {\n\t\tborder: 1px solid var(--og-accent-color);\n\t}\n\n\t.item>div {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\t\n\t\theight: 100%;\n\t\tpadding: 0 5px;\n\t}\n\n\t.item .section {\n\t\tbackground-color: var(--og-commands-header-background);\n\t}\n\n\t.item .section-toggle {\n\t\twidth: 15px;\n\t}\n\n\t.item .section og-icon {\n\t\tline-height: 20px;\n\t}\n\n\t.item .command {\n\t\tmargin-left: 10px;\n\t}\n`;"]}
1
+ {"version":3,"file":"commandWindow.style.js","sourceRoot":"","sources":["../../src/ui/commandWindow.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0GvB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0BX,SAAS,CAAC,mBAAmB,GAAG,CAAC;;;;iBAIjC,SAAS,CAAC,mBAAmB,GAAG,CAAC;;;;;;;CAOjD,CAAC","sourcesContent":["import { css } from 'lit';\nimport constants from '../constants';\n\nexport const style = css`\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\n\t:host {\n\t\tbackground: var(--og-commands-background);\n\t\tcolor: var(--og-commands-color);\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tbox-shadow: 0px 0px 6px 1px var(--og-commands-shadow);\n\t\tborder: 1px solid var(--og-border);\n\t\tborder-radius: var(--og-base-radius);\n\t\tfont-family: var(--og-font-family);\n\t\tfont-size: var(--og-font-size);\n\t}\n\n\t.text {\n\t\tpadding: 4px 4px 8px 4px;\n\t}\n\n\t.input {\n\t\twidth: 100%;\n\t\tpadding: 6px;\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t}\n\n\t:host([sectionposition=\"left\"]) .input > input {\n\t\tborder-top-left-radius: 0;\n\t\tborder-bottom-left-radius: 0;\n\t}\n\n\t:host([sectionposition=\"right\"]) .input > input {\n\t\tborder-top-right-radius: 0;\n\t\tborder-bottom-right-radius: 0;\n\t}\n\n\t:host([sectionposition=\"left\"]) .input > og-dropdown-list {\n\t\tborder-right: none;\n\t\tborder-top-right-radius: 0;\n\t\tborder-bottom-right-radius: 0;\n\t}\n\n\t:host([sectionposition=\"right\"]) .input > og-dropdown-list {\n\t\tborder-left: none;\n\t\tborder-top-left-radius: 0;\n\t\tborder-bottom-left-radius: 0;\n\t}\n\n\t.input > og-dropdown-list {\n\t\tflex: 0 0 100px;\n\t\theight: 100%;\n\t\tborder: 1px solid var(--og-border);\n\t\tpadding-right: 5px;\n\t}\n\n\t.input > input {\n\t\twidth: 100%;\n\t\tfont-size: 16px;\n\t\tpadding: 4px;\n\t\tborder: 1px solid var(--og-border);\n\t\tborder-radius: var(--og-base-radius);\n\t\tbackground-color: var(--og-commands-input-background);\n\t\tcolor: var(--og-commands-color);\n\t\toutline: none;\n\t\tflex: 1;\n\t}\n\n\t.tabs {\n\t\tflex: 0;\n\t}\n\n\t.list {\n\t\tflex: 1;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\theight: 100%;\n\t}\n\n\tog-container {\n\t\theight: 30px;\n\t}\n\n\tog-list {\n\t\theight: 250px;\n\t}\n\n\t.no-results {\n\t\tpadding: 0 10px 10px 10px;\n\t}\n\n\t:host([sectionposition=\"bottom\"]) .switches {\n\t\tpadding-top: 6px;\n\t}\n\n\t.switches {\n\t\tpadding: 0 6px 6px 6px;\n\t}\n\n\t.switches og-button {\n\t\tfont-size: 0.8em;\n\t\theight: 16px;\n\t\tborder: 1px solid var(--og-accent-color);\n\t\tborder-radius: 8px;\n\t}\n`;\n\nexport const itemStyle = css`\n\t.item {\n\t\tborder: 1px solid transparent;\n\t}\n\n\t.item.selected {\n\t\tborder: 1px solid var(--og-accent-color);\n\t}\n\n\t.item>div {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\t\n\t\theight: 100%;\n\t\tpadding: 0 5px;\n\t}\n\n\t.item .group {\n\t\tbackground-color: var(--og-commands-header-background);\n\t}\n\n\t.item .group-toggle {\n\t\twidth: 15px;\n\t}\n\n\t.item .group-text {\n\t\tline-height: ${constants.COMMAND_ITEM_HEIGHT - 2}px;\n\t}\n\n\t.item .group og-icon {\n\t\tline-height: ${constants.COMMAND_ITEM_HEIGHT - 2}px;\n\t\tdisplay: inline;\n\t}\n\n\t.item .command {\n\t\tmargin-left: 10px;\n\t}\n`;"]}
@@ -0,0 +1,7 @@
1
+ import { FloatingWindow } from "@omegagrid/core";
2
+ export declare class FloatingCommands extends FloatingWindow {
3
+ static styles: import("lit").CSSResult;
4
+ connectedCallback(): void;
5
+ disconnectedCallback(): void;
6
+ }
7
+ //# sourceMappingURL=floatingCommandWindow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floatingCommandWindow.d.ts","sourceRoot":"","sources":["../../src/ui/floatingCommandWindow.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBACa,gBAAiB,SAAQ,cAAc;IAEnD,MAAM,CAAC,MAAM,0BAiBX;IAEF,iBAAiB;IAIjB,oBAAoB;CAIpB"}
@@ -0,0 +1,41 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { css } from 'lit';
8
+ import { customElement } from 'lit/decorators.js';
9
+ import constants from "../constants";
10
+ import { FloatingWindow } from "@omegagrid/core";
11
+ let FloatingCommands = class FloatingCommands extends FloatingWindow {
12
+ connectedCallback() {
13
+ super.connectedCallback();
14
+ }
15
+ disconnectedCallback() {
16
+ super.disconnectedCallback();
17
+ }
18
+ };
19
+ FloatingCommands.styles = css `
20
+ * {
21
+ box-sizing: border-box;
22
+ }
23
+
24
+ :host {
25
+ position: absolute;
26
+ display: block;
27
+ overflow: hidden;
28
+ box-shadow: inset 0px 4px 3px -2px var(--og-inset-shadow-color);
29
+ max-width: ${constants.FLOATING_WINDOW_MAX_WIDTH}px;
30
+ z-index: 10000;
31
+ }
32
+
33
+ slot[name="content"] {
34
+ border: 2px solid red;
35
+ }
36
+ `;
37
+ FloatingCommands = __decorate([
38
+ customElement('og-floating-commands')
39
+ ], FloatingCommands);
40
+ export { FloatingCommands };
41
+ //# sourceMappingURL=floatingCommandWindow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floatingCommandWindow.js","sourceRoot":"","sources":["../../src/ui/floatingCommandWindow.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG1C,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,cAAc;IAqBnD,iBAAiB;QAChB,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,oBAAoB;QACnB,KAAK,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;;AAzBM,uBAAM,GAAG,GAAG,CAAA;;;;;;;;;;gBAUJ,SAAS,CAAC,yBAAyB;;;;;;;EAOjD,AAjBY,CAiBX;AAnBU,gBAAgB;IAD5B,aAAa,CAAC,sBAAsB,CAAC;GACzB,gBAAgB,CA6B5B","sourcesContent":["import { css } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport constants from \"../constants\";\nimport { FloatingWindow } from \"@omegagrid/core\";\n\n@customElement('og-floating-commands')\nexport class FloatingCommands extends FloatingWindow {\n\n\tstatic styles = css`\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\t:host {\n\t\t\tposition: absolute;\n\t\t\tdisplay: block;\n\t\t\toverflow: hidden;\n\t\t\tbox-shadow: inset 0px 4px 3px -2px var(--og-inset-shadow-color);\n\t\t\tmax-width: ${constants.FLOATING_WINDOW_MAX_WIDTH}px;\n\t\t\tz-index: 10000;\n\t\t}\n\n\t\tslot[name=\"content\"] {\n\t\t\tborder: 2px solid red;\n\t\t}\n\t`;\n\t\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback();\n\t}\n\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/commands",
3
- "version": "0.8.4",
3
+ "version": "0.9.0",
4
4
  "license": "UNLICENSED",
5
5
  "description": "Command window",
6
6
  "main": "./dist/index.js",
@@ -27,7 +27,9 @@
27
27
  "_prepublish": "yarn test && yarn lint"
28
28
  },
29
29
  "dependencies": {
30
- "@omegagrid/core": "^0.8.4",
30
+ "@omegagrid/core": "^0.9.0",
31
+ "@omegagrid/localize": "^0.9.0",
32
+ "@omegagrid/tabs": "^0.9.0",
31
33
  "lit": "^3.1.1",
32
34
  "lit-html": "^3.1.1",
33
35
  "ts-debounce": "^4.0.0"
@@ -1,9 +0,0 @@
1
- import { ComponentAdapter } from "@omegagrid/core";
2
- import { Command, CommandSection } from "./commands";
3
- import { Options } from "./options";
4
- export declare abstract class CommandsAdapter extends ComponentAdapter {
5
- abstract getSections(filter?: string): CommandSection[] | Promise<CommandSection[]>;
6
- abstract getCommands(sectionId: string, filter?: string): Command[] | Promise<Command[]>;
7
- getOptions(): Options | Promise<Options> | null;
8
- }
9
- //# sourceMappingURL=adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/model/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,8BAAsB,eAAgB,SAAQ,gBAAgB;IAE7D,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,GAAC,OAAO,CAAC,cAAc,EAAE,CAAC;IACjF,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,GAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAEtF,UAAU,IAAI,OAAO,GAAC,OAAO,CAAC,OAAO,CAAC,GAAC,IAAI;CAI3C"}
@@ -1,7 +0,0 @@
1
- import { ComponentAdapter } from "@omegagrid/core";
2
- export class CommandsAdapter extends ComponentAdapter {
3
- getOptions() {
4
- return null;
5
- }
6
- }
7
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/model/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD,MAAM,OAAgB,eAAgB,SAAQ,gBAAgB;IAK7D,UAAU;QACT,OAAO,IAAI,CAAC;IACb,CAAC;CAED","sourcesContent":["import { ComponentAdapter } from \"@omegagrid/core\";\nimport { Command, CommandSection } from \"./commands\";\nimport { Options } from \"./options\";\n\nexport abstract class CommandsAdapter extends ComponentAdapter {\n\t\n\tabstract getSections(filter?: string): CommandSection[]|Promise<CommandSection[]>;\n\tabstract getCommands(sectionId: string, filter?: string): Command[]|Promise<Command[]>;\n\n\tgetOptions(): Options|Promise<Options>|null {\n\t\treturn null;\n\t}\n\n}"]}