app.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import { APP_STATE } from "./core/enums/app-state-enum";
  2. import { stages as Stages } from "./core/application/stages";
  3. import { objects as Objects } from "./core/application/objects";
  4. import { state as State } from "./core/application/state";
  5. import { selector as Selector } from "./core/application/selector";
  6. import { menu as Menu } from "./core/application/menu";
  7. export const app = (function() {
  8. let _selectedTool = [];
  9. function _bootstrap() {
  10. Selector.bootstrap();
  11. requireAll(require.context("./component-registry/", true, /\.js$/));
  12. _refreshMenu();
  13. }
  14. function _currentLayer() {
  15. return Stages.getCurrentLayer();
  16. }
  17. function _setSelectedTool(tool) {
  18. _clearSelectedTool();
  19. _setState(APP_STATE.TOOL_SELECTED);
  20. if (tool.id != undefined) {
  21. document.getElementById("btn-" + tool.id).disabled = true;
  22. }
  23. _selectedTool.push(tool);
  24. }
  25. function _clearSelectedTool() {
  26. let tool = _getSelectedTool();
  27. if (tool != undefined) {
  28. if (tool.id != undefined) {
  29. document.getElementById("btn-" + tool.id).disabled = false;
  30. }
  31. }
  32. _selectedTool = [];
  33. _setStatus("");
  34. _setState(APP_STATE.NONE);
  35. }
  36. function _getSelectedTool() {
  37. if (_selectedTool.length > 0) return _selectedTool[0];
  38. return undefined;
  39. }
  40. function _getRelativePointerPosition() {
  41. const stage = Stages.getCurrentKonvaStage();
  42. return stage.getPointerPosition();
  43. }
  44. function _setStatus(status) {
  45. document.getElementById("status").innerHTML = status;
  46. }
  47. function _pushObject(object) {
  48. Objects.add(object);
  49. }
  50. function _getObjects() {
  51. return Objects.get();
  52. }
  53. function _setState(e) {
  54. State.setState(e);
  55. }
  56. function _refreshMenu() {
  57. Menu.refresh();
  58. }
  59. function requireAll(r) {
  60. r.keys().forEach(r);
  61. }
  62. _bootstrap();
  63. return {
  64. stage: Stages.getCurrentKonvaStage,
  65. currentLayer: _currentLayer,
  66. bootstrap: _bootstrap,
  67. setSelectedTool: _setSelectedTool,
  68. clearSelectedTool: _clearSelectedTool,
  69. getSelectedTool: _getSelectedTool,
  70. pos: _getRelativePointerPosition,
  71. setStatus: _setStatus,
  72. pushObject: _pushObject,
  73. getObjects: _getObjects,
  74. setState: _setState
  75. };
  76. })();