@node-projects/web-component-designer 0.0.59 → 0.0.60

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/.github/FUNDING.yml +3 -0
  2. package/dist/commandHandling/CommandType.d.ts +3 -0
  3. package/dist/commandHandling/CommandType.js +3 -0
  4. package/dist/elements/services/DefaultServiceBootstrap.js +5 -0
  5. package/dist/elements/services/GlobalContext.d.ts +4 -0
  6. package/dist/elements/services/GlobalContext.js +12 -0
  7. package/dist/elements/services/ServiceContainer.d.ts +5 -0
  8. package/dist/elements/services/ServiceContainer.js +4 -0
  9. package/dist/elements/services/demoProviderService/DemoProviderService.d.ts +6 -0
  10. package/dist/elements/services/demoProviderService/DemoProviderService.js +28 -0
  11. package/dist/elements/services/demoProviderService/IDemoProviderService.d.ts +5 -0
  12. package/dist/elements/services/demoProviderService/IDemoProviderService.js +1 -0
  13. package/dist/elements/widgets/demoView/demoView.d.ts +1 -1
  14. package/dist/elements/widgets/demoView/demoView.js +3 -22
  15. package/dist/elements/widgets/designerView/ButtonSeperatorProvider copy.d.ts +7 -0
  16. package/dist/elements/widgets/designerView/ButtonSeperatorProvider copy.js +11 -0
  17. package/dist/elements/widgets/designerView/ButtonSeperatorProvider.d.ts +8 -0
  18. package/dist/elements/widgets/designerView/ButtonSeperatorProvider.js +11 -0
  19. package/dist/elements/widgets/designerView/DesignContext.d.ts +3 -0
  20. package/dist/elements/widgets/designerView/DesignContext.js +1 -0
  21. package/dist/elements/widgets/designerView/DesignerViewUseOverlayScollbars.d.ts +7 -0
  22. package/dist/elements/widgets/designerView/DesignerViewUseOverlayScollbars.js +13 -0
  23. package/dist/elements/widgets/designerView/IDesignContext.d.ts +3 -0
  24. package/dist/elements/widgets/designerView/IDesignViewConfigButtonsProvider.d.ts +5 -0
  25. package/dist/elements/widgets/designerView/IDesignViewConfigButtonsProvider.js +1 -0
  26. package/dist/elements/widgets/designerView/designerCanvas.d.ts +0 -1
  27. package/dist/elements/widgets/designerView/designerCanvas.js +25 -12
  28. package/dist/elements/widgets/designerView/designerView.d.ts +1 -0
  29. package/dist/elements/widgets/designerView/designerView.js +14 -0
  30. package/dist/elements/widgets/designerView/extensions/GridExtensionConfigButtons.d.ts +5 -0
  31. package/dist/elements/widgets/designerView/extensions/GridExtensionConfigButtons.js +12 -0
  32. package/dist/elements/widgets/designerView/extensions/GridExtensionDesignViewConfigButtons.d.ts +6 -0
  33. package/dist/elements/widgets/designerView/extensions/GridExtensionDesignViewConfigButtons.js +21 -0
  34. package/dist/elements/widgets/designerView/extensions/GridExtensionProvider copy.d.ts +10 -0
  35. package/dist/elements/widgets/designerView/extensions/GridExtensionProvider copy.js +18 -0
  36. package/dist/elements/widgets/designerView/extensions/GridExtensionProvider.d.ts +1 -0
  37. package/dist/elements/widgets/designerView/extensions/GridExtensionProvider.js +2 -1
  38. package/dist/elements/widgets/designerView/extensions/GridExtensionProviderConfigButtons.d.ts +5 -0
  39. package/dist/elements/widgets/designerView/extensions/GridExtensionProviderConfigButtons.js +12 -0
  40. package/dist/elements/widgets/designerView/extensions/GridExtensionProviderOptions.d.ts +10 -0
  41. package/dist/elements/widgets/designerView/extensions/GridExtensionProviderOptions.js +18 -0
  42. package/dist/elements/widgets/designerView/extensions/IDesignViewConfigButtonsProvider.d.ts +0 -0
  43. package/dist/elements/widgets/designerView/extensions/IDesignViewConfigButtonsProvider.js +1 -0
  44. package/dist/elements/widgets/designerView/extensions/IExtensionConfiguration.d.ts +3 -0
  45. package/dist/elements/widgets/designerView/extensions/IExtensionConfiguration.js +1 -0
  46. package/dist/elements/widgets/designerView/tools/DrawPathTool.d.ts +9 -0
  47. package/dist/elements/widgets/designerView/tools/DrawPathTool.js +95 -29
  48. package/dist/elements/widgets/designerView/tools/PointerTool.js +2 -2
  49. package/dist/index.d.ts +2 -0
  50. package/dist/index.js +1 -0
  51. package/package.json +39 -39
@@ -0,0 +1,3 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: jogibear9988
@@ -21,5 +21,8 @@ export declare enum CommandType {
21
21
  'distributeHorizontal' = "distributeHorizontaly",
22
22
  'distributeVertical' = "distributeVertical",
23
23
  'setTool' = "setTool",
24
+ 'setStrokeColor' = "setStrokeColor",
25
+ 'setFillBrush' = "setFillBrush",
26
+ 'setStrokeThickness' = "setStrokeThickness",
24
27
  'screenshot' = "screenshot"
25
28
  }
@@ -22,5 +22,8 @@ export var CommandType;
22
22
  CommandType["distributeHorizontal"] = "distributeHorizontaly";
23
23
  CommandType["distributeVertical"] = "distributeVertical";
24
24
  CommandType["setTool"] = "setTool";
25
+ CommandType["setStrokeColor"] = "setStrokeColor";
26
+ CommandType["setFillBrush"] = "setFillBrush";
27
+ CommandType["setStrokeThickness"] = "setStrokeThickness";
25
28
  CommandType["screenshot"] = "screenshot";
26
29
  })(CommandType || (CommandType = {}));
@@ -45,6 +45,9 @@ import { DragDropService } from './dragDropService/DragDropService';
45
45
  import { EditTextExtensionProvider } from '../widgets/designerView/extensions/EditText/EditTextExtensionProvider.js';
46
46
  import { CopyPasteService } from './copyPasteService/CopyPasteService';
47
47
  import { DefaultModelCommandService } from './modelCommandService/DefaultModelCommandService';
48
+ import { ButtonSeperatorProvider } from '../widgets/designerView/ButtonSeperatorProvider';
49
+ import { GridExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/GridExtensionDesignViewConfigButtons';
50
+ import { DemoProviderService } from './demoProviderService/DemoProviderService';
48
51
  export function createDefaultServiceContainer() {
49
52
  let serviceContainer = new ServiceContainer();
50
53
  serviceContainer.register("propertyService", new PolymerPropertiesService());
@@ -65,6 +68,7 @@ export function createDefaultServiceContainer() {
65
68
  serviceContainer.register("dragDropService", new DragDropService());
66
69
  serviceContainer.register("copyPasteService", new CopyPasteService());
67
70
  serviceContainer.register("modelCommandService", new DefaultModelCommandService());
71
+ serviceContainer.register("demoProviderService", new DemoProviderService());
68
72
  serviceContainer.designerExtensions.set(ExtensionType.Permanent, [
69
73
  new ResizeExtensionProvider(false),
70
74
  new InvisibleDivExtensionProvider()
@@ -106,6 +110,7 @@ export function createDefaultServiceContainer() {
106
110
  serviceContainer.designerTools.set(NamedTools.MagicWandSelector, new MagicWandSelectorTool());
107
111
  serviceContainer.designerTools.set(NamedTools.PickColor, new PickColorTool());
108
112
  serviceContainer.designerTools.set(NamedTools.Text, new TextTool());
113
+ serviceContainer.designViewConfigButtons.push(new ButtonSeperatorProvider(20), new GridExtensionDesignViewConfigButtons());
109
114
  serviceContainer.designerContextMenuExtensions = [
110
115
  new CopyPasteContextMenu(),
111
116
  new ZMoveContextMenu(),
@@ -5,6 +5,7 @@ export declare class GlobalContext {
5
5
  private _serviceContainer;
6
6
  private _tool;
7
7
  private _strokeColor;
8
+ private _strokeThickness;
8
9
  private _fillBrush;
9
10
  constructor(serviceContainer: ServiceContainer);
10
11
  set tool(tool: ITool);
@@ -14,6 +15,9 @@ export declare class GlobalContext {
14
15
  set strokeColor(strokeColor: string);
15
16
  get strokeColor(): string;
16
17
  readonly onStrokeColorChanged: TypedEvent<PropertyChangedArgs<string>>;
18
+ set strokeThickness(strokeThickness: string);
19
+ get strokeThickness(): string;
20
+ readonly onStrokeThicknessChanged: TypedEvent<PropertyChangedArgs<string>>;
17
21
  set fillBrush(fillBrush: string);
18
22
  get fillBrush(): string;
19
23
  readonly onFillBrushChanged: TypedEvent<PropertyChangedArgs<string>>;
@@ -5,6 +5,7 @@ export class GlobalContext {
5
5
  _serviceContainer;
6
6
  _tool;
7
7
  _strokeColor = 'black';
8
+ _strokeThickness = '3';
8
9
  _fillBrush = 'transparent';
9
10
  constructor(serviceContainer) {
10
11
  this._serviceContainer = serviceContainer;
@@ -36,6 +37,17 @@ export class GlobalContext {
36
37
  return this._strokeColor;
37
38
  }
38
39
  onStrokeColorChanged = new TypedEvent();
40
+ set strokeThickness(strokeThickness) {
41
+ if (this._strokeThickness !== strokeThickness) {
42
+ const oldStrokeThickness = this._strokeThickness;
43
+ this._strokeThickness = strokeThickness;
44
+ this.onStrokeThicknessChanged.emit(new PropertyChangedArgs(strokeThickness, oldStrokeThickness));
45
+ }
46
+ }
47
+ get strokeThickness() {
48
+ return this._strokeThickness;
49
+ }
50
+ onStrokeThicknessChanged = new TypedEvent();
39
51
  set fillBrush(fillBrush) {
40
52
  this._fillBrush = fillBrush;
41
53
  if (this._fillBrush !== fillBrush) {
@@ -23,6 +23,8 @@ import { IDragDropService } from './dragDropService/IDragDropService';
23
23
  import { ICopyPasteService } from "./copyPasteService/ICopyPasteService.js";
24
24
  import { IDesignerPointerExtensionProvider } from "../widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtensionProvider.js";
25
25
  import { IModelCommandService } from "./modelCommandService/IModelCommandService.js";
26
+ import { IDesignViewConfigButtonsProvider } from "../widgets/designerView/IDesignViewConfigButtonsProvider.js";
27
+ import { IDemoProviderService } from "./demoProviderService/IDemoProviderService.js";
26
28
  interface ServiceNameMap {
27
29
  "propertyService": IPropertiesService;
28
30
  "containerService": IPlacementService;
@@ -39,6 +41,7 @@ interface ServiceNameMap {
39
41
  "dragDropService": IDragDropService;
40
42
  "copyPasteService": ICopyPasteService;
41
43
  "modelCommandService": IModelCommandService;
44
+ "demoProviderService": IDemoProviderService;
42
45
  }
43
46
  export declare class ServiceContainer extends BaseServiceContainer<ServiceNameMap> {
44
47
  readonly config: {
@@ -46,6 +49,7 @@ export declare class ServiceContainer extends BaseServiceContainer<ServiceNameMa
46
49
  demoViewWidget: new (...args: any[]) => IDemoView & HTMLElement;
47
50
  };
48
51
  readonly designerExtensions: Map<(ExtensionType | string), IDesignerExtensionProvider[]>;
52
+ readonly designViewConfigButtons: IDesignViewConfigButtonsProvider[];
49
53
  readonly designerPointerExtensions: IDesignerPointerExtensionProvider[];
50
54
  designerContextMenuExtensions: IContextMenuExtension[];
51
55
  readonly globalContext: GlobalContext;
@@ -65,5 +69,6 @@ export declare class ServiceContainer extends BaseServiceContainer<ServiceNameMa
65
69
  get dragDropService(): IDragDropService;
66
70
  get copyPasteService(): ICopyPasteService;
67
71
  get modelCommandService(): IModelCommandService;
72
+ get demoProviderService(): IDemoProviderService;
68
73
  }
69
74
  export {};
@@ -8,6 +8,7 @@ export class ServiceContainer extends BaseServiceContainer {
8
8
  demoViewWidget: DemoView
9
9
  };
10
10
  designerExtensions = new Map();
11
+ designViewConfigButtons = [];
11
12
  designerPointerExtensions = [];
12
13
  designerContextMenuExtensions;
13
14
  globalContext = new GlobalContext(this);
@@ -57,4 +58,7 @@ export class ServiceContainer extends BaseServiceContainer {
57
58
  get modelCommandService() {
58
59
  return this.getLastService('modelCommandService');
59
60
  }
61
+ get demoProviderService() {
62
+ return this.getLastService('demoProviderService');
63
+ }
60
64
  }
@@ -0,0 +1,6 @@
1
+ import { InstanceServiceContainer } from "../InstanceServiceContainer.js";
2
+ import { ServiceContainer } from "../ServiceContainer.js";
3
+ import { IDemoProviderService } from "./IDemoProviderService.js";
4
+ export declare class DemoProviderService implements IDemoProviderService {
5
+ provideDemo(container: HTMLElement, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer, code: string): Promise<void>;
6
+ }
@@ -0,0 +1,28 @@
1
+ import { DomHelper } from '@node-projects/base-custom-webcomponent/dist/DomHelper';
2
+ export class DemoProviderService {
3
+ provideDemo(container, serviceContainer, instanceServiceContainer, code) {
4
+ return new Promise(resolve => {
5
+ const iframe = document.createElement('iframe');
6
+ iframe.style.width = '100%';
7
+ iframe.style.height = '100%';
8
+ iframe.style.border = 'none';
9
+ iframe.style.display = 'none';
10
+ DomHelper.removeAllChildnodes(container);
11
+ container.appendChild(iframe);
12
+ iframe.onload = () => {
13
+ iframe.style.display = 'block';
14
+ resolve();
15
+ };
16
+ const doc = iframe.contentWindow.document;
17
+ doc.open();
18
+ doc.write('<script type="module">');
19
+ for (let i of instanceServiceContainer.designContext.imports) {
20
+ doc.write("import '" + i + "';");
21
+ }
22
+ doc.write("document.body.style.display='';");
23
+ doc.write('</script>');
24
+ doc.write('<body style="display:none">' + code + '</body>');
25
+ doc.close();
26
+ });
27
+ }
28
+ }
@@ -0,0 +1,5 @@
1
+ import { InstanceServiceContainer } from "../InstanceServiceContainer.js";
2
+ import { ServiceContainer } from "../ServiceContainer.js";
3
+ export interface IDemoProviderService {
4
+ provideDemo(container: HTMLElement, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer, code: string): any;
5
+ }
@@ -7,5 +7,5 @@ export declare class DemoView extends BaseCustomWebComponentLazyAppend implement
7
7
  private _loading;
8
8
  static readonly style: CSSStyleSheet;
9
9
  constructor();
10
- display(serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer, code: string): void;
10
+ display(serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer, code: string): Promise<void>;
11
11
  }
@@ -18,11 +18,6 @@ export class DemoView extends BaseCustomWebComponentLazyAppend {
18
18
  position: absolute;
19
19
  top: 60px;
20
20
  left: 20px;
21
- }
22
- iframe {
23
- width: 100%;
24
- height: 100%;
25
- border: none;
26
21
  }`;
27
22
  constructor() {
28
23
  super();
@@ -34,24 +29,10 @@ export class DemoView extends BaseCustomWebComponentLazyAppend {
34
29
  this._loading.textContent = '🛀 Hold on, loading...';
35
30
  this.shadowRoot.appendChild(this._loading);
36
31
  }
37
- display(serviceContainer, instanceServiceContainer, code) {
38
- let iframe = document.createElement('iframe');
39
- this._placeholder.innerHTML = '';
40
- this._placeholder.appendChild(iframe);
32
+ async display(serviceContainer, instanceServiceContainer, code) {
41
33
  this._loading.hidden = false;
42
- iframe.onload = () => {
43
- this._loading.hidden = true;
44
- };
45
- let doc = iframe.contentWindow.document;
46
- doc.open();
47
- doc.write('<script type="module">');
48
- for (let i of instanceServiceContainer.designContext.imports) {
49
- doc.write("import '" + i + "';");
50
- }
51
- doc.write("document.body.style.display='';");
52
- doc.write('</script>');
53
- doc.write('<body style="display:none">' + code + '</body>');
54
- doc.close();
34
+ await serviceContainer.demoProviderService.provideDemo(this._placeholder, serviceContainer, instanceServiceContainer, code);
35
+ this._loading.hidden = true;
55
36
  }
56
37
  }
57
38
  customElements.define('node-projects-demo-view', DemoView);
@@ -0,0 +1,7 @@
1
+ import { IDesignerCanvas } from "./IDesignerCanvas.js";
2
+ import { IDesignViewConfigButtonsProvider } from "./IDesignViewConfigButtonsProvider.js";
3
+ export declare class ButtonSeperatorProvider implements IDesignViewConfigButtonsProvider {
4
+ _space: number;
5
+ constructor(space: number);
6
+ provideButtons(designerCanvas: IDesignerCanvas): HTMLElement[];
7
+ }
@@ -0,0 +1,11 @@
1
+ export class ButtonSeperatorProvider {
2
+ _space;
3
+ constructor(space) {
4
+ this._space = space;
5
+ }
6
+ provideButtons(designerCanvas) {
7
+ const div = document.createElement('div');
8
+ div.style.marginLeft = this._space + 'px';
9
+ return [div];
10
+ }
11
+ }
@@ -0,0 +1,8 @@
1
+ import { DesignerView } from "./designerView.js";
2
+ import { IDesignerCanvas } from "./IDesignerCanvas.js";
3
+ import { IDesignViewConfigButtonsProvider } from "./IDesignViewConfigButtonsProvider.js";
4
+ export declare class ButtonSeperatorProvider implements IDesignViewConfigButtonsProvider {
5
+ _space: number;
6
+ constructor(space: number);
7
+ provideButtons(designerView: DesignerView, designerCanvas: IDesignerCanvas): HTMLElement[];
8
+ }
@@ -0,0 +1,11 @@
1
+ export class ButtonSeperatorProvider {
2
+ _space;
3
+ constructor(space) {
4
+ this._space = space;
5
+ }
6
+ provideButtons(designerView, designerCanvas) {
7
+ const div = document.createElement('div');
8
+ div.style.marginLeft = this._space + 'px';
9
+ return [div];
10
+ }
11
+ }
@@ -1,4 +1,7 @@
1
1
  import { IDesignContext } from "./IDesignContext";
2
2
  export declare class DesignContext implements IDesignContext {
3
3
  imports: string[];
4
+ extensionOptions: {
5
+ [key: string]: any;
6
+ };
4
7
  }
@@ -1,3 +1,4 @@
1
1
  export class DesignContext {
2
2
  imports = [];
3
+ extensionOptions = {};
3
4
  }
@@ -0,0 +1,7 @@
1
+ import { IDesignerCanvas } from "./IDesignerCanvas.js";
2
+ import { IDesignViewConfigButtonsProvider } from "./IDesignViewConfigButtonsProvider.js";
3
+ import { DesignerView } from './designerView';
4
+ export declare class DesignerViewUseOverlayScollbars implements IDesignViewConfigButtonsProvider {
5
+ constructor();
6
+ provideButtons(designerView: DesignerView, designerCanvas: IDesignerCanvas): HTMLElement[];
7
+ }
@@ -0,0 +1,13 @@
1
+ //todo, element moving does not work atm, needs to be fixed
2
+ export class DesignerViewUseOverlayScollbars {
3
+ constructor() {
4
+ }
5
+ provideButtons(designerView, designerCanvas) {
6
+ let externalCss = document.createElement('style');
7
+ externalCss.innerHTML = '@import url("./node_modules/overlayscrollbars/css/OverlayScrollbars.min.css");';
8
+ designerCanvas.shadowRoot.appendChild(externalCss);
9
+ //@ts-ignore
10
+ setTimeout(() => OverlayScrollbars([designerCanvas._outercanvas2], {}), 5000);
11
+ return [];
12
+ }
13
+ }
@@ -1,3 +1,6 @@
1
1
  export interface IDesignContext {
2
2
  imports: string[];
3
+ extensionOptions: {
4
+ [key: string]: any;
5
+ };
3
6
  }
@@ -0,0 +1,5 @@
1
+ import { DesignerView } from "./designerView.js";
2
+ import { IDesignerCanvas } from "./IDesignerCanvas.js";
3
+ export interface IDesignViewConfigButtonsProvider {
4
+ provideButtons(designerView: DesignerView, designerCanvas: IDesignerCanvas): HTMLElement[];
5
+ }
@@ -72,7 +72,6 @@ export declare class DesignerCanvas extends BaseCustomWebComponentLazyAppend imp
72
72
  getNormalizedEventCoordinates(event: MouseEvent): IPoint;
73
73
  getNormalizedElementCoordinates(element: Element): IRect;
74
74
  getNormalizedOffsetInElement(event: MouseEvent, element: Element): IPoint;
75
- static getHost(node: Node): Element;
76
75
  getElementAtPoint(point: IPoint, ignoreElementCallback?: (element: HTMLElement) => boolean): HTMLElement;
77
76
  _rect: SVGRectElement;
78
77
  private _pointerEventHandler;
@@ -190,6 +190,21 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
190
190
  this.serviceContainer.globalContext.tool = this.serviceContainer.designerTools.get(command.parameter);
191
191
  }
192
192
  break;
193
+ case CommandType.setStrokeColor:
194
+ {
195
+ this.serviceContainer.globalContext.strokeColor = command.parameter;
196
+ }
197
+ break;
198
+ case CommandType.setFillBrush:
199
+ {
200
+ this.serviceContainer.globalContext.fillBrush = command.parameter;
201
+ }
202
+ break;
203
+ case CommandType.setStrokeThickness:
204
+ {
205
+ this.serviceContainer.globalContext.strokeThickness = command.parameter;
206
+ }
207
+ break;
193
208
  case CommandType.delete:
194
209
  this.handleDeleteCommand();
195
210
  break;
@@ -496,14 +511,6 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
496
511
  const normEl = this.getNormalizedElementCoordinates(element);
497
512
  return { x: normEvt.x - normEl.x, y: normEvt.y - normEl.y };
498
513
  }
499
- //todo remove, is in base custom webcomp domhelper
500
- static getHost(node) {
501
- while (node.parentElement)
502
- node = node.parentElement;
503
- if (node.host)
504
- return node.host;
505
- return node.parentNode.host;
506
- }
507
514
  getElementAtPoint(point, ignoreElementCallback) {
508
515
  let backupPEventsMap = new Map();
509
516
  let currentElement = this.elementFromPoint(point.x, point.y);
@@ -549,6 +556,9 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
549
556
  _rect;
550
557
  _pointerEventHandler(event) {
551
558
  this._fillCalculationrects();
559
+ /*let clickOnScrollbar = event.clientX - this.containerBoundingRect.x > this.containerBoundingRect.width || event.clientY - this.containerBoundingRect.y > this.containerBoundingRect.height
560
+ if (clickOnScrollbar) https://kingsora.github.io/OverlayScrollbars/
561
+ return;*/
552
562
  if (this._pointerextensions) {
553
563
  for (let pe of this._pointerextensions)
554
564
  pe.refresh(event);
@@ -560,18 +570,21 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
560
570
  let currentElement = this.serviceContainer.elementAtPointService.getElementAtPoint(this, { x: event.x, y: event.y });
561
571
  if (currentElement === this._outercanvas2 || currentElement === this.overlayLayer || !currentElement) {
562
572
  currentElement = this._canvas;
563
- }
573
+ } /* else {
574
+ if (!DesignerCanvas.hasOrIsParent(currentElement, this._canvas))
575
+ return;
576
+ }*/
564
577
  //TODO: remove duplication when tool refactoring starts
565
- this._fillCalculationrects();
578
+ //this._fillCalculationrects();
566
579
  const currentDesignItem = DesignItem.GetOrCreateDesignItem(currentElement, this.serviceContainer, this.instanceServiceContainer);
567
580
  if (this._lastHoverDesignItem != currentDesignItem) {
568
581
  if (this._lastHoverDesignItem)
569
582
  this.extensionManager.removeExtension(this._lastHoverDesignItem, ExtensionType.MouseOver);
570
- if (currentDesignItem && currentDesignItem != this.rootDesignItem && DesignerCanvas.getHost(currentElement.parentNode) !== this.overlayLayer)
583
+ if (currentDesignItem && currentDesignItem != this.rootDesignItem && DomHelper.getHost(currentElement.parentNode) !== this.overlayLayer)
571
584
  this.extensionManager.applyExtension(currentDesignItem, ExtensionType.MouseOver);
572
585
  this._lastHoverDesignItem = currentDesignItem;
573
586
  }
574
- if (currentElement && DesignerCanvas.getHost(currentElement.parentNode) === this.overlayLayer) {
587
+ if (currentElement && DomHelper.getHost(currentElement.parentNode) === this.overlayLayer) {
575
588
  if (this.eatEvents)
576
589
  return;
577
590
  currentElement = this.instanceServiceContainer.selectionService.primarySelection?.element ?? this._canvas;
@@ -12,6 +12,7 @@ export declare class DesignerView extends BaseCustomWebComponentConstructorAppen
12
12
  get instanceServiceContainer(): InstanceServiceContainer;
13
13
  set instanceServiceContainer(value: InstanceServiceContainer);
14
14
  private _zoomInput;
15
+ private _lowertoolbar;
15
16
  static readonly style: CSSStyleSheet;
16
17
  static readonly template: HTMLTemplateElement;
17
18
  private _designerCanvas;
@@ -17,6 +17,7 @@ export class DesignerView extends BaseCustomWebComponentConstructorAppend {
17
17
  this._designerCanvas.instanceServiceContainer = value;
18
18
  }
19
19
  _zoomInput;
20
+ _lowertoolbar;
20
21
  static style = css `
21
22
  :host {
22
23
  display: block;
@@ -49,6 +50,12 @@ export class DesignerView extends BaseCustomWebComponentConstructorAppend {
49
50
  display: block;
50
51
  margin-right: 1px;
51
52
  cursor: default;
53
+ display: flex;
54
+ justify-content: center;
55
+ align-items: center;
56
+ }
57
+ .selected {
58
+ background-color: deepskyblue;
52
59
  }
53
60
  .toolbar-control:hover {
54
61
  background-color:rgba(164,206,249,.6);
@@ -138,6 +145,7 @@ export class DesignerView extends BaseCustomWebComponentConstructorAppend {
138
145
  let alignGrid = this._getDomElement('alignGrid');
139
146
  alignGrid.onclick = () => { this._designerCanvas.alignOnGrid = !this._designerCanvas.alignOnGrid; alignGrid.style.backgroundColor = this._designerCanvas.alignOnGrid ? 'deepskyblue' : ''; };
140
147
  alignGrid.style.backgroundColor = this._designerCanvas.alignOnGrid ? 'deepskyblue' : '';
148
+ this._lowertoolbar = this._getDomElement('lowertoolbar');
141
149
  }
142
150
  _onWheel(event) {
143
151
  if (event.ctrlKey) {
@@ -180,6 +188,12 @@ export class DesignerView extends BaseCustomWebComponentConstructorAppend {
180
188
  initialize(serviceContainer) {
181
189
  this.serviceContainer = serviceContainer;
182
190
  this._designerCanvas.initialize(serviceContainer);
191
+ if (serviceContainer.designViewConfigButtons) {
192
+ for (let provider of serviceContainer.designViewConfigButtons) {
193
+ for (let btn of provider.provideButtons(this, this._designerCanvas))
194
+ this._lowertoolbar.appendChild(btn);
195
+ }
196
+ }
183
197
  }
184
198
  getHTML(designItemsAssignmentList) {
185
199
  this.instanceServiceContainer.selectionService.setSelectedElements(null);
@@ -0,0 +1,5 @@
1
+ import { IDesignerCanvas } from "../IDesignerCanvas";
2
+ import { IExtensionManager } from "./IExtensionManger";
3
+ export declare class GridExtensionProviderConfigButtons {
4
+ aaa(extensionManager: IExtensionManager, designerView: IDesignerCanvas): HTMLElement[];
5
+ }
@@ -0,0 +1,12 @@
1
+ import { gridExtensionShowOverlayOptionName } from "./GridExtensionProvider.js";
2
+ export class GridExtensionProviderConfigButtons {
3
+ aaa(extensionManager, designerView) {
4
+ const extensionOptions = designerView.instanceServiceContainer.designContext.extensionOptions;
5
+ const btn = document.createElement('div');
6
+ btn.onclick = () => {
7
+ const val = extensionOptions[gridExtensionShowOverlayOptionName];
8
+ extensionOptions[gridExtensionShowOverlayOptionName] = val == true ? false : true;
9
+ };
10
+ return [btn];
11
+ }
12
+ }
@@ -0,0 +1,6 @@
1
+ import { DesignerView } from "../designerView.js";
2
+ import { IDesignerCanvas } from "../IDesignerCanvas";
3
+ import { IDesignViewConfigButtonsProvider } from "../IDesignViewConfigButtonsProvider.js";
4
+ export declare class GridExtensionDesignViewConfigButtons implements IDesignViewConfigButtonsProvider {
5
+ provideButtons(designerView: DesignerView, designerCanvas: IDesignerCanvas): HTMLElement[];
6
+ }
@@ -0,0 +1,21 @@
1
+ import { gridExtensionShowOverlayOptionName } from "./GridExtensionProvider.js";
2
+ export class GridExtensionDesignViewConfigButtons {
3
+ provideButtons(designerView, designerCanvas) {
4
+ const extensionOptions = designerCanvas.instanceServiceContainer.designContext.extensionOptions;
5
+ const btn = document.createElement('div');
6
+ btn.innerText = 'G';
7
+ btn.title = 'show grid overlay';
8
+ btn.className = 'toolbar-control';
9
+ if (extensionOptions[gridExtensionShowOverlayOptionName] !== false)
10
+ btn.classList.add('selected');
11
+ btn.onclick = () => {
12
+ const val = extensionOptions[gridExtensionShowOverlayOptionName];
13
+ extensionOptions[gridExtensionShowOverlayOptionName] = val === false ? true : false;
14
+ if (extensionOptions[gridExtensionShowOverlayOptionName] !== false)
15
+ btn.classList.add('selected');
16
+ else
17
+ btn.classList.remove('selected');
18
+ };
19
+ return [btn];
20
+ }
21
+ }
@@ -0,0 +1,10 @@
1
+ import { IDesignerExtensionProvider } from "./IDesignerExtensionProvider";
2
+ import { IDesignItem } from "../../../item/IDesignItem";
3
+ import { IDesignerCanvas } from "../IDesignerCanvas";
4
+ import { IDesignerExtension } from "./IDesignerExtension";
5
+ import { IExtensionManager } from "./IExtensionManger";
6
+ export declare class GridExtensionProvider implements IDesignerExtensionProvider {
7
+ shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
8
+ getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
9
+ readonly style: CSSStyleSheet;
10
+ }
@@ -0,0 +1,18 @@
1
+ import { GridExtension } from './GridExtension';
2
+ import { css } from "@node-projects/base-custom-webcomponent";
3
+ const gridExtensionShowOverlayOptionName = 'gridExtensionShowOverlay';
4
+ export class GridExtensionProvider {
5
+ shouldExtend(extensionManager, designerView, designItem) {
6
+ if (getComputedStyle(designItem.element).display == 'grid')
7
+ return designerView.instanceServiceContainer.designContext.extensionOptions[gridExtensionShowOverlayOptionName] !== false;
8
+ return false;
9
+ }
10
+ getExtension(extensionManager, designerView, designItem) {
11
+ return new GridExtension(extensionManager, designerView, designItem);
12
+ }
13
+ style = css `
14
+ .svg-grid { stroke: orange; stroke-dasharray: 5; fill: #ff944722; }
15
+ .svg-grid-area { font-size: 8px; }
16
+ .svg-grid-gap { stroke: orange; stroke-dasharray: 5; fill: #0000ff22; }
17
+ `;
18
+ }
@@ -3,6 +3,7 @@ import { IDesignItem } from "../../../item/IDesignItem";
3
3
  import { IDesignerCanvas } from "../IDesignerCanvas";
4
4
  import { IDesignerExtension } from "./IDesignerExtension";
5
5
  import { IExtensionManager } from "./IExtensionManger";
6
+ export declare const gridExtensionShowOverlayOptionName = "gridExtensionShowOverlay";
6
7
  export declare class GridExtensionProvider implements IDesignerExtensionProvider {
7
8
  shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
8
9
  getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
@@ -1,9 +1,10 @@
1
1
  import { GridExtension } from './GridExtension';
2
2
  import { css } from "@node-projects/base-custom-webcomponent";
3
+ export const gridExtensionShowOverlayOptionName = 'gridExtensionShowOverlay';
3
4
  export class GridExtensionProvider {
4
5
  shouldExtend(extensionManager, designerView, designItem) {
5
6
  if (getComputedStyle(designItem.element).display == 'grid')
6
- return true;
7
+ return designerView.instanceServiceContainer.designContext.extensionOptions[gridExtensionShowOverlayOptionName] !== false;
7
8
  return false;
8
9
  }
9
10
  getExtension(extensionManager, designerView, designItem) {
@@ -0,0 +1,5 @@
1
+ import { IDesignerCanvas } from "../IDesignerCanvas";
2
+ import { IExtensionManager } from "./IExtensionManger";
3
+ export declare class GridExtensionProviderConfigButtons {
4
+ aaa(extensionManager: IExtensionManager, designerView: IDesignerCanvas): HTMLElement[];
5
+ }
@@ -0,0 +1,12 @@
1
+ import { gridExtensionShowOverlayOptionName } from "./GridExtensionProvider.js";
2
+ export class GridExtensionProviderConfigButtons {
3
+ aaa(extensionManager, designerView) {
4
+ const extensionOptions = designerView.instanceServiceContainer.designContext.extensionOptions;
5
+ const btn = document.createElement('div');
6
+ btn.onclick = () => {
7
+ const val = extensionOptions[gridExtensionShowOverlayOptionName];
8
+ extensionOptions[gridExtensionShowOverlayOptionName] = val == true ? false : true;
9
+ };
10
+ return [btn];
11
+ }
12
+ }
@@ -0,0 +1,10 @@
1
+ import { IDesignerExtensionProvider } from "./IDesignerExtensionProvider";
2
+ import { IDesignItem } from "../../../item/IDesignItem";
3
+ import { IDesignerCanvas } from "../IDesignerCanvas";
4
+ import { IDesignerExtension } from "./IDesignerExtension";
5
+ import { IExtensionManager } from "./IExtensionManger";
6
+ export declare class GridExtensionProvider implements IDesignerExtensionProvider {
7
+ shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
8
+ getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
9
+ readonly style: CSSStyleSheet;
10
+ }
@@ -0,0 +1,18 @@
1
+ import { GridExtension } from './GridExtension';
2
+ import { css } from "@node-projects/base-custom-webcomponent";
3
+ const gridExtensionShowOverlayOptionName = 'gridExtensionShowOverlay';
4
+ export class GridExtensionProvider {
5
+ shouldExtend(extensionManager, designerView, designItem) {
6
+ if (getComputedStyle(designItem.element).display == 'grid')
7
+ return designerView.instanceServiceContainer.designContext.extensionOptions[gridExtensionShowOverlayOptionName] !== false;
8
+ return false;
9
+ }
10
+ getExtension(extensionManager, designerView, designItem) {
11
+ return new GridExtension(extensionManager, designerView, designItem);
12
+ }
13
+ style = css `
14
+ .svg-grid { stroke: orange; stroke-dasharray: 5; fill: #ff944722; }
15
+ .svg-grid-area { font-size: 8px; }
16
+ .svg-grid-gap { stroke: orange; stroke-dasharray: 5; fill: #0000ff22; }
17
+ `;
18
+ }
@@ -0,0 +1,3 @@
1
+ export interface IExtensionConfiguration {
2
+ designerViewButtons?: HTMLElement[];
3
+ }
@@ -1,12 +1,21 @@
1
1
  import { IDesignerCanvas } from '../IDesignerCanvas';
2
2
  import { ITool } from './ITool';
3
3
  import { ServiceContainer } from '../../../services/ServiceContainer.js';
4
+ import { IPoint } from '../../../..';
4
5
  export declare class DrawPathTool implements ITool {
5
6
  readonly cursor = "crosshair";
6
7
  private _pathD;
7
8
  private _path;
9
+ private _samePoint;
10
+ private _p2pMode;
11
+ private _dragMode;
12
+ private _pointerMoved;
13
+ private _eventStarted;
14
+ private _lastPoint;
15
+ private _savedPoint;
8
16
  constructor();
9
17
  activated(serviceContainer: ServiceContainer): void;
10
18
  dispose(): void;
11
19
  pointerEventHandler(designerCanvas: IDesignerCanvas, event: PointerEvent, currentElement: Element): void;
20
+ straightenLine(p1: IPoint, p2: IPoint): IPoint;
12
21
  }
@@ -7,6 +7,13 @@ export class DrawPathTool {
7
7
  cursor = 'crosshair';
8
8
  _pathD;
9
9
  _path;
10
+ _samePoint = false;
11
+ _p2pMode = false;
12
+ _dragMode = false;
13
+ _pointerMoved = false;
14
+ _eventStarted = false;
15
+ _lastPoint = { x: 0, y: 0 };
16
+ _savedPoint = { x: 0, y: 0 };
10
17
  constructor() {
11
18
  }
12
19
  activated(serviceContainer) {
@@ -18,43 +25,102 @@ export class DrawPathTool {
18
25
  const offset = 50;
19
26
  switch (event.type) {
20
27
  case EventNames.PointerDown:
21
- event.target.setPointerCapture(event.pointerId);
22
- this._path = document.createElementNS("http://www.w3.org/2000/svg", "path");
23
- this._pathD = "M" + currentPoint.x + " " + currentPoint.y;
24
- this._path.setAttribute("D", this._pathD);
25
- this._path.setAttribute("stroke", designerCanvas.serviceContainer.globalContext.strokeColor);
26
- this._path.setAttribute("fill", designerCanvas.serviceContainer.globalContext.fillBrush);
27
- designerCanvas.overlayLayer.addOverlay(this._path, OverlayLayer.Foregorund);
28
+ this._eventStarted = true;
29
+ if (!this._p2pMode) {
30
+ event.target.setPointerCapture(event.pointerId);
31
+ this._path = document.createElementNS("http://www.w3.org/2000/svg", "path");
32
+ this._pathD = "M" + currentPoint.x + " " + currentPoint.y;
33
+ this._path.setAttribute("D", this._pathD);
34
+ this._path.setAttribute("stroke", designerCanvas.serviceContainer.globalContext.strokeColor);
35
+ this._path.setAttribute("fill", designerCanvas.serviceContainer.globalContext.fillBrush);
36
+ this._path.setAttribute("stroke-width", designerCanvas.serviceContainer.globalContext.strokeThickness);
37
+ designerCanvas.overlayLayer.addOverlay(this._path, OverlayLayer.Foregorund);
38
+ }
39
+ if (this._lastPoint.x === currentPoint.x && this._lastPoint.y === currentPoint.y && !this._samePoint) {
40
+ this._samePoint = true;
41
+ }
42
+ this._lastPoint = currentPoint;
28
43
  break;
29
44
  case EventNames.PointerMove:
30
- if (this._path) {
31
- this._pathD += "L" + currentPoint.x + " " + currentPoint.y;
32
- this._path.setAttribute("d", this._pathD);
45
+ if (this._eventStarted) {
46
+ this._pointerMoved = true;
47
+ }
48
+ if (!this._p2pMode) {
49
+ this._dragMode = true;
50
+ if (this._path) {
51
+ this._pathD += "L" + currentPoint.x + " " + currentPoint.y;
52
+ this._path.setAttribute("d", this._pathD);
53
+ }
54
+ }
55
+ else { // shows line preview
56
+ if (this._path) {
57
+ let straightLine = currentPoint;
58
+ if (event.shiftKey)
59
+ straightLine = this.straightenLine(this._savedPoint, currentPoint);
60
+ this._path.setAttribute("d", this._pathD + "L" + straightLine.x + " " + straightLine.y);
61
+ }
33
62
  }
34
63
  break;
35
64
  case EventNames.PointerUp:
36
65
  event.target.releasePointerCapture(event.pointerId);
37
- const rect = this._path.getBoundingClientRect();
38
- designerCanvas.overlayLayer.removeOverlay(this._path);
39
- const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
40
- const mvX = rect.x - designerCanvas.containerBoundingRect.x - offset;
41
- const mvY = rect.y - designerCanvas.containerBoundingRect.y - offset;
42
- const d = movePathData(this._path, mvX, mvY);
43
- this._path.setAttribute("d", d);
44
- svg.appendChild(this._path);
45
- svg.style.left = (mvX) + 'px';
46
- svg.style.top = (mvY) + 'px';
47
- svg.style.position = 'absolute';
48
- svg.style.width = (rect.width + 2 * offset) + 'px';
49
- svg.style.height = (rect.height + 2 * offset) + 'px';
50
- //designerView.rootDesignItem.element.appendChild(svg);
51
- this._path = null;
52
- this._pathD = null;
53
- const di = DesignItem.createDesignItemFromInstance(svg, designerCanvas.serviceContainer, designerCanvas.instanceServiceContainer);
54
- designerCanvas.instanceServiceContainer.undoService.execute(new InsertAction(designerCanvas.rootDesignItem, designerCanvas.rootDesignItem.childCount, di));
55
- designerCanvas.serviceContainer.globalContext.finishedWithTool(this);
66
+ if (this._eventStarted && !this._pointerMoved) {
67
+ this._p2pMode = true;
68
+ }
69
+ if (this._p2pMode && !this._samePoint) {
70
+ if (this._path) {
71
+ if (event.shiftKey) {
72
+ let straightLine = this.straightenLine(this._savedPoint, currentPoint);
73
+ this._pathD += "L" + straightLine.x + " " + straightLine.y;
74
+ this._path.setAttribute("d", this._pathD);
75
+ }
76
+ else {
77
+ this._pathD += "L" + currentPoint.x + " " + currentPoint.y;
78
+ this._path.setAttribute("d", this._pathD);
79
+ }
80
+ this._savedPoint = currentPoint;
81
+ }
82
+ }
83
+ if (this._samePoint && this._p2pMode || this._dragMode && !this._p2pMode) {
84
+ this._eventStarted = false;
85
+ this._p2pMode = false;
86
+ this._pointerMoved = false;
87
+ this._samePoint = false;
88
+ this._dragMode = false;
89
+ const rect = this._path.getBoundingClientRect();
90
+ designerCanvas.overlayLayer.removeOverlay(this._path);
91
+ const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
92
+ const mvX = rect.x - designerCanvas.containerBoundingRect.x - offset;
93
+ const mvY = rect.y - designerCanvas.containerBoundingRect.y - offset;
94
+ const d = movePathData(this._path, mvX, mvY);
95
+ this._path.setAttribute("d", d);
96
+ svg.appendChild(this._path);
97
+ svg.style.left = (mvX) + 'px';
98
+ svg.style.top = (mvY) + 'px';
99
+ svg.style.position = 'absolute';
100
+ svg.style.width = (rect.width + 2 * offset) + 'px';
101
+ svg.style.height = (rect.height + 2 * offset) + 'px';
102
+ //designerView.rootDesignItem.element.appendChild(svg);
103
+ this._path = null;
104
+ this._pathD = null;
105
+ const di = DesignItem.createDesignItemFromInstance(svg, designerCanvas.serviceContainer, designerCanvas.instanceServiceContainer);
106
+ designerCanvas.instanceServiceContainer.undoService.execute(new InsertAction(designerCanvas.rootDesignItem, designerCanvas.rootDesignItem.childCount, di));
107
+ designerCanvas.serviceContainer.globalContext.finishedWithTool(this);
108
+ }
56
109
  //TODO: Better Path drawing (like in SVGEDIT & Adding via Undo Framework. And adding to correct container)
57
110
  break;
58
111
  }
59
112
  }
113
+ straightenLine(p1, p2) {
114
+ let newP = { x: 0, y: 0 };
115
+ let alpha = -1 * Math.atan2(p2.y - p1.y, p2.x - p1.x) * 180 / Math.PI;
116
+ if (alpha < 0)
117
+ alpha += 360;
118
+ if (alpha > 0 && alpha < 45 || alpha > 315 && alpha < 360 || alpha > 135 && alpha < 225) // right or left
119
+ newP = { x: p2.x, y: p1.y };
120
+ else if (alpha > 45 && alpha < 135 || alpha > 225 && alpha < 315) // up or down
121
+ newP = { x: p1.x, y: p2.y };
122
+ else // something else
123
+ newP = { x: p2.x, y: p2.y };
124
+ return newP;
125
+ }
60
126
  }
@@ -3,7 +3,7 @@ import { PointerActionType } from "../../../../enums/PointerActionType";
3
3
  import { DesignItem } from "../../../item/DesignItem";
4
4
  import { ExtensionType } from "../extensions/ExtensionType";
5
5
  import { NamedTools } from './NamedTools';
6
- import { DesignerCanvas } from '../designerCanvas';
6
+ import { DomHelper } from '@node-projects/base-custom-webcomponent/dist/DomHelper';
7
7
  export class PointerTool {
8
8
  cursor = 'default';
9
9
  _movedSinceStartedAction = false;
@@ -101,7 +101,7 @@ export class PointerTool {
101
101
  currentDesignItem.element.style.pointerEvents = 'none';
102
102
  }
103
103
  let currentElement = designerCanvas.elementFromPoint(event.x, event.y);
104
- if (DesignerCanvas.getHost(currentElement) !== designerCanvas.overlayLayer)
104
+ if (DomHelper.getHost(currentElement) !== designerCanvas.overlayLayer)
105
105
  currentDesignItem = DesignItem.GetOrCreateDesignItem(currentElement, designerCanvas.serviceContainer, designerCanvas.instanceServiceContainer);
106
106
  }
107
107
  else {
package/dist/index.d.ts CHANGED
@@ -32,6 +32,8 @@ export type { IContentChanged } from "./elements/services/contentService/IConten
32
32
  export type { IContentService } from "./elements/services/contentService/IContentService.js";
33
33
  export * from "./elements/services/copyPasteService/CopyPasteService.js";
34
34
  export type { ICopyPasteService } from "./elements/services/copyPasteService/ICopyPasteService.js";
35
+ export * from "./elements/services/demoProviderService/DemoProviderService.js";
36
+ export type { IDemoProviderService } from "./elements/services/demoProviderService/IDemoProviderService.js";
35
37
  export * from "./elements/services/dragDropService/DragDropService.js";
36
38
  export type { IDragDropService } from "./elements/services/dragDropService/IDragDropService.js";
37
39
  export type { IElementDefinition } from "./elements/services/elementsService/IElementDefinition.js";
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ export * from "./elements/services/placementService/SnaplinesProviderService.js"
21
21
  export * from "./elements/services/elementAtPointService/ElementAtPointService.js";
22
22
  export * from "./elements/services/contentService/ContentService.js";
23
23
  export * from "./elements/services/copyPasteService/CopyPasteService.js";
24
+ export * from "./elements/services/demoProviderService/DemoProviderService.js";
24
25
  export * from "./elements/services/dragDropService/DragDropService.js";
25
26
  export * from "./elements/services/elementsService/JsonFileElementsService.js";
26
27
  export * from "./elements/services/htmlWriterService/HtmlWriterService.js";
package/package.json CHANGED
@@ -1,39 +1,39 @@
1
- {
2
- "description": "A UI designer for Polymer apps",
3
- "name": "@node-projects/web-component-designer",
4
- "version": "0.0.59",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "author": "",
8
- "license": "MIT",
9
- "scripts": {
10
- "tsc": "tsc",
11
- "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js"
12
- },
13
- "dependencies": {
14
- "@node-projects/base-custom-webcomponent": "^0.3.0",
15
- "construct-style-sheets-polyfill": "^3.0.4"
16
- },
17
- "devDependencies": {
18
- "@node-projects/lean-he-esm": "^3.3.0",
19
- "@node-projects/node-html-parser-esm": "^2.4.1",
20
- "@types/codemirror": "^5.60.5",
21
- "@types/jquery": "^3.5.9",
22
- "@types/jquery.fancytree": "0.0.7",
23
- "ace-builds": "^1.4.13",
24
- "codemirror": "^5.64.0",
25
- "esprima-next": "^5.7.0",
26
- "html2canvas": "*",
27
- "jest": "^27.3.1",
28
- "jquery": "^3.6.0",
29
- "jquery.fancytree": "^2.38.0",
30
- "monaco-editor": "^0.30.1",
31
- "ts-jest": "^27.0.7",
32
- "typescript": "^4.5.2",
33
- "typescript-lit-html-plugin": "^0.9.0"
34
- },
35
- "repository": {
36
- "type": "git",
37
- "url": "git+https://github.com/node-projects/web-component-designer.git"
38
- }
39
- }
1
+ {
2
+ "description": "A UI designer for Polymer apps",
3
+ "name": "@node-projects/web-component-designer",
4
+ "version": "0.0.60",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "author": "",
8
+ "license": "MIT",
9
+ "scripts": {
10
+ "tsc": "tsc",
11
+ "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js"
12
+ },
13
+ "dependencies": {
14
+ "@node-projects/base-custom-webcomponent": "^0.3.5",
15
+ "construct-style-sheets-polyfill": "^3.0.4"
16
+ },
17
+ "devDependencies": {
18
+ "@node-projects/lean-he-esm": "^3.3.0",
19
+ "@node-projects/node-html-parser-esm": "^2.4.1",
20
+ "@types/codemirror": "^5.60.5",
21
+ "@types/jquery": "^3.5.9",
22
+ "@types/jquery.fancytree": "0.0.7",
23
+ "ace-builds": "^1.4.13",
24
+ "codemirror": "^5.64.0",
25
+ "esprima-next": "^5.7.0",
26
+ "html2canvas": "*",
27
+ "jest": "^27.4.3",
28
+ "jquery": "^3.6.0",
29
+ "jquery.fancytree": "^2.38.0",
30
+ "monaco-editor": "^0.30.1",
31
+ "ts-jest": "^27.1.0",
32
+ "typescript": "^4.5.2",
33
+ "typescript-lit-html-plugin": "^0.9.0"
34
+ },
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "git+https://github.com/node-projects/web-component-designer.git"
38
+ }
39
+ }