@node-projects/web-component-designer 0.0.71 → 0.0.72

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 (21) hide show
  1. package/dist/elements/helper/CssCombiner.js +1 -0
  2. package/dist/elements/services/bindingsService/BaseCustomWebcomponentBindingsService.d.ts +2 -0
  3. package/dist/elements/services/bindingsService/BaseCustomWebcomponentBindingsService.js +3 -0
  4. package/dist/elements/services/bindingsService/IBindingService.d.ts +2 -0
  5. package/dist/elements/services/bindingsService/SpecialTagsBindingService.d.ts +2 -0
  6. package/dist/elements/services/bindingsService/SpecialTagsBindingService.js +3 -0
  7. package/dist/elements/services/propertiesService/IPropertiesService.d.ts +2 -0
  8. package/dist/elements/services/propertiesService/services/AttributesPropertiesService.d.ts +2 -0
  9. package/dist/elements/services/propertiesService/services/AttributesPropertiesService.js +4 -0
  10. package/dist/elements/services/propertiesService/services/CommonPropertiesService.d.ts +2 -0
  11. package/dist/elements/services/propertiesService/services/CommonPropertiesService.js +6 -0
  12. package/dist/elements/services/propertiesService/services/CssPropertiesService.d.ts +2 -0
  13. package/dist/elements/services/propertiesService/services/CssPropertiesService.js +6 -0
  14. package/dist/elements/services/propertiesService/services/PropertiesHelper.js +1 -1
  15. package/dist/elements/services/propertiesService/services/UnkownElementPropertiesService.d.ts +2 -0
  16. package/dist/elements/services/propertiesService/services/UnkownElementPropertiesService.js +7 -0
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.js +1 -0
  19. package/package.json +1 -1
  20. package/dist/elements/widgets/designerView/DesignerViewUseOverlayScollbars.d.ts +0 -7
  21. package/dist/elements/widgets/designerView/DesignerViewUseOverlayScollbars.js +0 -13
@@ -1,6 +1,7 @@
1
1
  export class CssCombiner {
2
2
  static _helperElement = document.createElement('div');
3
3
  //todo: inset, flex flow, place content...
4
+ //flex => flex-grow, flex-shrink, flex-basis
4
5
  static combine(styles, globalStyles) {
5
6
  let e = CssCombiner._helperElement;
6
7
  e.setAttribute('style', '');
@@ -1,8 +1,10 @@
1
1
  import { IDesignItem } from "../../item/IDesignItem";
2
2
  import { IBinding } from '../../item/IBinding';
3
3
  import { IBindingService } from "./IBindingService";
4
+ import { BindingTarget } from "../../item/BindingTarget.js";
4
5
  export declare class BaseCustomWebcomponentBindingsService implements IBindingService {
5
6
  static type: string;
6
7
  getBindings(designItem: IDesignItem): IBinding[];
7
8
  setBinding(designItem: IDesignItem, binding: IBinding): boolean;
9
+ clearBinding(designItem: IDesignItem, propertyName: string, propertyTarget: BindingTarget): boolean;
8
10
  }
@@ -66,4 +66,7 @@ export class BaseCustomWebcomponentBindingsService {
66
66
  designItem.setAttribute(nm, value);
67
67
  return true;
68
68
  }
69
+ clearBinding(designItem, propertyName, propertyTarget) {
70
+ return true;
71
+ }
69
72
  }
@@ -1,5 +1,6 @@
1
1
  import { IDesignItem } from "../../item/IDesignItem";
2
2
  import { IBinding } from "../../item/IBinding";
3
+ import { BindingTarget } from "../../item/BindingTarget";
3
4
  /**
4
5
  * Can be used to parse bindings wich are done via special HTML Attributes or special Elements
5
6
  * If your Bindings are to special, or HTML is not valid with them, maybe you need to parse the Bindings already in the
@@ -8,4 +9,5 @@ import { IBinding } from "../../item/IBinding";
8
9
  export interface IBindingService {
9
10
  getBindings(designItem: IDesignItem): IBinding[];
10
11
  setBinding(designItem: IDesignItem, binding: IBinding): boolean;
12
+ clearBinding(designItem: IDesignItem, propertyName: string, propertyTarget: BindingTarget): boolean;
11
13
  }
@@ -1,6 +1,7 @@
1
1
  import { IDesignItem } from "../../item/IDesignItem";
2
2
  import { IBinding } from "../../item/IBinding";
3
3
  import { IBindingService } from "./IBindingService";
4
+ import { BindingTarget } from "../../item/BindingTarget.js";
4
5
  export declare class SpecialTagsBindingService implements IBindingService {
5
6
  static type: string;
6
7
  _bindingTagName: string;
@@ -11,4 +12,5 @@ export declare class SpecialTagsBindingService implements IBindingService {
11
12
  getBindings(designItem: IDesignItem): IBinding[];
12
13
  private _parseBindingElement;
13
14
  setBinding(designItem: IDesignItem, binding: IBinding): boolean;
15
+ clearBinding(designItem: IDesignItem, propertyName: string, propertyTarget: BindingTarget): boolean;
14
16
  }
@@ -37,4 +37,7 @@ export class SpecialTagsBindingService {
37
37
  setBinding(designItem, binding) {
38
38
  return true;
39
39
  }
40
+ clearBinding(designItem, propertyName, propertyTarget) {
41
+ return true;
42
+ }
40
43
  }
@@ -2,11 +2,13 @@ import { IProperty } from './IProperty';
2
2
  import { IService } from '../IService';
3
3
  import { IDesignItem } from '../../item/IDesignItem';
4
4
  import { ValueType } from './ValueType';
5
+ import { BindingTarget } from '../../item/BindingTarget';
5
6
  export interface IPropertiesService extends IService {
6
7
  readonly name: string;
7
8
  isHandledElement(designItem: IDesignItem): boolean;
8
9
  getProperties(designItem: IDesignItem): IProperty[];
9
10
  getProperty(designItem: IDesignItem, name: string): IProperty;
11
+ getPropertyTarget(designItem: IDesignItem, property: IProperty): BindingTarget;
10
12
  setValue(designItems: IDesignItem[], property: IProperty, value: any): any;
11
13
  clearValue(designItems: IDesignItem[], property: IProperty): any;
12
14
  isSet(designItems: IDesignItem[], property: IProperty): ValueType;
@@ -2,12 +2,14 @@ import { IPropertiesService } from "../IPropertiesService";
2
2
  import { IProperty } from '../IProperty';
3
3
  import { IDesignItem } from '../../../item/IDesignItem';
4
4
  import { ValueType } from "../ValueType";
5
+ import { BindingTarget } from "../../../item/BindingTarget";
5
6
  export declare class AttributesPropertiesService implements IPropertiesService {
6
7
  name: string;
7
8
  isHandledElement(designItem: IDesignItem): boolean;
8
9
  getProperty(designItem: IDesignItem, name: string): IProperty;
9
10
  getProperties(designItem: IDesignItem): IProperty[];
10
11
  setValue(designItems: IDesignItem[], property: IProperty, value: any): void;
12
+ getPropertyTarget(designItem: IDesignItem, property: IProperty): BindingTarget;
11
13
  clearValue(designItems: IDesignItem[], property: IProperty): void;
12
14
  isSet(designItems: IDesignItem[], property: IProperty): ValueType;
13
15
  getValue(designItems: IDesignItem[], property: IProperty): string;
@@ -1,4 +1,5 @@
1
1
  import { ValueType } from "../ValueType";
2
+ import { BindingTarget } from "../../../item/BindingTarget";
2
3
  export class AttributesPropertiesService {
3
4
  name = "attributes";
4
5
  isHandledElement(designItem) {
@@ -19,6 +20,9 @@ export class AttributesPropertiesService {
19
20
  }
20
21
  setValue(designItems, property, value) {
21
22
  }
23
+ getPropertyTarget(designItem, property) {
24
+ return BindingTarget.attribute;
25
+ }
22
26
  clearValue(designItems, property) {
23
27
  }
24
28
  isSet(designItems, property) {
@@ -2,6 +2,7 @@ import { IPropertiesService } from "../IPropertiesService";
2
2
  import { IProperty } from '../IProperty';
3
3
  import { IDesignItem } from '../../../item/IDesignItem';
4
4
  import { ValueType } from "../ValueType";
5
+ import { BindingTarget } from "../../../item/BindingTarget";
5
6
  export declare class CommonPropertiesService implements IPropertiesService {
6
7
  private commonProperties;
7
8
  name: string;
@@ -9,6 +10,7 @@ export declare class CommonPropertiesService implements IPropertiesService {
9
10
  getProperty(designItem: IDesignItem, name: string): IProperty;
10
11
  getProperties(designItem: IDesignItem): IProperty[];
11
12
  setValue(designItems: IDesignItem[], property: IProperty, value: any): void;
13
+ getPropertyTarget(designItem: IDesignItem, property: IProperty): BindingTarget;
12
14
  clearValue(designItems: IDesignItem[], property: IProperty): void;
13
15
  isSet(designItems: IDesignItem[], property: IProperty): ValueType;
14
16
  getValue(designItems: IDesignItem[], property: IProperty): string | boolean;
@@ -47,10 +47,16 @@ export class CommonPropertiesService {
47
47
  }
48
48
  }
49
49
  }
50
+ getPropertyTarget(designItem, property) {
51
+ return BindingTarget.property;
52
+ }
50
53
  clearValue(designItems, property) {
51
54
  for (let d of designItems) {
52
55
  d.attributes.delete(property.name);
53
56
  d.element.removeAttribute(property.name);
57
+ d.serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
58
+ return s.clearBinding(d, property.name, this.getPropertyTarget(d, property));
59
+ });
54
60
  }
55
61
  }
56
62
  isSet(designItems, property) {
@@ -2,6 +2,7 @@ import { IPropertiesService } from '../IPropertiesService';
2
2
  import { IProperty } from '../IProperty';
3
3
  import { IDesignItem } from '../../../item/IDesignItem';
4
4
  import { ValueType } from '../ValueType';
5
+ import { BindingTarget } from '../../../item/BindingTarget.js';
5
6
  export declare class CssPropertiesService implements IPropertiesService {
6
7
  private styles;
7
8
  private alignment;
@@ -13,6 +14,7 @@ export declare class CssPropertiesService implements IPropertiesService {
13
14
  getProperty(designItem: IDesignItem, name: string): IProperty;
14
15
  getProperties(designItem: IDesignItem): IProperty[];
15
16
  setValue(designItems: IDesignItem[], property: IProperty, value: any): void;
17
+ getPropertyTarget(designItem: IDesignItem, property: IProperty): BindingTarget;
16
18
  clearValue(designItems: IDesignItem[], property: IProperty): void;
17
19
  isSet(designItems: IDesignItem[], property: IProperty): ValueType;
18
20
  getValue(designItems: IDesignItem[], property: IProperty): string;
@@ -226,10 +226,16 @@ export class CssPropertiesService {
226
226
  }
227
227
  cg.commit();
228
228
  }
229
+ getPropertyTarget(designItem, property) {
230
+ return BindingTarget.css;
231
+ }
229
232
  clearValue(designItems, property) {
230
233
  for (let d of designItems) {
231
234
  d.styles.delete(property.name);
232
235
  d.element.style[property.name] = '';
236
+ d.serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
237
+ return s.clearBinding(d, property.name, this.getPropertyTarget(d, property));
238
+ });
233
239
  }
234
240
  }
235
241
  isSet(designItems, property) {
@@ -22,6 +22,6 @@ export class PropertiesHelper {
22
22
  return text.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`);
23
23
  }
24
24
  static dashToCamelCase(text) {
25
- return text.replace(/-([a-z])/i, (i) => i[1].toUpperCase());
25
+ return text.replace(/-([a-z])/g, (i) => i[1].toUpperCase());
26
26
  }
27
27
  }
@@ -2,6 +2,7 @@ import { IPropertiesService } from "../IPropertiesService";
2
2
  import { IProperty } from '../IProperty';
3
3
  import { IDesignItem } from '../../../item/IDesignItem';
4
4
  import { ValueType } from "../ValueType";
5
+ import { BindingTarget } from "../../../item/BindingTarget";
5
6
  export declare class UnkownElementPropertiesService implements IPropertiesService {
6
7
  readonly name: string;
7
8
  isHandledElement(designItem: IDesignItem): boolean;
@@ -9,6 +10,7 @@ export declare class UnkownElementPropertiesService implements IPropertiesServic
9
10
  getProperty(designItem: IDesignItem, name: string): IProperty;
10
11
  getProperties(designItem: IDesignItem): IProperty[];
11
12
  setValue(designItems: IDesignItem[], property: IProperty, value: any): void;
13
+ getPropertyTarget(designItem: IDesignItem, property: IProperty): BindingTarget;
12
14
  clearValue(designItems: IDesignItem[], property: IProperty): void;
13
15
  isSet(designItems: IDesignItem[], property: IProperty): ValueType;
14
16
  getValue(designItems: IDesignItem[], property: IProperty): string | boolean;
@@ -1,5 +1,6 @@
1
1
  import { ValueType } from "../ValueType";
2
2
  import { PropertiesHelper } from './PropertiesHelper';
3
+ import { BindingTarget } from "../../../item/BindingTarget";
3
4
  export class UnkownElementPropertiesService {
4
5
  name = "unkown";
5
6
  isHandledElement(designItem) {
@@ -44,11 +45,17 @@ export class UnkownElementPropertiesService {
44
45
  cg.undo();
45
46
  }
46
47
  }
48
+ getPropertyTarget(designItem, property) {
49
+ return BindingTarget.property;
50
+ }
47
51
  clearValue(designItems, property) {
48
52
  const attributeName = PropertiesHelper.camelToDashCase(property.name);
49
53
  for (let d of designItems) {
50
54
  d.attributes.delete(attributeName);
51
55
  d.element.removeAttribute(attributeName);
56
+ d.serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
57
+ return s.clearBinding(d, property.name, this.getPropertyTarget(d, property));
58
+ });
52
59
  this._notifyChangedProperty(d, property, undefined);
53
60
  }
54
61
  }
package/dist/index.d.ts CHANGED
@@ -59,6 +59,7 @@ export * from "./elements/services/propertiesService/DefaultEditorTypesService.j
59
59
  export type { IEditorTypesService } from "./elements/services/propertiesService/IEditorTypesService.js";
60
60
  export type { IPropertiesService } from "./elements/services/propertiesService/IPropertiesService.js";
61
61
  export type { IProperty } from "./elements/services/propertiesService/IProperty.js";
62
+ export * from "./elements/services/propertiesService/services/PropertiesHelper.js";
62
63
  export * from "./elements/services/propertiesService/services/BaseCustomWebComponentPropertiesService.js";
63
64
  export * from "./elements/services/propertiesService/services/CommonPropertiesService.js";
64
65
  export * from "./elements/services/propertiesService/services/CssPropertiesService.js";
package/dist/index.js CHANGED
@@ -32,6 +32,7 @@ export * from "./elements/services/instanceService/DefaultInstanceService.js";
32
32
  export * from "./elements/services/instanceService/PrepareElementsForDesignerService.js";
33
33
  export * from "./elements/services/modelCommandService/DefaultModelCommandService.js";
34
34
  export * from "./elements/services/propertiesService/DefaultEditorTypesService.js";
35
+ export * from "./elements/services/propertiesService/services/PropertiesHelper.js";
35
36
  export * from "./elements/services/propertiesService/services/BaseCustomWebComponentPropertiesService.js";
36
37
  export * from "./elements/services/propertiesService/services/CommonPropertiesService.js";
37
38
  export * from "./elements/services/propertiesService/services/CssPropertiesService.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "A UI designer for Polymer apps",
3
3
  "name": "@node-projects/web-component-designer",
4
- "version": "0.0.71",
4
+ "version": "0.0.72",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "",
@@ -1,7 +0,0 @@
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
- }
@@ -1,13 +0,0 @@
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
- }