@node-projects/web-component-designer 0.0.172 → 0.0.174

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 (28) hide show
  1. package/dist/elements/item/DesignItem.d.ts +3 -1
  2. package/dist/elements/item/DesignItem.js +27 -5
  3. package/dist/elements/item/IDesignItem.d.ts +2 -1
  4. package/dist/elements/services/DefaultServiceBootstrap.js +6 -5
  5. package/dist/elements/services/ServiceContainer.d.ts +1 -1
  6. package/dist/elements/services/propertiesService/services/CssCurrentPropertiesService.d.ts +9 -0
  7. package/dist/elements/services/propertiesService/services/CssCurrentPropertiesService.js +17 -1
  8. package/dist/elements/widgets/designerView/extensions/GridExtension.js +1 -1
  9. package/dist/elements/widgets/designerView/extensions/buttons/AbstractDesignViewConfigButton.d.ts +12 -0
  10. package/dist/elements/widgets/designerView/extensions/buttons/AbstractDesignViewConfigButton.js +40 -0
  11. package/dist/elements/widgets/designerView/extensions/buttons/ButtonSeperatorProvider.d.ts +8 -0
  12. package/dist/elements/widgets/designerView/extensions/buttons/ButtonSeperatorProvider.js +11 -0
  13. package/dist/elements/widgets/designerView/extensions/buttons/FlexboxExtensionDesignViewConfigButtons.d.ts +6 -0
  14. package/dist/elements/widgets/designerView/extensions/buttons/FlexboxExtensionDesignViewConfigButtons.js +22 -0
  15. package/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons.d.ts +6 -0
  16. package/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons.js +22 -0
  17. package/dist/elements/widgets/designerView/extensions/buttons/IDesignViewConfigButtonsProvider.d.ts +5 -0
  18. package/dist/elements/widgets/designerView/extensions/buttons/IDesignViewConfigButtonsProvider.js +1 -0
  19. package/dist/elements/widgets/designerView/extensions/buttons/InvisibleElementExtensionDesignViewConfigButtons.d.ts +6 -0
  20. package/dist/elements/widgets/designerView/extensions/buttons/InvisibleElementExtensionDesignViewConfigButtons.js +22 -0
  21. package/dist/elements/widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons copy.d.ts +7 -0
  22. package/dist/elements/widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons copy.js +21 -0
  23. package/dist/elements/widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons.d.ts +5 -0
  24. package/dist/elements/widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons.js +7 -0
  25. package/dist/elements/widgets/designerView/tools/PointerTool.js +1 -1
  26. package/dist/index.d.ts +7 -2
  27. package/dist/index.js +6 -2
  28. package/package.json +1 -1
@@ -76,7 +76,9 @@ export declare class DesignItem implements IDesignItem {
76
76
  setStyle(name: string, value?: string | null, important?: boolean): void;
77
77
  removeStyle(name: string): void;
78
78
  updateStyleInSheetOrLocal(name: string, value?: string | null, important?: boolean): void;
79
- getStyleFromSheetOrLocal(name: string): string;
79
+ getStyleFromSheetOrLocal(name: string, fallback?: string): string;
80
+ getStyleFromSheetOrLocalOrComputed(name: string, fallback?: string): string;
81
+ getComputedStyle(name: string, fallback?: string): string;
80
82
  getAllStyles(): IStyleRule[];
81
83
  setAttribute(name: string, value?: string | null): void;
82
84
  removeAttribute(name: string): void;
@@ -7,6 +7,7 @@ import { PropertiesHelper } from '../services/propertiesService/services/Propert
7
7
  import { InsertChildAction } from '../services/undoService/transactionItems/InsertChildAction.js';
8
8
  import { DomConverter } from '../widgets/designerView/DomConverter.js';
9
9
  import { DeleteAction } from '../services/undoService/transactionItems/DeleteAction.js';
10
+ import { enableStylesheetService } from '../widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons.js';
10
11
  const hideAtDesignTimeAttributeName = 'node-projects-hide-at-design-time';
11
12
  const hideAtRunTimeAttributeName = 'node-projects-hide-at-run-time';
12
13
  const lockAtDesignTimeAttributeName = 'node-projects-lock-at-design-time';
@@ -19,9 +20,16 @@ export class DesignItem {
19
20
  appliedDesignerExtensions = new Map();
20
21
  shouldAppliedDesignerExtensions = new Map();
21
22
  async clone() {
22
- const html = DomConverter.ConvertToString([this], null, false);
23
- const parsed = await this.serviceContainer.htmlParserService.parse(html, this.serviceContainer, this.instanceServiceContainer);
24
- return parsed[0];
23
+ try {
24
+ const html = DomConverter.ConvertToString([this], null, false);
25
+ const parsed = await this.serviceContainer.htmlParserService.parse(html, this.serviceContainer, this.instanceServiceContainer);
26
+ return parsed[0];
27
+ }
28
+ catch (err) {
29
+ //TODO: clone service for design item, maybe refactor copy&paste to use this also...
30
+ console.warn("could not clone design item.", this);
31
+ }
32
+ return null;
25
33
  }
26
34
  replaceNode(newNode) {
27
35
  DesignItem._designItemMap.delete(this.node);
@@ -306,7 +314,7 @@ export class DesignItem {
306
314
  let nm = PropertiesHelper.camelToDashCase(name);
307
315
  // Pre-sorted by specificity
308
316
  let declerations = this.instanceServiceContainer.stylesheetService?.getDeclarations(this, nm);
309
- if (this.hasStyle(name) || !declerations) {
317
+ if (this.hasStyle(name) || this.instanceServiceContainer.designContext.extensionOptions[enableStylesheetService] === false || !declerations) {
310
318
  // Set style locally
311
319
  if (this.getStyle(nm) != value) {
312
320
  this.setStyle(nm, value);
@@ -320,7 +328,7 @@ export class DesignItem {
320
328
  this.instanceServiceContainer.stylesheetService.updateDeclarationWithDeclaration(declerations[0], value, important);
321
329
  }
322
330
  }
323
- getStyleFromSheetOrLocal(name) {
331
+ getStyleFromSheetOrLocal(name, fallback = null) {
324
332
  let nm = PropertiesHelper.camelToDashCase(name);
325
333
  if (this.hasStyle(name))
326
334
  // Get style locally
@@ -331,6 +339,20 @@ export class DesignItem {
331
339
  return decls[0].value;
332
340
  return null;
333
341
  }
342
+ getStyleFromSheetOrLocalOrComputed(name, fallback = null) {
343
+ let value = this.getStyleFromSheetOrLocal(name);
344
+ if (!value) {
345
+ value = getComputedStyle(this.element).getPropertyValue(name);
346
+ }
347
+ return value ?? fallback;
348
+ }
349
+ getComputedStyle(name, fallback = null) {
350
+ let value = this.getStyleFromSheetOrLocal(name);
351
+ if (!value) {
352
+ value = getComputedStyle(this.element).getPropertyValue(name);
353
+ }
354
+ return value ?? fallback;
355
+ }
334
356
  getAllStyles() {
335
357
  const localStyles = [...this._styles.entries()].map(x => ({ name: x[0], value: x[1], important: false }));
336
358
  if (this.instanceServiceContainer.stylesheetService) {
@@ -55,7 +55,8 @@ export interface IDesignItem {
55
55
  setStyle(name: string, value?: string | null, important?: boolean): any;
56
56
  removeStyle(name: string): any;
57
57
  updateStyleInSheetOrLocal(name: string, value?: string | null, important?: boolean): any;
58
- getStyleFromSheetOrLocal(name: string): any;
58
+ getStyleFromSheetOrLocal(name: string, fallback?: string): any;
59
+ getStyleFromSheetOrLocalOrComputed(name: string, fallback?: string): any;
59
60
  getAllStyles(): IStyleRule[];
60
61
  attributes(): Iterable<[name: string, value: string]>;
61
62
  getAttribute(name: string): any;
@@ -44,8 +44,8 @@ import { DragDropService } from './dragDropService/DragDropService.js';
44
44
  import { EditTextExtensionProvider } from '../widgets/designerView/extensions/EditText/EditTextExtensionProvider.js';
45
45
  import { CopyPasteService } from './copyPasteService/CopyPasteService.js';
46
46
  import { DefaultModelCommandService } from './modelCommandService/DefaultModelCommandService.js';
47
- import { ButtonSeperatorProvider } from '../widgets/designerView/ButtonSeperatorProvider.js';
48
- import { GridExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/GridExtensionDesignViewConfigButtons.js';
47
+ import { ButtonSeperatorProvider } from '../widgets/designerView/extensions/buttons/ButtonSeperatorProvider.js';
48
+ import { GridExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons.js';
49
49
  import { DemoProviderService } from './demoProviderService/DemoProviderService.js';
50
50
  import { DrawRectTool } from '../widgets/designerView/tools/DrawRectTool.js';
51
51
  import { DrawEllipsisTool } from '../widgets/designerView/tools/DrawEllipsisTool.js';
@@ -70,11 +70,12 @@ import { EllipsisExtensionProvider } from '../widgets/designerView/extensions/sv
70
70
  import { PropertyTabsService } from './propertiesService/PropertyTabsService.js';
71
71
  import { PlacementExtensionProvider } from '../widgets/designerView/extensions/PlacementExtensionProvider.js';
72
72
  import { FlexboxExtensionProvider } from '../widgets/designerView/extensions/FlexboxExtensionProvider.js';
73
- import { FlexboxExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/FlexboxExtensionDesignViewConfigButtons.js';
74
- import { InvisibleElementExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/InvisibleElementExtensionDesignViewConfigButtons.js';
73
+ import { FlexboxExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/FlexboxExtensionDesignViewConfigButtons.js';
74
+ import { InvisibleElementExtensionDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/InvisibleElementExtensionDesignViewConfigButtons.js';
75
75
  import { UndoService } from './undoService/UndoService.js';
76
76
  import { SelectionService } from './selectionService/SelectionService.js';
77
77
  import { ContentService } from './contentService/ContentService.js';
78
+ import { StylesheetServiceDesignViewConfigButtons } from '../widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons.js';
78
79
  export function createDefaultServiceContainer() {
79
80
  let serviceContainer = new ServiceContainer();
80
81
  serviceContainer.register("propertyService", new PolymerPropertiesService());
@@ -161,7 +162,7 @@ export function createDefaultServiceContainer() {
161
162
  serviceContainer.designerPointerExtensions.push(
162
163
  //new CursorLinePointerExtensionProvider()
163
164
  );
164
- serviceContainer.designViewConfigButtons.push(new ButtonSeperatorProvider(20), new GridExtensionDesignViewConfigButtons(), new FlexboxExtensionDesignViewConfigButtons(), new ButtonSeperatorProvider(10), new InvisibleElementExtensionDesignViewConfigButtons());
165
+ serviceContainer.designViewConfigButtons.push(new ButtonSeperatorProvider(20), new GridExtensionDesignViewConfigButtons(), new FlexboxExtensionDesignViewConfigButtons(), new ButtonSeperatorProvider(10), new InvisibleElementExtensionDesignViewConfigButtons(), new ButtonSeperatorProvider(10), new StylesheetServiceDesignViewConfigButtons());
165
166
  serviceContainer.designViewToolbarButtons.push(new PointerToolButtonProvider(), new SeperatorToolProvider(22), new SelectorToolButtonProvider(), new SeperatorToolProvider(22), new ZoomToolButtonProvider(), new SeperatorToolProvider(22), new DrawToolButtonProvider(), new SeperatorToolProvider(5), new TextToolButtonProvider());
166
167
  serviceContainer.designerContextMenuExtensions = [
167
168
  new CopyPasteContextMenu(),
@@ -22,7 +22,7 @@ import { IDragDropService } from './dragDropService/IDragDropService.js';
22
22
  import { ICopyPasteService } from "./copyPasteService/ICopyPasteService.js";
23
23
  import { IDesignerPointerExtensionProvider } from "../widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtensionProvider.js";
24
24
  import { IModelCommandService } from "./modelCommandService/IModelCommandService.js";
25
- import { IDesignViewConfigButtonsProvider } from "../widgets/designerView/IDesignViewConfigButtonsProvider.js";
25
+ import { IDesignViewConfigButtonsProvider } from "../widgets/designerView/extensions/buttons/IDesignViewConfigButtonsProvider.js";
26
26
  import { IDemoProviderService } from "./demoProviderService/IDemoProviderService.js";
27
27
  import { IBindableObjectsService } from "./bindableObjectsService/IBindableObjectsService.js";
28
28
  import { IBindableObjectDragDropService } from "./bindableObjectsService/IBindableObjectDragDropService.js";
@@ -4,6 +4,7 @@ import { RefreshMode } from '../IPropertiesService.js';
4
4
  import { IPropertyGroup } from '../IPropertyGroup.js';
5
5
  import { IStyleDeclaration, IStyleRule } from '../../stylesheetService/IStylesheetService.js';
6
6
  import { CommonPropertiesService } from './CommonPropertiesService.js';
7
+ import { ValueType } from '../ValueType.js';
7
8
  export declare class CssCurrentPropertiesService extends CommonPropertiesService {
8
9
  getRefreshMode(designItem: IDesignItem): RefreshMode;
9
10
  constructor();
@@ -18,4 +19,12 @@ export declare class CssCurrentPropertiesService extends CommonPropertiesService
18
19
  styleRule: IStyleRule;
19
20
  styleDeclaration: IStyleDeclaration;
20
21
  }): void;
22
+ getValue(designItems: IDesignItem[], property: IProperty & {
23
+ styleRule: IStyleRule;
24
+ styleDeclaration: IStyleDeclaration;
25
+ }): any;
26
+ isSet(designItems: IDesignItem[], property: IProperty & {
27
+ styleRule: IStyleRule;
28
+ styleDeclaration: IStyleDeclaration;
29
+ }): ValueType;
21
30
  }
@@ -2,6 +2,8 @@ import { PropertyType } from '../PropertyType.js';
2
2
  import { RefreshMode } from '../IPropertiesService.js';
3
3
  import { CommonPropertiesService } from './CommonPropertiesService.js';
4
4
  import cssProperties from './CssProperties.json' assert { type: 'json' };
5
+ import { ValueType } from '../ValueType.js';
6
+ const localName = '&lt;local&gt;';
5
7
  export class CssCurrentPropertiesService extends CommonPropertiesService {
6
8
  getRefreshMode(designItem) {
7
9
  return RefreshMode.fullOnValueChange;
@@ -21,7 +23,7 @@ export class CssCurrentPropertiesService extends CommonPropertiesService {
21
23
  return [];
22
24
  let styles = designItem.getAllStyles();
23
25
  let arr = styles.map(x => ({
24
- name: x.selector ?? '&lt;local&gt;', description: x.stylesheetName ?? '', properties: [
26
+ name: x.selector ?? localName, description: x.stylesheetName ?? '', properties: [
25
27
  ...x.declarations.map(y => ({
26
28
  name: y.name,
27
29
  renamable: true,
@@ -57,4 +59,18 @@ export class CssCurrentPropertiesService extends CommonPropertiesService {
57
59
  }
58
60
  super.clearValue(designItems, property);
59
61
  }
62
+ getValue(designItems, property) {
63
+ if (property.styleRule?.selector && property.styleDeclaration)
64
+ return property.styleDeclaration.value;
65
+ return super.getValue(designItems, property);
66
+ }
67
+ isSet(designItems, property) {
68
+ if (property.styleRule?.selector && property.styleDeclaration) {
69
+ if (designItems[0].hasStyle(property.name))
70
+ return ValueType.none;
71
+ //TODO: we need to check if this is the dec. with the highest specifity
72
+ return ValueType.all;
73
+ }
74
+ return super.isSet(designItems, property);
75
+ }
60
76
  }
@@ -310,7 +310,7 @@ export class GridExtension extends AbstractExtension {
310
310
  _convertCssUnit(cssValue, target, percentTarget, unit) {
311
311
  if (unit == "fr") {
312
312
  let containerSize = convertCssUnitToPixel(target.style.width, target, percentTarget);
313
- let amountGaps = percentTarget == "width" ? this.gridInformation.cells.length - 1 : this.gridInformation.cells[0].length - 1;
313
+ let amountGaps = percentTarget == "height" ? this.gridInformation.cells.length - 1 : this.gridInformation.cells[0].length - 1;
314
314
  let gapSize = convertCssUnitToPixel(percentTarget == "width" ? target.style.columnGap : target.style.rowGap, target, percentTarget);
315
315
  let containerSizeWithoutGaps = containerSize - gapSize * amountGaps;
316
316
  let amountFrSizes = 0;
@@ -0,0 +1,12 @@
1
+ import { IContextMenuItem } from "../../../../helper/contextMenu/IContextMenuItem.js";
2
+ import { DesignerView } from "../../designerView.js";
3
+ import { IDesignerCanvas } from '../../IDesignerCanvas.js';
4
+ import { IDesignViewConfigButtonsProvider } from "./IDesignViewConfigButtonsProvider.js";
5
+ export declare class AbstractDesignViewConfigButton implements IDesignViewConfigButtonsProvider {
6
+ protected settingName: any;
7
+ private content;
8
+ private tooltp;
9
+ private contextmenu;
10
+ constructor(settingName: string, content: string | HTMLElement, tooltip: string, contextmenu?: IContextMenuItem[]);
11
+ provideButtons(designerView: DesignerView, designerCanvas: IDesignerCanvas): HTMLElement[];
12
+ }
@@ -0,0 +1,40 @@
1
+ import { ContextMenu } from "../../../../helper/contextMenu/ContextMenu.js";
2
+ export class AbstractDesignViewConfigButton {
3
+ settingName;
4
+ content;
5
+ tooltp;
6
+ contextmenu;
7
+ constructor(settingName, content, tooltip, contextmenu) {
8
+ this.settingName = settingName;
9
+ this.content = content;
10
+ this.tooltp = tooltip;
11
+ this.contextmenu = contextmenu;
12
+ }
13
+ provideButtons(designerView, designerCanvas) {
14
+ const btn = document.createElement('div');
15
+ if (typeof this.content == 'string')
16
+ btn.innerHTML = this.content;
17
+ else
18
+ btn.appendChild(this.content);
19
+ btn.title = this.tooltp;
20
+ btn.className = 'toolbar-control';
21
+ const extensionOptions = designerCanvas.instanceServiceContainer.designContext.extensionOptions;
22
+ if (extensionOptions[this.settingName] !== false)
23
+ btn.classList.add('selected');
24
+ btn.onclick = () => {
25
+ const val = extensionOptions[this.settingName];
26
+ extensionOptions[this.settingName] = val === false ? true : false;
27
+ if (extensionOptions[this.settingName] !== false)
28
+ btn.classList.add('selected');
29
+ else
30
+ btn.classList.remove('selected');
31
+ };
32
+ btn.oncontextmenu = (e) => {
33
+ e.preventDefault();
34
+ if (this.contextmenu) {
35
+ ContextMenu.show(this.contextmenu, e);
36
+ }
37
+ };
38
+ return [btn];
39
+ }
40
+ }
@@ -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
+ }
@@ -0,0 +1,6 @@
1
+ import { DesignerView } from "../../designerView.js";
2
+ import { IDesignerCanvas } from '../../IDesignerCanvas.js';
3
+ import { IDesignViewConfigButtonsProvider } from "./IDesignViewConfigButtonsProvider.js";
4
+ export declare class FlexboxExtensionDesignViewConfigButtons implements IDesignViewConfigButtonsProvider {
5
+ provideButtons(designerView: DesignerView, designerCanvas: IDesignerCanvas): HTMLElement[];
6
+ }
@@ -0,0 +1,22 @@
1
+ import { flexboxExtensionShowOverlayOptionName } from "../FlexboxExtensionProvider.js";
2
+ export class FlexboxExtensionDesignViewConfigButtons {
3
+ provideButtons(designerView, designerCanvas) {
4
+ const extensionOptions = designerCanvas.instanceServiceContainer.designContext.extensionOptions;
5
+ const btn = document.createElement('div');
6
+ btn.innerText = 'F';
7
+ btn.title = 'show flexbox overlay';
8
+ btn.className = 'toolbar-control';
9
+ if (extensionOptions[flexboxExtensionShowOverlayOptionName] !== false)
10
+ btn.classList.add('selected');
11
+ btn.onclick = () => {
12
+ const val = extensionOptions[flexboxExtensionShowOverlayOptionName];
13
+ extensionOptions[flexboxExtensionShowOverlayOptionName] = val === false ? true : false;
14
+ if (extensionOptions[flexboxExtensionShowOverlayOptionName] !== false)
15
+ btn.classList.add('selected');
16
+ else
17
+ btn.classList.remove('selected');
18
+ designerCanvas.extensionManager.reapplyAllAppliedExtentions();
19
+ };
20
+ return [btn];
21
+ }
22
+ }
@@ -0,0 +1,6 @@
1
+ import { DesignerView } from "../../designerView.js";
2
+ import { IDesignerCanvas } from '../../IDesignerCanvas.js';
3
+ import { IDesignViewConfigButtonsProvider } from "./IDesignViewConfigButtonsProvider.js";
4
+ export declare class GridExtensionDesignViewConfigButtons implements IDesignViewConfigButtonsProvider {
5
+ provideButtons(designerView: DesignerView, designerCanvas: IDesignerCanvas): HTMLElement[];
6
+ }
@@ -0,0 +1,22 @@
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
+ designerCanvas.extensionManager.reapplyAllAppliedExtentions();
19
+ };
20
+ return [btn];
21
+ }
22
+ }
@@ -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
+ }
@@ -0,0 +1,6 @@
1
+ import { DesignerView } from "../../designerView.js";
2
+ import { IDesignerCanvas } from '../../IDesignerCanvas.js';
3
+ import { IDesignViewConfigButtonsProvider } from "./IDesignViewConfigButtonsProvider.js";
4
+ export declare class InvisibleElementExtensionDesignViewConfigButtons implements IDesignViewConfigButtonsProvider {
5
+ provideButtons(designerView: DesignerView, designerCanvas: IDesignerCanvas): HTMLElement[];
6
+ }
@@ -0,0 +1,22 @@
1
+ import { invisibleElementExtensionShowOverlayOptionName } from "../InvisibleElementExtensionProvider.js";
2
+ export class InvisibleElementExtensionDesignViewConfigButtons {
3
+ provideButtons(designerView, designerCanvas) {
4
+ const extensionOptions = designerCanvas.instanceServiceContainer.designContext.extensionOptions;
5
+ const btn = document.createElement('div');
6
+ btn.innerText = 'I';
7
+ btn.title = 'show invisible div overlay';
8
+ btn.className = 'toolbar-control';
9
+ if (extensionOptions[invisibleElementExtensionShowOverlayOptionName] !== false)
10
+ btn.classList.add('selected');
11
+ btn.onclick = () => {
12
+ const val = extensionOptions[invisibleElementExtensionShowOverlayOptionName];
13
+ extensionOptions[invisibleElementExtensionShowOverlayOptionName] = val === false ? true : false;
14
+ if (extensionOptions[invisibleElementExtensionShowOverlayOptionName] !== false)
15
+ btn.classList.add('selected');
16
+ else
17
+ btn.classList.remove('selected');
18
+ designerCanvas.extensionManager.reapplyAllAppliedExtentions();
19
+ };
20
+ return [btn];
21
+ }
22
+ }
@@ -0,0 +1,7 @@
1
+ import { DesignerView } from "../../designerView.js";
2
+ import { IDesignerCanvas } from '../../IDesignerCanvas.js';
3
+ import { IDesignViewConfigButtonsProvider } from "../../IDesignViewConfigButtonsProvider.js";
4
+ export declare const disableStylesheetService = "disableStylesheetService";
5
+ export declare class StylesheetServiceDesignViewConfigButtons implements IDesignViewConfigButtonsProvider {
6
+ provideButtons(designerView: DesignerView, designerCanvas: IDesignerCanvas): HTMLElement[];
7
+ }
@@ -0,0 +1,21 @@
1
+ export const disableStylesheetService = 'disableStylesheetService';
2
+ export class StylesheetServiceDesignViewConfigButtons {
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[disableStylesheetService] !== false)
10
+ btn.classList.add('selected');
11
+ btn.onclick = () => {
12
+ const val = extensionOptions[disableStylesheetService];
13
+ extensionOptions[disableStylesheetService] = val === false ? true : false;
14
+ if (extensionOptions[disableStylesheetService] !== false)
15
+ btn.classList.add('selected');
16
+ else
17
+ btn.classList.remove('selected');
18
+ };
19
+ return [btn];
20
+ }
21
+ }
@@ -0,0 +1,5 @@
1
+ import { AbstractDesignViewConfigButton } from "./AbstractDesignViewConfigButton.js";
2
+ export declare const enableStylesheetService = "enableStylesheetService";
3
+ export declare class StylesheetServiceDesignViewConfigButtons extends AbstractDesignViewConfigButton {
4
+ constructor();
5
+ }
@@ -0,0 +1,7 @@
1
+ import { AbstractDesignViewConfigButton } from "./AbstractDesignViewConfigButton.js";
2
+ export const enableStylesheetService = 'enableStylesheetService';
3
+ export class StylesheetServiceDesignViewConfigButtons extends AbstractDesignViewConfigButton {
4
+ constructor() {
5
+ super(enableStylesheetService, "ss", "modify Stylesheet");
6
+ }
7
+ }
@@ -200,7 +200,7 @@ export class PointerTool {
200
200
  this._clonedItems = [];
201
201
  for (let d of this._actionStartedDesignItems) {
202
202
  const clone = await d.clone();
203
- if (this._clonedItems)
203
+ if (this._clonedItems && clone)
204
204
  this._clonedItems.push(clone);
205
205
  }
206
206
  }
package/dist/index.d.ts CHANGED
@@ -167,7 +167,6 @@ export * from "./elements/widgets/designerView/extensions/CanvasExtensionProvide
167
167
  export * from "./elements/widgets/designerView/extensions/ExtensionManager.js";
168
168
  export * from "./elements/widgets/designerView/extensions/FlexboxExtension.js";
169
169
  export * from "./elements/widgets/designerView/extensions/FlexboxExtensionProvider.js";
170
- export * from "./elements/widgets/designerView/extensions/FlexboxExtensionDesignViewConfigButtons.js";
171
170
  export * from "./elements/widgets/designerView/extensions/GrayOutExtension.js";
172
171
  export * from "./elements/widgets/designerView/extensions/GrayOutExtensionProvider.js";
173
172
  export * from "./elements/widgets/designerView/extensions/GrayOutDragOverContainerExtension.js";
@@ -176,7 +175,6 @@ export * from "./elements/widgets/designerView/extensions/GridExtension.js";
176
175
  export * from "./elements/widgets/designerView/extensions/GridExtensionProvider.js";
177
176
  export * from "./elements/widgets/designerView/extensions/InvisibleElementExtension.js";
178
177
  export * from "./elements/widgets/designerView/extensions/InvisibleElementExtensionProvider.js";
179
- export * from "./elements/widgets/designerView/extensions/InvisibleElementExtensionDesignViewConfigButtons.js";
180
178
  export * from "./elements/widgets/designerView/extensions/HighlightElementExtension.js";
181
179
  export * from "./elements/widgets/designerView/extensions/HighlightElementExtensionProvider.js";
182
180
  export * from "./elements/widgets/designerView/extensions/svg/PathExtension.js";
@@ -193,6 +191,13 @@ export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtens
193
191
  export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtensionProvider.js";
194
192
  export * from "./elements/widgets/designerView/extensions/TransformOriginExtension.js";
195
193
  export * from "./elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js";
194
+ export * from "./elements/widgets/designerView/extensions/buttons/InvisibleElementExtensionDesignViewConfigButtons.js";
195
+ export * from "./elements/widgets/designerView/extensions/buttons/FlexboxExtensionDesignViewConfigButtons.js";
196
+ export * from "./elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons.js";
197
+ export * from "./elements/widgets/designerView/extensions/buttons/AbstractDesignViewConfigButton.js";
198
+ export * from "./elements/widgets/designerView/extensions/buttons/ButtonSeperatorProvider.js";
199
+ export * from "./elements/widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons.js";
200
+ export type { IDesignViewConfigButtonsProvider } from "./elements/widgets/designerView/extensions/buttons/IDesignViewConfigButtonsProvider";
196
201
  export * from "./elements/widgets/designerView/extensions/EditText/EditTextExtension.js";
197
202
  export * from "./elements/widgets/designerView/extensions/EditText/EditTextExtensionProvider.js";
198
203
  export * from "./elements/widgets/designerView/extensions/EditText/EditTextWithStyloExtension.js";
package/dist/index.js CHANGED
@@ -122,7 +122,6 @@ export * from "./elements/widgets/designerView/extensions/CanvasExtensionProvide
122
122
  export * from "./elements/widgets/designerView/extensions/ExtensionManager.js";
123
123
  export * from "./elements/widgets/designerView/extensions/FlexboxExtension.js";
124
124
  export * from "./elements/widgets/designerView/extensions/FlexboxExtensionProvider.js";
125
- export * from "./elements/widgets/designerView/extensions/FlexboxExtensionDesignViewConfigButtons.js";
126
125
  export * from "./elements/widgets/designerView/extensions/GrayOutExtension.js";
127
126
  export * from "./elements/widgets/designerView/extensions/GrayOutExtensionProvider.js";
128
127
  export * from "./elements/widgets/designerView/extensions/GrayOutDragOverContainerExtension.js";
@@ -131,7 +130,6 @@ export * from "./elements/widgets/designerView/extensions/GridExtension.js";
131
130
  export * from "./elements/widgets/designerView/extensions/GridExtensionProvider.js";
132
131
  export * from "./elements/widgets/designerView/extensions/InvisibleElementExtension.js";
133
132
  export * from "./elements/widgets/designerView/extensions/InvisibleElementExtensionProvider.js";
134
- export * from "./elements/widgets/designerView/extensions/InvisibleElementExtensionDesignViewConfigButtons.js";
135
133
  export * from "./elements/widgets/designerView/extensions/HighlightElementExtension.js";
136
134
  export * from "./elements/widgets/designerView/extensions/HighlightElementExtensionProvider.js";
137
135
  export * from "./elements/widgets/designerView/extensions/svg/PathExtension.js";
@@ -148,6 +146,12 @@ export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtens
148
146
  export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtensionProvider.js";
149
147
  export * from "./elements/widgets/designerView/extensions/TransformOriginExtension.js";
150
148
  export * from "./elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js";
149
+ export * from "./elements/widgets/designerView/extensions/buttons/InvisibleElementExtensionDesignViewConfigButtons.js";
150
+ export * from "./elements/widgets/designerView/extensions/buttons/FlexboxExtensionDesignViewConfigButtons.js";
151
+ export * from "./elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons.js";
152
+ export * from "./elements/widgets/designerView/extensions/buttons/AbstractDesignViewConfigButton.js";
153
+ export * from "./elements/widgets/designerView/extensions/buttons/ButtonSeperatorProvider.js";
154
+ export * from "./elements/widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons.js";
151
155
  export * from "./elements/widgets/designerView/extensions/EditText/EditTextExtension.js";
152
156
  export * from "./elements/widgets/designerView/extensions/EditText/EditTextExtensionProvider.js";
153
157
  export * from "./elements/widgets/designerView/extensions/EditText/EditTextWithStyloExtension.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.172",
4
+ "version": "0.0.174",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "",