@acorex/components 19.11.5 → 19.11.7

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 (116) hide show
  1. package/fesm2022/acorex-components-action-sheet.mjs +10 -10
  2. package/fesm2022/acorex-components-alert.mjs +7 -7
  3. package/fesm2022/acorex-components-audio-wave.mjs +7 -7
  4. package/fesm2022/acorex-components-autocomplete.mjs +7 -7
  5. package/fesm2022/acorex-components-avatar.mjs +10 -10
  6. package/fesm2022/acorex-components-badge.mjs +7 -7
  7. package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
  8. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  9. package/fesm2022/acorex-components-button-group.mjs +10 -10
  10. package/fesm2022/acorex-components-button.mjs +15 -15
  11. package/fesm2022/acorex-components-button.mjs.map +1 -1
  12. package/fesm2022/acorex-components-calendar.mjs +13 -13
  13. package/fesm2022/acorex-components-check-box.mjs +7 -7
  14. package/fesm2022/acorex-components-chips.mjs +7 -7
  15. package/fesm2022/acorex-components-circular-progress.mjs +7 -7
  16. package/fesm2022/acorex-components-collapse.mjs +10 -10
  17. package/fesm2022/acorex-components-color-box.mjs +7 -7
  18. package/fesm2022/acorex-components-color-palette.mjs +25 -25
  19. package/fesm2022/acorex-components-comment.mjs +28 -28
  20. package/fesm2022/acorex-components-common.mjs +91 -91
  21. package/fesm2022/acorex-components-conversation.mjs +51 -51
  22. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  23. package/fesm2022/acorex-components-cron-job.mjs +46 -46
  24. package/fesm2022/acorex-components-data-pager.mjs +31 -31
  25. package/fesm2022/acorex-components-data-table.mjs +37 -37
  26. package/fesm2022/acorex-components-datetime-box.mjs +7 -7
  27. package/fesm2022/acorex-components-datetime-input.mjs +7 -7
  28. package/fesm2022/acorex-components-datetime-picker.mjs +7 -7
  29. package/fesm2022/acorex-components-decorators.mjs +25 -25
  30. package/fesm2022/acorex-components-dialog.mjs +10 -10
  31. package/fesm2022/acorex-components-drawer.mjs +13 -13
  32. package/fesm2022/acorex-components-dropdown-button.mjs +7 -7
  33. package/fesm2022/acorex-components-dropdown.mjs +13 -13
  34. package/fesm2022/acorex-components-file-explorer.mjs +25 -25
  35. package/fesm2022/acorex-components-form.mjs +16 -16
  36. package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
  37. package/fesm2022/acorex-components-image-editor.mjs +46 -38
  38. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  39. package/fesm2022/acorex-components-image.mjs +7 -7
  40. package/fesm2022/acorex-components-json-viewer.mjs +7 -7
  41. package/fesm2022/acorex-components-kbd.mjs +10 -10
  42. package/fesm2022/acorex-components-label.mjs +7 -7
  43. package/fesm2022/acorex-components-list.mjs +7 -7
  44. package/fesm2022/acorex-components-loading-dialog.mjs +10 -10
  45. package/fesm2022/acorex-components-loading.mjs +16 -16
  46. package/fesm2022/acorex-components-map.mjs +10 -10
  47. package/fesm2022/acorex-components-media-viewer.mjs +37 -34
  48. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  49. package/fesm2022/acorex-components-menu.mjs +46 -35
  50. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  51. package/fesm2022/acorex-components-navbar.mjs +7 -7
  52. package/fesm2022/acorex-components-notification.mjs +10 -10
  53. package/fesm2022/acorex-components-number-box.mjs +7 -7
  54. package/fesm2022/acorex-components-otp.mjs +7 -7
  55. package/fesm2022/acorex-components-page.mjs +10 -10
  56. package/fesm2022/acorex-components-paint.mjs +185 -106
  57. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  58. package/fesm2022/acorex-components-password-box.mjs +12 -12
  59. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  60. package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
  61. package/fesm2022/acorex-components-phone-box.mjs +7 -7
  62. package/fesm2022/acorex-components-picker.mjs +13 -13
  63. package/fesm2022/acorex-components-popover.mjs +7 -7
  64. package/fesm2022/acorex-components-popup.mjs +10 -10
  65. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  66. package/fesm2022/acorex-components-qrcode.mjs +7 -7
  67. package/fesm2022/acorex-components-query-builder.mjs +7 -7
  68. package/fesm2022/acorex-components-radio.mjs +7 -7
  69. package/fesm2022/acorex-components-rail-navigation.mjs +13 -13
  70. package/fesm2022/acorex-components-range-slider.mjs +7 -7
  71. package/fesm2022/acorex-components-rate-picker.mjs +7 -7
  72. package/fesm2022/acorex-components-rest-api-generator.mjs +22 -22
  73. package/fesm2022/acorex-components-result.mjs +7 -7
  74. package/fesm2022/acorex-components-routing-progress.mjs +7 -7
  75. package/fesm2022/acorex-components-scheduler.mjs +13 -13
  76. package/fesm2022/acorex-components-scss.mjs +4 -4
  77. package/fesm2022/acorex-components-search-box.mjs +7 -7
  78. package/fesm2022/acorex-components-select-box.mjs +7 -7
  79. package/fesm2022/acorex-components-selection-list.mjs +7 -7
  80. package/fesm2022/acorex-components-side-menu.mjs +13 -13
  81. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  82. package/fesm2022/acorex-components-slider.mjs +7 -7
  83. package/fesm2022/acorex-components-sliding-item.mjs +13 -13
  84. package/fesm2022/acorex-components-step-wizard.mjs +13 -13
  85. package/fesm2022/acorex-components-switch.mjs +10 -10
  86. package/fesm2022/acorex-components-tabs.mjs +13 -13
  87. package/fesm2022/acorex-components-tag-box.mjs +9 -9
  88. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  89. package/fesm2022/acorex-components-tag.mjs +7 -7
  90. package/fesm2022/acorex-components-text-area.mjs +7 -7
  91. package/fesm2022/acorex-components-text-box.mjs +12 -12
  92. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  93. package/fesm2022/acorex-components-time-line.mjs +10 -10
  94. package/fesm2022/acorex-components-toast.mjs +10 -10
  95. package/fesm2022/acorex-components-toolbar.mjs +7 -7
  96. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  97. package/fesm2022/acorex-components-tree-view.mjs +64 -72
  98. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  99. package/fesm2022/acorex-components-uploader.mjs +22 -22
  100. package/fesm2022/acorex-components-video-player.mjs +7 -7
  101. package/fesm2022/acorex-components-wysiwyg.mjs +31 -31
  102. package/image-editor/lib/image-editor-container/image-editor-container.component.d.ts +2 -1
  103. package/media-viewer/lib/media-viewer-container/media-viewer-container.component.d.ts +1 -0
  104. package/menu/lib/context-menu.component.d.ts +1 -0
  105. package/package.json +1 -1
  106. package/paint/index.d.ts +4 -2
  107. package/paint/lib/paint/paint-container/paint-container.component.d.ts +4 -1
  108. package/paint/lib/paint/paint-tools/paint-eraser-tool/paint-eraser-tool.component.d.ts +15 -0
  109. package/paint/lib/paint/paint-tools/paint-highlight-tool/paint-highlight-tool.component.d.ts +18 -0
  110. package/paint/lib/paint/paint-tools/paint-pen-tool/paint-pen-tool.component.d.ts +18 -0
  111. package/paint/lib/paint/paint-tools-selector/paint-tools-selector.component.d.ts +9 -0
  112. package/paint/lib/paint/paint.service.d.ts +5 -2
  113. package/paint/lib/paint.module.d.ts +5 -3
  114. package/tree-view/lib/tree-view.component.module.d.ts +11 -11
  115. package/paint/lib/paint/paint-tools/paint-color-picker/paint-color-picker.component.d.ts +0 -17
  116. package/paint/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.d.ts +0 -36
@@ -1,150 +1,189 @@
1
1
  import { AXButtonComponent, AXButtonModule } from '@acorex/components/button';
2
2
  import { AXColorBoxComponent, AXColorBoxModule } from '@acorex/components/color-box';
3
- import { AXDecoratorIconComponent, AXDecoratorModule } from '@acorex/components/decorators';
4
- import { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';
3
+ import * as i1 from '@acorex/components/decorators';
4
+ import { AXDecoratorModule } from '@acorex/components/decorators';
5
+ import { AXPopoverModule } from '@acorex/components/popover';
5
6
  import { AXRangeSliderComponent, AXRangeSliderModule } from '@acorex/components/range-slider';
6
7
  import { AXSelectBoxModule } from '@acorex/components/select-box';
7
8
  import { AXTooltipDirective, AXTooltipModule } from '@acorex/components/tooltip';
8
9
  import * as i0 from '@angular/core';
9
- import { signal, Injectable, forwardRef, ViewEncapsulation, Component, inject, HostBinding, model, effect, input, Renderer2, PLATFORM_ID, viewChild, ElementRef, afterNextRender, NgModule } from '@angular/core';
10
- import * as i1 from '@angular/forms';
11
- import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
10
+ import { signal, Injectable, inject, ViewEncapsulation, Component, ChangeDetectionStrategy, forwardRef, HostBinding, Renderer2, PLATFORM_ID, input, viewChild, ElementRef, afterNextRender, effect, NgModule } from '@angular/core';
11
+ import * as i1$1 from '@angular/forms';
12
+ import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
12
13
  import { MXInputBaseValueComponent, MXLookComponent, AXComponent, AXFocusableComponent, AXClearableComponent, AXValuableComponent } from '@acorex/components/common';
14
+ import { AXToolBarComponent } from '@acorex/components/toolbar';
13
15
  import { classes } from 'polytype';
14
- import { isPlatformBrowser } from '@angular/common';
16
+ import { CommonModule, isPlatformBrowser } from '@angular/common';
15
17
 
16
18
  class AXPaintService {
17
19
  constructor() {
18
- this.penColor = signal('');
19
- this.lineWidth = signal(10);
20
- this.penType = signal('pen');
20
+ this.penColor = signal('rgb(12, 12, 12)');
21
+ this.highlightColor = signal('rgb(255, 210, 48)');
22
+ this.penWidth = signal(10);
23
+ this.highlightWidth = signal(10);
24
+ this.eraserWidth = signal(10);
21
25
  this.toggleClear = signal(false);
26
+ this.activeToolState = signal(null);
22
27
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintService }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintService }); }
25
30
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintService, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintService, decorators: [{
27
32
  type: Injectable
28
33
  }] });
29
34
 
35
+ class AXPaintToolsSelectorComponent {
36
+ constructor() {
37
+ this.service = inject(AXPaintService);
38
+ }
39
+ changeToolHandler(tool) {
40
+ if (this.service.activeToolState() === tool) {
41
+ this.service.activeToolState.set(null);
42
+ return;
43
+ }
44
+ this.service.activeToolState.set(tool);
45
+ }
46
+ clear() {
47
+ this.service.toggleClear.update((prev) => !prev);
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintToolsSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: AXPaintToolsSelectorComponent, isStandalone: true, selector: "ax-paint-tools-selector", ngImport: i0, template: "<ax-button\n axTooltip=\"pen\"\n axTooltipPlacement=\"top\"\n (onClick)=\"changeToolHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.activeToolState() === 'pen' ? true : false\"\n [color]=\"this.service.activeToolState() === 'pen' ? 'primary' : 'default'\"\n>\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n</ax-button>\n\n<ax-button\n axTooltip=\"highlight\"\n axTooltipPlacement=\"top\"\n (onClick)=\"changeToolHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.activeToolState() === 'highlight' ? true : false\"\n [color]=\"this.service.activeToolState() === 'highlight' ? 'primary' : 'default'\"\n>\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n</ax-button>\n\n<ax-button\n axTooltip=\"eraser\"\n axTooltipPlacement=\"top\"\n (onClick)=\"changeToolHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.activeToolState() === 'eraser' ? true : false\"\n [color]=\"this.service.activeToolState() === 'eraser' ? 'primary' : 'default'\"\n>\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n</ax-button>\n\n<ax-button axTooltip=\"reset\" axTooltipPlacement=\"top\" (onClick)=\"clear()\" look=\"blank\">\n <i class=\"fa-solid fa-rotate\"></i>\n</ax-button>\n", styles: [""], dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }], encapsulation: i0.ViewEncapsulation.None }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintToolsSelectorComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'ax-paint-tools-selector', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXDecoratorModule, AXTooltipDirective], template: "<ax-button\n axTooltip=\"pen\"\n axTooltipPlacement=\"top\"\n (onClick)=\"changeToolHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.activeToolState() === 'pen' ? true : false\"\n [color]=\"this.service.activeToolState() === 'pen' ? 'primary' : 'default'\"\n>\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n</ax-button>\n\n<ax-button\n axTooltip=\"highlight\"\n axTooltipPlacement=\"top\"\n (onClick)=\"changeToolHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.activeToolState() === 'highlight' ? true : false\"\n [color]=\"this.service.activeToolState() === 'highlight' ? 'primary' : 'default'\"\n>\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n</ax-button>\n\n<ax-button\n axTooltip=\"eraser\"\n axTooltipPlacement=\"top\"\n (onClick)=\"changeToolHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.activeToolState() === 'eraser' ? true : false\"\n [color]=\"this.service.activeToolState() === 'eraser' ? 'primary' : 'default'\"\n>\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n</ax-button>\n\n<ax-button axTooltip=\"reset\" axTooltipPlacement=\"top\" (onClick)=\"clear()\" look=\"blank\">\n <i class=\"fa-solid fa-rotate\"></i>\n</ax-button>\n" }]
55
+ }] });
56
+
30
57
  /**
31
- * paint container.
58
+ * paint mode.
32
59
  * @category Components
33
60
  */
34
- class AXPaintContainerComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: AXPaintContainerComponent, isStandalone: true, selector: "ax-paint-container", inputs: { look: "look" }, providers: [
37
- AXPaintService,
38
- { provide: AXComponent, useExisting: AXPaintContainerComponent },
39
- { provide: AXFocusableComponent, useExisting: AXPaintContainerComponent },
40
- { provide: AXClearableComponent, useExisting: AXPaintContainerComponent },
41
- { provide: AXValuableComponent, useExisting: AXPaintContainerComponent },
42
- {
43
- provide: NG_VALUE_ACCESSOR,
44
- useExisting: forwardRef(() => AXPaintContainerComponent),
45
- multi: true,
46
- },
47
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-editor-container ax-{{ look }}\">\n <ng-content></ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n", styles: ["ax-paint-container>.ax-editor-container{display:block;height:100%;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}\n"], encapsulation: i0.ViewEncapsulation.None }); }
61
+ class AXPaintEraserToolComponent {
62
+ constructor() {
63
+ this.service = inject(AXPaintService);
64
+ /** @ignore */
65
+ this.value = this.service.eraserWidth();
66
+ }
67
+ /** @ignore */
68
+ valueHandler(e) {
69
+ this.service.eraserWidth.set(e);
70
+ }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintEraserToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: AXPaintEraserToolComponent, isStandalone: true, selector: "ax-paint-eraser-tool", ngImport: i0, template: "<ax-range-slider [min]=\"2\" [max]=\"20\" [(ngModel)]=\"value\" (ngModelChange)=\"valueHandler($event)\"></ax-range-slider>\n", styles: ["ax-paint-eraser-tool{display:flex}ax-paint-eraser-tool ax-range-slider{padding:.5rem .75rem;width:10rem}ax-paint-eraser-tool ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
48
73
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintContainerComponent, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintEraserToolComponent, decorators: [{
50
75
  type: Component,
51
- args: [{ selector: 'ax-paint-container', encapsulation: ViewEncapsulation.None, inputs: ['look'], providers: [
52
- AXPaintService,
53
- { provide: AXComponent, useExisting: AXPaintContainerComponent },
54
- { provide: AXFocusableComponent, useExisting: AXPaintContainerComponent },
55
- { provide: AXClearableComponent, useExisting: AXPaintContainerComponent },
56
- { provide: AXValuableComponent, useExisting: AXPaintContainerComponent },
57
- {
58
- provide: NG_VALUE_ACCESSOR,
59
- useExisting: forwardRef(() => AXPaintContainerComponent),
60
- multi: true,
61
- },
62
- ], template: "<div class=\"ax-editor-container ax-{{ look }}\">\n <ng-content></ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n", styles: ["ax-paint-container>.ax-editor-container{display:block;height:100%;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}\n"] }]
76
+ args: [{ selector: 'ax-paint-eraser-tool', encapsulation: ViewEncapsulation.None, imports: [CommonModule, FormsModule, AXRangeSliderComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-range-slider [min]=\"2\" [max]=\"20\" [(ngModel)]=\"value\" (ngModelChange)=\"valueHandler($event)\"></ax-range-slider>\n", styles: ["ax-paint-eraser-tool{display:flex}ax-paint-eraser-tool ax-range-slider{padding:.5rem .75rem;width:10rem}ax-paint-eraser-tool ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\n"] }]
63
77
  }] });
64
78
 
65
79
  /**
66
- * paint color picker.
80
+ * paint mode.
67
81
  * @category Components
68
82
  */
69
- class AXPaintColorPickerComponent {
83
+ class AXPaintHighlightToolComponent {
70
84
  constructor() {
71
- /** @ignore */
72
85
  this.service = inject(AXPaintService);
73
86
  /** @ignore */
74
- this.selectedColor = signal('rgb(12, 12, 12)');
87
+ this.value = this.service.highlightWidth();
88
+ /** @ignore */
89
+ this.selectedColor = signal(this.service.highlightColor());
75
90
  }
76
- /** @ignore */
77
91
  changeColorHandler(e) {
78
- this.service.penColor.set(e);
92
+ this.service.highlightColor.set(e);
79
93
  this.selectedColor.set(e);
80
94
  }
81
- get __hostClass() {
82
- return `.5rem`;
95
+ /** @ignore */
96
+ valueHandler(e) {
97
+ this.service.highlightWidth.set(e);
83
98
  }
84
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
85
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: AXPaintColorPickerComponent, isStandalone: true, selector: "ax-paint-color-picker", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<ax-color-box axTooltip=\"Color Picker\" axTooltipPlacement=\"top\" look=\"none\" [ngModel]=\"selectedColor()\" (ngModelChange)=\"changeColorHandler($event)\">\n</ax-color-box>\n", styles: ["ax-paint-color-picker{margin-inline:0!important}ax-paint-color-picker .ax-submit-color{border:1px solid rgb(var(--ax-sys-body-text-color));width:.6rem;height:.6rem;border-radius:1000vmax}ax-paint-color-picker .ax-color-flex-container{display:flex;align-items:center;cursor:pointer}\n"], dependencies: [{ kind: "component", type: AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "showBadge", "showValue", "showClearButton", "showIcon"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintHighlightToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: AXPaintHighlightToolComponent, isStandalone: true, selector: "ax-paint-highlight-tool", ngImport: i0, template: "<ax-color-box\n [showValue]=\"false\"\n [showIcon]=\"false\"\n axTooltip=\"Pen Color Picker\"\n axTooltipPlacement=\"top\"\n look=\"none\"\n [ngModel]=\"selectedColor()\"\n (ngModelChange)=\"changeColorHandler($event)\"\n>\n</ax-color-box>\n\n<ax-range-slider [min]=\"2\" [max]=\"20\" [(ngModel)]=\"value\" (ngModelChange)=\"valueHandler($event)\"></ax-range-slider>\n", styles: ["ax-paint-highlight-tool{display:flex}ax-paint-highlight-tool ax-range-slider{padding:.5rem .75rem;width:10rem}ax-paint-highlight-tool ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\n"], dependencies: [{ kind: "component", type: AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "showBadge", "showValue", "showClearButton", "showIcon"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
86
101
  }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintColorPickerComponent, decorators: [{
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintHighlightToolComponent, decorators: [{
88
103
  type: Component,
89
- args: [{ selector: 'ax-paint-color-picker', encapsulation: ViewEncapsulation.None, imports: [AXColorBoxComponent, AXTooltipDirective, FormsModule], template: "<ax-color-box axTooltip=\"Color Picker\" axTooltipPlacement=\"top\" look=\"none\" [ngModel]=\"selectedColor()\" (ngModelChange)=\"changeColorHandler($event)\">\n</ax-color-box>\n", styles: ["ax-paint-color-picker{margin-inline:0!important}ax-paint-color-picker .ax-submit-color{border:1px solid rgb(var(--ax-sys-body-text-color));width:.6rem;height:.6rem;border-radius:1000vmax}ax-paint-color-picker .ax-color-flex-container{display:flex;align-items:center;cursor:pointer}\n"] }]
90
- }], propDecorators: { __hostClass: [{
91
- type: HostBinding,
92
- args: ['style.marginInline']
93
- }] } });
104
+ args: [{ selector: 'ax-paint-highlight-tool', encapsulation: ViewEncapsulation.None, imports: [AXColorBoxComponent, CommonModule, FormsModule, AXRangeSliderComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-color-box\n [showValue]=\"false\"\n [showIcon]=\"false\"\n axTooltip=\"Pen Color Picker\"\n axTooltipPlacement=\"top\"\n look=\"none\"\n [ngModel]=\"selectedColor()\"\n (ngModelChange)=\"changeColorHandler($event)\"\n>\n</ax-color-box>\n\n<ax-range-slider [min]=\"2\" [max]=\"20\" [(ngModel)]=\"value\" (ngModelChange)=\"valueHandler($event)\"></ax-range-slider>\n", styles: ["ax-paint-highlight-tool{display:flex}ax-paint-highlight-tool ax-range-slider{padding:.5rem .75rem;width:10rem}ax-paint-highlight-tool ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\n"] }]
105
+ }] });
94
106
 
95
107
  /**
96
108
  * paint mode.
97
109
  * @category Components
98
110
  */
99
- class AXPaintPenModeChangerComponent {
111
+ class AXPaintPenToolComponent {
100
112
  constructor() {
101
- /** @ignore */
102
113
  this.service = inject(AXPaintService);
103
114
  /** @ignore */
104
- this.defaultWidth = model(10);
105
- this.#defaultWidthChange = effect(() => {
106
- if (this.defaultWidth()) {
107
- this.valueHandler(this.defaultWidth());
108
- }
109
- });
110
- /** @ignore */
111
- this.popoverOption = {
112
- openOn: 'click',
113
- closeOn: 'clickOut',
114
- placement: 'top',
115
- offsetX: 0,
116
- offsetY: 0,
117
- };
115
+ this.value = this.service.penWidth();
118
116
  /** @ignore */
119
- this.selectedPenType = signal('pen');
120
- this.penTypes = input(['pen', 'highlight', 'eraser']);
121
- this.sizeSlider = input(true);
117
+ this.selectedColor = signal(this.service.penColor());
122
118
  }
123
- #defaultWidthChange;
124
- /** @ignore */
125
- penTypeHandler(e) {
126
- this.service.penType.set(e);
119
+ changeColorHandler(e) {
120
+ this.service.penColor.set(e);
121
+ this.selectedColor.set(e);
127
122
  }
128
123
  /** @ignore */
129
- clear() {
130
- this.service.toggleClear.update((prev) => !prev);
124
+ valueHandler(e) {
125
+ this.service.penWidth.set(e);
131
126
  }
132
- get __hostClass() {
133
- return `.5rem`;
127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintPenToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
128
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: AXPaintPenToolComponent, isStandalone: true, selector: "ax-paint-pen-tool", ngImport: i0, template: "<ax-color-box\n [showValue]=\"false\"\n [showIcon]=\"false\"\n axTooltip=\"Pen Color Picker\"\n axTooltipPlacement=\"top\"\n look=\"none\"\n [ngModel]=\"selectedColor()\"\n (ngModelChange)=\"changeColorHandler($event)\"\n>\n</ax-color-box>\n\n<ax-range-slider [min]=\"2\" [max]=\"20\" [(ngModel)]=\"value\" (ngModelChange)=\"valueHandler($event)\"></ax-range-slider>\n", styles: ["ax-paint-pen-tool{display:flex}ax-paint-pen-tool ax-range-slider{padding:.5rem .75rem;width:10rem}ax-paint-pen-tool ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\n"], dependencies: [{ kind: "component", type: AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "showBadge", "showValue", "showClearButton", "showIcon"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
129
+ }
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintPenToolComponent, decorators: [{
131
+ type: Component,
132
+ args: [{ selector: 'ax-paint-pen-tool', encapsulation: ViewEncapsulation.None, imports: [AXColorBoxComponent, CommonModule, FormsModule, AXRangeSliderComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-color-box\n [showValue]=\"false\"\n [showIcon]=\"false\"\n axTooltip=\"Pen Color Picker\"\n axTooltipPlacement=\"top\"\n look=\"none\"\n [ngModel]=\"selectedColor()\"\n (ngModelChange)=\"changeColorHandler($event)\"\n>\n</ax-color-box>\n\n<ax-range-slider [min]=\"2\" [max]=\"20\" [(ngModel)]=\"value\" (ngModelChange)=\"valueHandler($event)\"></ax-range-slider>\n", styles: ["ax-paint-pen-tool{display:flex}ax-paint-pen-tool ax-range-slider{padding:.5rem .75rem;width:10rem}ax-paint-pen-tool ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\n"] }]
133
+ }] });
134
+
135
+ /**
136
+ * paint container.
137
+ * @category Components
138
+ */
139
+ class AXPaintContainerComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {
140
+ constructor() {
141
+ super(...arguments);
142
+ this.service = inject(AXPaintService);
134
143
  }
135
- /** @ignore */
136
- valueHandler(e) {
137
- this.service.lineWidth.set(e);
144
+ get __hostClass() {
145
+ if (this.disabled)
146
+ return 'ax-state-disabled';
147
+ return '';
138
148
  }
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintPenModeChangerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
140
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: AXPaintPenModeChangerComponent, isStandalone: true, selector: "ax-paint-pen-mode-changer", inputs: { defaultWidth: { classPropertyName: "defaultWidth", publicName: "defaultWidth", isSignal: true, isRequired: false, transformFunction: null }, penTypes: { classPropertyName: "penTypes", publicName: "penTypes", isSignal: true, isRequired: false, transformFunction: null }, sizeSlider: { classPropertyName: "sizeSlider", publicName: "sizeSlider", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { defaultWidth: "defaultWidthChange" }, host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "@if (penTypes().length > 1 || sizeSlider()) {\n <ax-button axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" look=\"blank\" #alignPop>\n @switch (service.penType()) {\n @case ('pen') {\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n }\n @case ('highlight') {\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n }\n @case ('eraser') {\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n }\n }\n </ax-button>\n\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n >\n <div class=\"ax-overlay-pane\">\n @if (penTypes().includes('pen') && penTypes().length > 1) {\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n }\n\n @if (penTypes().includes('highlight') && penTypes().length > 1) {\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n }\n\n @if (penTypes().includes('eraser') && penTypes().length > 1) {\n <ax-button\n (click)=\"penTypeHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'eraser' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n </ax-button>\n }\n\n @if (sizeSlider()) {\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"defaultWidth\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n }\n </div>\n </ax-popover>\n}\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n", styles: ["ax-paint-pen-mode-changer{display:flex;align-items:center;margin-inline:0!important}ax-paint-pen-mode-changer ax-range-slider{padding:.5rem .75rem}ax-paint-pen-mode-changer ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}ax-paint-pen-mode-changer ax-popover .ax-overlay-pane{width:20px!important}\n"], dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
150
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: AXPaintContainerComponent, isStandalone: true, selector: "ax-paint-container", inputs: { look: "look", disabled: "disabled" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
151
+ AXPaintService,
152
+ { provide: AXComponent, useExisting: AXPaintContainerComponent },
153
+ { provide: AXFocusableComponent, useExisting: AXPaintContainerComponent },
154
+ { provide: AXClearableComponent, useExisting: AXPaintContainerComponent },
155
+ { provide: AXValuableComponent, useExisting: AXPaintContainerComponent },
156
+ {
157
+ provide: NG_VALUE_ACCESSOR,
158
+ useExisting: forwardRef(() => AXPaintContainerComponent),
159
+ multi: true,
160
+ },
161
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-editor-container ax-{{ look }}\">\n <ng-content></ng-content>\n\n @if (service.activeToolState()) {\n <ax-toolbar class=\"ax-secondary-toolbar\">\n <ax-prefix>\n @switch (service.activeToolState()) {\n @case ('pen') {\n <ax-paint-pen-tool></ax-paint-pen-tool>\n }\n @case ('eraser') {\n <ax-paint-eraser-tool></ax-paint-eraser-tool>\n }\n @case ('highlight') {\n <ax-paint-highlight-tool></ax-paint-highlight-tool>\n }\n }\n </ax-prefix>\n </ax-toolbar>\n }\n\n <ax-toolbar class=\"ax-main-toolbar\">\n <ax-content>\n <ax-paint-tools-selector></ax-paint-tools-selector>\n </ax-content>\n </ax-toolbar>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n\n@if (disabled) {\n <div class=\"ax-disable-overlay\"></div>\n}\n", styles: ["ax-paint-container>.ax-editor-container{display:block;height:100%;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-paint-container.ax-state-disabled{opacity:.5}ax-paint-container .ax-disable-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:not-allowed}ax-paint-container .ax-secondary-toolbar{padding:.2rem;border-bottom:1px solid rgba(var(--ax-sys-color-border-surface));justify-content:center}ax-paint-container .ax-main-toolbar{justify-content:center;padding:.2rem}\n"], dependencies: [{ kind: "component", type: AXToolBarComponent, selector: "ax-toolbar" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXPaintToolsSelectorComponent, selector: "ax-paint-tools-selector" }, { kind: "component", type: AXPaintPenToolComponent, selector: "ax-paint-pen-tool" }, { kind: "component", type: AXPaintHighlightToolComponent, selector: "ax-paint-highlight-tool" }, { kind: "component", type: AXPaintEraserToolComponent, selector: "ax-paint-eraser-tool" }], encapsulation: i0.ViewEncapsulation.None }); }
141
162
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintPenModeChangerComponent, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintContainerComponent, decorators: [{
143
164
  type: Component,
144
- args: [{ selector: 'ax-paint-pen-mode-changer', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXTooltipDirective, AXDecoratorIconComponent, AXPopoverComponent, AXRangeSliderComponent, FormsModule], template: "@if (penTypes().length > 1 || sizeSlider()) {\n <ax-button axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" look=\"blank\" #alignPop>\n @switch (service.penType()) {\n @case ('pen') {\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n }\n @case ('highlight') {\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n }\n @case ('eraser') {\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n }\n }\n </ax-button>\n\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n >\n <div class=\"ax-overlay-pane\">\n @if (penTypes().includes('pen') && penTypes().length > 1) {\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n }\n\n @if (penTypes().includes('highlight') && penTypes().length > 1) {\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n }\n\n @if (penTypes().includes('eraser') && penTypes().length > 1) {\n <ax-button\n (click)=\"penTypeHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'eraser' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n </ax-button>\n }\n\n @if (sizeSlider()) {\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"defaultWidth\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n }\n </div>\n </ax-popover>\n}\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n", styles: ["ax-paint-pen-mode-changer{display:flex;align-items:center;margin-inline:0!important}ax-paint-pen-mode-changer ax-range-slider{padding:.5rem .75rem}ax-paint-pen-mode-changer ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}ax-paint-pen-mode-changer ax-popover .ax-overlay-pane{width:20px!important}\n"] }]
165
+ args: [{ selector: 'ax-paint-container', encapsulation: ViewEncapsulation.None, inputs: ['look', 'disabled'], providers: [
166
+ AXPaintService,
167
+ { provide: AXComponent, useExisting: AXPaintContainerComponent },
168
+ { provide: AXFocusableComponent, useExisting: AXPaintContainerComponent },
169
+ { provide: AXClearableComponent, useExisting: AXPaintContainerComponent },
170
+ { provide: AXValuableComponent, useExisting: AXPaintContainerComponent },
171
+ {
172
+ provide: NG_VALUE_ACCESSOR,
173
+ useExisting: forwardRef(() => AXPaintContainerComponent),
174
+ multi: true,
175
+ },
176
+ ], imports: [
177
+ AXToolBarComponent,
178
+ AXDecoratorModule,
179
+ AXPaintToolsSelectorComponent,
180
+ AXPaintPenToolComponent,
181
+ AXPaintHighlightToolComponent,
182
+ AXPaintEraserToolComponent,
183
+ ], template: "<div class=\"ax-editor-container ax-{{ look }}\">\n <ng-content></ng-content>\n\n @if (service.activeToolState()) {\n <ax-toolbar class=\"ax-secondary-toolbar\">\n <ax-prefix>\n @switch (service.activeToolState()) {\n @case ('pen') {\n <ax-paint-pen-tool></ax-paint-pen-tool>\n }\n @case ('eraser') {\n <ax-paint-eraser-tool></ax-paint-eraser-tool>\n }\n @case ('highlight') {\n <ax-paint-highlight-tool></ax-paint-highlight-tool>\n }\n }\n </ax-prefix>\n </ax-toolbar>\n }\n\n <ax-toolbar class=\"ax-main-toolbar\">\n <ax-content>\n <ax-paint-tools-selector></ax-paint-tools-selector>\n </ax-content>\n </ax-toolbar>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n\n@if (disabled) {\n <div class=\"ax-disable-overlay\"></div>\n}\n", styles: ["ax-paint-container>.ax-editor-container{display:block;height:100%;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-paint-container.ax-state-disabled{opacity:.5}ax-paint-container .ax-disable-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:not-allowed}ax-paint-container .ax-secondary-toolbar{padding:.2rem;border-bottom:1px solid rgba(var(--ax-sys-color-border-surface));justify-content:center}ax-paint-container .ax-main-toolbar{justify-content:center;padding:.2rem}\n"] }]
145
184
  }], propDecorators: { __hostClass: [{
146
185
  type: HostBinding,
147
- args: ['style.marginInline']
186
+ args: ['class']
148
187
  }] } });
149
188
 
150
189
  /**
@@ -179,8 +218,6 @@ class AXPaintViewComponent {
179
218
  this.ctx.set(this.canvasElem().nativeElement.getContext('2d'));
180
219
  this.ctx().lineJoin = 'round';
181
220
  this.ctx().lineCap = 'round';
182
- this.ctx().strokeStyle = this.service.penColor();
183
- this.ctx().lineWidth = this.service.lineWidth();
184
221
  setTimeout(() => {
185
222
  this.resizeEventHandler();
186
223
  });
@@ -213,14 +250,19 @@ class AXPaintViewComponent {
213
250
  case 'pen':
214
251
  this.ctx().globalAlpha = 1;
215
252
  this.ctx().globalCompositeOperation = 'source-over';
253
+ this.ctx().strokeStyle = this.service.penColor();
254
+ this.ctx().lineWidth = this.service.penWidth();
216
255
  break;
217
256
  case 'eraser':
218
257
  this.ctx().globalAlpha = 1;
219
258
  this.ctx().globalCompositeOperation = 'destination-out';
259
+ this.ctx().lineWidth = this.service.eraserWidth();
220
260
  break;
221
261
  case 'highlight':
222
262
  this.ctx().globalAlpha = 0.008;
223
263
  this.ctx().globalCompositeOperation = 'source-over';
264
+ this.ctx().strokeStyle = this.service.highlightColor();
265
+ this.ctx().lineWidth = this.service.highlightWidth();
224
266
  break;
225
267
  }
226
268
  }
@@ -232,9 +274,9 @@ class AXPaintViewComponent {
232
274
  mouseDownHandler(e) {
233
275
  this.isPainting.set(true);
234
276
  this.isUserInteract.set(true);
235
- this.penConfigHandler(this.service.penType());
236
- this.ctx().strokeStyle = this.service.penColor();
237
- this.ctx().lineWidth = this.service.lineWidth();
277
+ if (!this.service.activeToolState())
278
+ return;
279
+ this.penConfigHandler(this.service.activeToolState());
238
280
  this.ctx().beginPath();
239
281
  this.ctx().moveTo(e.offsetX, e.offsetY);
240
282
  this.ctx().lineTo(e.offsetX, e.offsetY);
@@ -267,10 +309,10 @@ class AXPaintViewComponent {
267
309
  get __hostClass() {
268
310
  return [`${this.customClass()}`, `ax-${this.paintBackgroundColor()}`];
269
311
  }
270
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
271
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.1", type: AXPaintViewComponent, isStandalone: true, selector: "ax-paint-view", inputs: { customClass: { classPropertyName: "customClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, paintBackgroundColor: { classPropertyName: "paintBackgroundColor", publicName: "paintBackgroundColor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, viewQueries: [{ propertyName: "canvasElem", first: true, predicate: ["c"], descendants: true, isSignal: true }], ngImport: i0, template: "<canvas\n #c\n tabindex=\"1\"\n (pointerdown)=\"mouseDownHandler($event)\"\n (pointerup)=\"mouseUpHandler()\"\n (pointermove)=\"mouseMoveHandler($event)\"\n class=\"ax-canvas-element\"\n>\n</canvas>\n", styles: ["ax-paint-view{display:block;width:100%;touch-action:none}ax-paint-view.ax-white{background-color:#fff}ax-paint-view.ax-black{background-color:#000}ax-paint-view .ax-canvas-element{border-bottom:1px solid rgb(var(--ax-sys-color-border-lightest-surface));cursor:crosshair;width:100%}\n"], encapsulation: i0.ViewEncapsulation.None }); }
312
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
313
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.5", type: AXPaintViewComponent, isStandalone: true, selector: "ax-paint-view", inputs: { customClass: { classPropertyName: "customClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, paintBackgroundColor: { classPropertyName: "paintBackgroundColor", publicName: "paintBackgroundColor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, viewQueries: [{ propertyName: "canvasElem", first: true, predicate: ["c"], descendants: true, isSignal: true }], ngImport: i0, template: "<canvas\n #c\n tabindex=\"1\"\n (pointerdown)=\"mouseDownHandler($event)\"\n (pointerup)=\"mouseUpHandler()\"\n (pointermove)=\"mouseMoveHandler($event)\"\n class=\"ax-canvas-element\"\n>\n</canvas>\n", styles: ["ax-paint-view{display:block;width:100%;touch-action:none}ax-paint-view.ax-white{background-color:#fff}ax-paint-view.ax-black{background-color:#000}ax-paint-view .ax-canvas-element{border-bottom:1px solid rgb(var(--ax-sys-color-border-lightest-surface));cursor:crosshair;width:100%}\n"], encapsulation: i0.ViewEncapsulation.None }); }
272
314
  }
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintViewComponent, decorators: [{
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintViewComponent, decorators: [{
274
316
  type: Component,
275
317
  args: [{ selector: 'ax-paint-view', encapsulation: ViewEncapsulation.None, template: "<canvas\n #c\n tabindex=\"1\"\n (pointerdown)=\"mouseDownHandler($event)\"\n (pointerup)=\"mouseUpHandler()\"\n (pointermove)=\"mouseMoveHandler($event)\"\n class=\"ax-canvas-element\"\n>\n</canvas>\n", styles: ["ax-paint-view{display:block;width:100%;touch-action:none}ax-paint-view.ax-white{background-color:#fff}ax-paint-view.ax-black{background-color:#000}ax-paint-view .ax-canvas-element{border-bottom:1px solid rgb(var(--ax-sys-color-border-lightest-surface));cursor:crosshair;width:100%}\n"] }]
276
318
  }], propDecorators: { __hostClass: [{
@@ -278,14 +320,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
278
320
  args: ['class']
279
321
  }] } });
280
322
 
281
- const COMPONENT = [AXPaintContainerComponent, AXPaintViewComponent, AXPaintColorPickerComponent, AXPaintPenModeChangerComponent];
282
- const MODULES = [FormsModule, AXRangeSliderModule, AXSelectBoxModule, AXButtonModule, AXColorBoxModule, AXPopoverModule, AXDecoratorModule, AXTooltipModule];
323
+ const COMPONENT = [
324
+ AXPaintContainerComponent,
325
+ AXPaintViewComponent,
326
+ AXPaintToolsSelectorComponent,
327
+ AXPaintPenToolComponent,
328
+ AXPaintHighlightToolComponent,
329
+ AXPaintEraserToolComponent,
330
+ ];
331
+ const MODULES = [
332
+ FormsModule,
333
+ AXRangeSliderModule,
334
+ AXSelectBoxModule,
335
+ AXButtonModule,
336
+ AXColorBoxModule,
337
+ AXPopoverModule,
338
+ AXDecoratorModule,
339
+ AXTooltipModule,
340
+ ];
283
341
  class AXPaintModule {
284
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
285
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: AXPaintModule, imports: [FormsModule, AXRangeSliderModule, AXSelectBoxModule, AXButtonModule, AXColorBoxModule, AXPopoverModule, AXDecoratorModule, AXTooltipModule, AXPaintContainerComponent, AXPaintViewComponent, AXPaintColorPickerComponent, AXPaintPenModeChangerComponent], exports: [AXPaintContainerComponent, AXPaintViewComponent, AXPaintColorPickerComponent, AXPaintPenModeChangerComponent] }); }
286
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintModule, imports: [MODULES, AXPaintColorPickerComponent, AXPaintPenModeChangerComponent] }); }
342
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
343
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.5", ngImport: i0, type: AXPaintModule, imports: [FormsModule,
344
+ AXRangeSliderModule,
345
+ AXSelectBoxModule,
346
+ AXButtonModule,
347
+ AXColorBoxModule,
348
+ AXPopoverModule,
349
+ AXDecoratorModule,
350
+ AXTooltipModule, AXPaintContainerComponent,
351
+ AXPaintViewComponent,
352
+ AXPaintToolsSelectorComponent,
353
+ AXPaintPenToolComponent,
354
+ AXPaintHighlightToolComponent,
355
+ AXPaintEraserToolComponent], exports: [AXPaintContainerComponent,
356
+ AXPaintViewComponent,
357
+ AXPaintToolsSelectorComponent,
358
+ AXPaintPenToolComponent,
359
+ AXPaintHighlightToolComponent,
360
+ AXPaintEraserToolComponent] }); }
361
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintModule, imports: [MODULES, AXPaintContainerComponent,
362
+ AXPaintToolsSelectorComponent,
363
+ AXPaintPenToolComponent,
364
+ AXPaintHighlightToolComponent,
365
+ AXPaintEraserToolComponent] }); }
287
366
  }
288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AXPaintModule, decorators: [{
367
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXPaintModule, decorators: [{
289
368
  type: NgModule,
290
369
  args: [{
291
370
  imports: [...MODULES, ...COMPONENT],
@@ -298,5 +377,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
298
377
  * Generated bundle index. Do not edit.
299
378
  */
300
379
 
301
- export { AXPaintColorPickerComponent, AXPaintContainerComponent, AXPaintModule, AXPaintPenModeChangerComponent, AXPaintViewComponent };
380
+ export { AXPaintContainerComponent, AXPaintEraserToolComponent, AXPaintHighlightToolComponent, AXPaintModule, AXPaintPenToolComponent, AXPaintToolsSelectorComponent, AXPaintViewComponent };
302
381
  //# sourceMappingURL=acorex-components-paint.mjs.map