1
0

app.js 2.5 KB

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