@acorex/components 21.0.1-next.47 → 21.0.1-next.48
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.
- package/fesm2022/acorex-components-accordion.mjs +4 -4
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +2 -2
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +2 -2
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +2 -2
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +2 -2
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +2 -2
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +2 -2
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +2 -2
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +2 -2
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +4 -4
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +4 -4
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +2 -2
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +2 -2
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +2 -2
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +2 -2
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +3 -3
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-command.mjs +6 -4
- package/fesm2022/acorex-components-command.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +76 -73
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation2.mjs +6 -6
- package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +2 -2
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +37 -17
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +2 -2
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +2 -2
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +2 -2
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +8 -8
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +2 -2
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +4 -4
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +2 -2
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +2 -2
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-editor.mjs +2 -2
- package/fesm2022/acorex-components-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-flow-chart.mjs +1 -1
- package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +17 -5
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +33 -11
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +14 -14
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +2 -2
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +2 -2
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kanban.mjs +2 -2
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +4 -4
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +2 -2
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +2 -2
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +2 -2
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +4 -4
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +2 -2
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +10 -10
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +2 -2
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-vcOdgXSm.mjs → acorex-components-modal-acorex-components-modal-B03hJbP8.mjs} +4 -4
- package/fesm2022/{acorex-components-modal-acorex-components-modal-vcOdgXSm.mjs.map → acorex-components-modal-acorex-components-modal-B03hJbP8.mjs.map} +1 -1
- package/fesm2022/{acorex-components-modal-modal-content.component-BWi4rcCV.mjs → acorex-components-modal-modal-content.component-DrHm0mZ4.mjs} +4 -4
- package/fesm2022/{acorex-components-modal-modal-content.component-BWi4rcCV.mjs.map → acorex-components-modal-modal-content.component-DrHm0mZ4.mjs.map} +1 -1
- package/fesm2022/acorex-components-modal.mjs +1 -1
- package/fesm2022/acorex-components-navbar.mjs +2 -2
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +2 -2
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +2 -2
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +2 -2
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +4 -4
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +2 -2
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs +2 -2
- package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +2 -2
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +10 -10
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +2 -2
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +2 -2
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +2 -2
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +2 -2
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +2 -2
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +2 -2
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +2 -2
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +2 -2
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs +4 -4
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +2 -2
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +2 -2
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +18 -18
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +2 -2
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list-2.mjs +2 -2
- package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +2 -2
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +2 -2
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +2 -2
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-sliding-item.mjs +2 -2
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +2 -2
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +2 -2
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +2 -2
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +2 -2
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +2 -2
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +2 -2
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +6 -5
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +12 -2
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +4 -4
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +2 -2
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs +2 -2
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +2 -2
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +6 -6
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +6 -6
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/package.json +4 -4
- package/types/acorex-components-command.d.ts +19 -12
- package/types/acorex-components-comment.d.ts +23 -22
- package/types/acorex-components-data-table.d.ts +13 -1
- package/types/acorex-components-grid-layout-builder.d.ts +15 -0
- package/types/acorex-components-text-box.d.ts +3 -2
- package/types/acorex-components-time-duration.d.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-number-box.mjs","sources":["../../../../packages/components/number-box/src/lib/number-box.component.ts","../../../../packages/components/number-box/src/lib/number-box.component.html","../../../../packages/components/number-box/src/lib/number-box.module.ts","../../../../packages/components/number-box/src/acorex-components-number-box.ts"],"sourcesContent":["import { AXInputMaskDirective, type AXInputMaskEvent } from '@acorex/cdk/input-mask';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n ViewEncapsulation,\n afterNextRender,\n effect,\n forwardRef,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * The NumberBox is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-number-box',\n templateUrl: './number-box.component.html',\n styleUrls: ['./number-box.component.compiled.css'],\n inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look'],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXNumberBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXNumberBoxComponent },\n { provide: AXClearableComponent, useExisting: AXNumberBoxComponent },\n { provide: AXValuableComponent, useExisting: AXNumberBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXNumberBoxComponent),\n multi: true,\n },\n ],\n imports: [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule],\n})\nexport class AXNumberBoxComponent extends classes(MXInputBaseValueComponent<number>, MXLookComponent) {\n minValue = input<number>(null);\n maxValue = input<number>(null);\n showSpinButtons = input(true);\n thousandsSeparator = model<string>(null);\n decimals = input(0);\n changeOnScroll = input(false);\n step = input(1);\n protected mode = signal<'digits' | 'thousandsSeparator' | 'decimal'>('digits');\n private input = viewChild<ElementRef<HTMLInputElement>>('input');\n protected stringValue = signal('');\n\n protected override internalValueChanged(value: number | undefined): void {\n if (value === undefined) {\n this.stringValue.set('');\n } else {\n this.stringValue.set(String(value));\n }\n\n setTimeout(() => {\n const inputElement = this.input()?.nativeElement;\n if (inputElement) {\n inputElement.dispatchEvent(new Event('input', { bubbles: true }));\n }\n }, 0);\n }\n\n #init = afterNextRender(() => {\n this.onFocus.subscribe(() => {\n this.input().nativeElement.select();\n });\n });\n\n #eff = effect(() => {\n if (this.thousandsSeparator() && this.decimals()) {\n this.mode.set('digits');\n return;\n } else if (this.thousandsSeparator()) {\n this.mode.set('thousandsSeparator');\n return;\n } else if (this.decimals()) {\n this.mode.set('decimal');\n }\n });\n\n private plusValue() {\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (this.mode() === 'thousandsSeparator') {\n const removeSeparator = this.stringValue().split(this.thousandsSeparator()).join('');\n const addStep = +removeSeparator + this.step();\n this.commitValue(addStep, true);\n\n const addSeparator = addStep.toLocaleString();\n const replaceSeparator = addSeparator.split(',').join(this.thousandsSeparator());\n this.stringValue.set(replaceSeparator);\n } else {\n const convert = +this.stringValue() + this.step();\n this.commitValue(convert, true);\n this.stringValue.set(convert.toString());\n }\n }\n\n private minusValue() {\n if (this.disabled || this.readonly) {\n return;\n }\n if (this.mode() === 'thousandsSeparator') {\n const removeSeparator = this.stringValue().split(this.thousandsSeparator()).join('');\n const addStep = +removeSeparator - this.step();\n this.commitValue(addStep, true);\n\n const addSeparator = addStep.toLocaleString();\n const replaceSeparator = addSeparator.split(',').join(this.thousandsSeparator());\n this.stringValue.set(replaceSeparator);\n } else {\n const convert = +this.stringValue() + this.step() * -1;\n this.commitValue(convert, true);\n this.stringValue.set(convert.toString());\n }\n }\n\n protected handleOnKeydownEvent(e: KeyboardEvent) {\n if (e.key !== 'ArrowUp' && e.key !== 'ArrowDown') return;\n if (this.disabled || this.readonly) return;\n if (e.key === 'ArrowUp') {\n this.plusValue();\n } else if (e.key === 'ArrowDown') {\n this.minusValue();\n }\n }\n\n protected handleUpClick() {\n if (this.disabled || this.readonly) return;\n this.plusValue();\n }\n protected handleDownClick() {\n this.minusValue();\n }\n\n protected handleOnMaskChanged(e: AXInputMaskEvent) {\n if (!e.unmasked || isNaN(+e.unmasked)) {\n this.commitValue(null, true);\n return;\n }\n this.commitValue(+e.unmasked, true);\n }\n\n protected onWheel(event: WheelEvent) {\n if (this.changeOnScroll()) {\n event.preventDefault();\n if (!this.disabled && !this.readonly) {\n if (event.deltaY > 0) {\n this.minusValue();\n } else {\n this.plusValue();\n }\n }\n }\n }\n\n override reset(): void {\n this.stringValue.set('0');\n this.commitValue(0);\n super.reset(true);\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<div\n class=\"ax-editor-container ax-default ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimals()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>\n","import { AXInputMaskDirective } from '@acorex/cdk/input-mask';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXNumberBoxComponent } from './number-box.component';\n\nconst COMPONENT = [AXNumberBoxComponent];\nconst MODULES = [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXNumberBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-number-box.mjs","sources":["../../../../packages/components/number-box/src/lib/number-box.component.ts","../../../../packages/components/number-box/src/lib/number-box.component.html","../../../../packages/components/number-box/src/lib/number-box.module.ts","../../../../packages/components/number-box/src/acorex-components-number-box.ts"],"sourcesContent":["import { AXInputMaskDirective, type AXInputMaskEvent } from '@acorex/cdk/input-mask';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n ViewEncapsulation,\n afterNextRender,\n effect,\n forwardRef,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * The NumberBox is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-number-box',\n templateUrl: './number-box.component.html',\n styleUrls: ['./number-box.component.compiled.css'],\n inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look'],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXNumberBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXNumberBoxComponent },\n { provide: AXClearableComponent, useExisting: AXNumberBoxComponent },\n { provide: AXValuableComponent, useExisting: AXNumberBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXNumberBoxComponent),\n multi: true,\n },\n ],\n imports: [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule],\n})\nexport class AXNumberBoxComponent extends classes(MXInputBaseValueComponent<number>, MXLookComponent) {\n minValue = input<number>(null);\n maxValue = input<number>(null);\n showSpinButtons = input(true);\n thousandsSeparator = model<string>(null);\n decimals = input(0);\n changeOnScroll = input(false);\n step = input(1);\n protected mode = signal<'digits' | 'thousandsSeparator' | 'decimal'>('digits');\n private input = viewChild<ElementRef<HTMLInputElement>>('input');\n protected stringValue = signal('');\n\n protected override internalValueChanged(value: number | undefined): void {\n if (value === undefined) {\n this.stringValue.set('');\n } else {\n this.stringValue.set(String(value));\n }\n\n setTimeout(() => {\n const inputElement = this.input()?.nativeElement;\n if (inputElement) {\n inputElement.dispatchEvent(new Event('input', { bubbles: true }));\n }\n }, 0);\n }\n\n #init = afterNextRender(() => {\n this.onFocus.subscribe(() => {\n this.input().nativeElement.select();\n });\n });\n\n #eff = effect(() => {\n if (this.thousandsSeparator() && this.decimals()) {\n this.mode.set('digits');\n return;\n } else if (this.thousandsSeparator()) {\n this.mode.set('thousandsSeparator');\n return;\n } else if (this.decimals()) {\n this.mode.set('decimal');\n }\n });\n\n private plusValue() {\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (this.mode() === 'thousandsSeparator') {\n const removeSeparator = this.stringValue().split(this.thousandsSeparator()).join('');\n const addStep = +removeSeparator + this.step();\n this.commitValue(addStep, true);\n\n const addSeparator = addStep.toLocaleString();\n const replaceSeparator = addSeparator.split(',').join(this.thousandsSeparator());\n this.stringValue.set(replaceSeparator);\n } else {\n const convert = +this.stringValue() + this.step();\n this.commitValue(convert, true);\n this.stringValue.set(convert.toString());\n }\n }\n\n private minusValue() {\n if (this.disabled || this.readonly) {\n return;\n }\n if (this.mode() === 'thousandsSeparator') {\n const removeSeparator = this.stringValue().split(this.thousandsSeparator()).join('');\n const addStep = +removeSeparator - this.step();\n this.commitValue(addStep, true);\n\n const addSeparator = addStep.toLocaleString();\n const replaceSeparator = addSeparator.split(',').join(this.thousandsSeparator());\n this.stringValue.set(replaceSeparator);\n } else {\n const convert = +this.stringValue() + this.step() * -1;\n this.commitValue(convert, true);\n this.stringValue.set(convert.toString());\n }\n }\n\n protected handleOnKeydownEvent(e: KeyboardEvent) {\n if (e.key !== 'ArrowUp' && e.key !== 'ArrowDown') return;\n if (this.disabled || this.readonly) return;\n if (e.key === 'ArrowUp') {\n this.plusValue();\n } else if (e.key === 'ArrowDown') {\n this.minusValue();\n }\n }\n\n protected handleUpClick() {\n if (this.disabled || this.readonly) return;\n this.plusValue();\n }\n protected handleDownClick() {\n this.minusValue();\n }\n\n protected handleOnMaskChanged(e: AXInputMaskEvent) {\n if (!e.unmasked || isNaN(+e.unmasked)) {\n this.commitValue(null, true);\n return;\n }\n this.commitValue(+e.unmasked, true);\n }\n\n protected onWheel(event: WheelEvent) {\n if (this.changeOnScroll()) {\n event.preventDefault();\n if (!this.disabled && !this.readonly) {\n if (event.deltaY > 0) {\n this.minusValue();\n } else {\n this.plusValue();\n }\n }\n }\n }\n\n override reset(): void {\n this.stringValue.set('0');\n this.commitValue(0);\n super.reset(true);\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<div\n class=\"ax-editor-container ax-default ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimals()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>\n","import { AXInputMaskDirective } from '@acorex/cdk/input-mask';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXNumberBoxComponent } from './number-box.component';\n\nconst COMPONENT = [AXNumberBoxComponent];\nconst MODULES = [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXNumberBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -190,7 +190,7 @@ class AXOtpComponent extends classes((MXValueComponent), MXLookComponent) {
|
|
|
190
190
|
},
|
|
191
191
|
{ provide: AXValuableComponent, useExisting: AXOtpComponent },
|
|
192
192
|
{ provide: AXFocusableComponent, useExisting: AXOtpComponent },
|
|
193
|
-
], usesInheritance: true, ngImport: i0, template: "<div\n dir=\"ltr\"\n (paste)=\"_handleOnPaste($event)\"\n class=\"ax-otp-input-container ax-editor-container ax-default {{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs().length + ', minmax(0, 1fr))' }\"\n>\n @for (input of inputs(); let i = $index; track i) {\n <input\n [type]=\"type()\"\n maxlength=\"1\"\n class=\"ax-input\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (focus)=\"_handleFocus(i)\"\n [ngModel]=\"inputValues[i]\"\n [attr.disabled]=\"disabled\"\n (input)=\"_handleOnInput($event, i)\"\n [class.ax-state-disabled]=\"disabled\"\n (keydown)=\"_handleOnKeyDown($event, i)\"\n [class.ax-state-error]=\"state === 'error'\"\n [class.ax-state-success]=\"state === 'success'\"\n />\n }\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}ax-otp input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}ax-otp input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}ax-otp input[type=number]{-moz-appearance:textfield}ax-otp .ax-editor-container{padding-inline:calc(var(--spacing,.25rem)*0)!important;display:grid!important}ax-otp input{padding:calc(var(--spacing,.25rem)*0);text-align:center;font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75/1.125)))}:is(ax-otp .ax-solid,ax-otp .ax-outline) input{border-color:var(--color-border-default);text-align:center}:is(ax-otp .ax-solid,ax-otp .ax-outline) input:not(:last-child){border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.1
|
|
193
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n dir=\"ltr\"\n (paste)=\"_handleOnPaste($event)\"\n class=\"ax-otp-input-container ax-editor-container ax-default {{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs().length + ', minmax(0, 1fr))' }\"\n>\n @for (input of inputs(); let i = $index; track i) {\n <input\n [type]=\"type()\"\n maxlength=\"1\"\n class=\"ax-input\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (focus)=\"_handleFocus(i)\"\n [ngModel]=\"inputValues[i]\"\n [attr.disabled]=\"disabled\"\n (input)=\"_handleOnInput($event, i)\"\n [class.ax-state-disabled]=\"disabled\"\n (keydown)=\"_handleOnKeyDown($event, i)\"\n [class.ax-state-error]=\"state === 'error'\"\n [class.ax-state-success]=\"state === 'success'\"\n />\n }\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}ax-otp input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}ax-otp input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}ax-otp input[type=number]{-moz-appearance:textfield}ax-otp .ax-editor-container{padding-inline:calc(var(--spacing,.25rem) * 0)!important;display:grid!important}ax-otp input{padding:calc(var(--spacing,.25rem) * 0);text-align:center;font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)))}:is(ax-otp .ax-solid,ax-otp .ax-outline) input{border-color:var(--color-border-default);text-align:center}:is(ax-otp .ax-solid,ax-otp .ax-outline) input:not(:last-child){border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
194
194
|
}
|
|
195
195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXOtpComponent, decorators: [{
|
|
196
196
|
type: Component,
|
|
@@ -206,7 +206,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
206
206
|
},
|
|
207
207
|
{ provide: AXValuableComponent, useExisting: AXOtpComponent },
|
|
208
208
|
{ provide: AXFocusableComponent, useExisting: AXOtpComponent },
|
|
209
|
-
], imports: [NgStyle, FormsModule], template: "<div\n dir=\"ltr\"\n (paste)=\"_handleOnPaste($event)\"\n class=\"ax-otp-input-container ax-editor-container ax-default {{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs().length + ', minmax(0, 1fr))' }\"\n>\n @for (input of inputs(); let i = $index; track i) {\n <input\n [type]=\"type()\"\n maxlength=\"1\"\n class=\"ax-input\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (focus)=\"_handleFocus(i)\"\n [ngModel]=\"inputValues[i]\"\n [attr.disabled]=\"disabled\"\n (input)=\"_handleOnInput($event, i)\"\n [class.ax-state-disabled]=\"disabled\"\n (keydown)=\"_handleOnKeyDown($event, i)\"\n [class.ax-state-error]=\"state === 'error'\"\n [class.ax-state-success]=\"state === 'success'\"\n />\n }\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}ax-otp input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}ax-otp input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}ax-otp input[type=number]{-moz-appearance:textfield}ax-otp .ax-editor-container{padding-inline:calc(var(--spacing,.25rem)*0)!important;display:grid!important}ax-otp input{padding:calc(var(--spacing,.25rem)*0);text-align:center;font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75/1.125)))}:is(ax-otp .ax-solid,ax-otp .ax-outline) input{border-color:var(--color-border-default);text-align:center}:is(ax-otp .ax-solid,ax-otp .ax-outline) input:not(:last-child){border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.1
|
|
209
|
+
], imports: [NgStyle, FormsModule], template: "<div\n dir=\"ltr\"\n (paste)=\"_handleOnPaste($event)\"\n class=\"ax-otp-input-container ax-editor-container ax-default {{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs().length + ', minmax(0, 1fr))' }\"\n>\n @for (input of inputs(); let i = $index; track i) {\n <input\n [type]=\"type()\"\n maxlength=\"1\"\n class=\"ax-input\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (focus)=\"_handleFocus(i)\"\n [ngModel]=\"inputValues[i]\"\n [attr.disabled]=\"disabled\"\n (input)=\"_handleOnInput($event, i)\"\n [class.ax-state-disabled]=\"disabled\"\n (keydown)=\"_handleOnKeyDown($event, i)\"\n [class.ax-state-error]=\"state === 'error'\"\n [class.ax-state-success]=\"state === 'success'\"\n />\n }\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}ax-otp input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}ax-otp input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}ax-otp input[type=number]{-moz-appearance:textfield}ax-otp .ax-editor-container{padding-inline:calc(var(--spacing,.25rem) * 0)!important;display:grid!important}ax-otp input{padding:calc(var(--spacing,.25rem) * 0);text-align:center;font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)))}:is(ax-otp .ax-solid,ax-otp .ax-outline) input{border-color:var(--color-border-default);text-align:center}:is(ax-otp .ax-solid,ax-otp .ax-outline) input:not(:last-child){border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n"] }]
|
|
210
210
|
}], ctorParameters: () => [], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], length: [{ type: i0.Input, args: [{ isSignal: true, alias: "length", required: false }] }, { type: i0.Output, args: ["lengthChange"] }], onCompleted: [{ type: i0.Output, args: ["onCompleted"] }] } });
|
|
211
211
|
|
|
212
212
|
class AXOtpModule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-otp.mjs","sources":["../../../../packages/components/otp/src/lib/otp.class.ts","../../../../packages/components/otp/src/lib/otp.component.ts","../../../../packages/components/otp/src/lib/otp.component.html","../../../../packages/components/otp/src/lib/otp.module.ts","../../../../packages/components/otp/src/acorex-components-otp.ts"],"sourcesContent":["import { AXEvent } from '@acorex/cdk/common';\n\nexport class AXOtpCompletedEvent extends AXEvent {\n value: string;\n isCompleted: boolean;\n}\n","import {\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXLookComponent,\n MXValueComponent,\n} from '@acorex/cdk/common';\nimport { NgStyle } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n afterNextRender,\n computed,\n forwardRef,\n input,\n model,\n output,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXOtpCompletedEvent } from './otp.class';\n\n/**\n * @category\n * A component for OTP input fields with state management and custom styling support.\n */\n@Component({\n selector: 'ax-otp',\n templateUrl: './otp.component.html',\n styleUrls: ['./otp.component.compiled.css'],\n inputs: ['state', 'disabled', 'readonly', 'look'],\n outputs: ['stateChange', 'disabledChange'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXOtpComponent),\n multi: true,\n },\n {\n provide: AXComponent,\n useExisting: AXOtpComponent,\n },\n { provide: AXValuableComponent, useExisting: AXOtpComponent },\n { provide: AXFocusableComponent, useExisting: AXOtpComponent },\n ],\n imports: [NgStyle, FormsModule],\n})\nexport class AXOtpComponent extends classes(MXValueComponent<string>, MXLookComponent) {\n type = input<'number' | 'text'>('number');\n\n /**\n * Holds the length of the OTP input field.\n */\n length = model<number>();\n\n /**\n * @event\n * Emits an event when the OTP input is completed.\n */\n onCompleted = output<AXOtpCompletedEvent>();\n\n /**\n * Stores the values entered in the OTP input fields.\n */\n protected inputValues: string[] = [];\n\n /**\n * Holds the input values as a signal.\n */\n protected inputs = computed(() => {\n this.calcFontSize();\n //\n return Array(this.length())\n .fill(1)\n .map((x, i) => i);\n });\n\n /** @ignore */\n constructor() {\n super();\n afterNextRender(() => {\n this.calcFontSize();\n this.mapValueToInputs();\n });\n }\n\n /**\n * Converts the value string to input values and updates the inputValues array.\n */\n mapValueToInputs() {\n this._emitOnComplete();\n if (!this.value) {\n return;\n }\n this.value.split('').map((v, i) => {\n this.inputValues[i] = v;\n });\n }\n\n /**\n * Resets the input values to an empty array.\n */\n override reset() {\n this.inputValues = [];\n for (let index = 0; index < this.length(); index++) {\n this.inputValues.push(' ');\n }\n }\n\n /** @ignore */\n protected _handleOnInput(event: any, i: number) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n if (this.type() === 'number') {\n const numberRegex = /^\\d+$/;\n if (!numberRegex.test(event.target.value)) {\n event.target.value = '';\n return;\n }\n }\n if (event.target.value.length > 1) {\n const currentValue = event.target.value;\n event.target.value = '';\n event.target.value = currentValue.slice(-1);\n }\n if (inputs[i + 1]) {\n inputs[i + 1].select();\n }\n this.inputValues[i] = event.target.value;\n this._emitOnComplete();\n }\n\n /** @ignore */\n override internalSetValue(value: any): string {\n if (value) {\n this.inputValues = value?.toString().split('') as any;\n }\n return value;\n }\n\n /** @ignore */\n protected calcFontSize() {\n const size = this.getHostElement().querySelector<HTMLInputElement>('.ax-input')?.clientWidth;\n const fontSize = size * 0.5;\n this.getHostElement().style.setProperty('--font-size', fontSize + 'px');\n }\n\n /** @ignore */\n protected _handleOnKeyDown(event: KeyboardEvent, i: number) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n switch (event.key) {\n case 'Backspace':\n if (this.readonly || this.disabled) return;\n inputs[i].value = '';\n if (inputs[i - 1]) {\n inputs[i - 1].focus();\n event.preventDefault();\n }\n this.inputValues[i] = ' ';\n this.commitValue(this.inputValues.join(''), true);\n inputs[i].value = '';\n break;\n\n case 'ArrowRight':\n if (inputs[i + 1]) {\n event.preventDefault();\n inputs[i + 1].select();\n }\n break;\n\n case 'ArrowLeft':\n if (inputs[i - 1]) {\n event.preventDefault();\n inputs[i - 1].select();\n }\n break;\n\n case 'Home':\n event.preventDefault();\n inputs[0].select();\n break;\n\n case 'End':\n event.preventDefault();\n inputs[this.length() - 1].select();\n break;\n\n case 'ArrowUp':\n case 'ArrowDown':\n event.preventDefault();\n break;\n }\n }\n\n /** @ignore */\n protected _handleOnPaste(event: ClipboardEvent) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n const data = event.clipboardData.getData('text');\n const isNumber = /\\d+/;\n\n if (isNumber.test(data)) {\n inputs[inputs.length - 1].focus();\n this.inputValues = [];\n for (let i = 0; i < inputs.length; i++) {\n this.inputValues[i] = data[i];\n }\n this._emitOnComplete();\n }\n\n event.preventDefault();\n }\n\n /** @ignore */\n protected _handleFocus(i) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n inputs[i].select();\n }\n\n /** @ignore */\n protected _emitOnComplete() {\n // TODO: Check Value delay\n setTimeout(() => {\n const filteredValues = this.inputValues.filter((c) => c && c !== ' ');\n const value = filteredValues.join('').trim();\n this.commitValue(value, true);\n this.onCompleted.emit({\n component: AXOtpComponent,\n value,\n isCompleted: filteredValues.length === this.length(),\n });\n });\n }\n}\n","<div\n dir=\"ltr\"\n (paste)=\"_handleOnPaste($event)\"\n class=\"ax-otp-input-container ax-editor-container ax-default {{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs().length + ', minmax(0, 1fr))' }\"\n>\n @for (input of inputs(); let i = $index; track i) {\n <input\n [type]=\"type()\"\n maxlength=\"1\"\n class=\"ax-input\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (focus)=\"_handleFocus(i)\"\n [ngModel]=\"inputValues[i]\"\n [attr.disabled]=\"disabled\"\n (input)=\"_handleOnInput($event, i)\"\n [class.ax-state-disabled]=\"disabled\"\n (keydown)=\"_handleOnKeyDown($event, i)\"\n [class.ax-state-error]=\"state === 'error'\"\n [class.ax-state-success]=\"state === 'success'\"\n />\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { AXOtpComponent } from './otp.component';\n\n@NgModule({\n imports: [AXOtpComponent],\n exports: [AXOtpComponent],\n})\nexport class AXOtpModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-otp.mjs","sources":["../../../../packages/components/otp/src/lib/otp.class.ts","../../../../packages/components/otp/src/lib/otp.component.ts","../../../../packages/components/otp/src/lib/otp.component.html","../../../../packages/components/otp/src/lib/otp.module.ts","../../../../packages/components/otp/src/acorex-components-otp.ts"],"sourcesContent":["import { AXEvent } from '@acorex/cdk/common';\n\nexport class AXOtpCompletedEvent extends AXEvent {\n value: string;\n isCompleted: boolean;\n}\n","import {\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXLookComponent,\n MXValueComponent,\n} from '@acorex/cdk/common';\nimport { NgStyle } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n afterNextRender,\n computed,\n forwardRef,\n input,\n model,\n output,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXOtpCompletedEvent } from './otp.class';\n\n/**\n * @category\n * A component for OTP input fields with state management and custom styling support.\n */\n@Component({\n selector: 'ax-otp',\n templateUrl: './otp.component.html',\n styleUrls: ['./otp.component.compiled.css'],\n inputs: ['state', 'disabled', 'readonly', 'look'],\n outputs: ['stateChange', 'disabledChange'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXOtpComponent),\n multi: true,\n },\n {\n provide: AXComponent,\n useExisting: AXOtpComponent,\n },\n { provide: AXValuableComponent, useExisting: AXOtpComponent },\n { provide: AXFocusableComponent, useExisting: AXOtpComponent },\n ],\n imports: [NgStyle, FormsModule],\n})\nexport class AXOtpComponent extends classes(MXValueComponent<string>, MXLookComponent) {\n type = input<'number' | 'text'>('number');\n\n /**\n * Holds the length of the OTP input field.\n */\n length = model<number>();\n\n /**\n * @event\n * Emits an event when the OTP input is completed.\n */\n onCompleted = output<AXOtpCompletedEvent>();\n\n /**\n * Stores the values entered in the OTP input fields.\n */\n protected inputValues: string[] = [];\n\n /**\n * Holds the input values as a signal.\n */\n protected inputs = computed(() => {\n this.calcFontSize();\n //\n return Array(this.length())\n .fill(1)\n .map((x, i) => i);\n });\n\n /** @ignore */\n constructor() {\n super();\n afterNextRender(() => {\n this.calcFontSize();\n this.mapValueToInputs();\n });\n }\n\n /**\n * Converts the value string to input values and updates the inputValues array.\n */\n mapValueToInputs() {\n this._emitOnComplete();\n if (!this.value) {\n return;\n }\n this.value.split('').map((v, i) => {\n this.inputValues[i] = v;\n });\n }\n\n /**\n * Resets the input values to an empty array.\n */\n override reset() {\n this.inputValues = [];\n for (let index = 0; index < this.length(); index++) {\n this.inputValues.push(' ');\n }\n }\n\n /** @ignore */\n protected _handleOnInput(event: any, i: number) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n if (this.type() === 'number') {\n const numberRegex = /^\\d+$/;\n if (!numberRegex.test(event.target.value)) {\n event.target.value = '';\n return;\n }\n }\n if (event.target.value.length > 1) {\n const currentValue = event.target.value;\n event.target.value = '';\n event.target.value = currentValue.slice(-1);\n }\n if (inputs[i + 1]) {\n inputs[i + 1].select();\n }\n this.inputValues[i] = event.target.value;\n this._emitOnComplete();\n }\n\n /** @ignore */\n override internalSetValue(value: any): string {\n if (value) {\n this.inputValues = value?.toString().split('') as any;\n }\n return value;\n }\n\n /** @ignore */\n protected calcFontSize() {\n const size = this.getHostElement().querySelector<HTMLInputElement>('.ax-input')?.clientWidth;\n const fontSize = size * 0.5;\n this.getHostElement().style.setProperty('--font-size', fontSize + 'px');\n }\n\n /** @ignore */\n protected _handleOnKeyDown(event: KeyboardEvent, i: number) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n switch (event.key) {\n case 'Backspace':\n if (this.readonly || this.disabled) return;\n inputs[i].value = '';\n if (inputs[i - 1]) {\n inputs[i - 1].focus();\n event.preventDefault();\n }\n this.inputValues[i] = ' ';\n this.commitValue(this.inputValues.join(''), true);\n inputs[i].value = '';\n break;\n\n case 'ArrowRight':\n if (inputs[i + 1]) {\n event.preventDefault();\n inputs[i + 1].select();\n }\n break;\n\n case 'ArrowLeft':\n if (inputs[i - 1]) {\n event.preventDefault();\n inputs[i - 1].select();\n }\n break;\n\n case 'Home':\n event.preventDefault();\n inputs[0].select();\n break;\n\n case 'End':\n event.preventDefault();\n inputs[this.length() - 1].select();\n break;\n\n case 'ArrowUp':\n case 'ArrowDown':\n event.preventDefault();\n break;\n }\n }\n\n /** @ignore */\n protected _handleOnPaste(event: ClipboardEvent) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n const data = event.clipboardData.getData('text');\n const isNumber = /\\d+/;\n\n if (isNumber.test(data)) {\n inputs[inputs.length - 1].focus();\n this.inputValues = [];\n for (let i = 0; i < inputs.length; i++) {\n this.inputValues[i] = data[i];\n }\n this._emitOnComplete();\n }\n\n event.preventDefault();\n }\n\n /** @ignore */\n protected _handleFocus(i) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n inputs[i].select();\n }\n\n /** @ignore */\n protected _emitOnComplete() {\n // TODO: Check Value delay\n setTimeout(() => {\n const filteredValues = this.inputValues.filter((c) => c && c !== ' ');\n const value = filteredValues.join('').trim();\n this.commitValue(value, true);\n this.onCompleted.emit({\n component: AXOtpComponent,\n value,\n isCompleted: filteredValues.length === this.length(),\n });\n });\n }\n}\n","<div\n dir=\"ltr\"\n (paste)=\"_handleOnPaste($event)\"\n class=\"ax-otp-input-container ax-editor-container ax-default {{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs().length + ', minmax(0, 1fr))' }\"\n>\n @for (input of inputs(); let i = $index; track i) {\n <input\n [type]=\"type()\"\n maxlength=\"1\"\n class=\"ax-input\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (focus)=\"_handleFocus(i)\"\n [ngModel]=\"inputValues[i]\"\n [attr.disabled]=\"disabled\"\n (input)=\"_handleOnInput($event, i)\"\n [class.ax-state-disabled]=\"disabled\"\n (keydown)=\"_handleOnKeyDown($event, i)\"\n [class.ax-state-error]=\"state === 'error'\"\n [class.ax-state-success]=\"state === 'success'\"\n />\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { AXOtpComponent } from './otp.component';\n\n@NgModule({\n imports: [AXOtpComponent],\n exports: [AXOtpComponent],\n})\nexport class AXOtpModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -223,7 +223,7 @@ class AXPaintContainerComponent extends classes((MXInputBaseValueComponent), MXL
|
|
|
223
223
|
useExisting: forwardRef(() => AXPaintContainerComponent),
|
|
224
224
|
multi: true,
|
|
225
225
|
},
|
|
226
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-editor-container ax-default {{ look }}\">\n <ng-content></ng-content>\n\n @if (service.activeToolState() && !editMode()) {\n <div class=\"ax-secondary-toolbar\">\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 </div>\n }\n\n @if (!editMode()) {\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 }\n\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: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{ax-paint-container>.ax-editor-container{height:100%;display:block;padding:calc(var(--spacing,.25rem)*0)!important}ax-paint-container.ax-state-disabled{opacity:.5}ax-paint-container .ax-disable-overlay{top:calc(var(--spacing,.25rem)*0);left:calc(var(--spacing,.25rem)*0);cursor:not-allowed;width:100%;height:100%;position:absolute}ax-paint-container .ax-secondary-toolbar{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-border-lightest,rgba(var(--ax-sys-color-border-lightest-surface)));padding:calc(var(--spacing,.25rem)*1);justify-content:center;display:flex}ax-paint-container .ax-secondary-toolbar:where(.dark,.dark *){border-color:var(--color-border-darkest,rgba(var(--ax-sys-color-border-darkest-surface)))}ax-paint-container .ax-main-toolbar{padding:calc(var(--spacing,.25rem)*1);justify-content:center}ax-paint-container ax-paint-tools-selector{padding:calc(var(--spacing,.25rem)*1);display:flex}ax-paint-container ax-paint-eraser-tool,ax-paint-container ax-paint-highlight-tool,ax-paint-container ax-paint-pen-tool{display:flex}:is(ax-paint-container ax-paint-eraser-tool,ax-paint-container ax-paint-highlight-tool,ax-paint-container ax-paint-pen-tool) ax-range-slider{width:calc(var(--spacing,.25rem)*40);padding-inline:calc(var(--spacing,.25rem)*3);padding-block:calc(var(--spacing,.25rem)*2)}:is(ax-paint-container ax-paint-eraser-tool,ax-paint-container ax-paint-highlight-tool,ax-paint-container ax-paint-pen-tool) ax-range-slider .ax-range-slider .ax-range-slider-handler{height:calc(var(--spacing,.25rem)*4)!important;width:calc(var(--spacing,.25rem)*4)!important}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.1
|
|
226
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-editor-container ax-default {{ look }}\">\n <ng-content></ng-content>\n\n @if (service.activeToolState() && !editMode()) {\n <div class=\"ax-secondary-toolbar\">\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 </div>\n }\n\n @if (!editMode()) {\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 }\n\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: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{ax-paint-container>.ax-editor-container{height:100%;display:block;padding:calc(var(--spacing,.25rem) * 0)!important}ax-paint-container.ax-state-disabled{opacity:.5}ax-paint-container .ax-disable-overlay{top:calc(var(--spacing,.25rem) * 0);left:calc(var(--spacing,.25rem) * 0);cursor:not-allowed;width:100%;height:100%;position:absolute}ax-paint-container .ax-secondary-toolbar{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-border-lightest,rgba(var(--ax-sys-color-border-lightest-surface)));padding:calc(var(--spacing,.25rem) * 1);justify-content:center;display:flex}ax-paint-container .ax-secondary-toolbar:where(.dark,.dark *){border-color:var(--color-border-darkest,rgba(var(--ax-sys-color-border-darkest-surface)))}ax-paint-container .ax-main-toolbar{padding:calc(var(--spacing,.25rem) * 1);justify-content:center}ax-paint-container ax-paint-tools-selector{padding:calc(var(--spacing,.25rem) * 1);display:flex}ax-paint-container ax-paint-eraser-tool,ax-paint-container ax-paint-highlight-tool,ax-paint-container ax-paint-pen-tool{display:flex}:is(ax-paint-container ax-paint-eraser-tool,ax-paint-container ax-paint-highlight-tool,ax-paint-container ax-paint-pen-tool) ax-range-slider{width:calc(var(--spacing,.25rem) * 40);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2)}:is(ax-paint-container ax-paint-eraser-tool,ax-paint-container ax-paint-highlight-tool,ax-paint-container ax-paint-pen-tool) ax-range-slider .ax-range-slider .ax-range-slider-handler{height:calc(var(--spacing,.25rem) * 4)!important;width:calc(var(--spacing,.25rem) * 4)!important}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\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 }); }
|
|
227
227
|
}
|
|
228
228
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXPaintContainerComponent, decorators: [{
|
|
229
229
|
type: Component,
|
|
@@ -244,7 +244,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
244
244
|
AXPaintPenToolComponent,
|
|
245
245
|
AXPaintHighlightToolComponent,
|
|
246
246
|
AXPaintEraserToolComponent,
|
|
247
|
-
], template: "<div class=\"ax-editor-container ax-default {{ look }}\">\n <ng-content></ng-content>\n\n @if (service.activeToolState() && !editMode()) {\n <div class=\"ax-secondary-toolbar\">\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 </div>\n }\n\n @if (!editMode()) {\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 }\n\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: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{ax-paint-container>.ax-editor-container{height:100%;display:block;padding:calc(var(--spacing,.25rem)*0)!important}ax-paint-container.ax-state-disabled{opacity:.5}ax-paint-container .ax-disable-overlay{top:calc(var(--spacing,.25rem)*0);left:calc(var(--spacing,.25rem)*0);cursor:not-allowed;width:100%;height:100%;position:absolute}ax-paint-container .ax-secondary-toolbar{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-border-lightest,rgba(var(--ax-sys-color-border-lightest-surface)));padding:calc(var(--spacing,.25rem)*1);justify-content:center;display:flex}ax-paint-container .ax-secondary-toolbar:where(.dark,.dark *){border-color:var(--color-border-darkest,rgba(var(--ax-sys-color-border-darkest-surface)))}ax-paint-container .ax-main-toolbar{padding:calc(var(--spacing,.25rem)*1);justify-content:center}ax-paint-container ax-paint-tools-selector{padding:calc(var(--spacing,.25rem)*1);display:flex}ax-paint-container ax-paint-eraser-tool,ax-paint-container ax-paint-highlight-tool,ax-paint-container ax-paint-pen-tool{display:flex}:is(ax-paint-container ax-paint-eraser-tool,ax-paint-container ax-paint-highlight-tool,ax-paint-container ax-paint-pen-tool) ax-range-slider{width:calc(var(--spacing,.25rem)*40);padding-inline:calc(var(--spacing,.25rem)*3);padding-block:calc(var(--spacing,.25rem)*2)}:is(ax-paint-container ax-paint-eraser-tool,ax-paint-container ax-paint-highlight-tool,ax-paint-container ax-paint-pen-tool) ax-range-slider .ax-range-slider .ax-range-slider-handler{height:calc(var(--spacing,.25rem)*4)!important;width:calc(var(--spacing,.25rem)*4)!important}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.1
|
|
247
|
+
], template: "<div class=\"ax-editor-container ax-default {{ look }}\">\n <ng-content></ng-content>\n\n @if (service.activeToolState() && !editMode()) {\n <div class=\"ax-secondary-toolbar\">\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 </div>\n }\n\n @if (!editMode()) {\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 }\n\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: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{ax-paint-container>.ax-editor-container{height:100%;display:block;padding:calc(var(--spacing,.25rem) * 0)!important}ax-paint-container.ax-state-disabled{opacity:.5}ax-paint-container .ax-disable-overlay{top:calc(var(--spacing,.25rem) * 0);left:calc(var(--spacing,.25rem) * 0);cursor:not-allowed;width:100%;height:100%;position:absolute}ax-paint-container .ax-secondary-toolbar{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-border-lightest,rgba(var(--ax-sys-color-border-lightest-surface)));padding:calc(var(--spacing,.25rem) * 1);justify-content:center;display:flex}ax-paint-container .ax-secondary-toolbar:where(.dark,.dark *){border-color:var(--color-border-darkest,rgba(var(--ax-sys-color-border-darkest-surface)))}ax-paint-container .ax-main-toolbar{padding:calc(var(--spacing,.25rem) * 1);justify-content:center}ax-paint-container ax-paint-tools-selector{padding:calc(var(--spacing,.25rem) * 1);display:flex}ax-paint-container ax-paint-eraser-tool,ax-paint-container ax-paint-highlight-tool,ax-paint-container ax-paint-pen-tool{display:flex}:is(ax-paint-container ax-paint-eraser-tool,ax-paint-container ax-paint-highlight-tool,ax-paint-container ax-paint-pen-tool) ax-range-slider{width:calc(var(--spacing,.25rem) * 40);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2)}:is(ax-paint-container ax-paint-eraser-tool,ax-paint-container ax-paint-highlight-tool,ax-paint-container ax-paint-pen-tool) ax-range-slider .ax-range-slider .ax-range-slider-handler{height:calc(var(--spacing,.25rem) * 4)!important;width:calc(var(--spacing,.25rem) * 4)!important}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n"] }]
|
|
248
248
|
}], propDecorators: { editMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "editMode", required: false }] }], __hostClass: [{
|
|
249
249
|
type: HostBinding,
|
|
250
250
|
args: ['class']
|
|
@@ -374,11 +374,11 @@ class AXPaintViewComponent {
|
|
|
374
374
|
return [`ax-${this.paintBackgroundColor()}`];
|
|
375
375
|
}
|
|
376
376
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXPaintViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
377
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.3", type: AXPaintViewComponent, isStandalone: true, selector: "ax-paint-view", inputs: { paintBackgroundColor: { classPropertyName: "paintBackgroundColor", publicName: "paintBackgroundColor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [{ provide: AXComponent, useExisting: AXPaintViewComponent }], 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: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{ax-paint-view{touch-action:none;width:100%;display:block}ax-paint-view.ax-white{background-color:var(--color-white,#fff)}ax-paint-view.ax-black{background-color:var(--color-black,#000)}ax-paint-view .ax-canvas-element{cursor:crosshair;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-lightest,rgba(var(--ax-sys-color-border-lightest-surface)));width:100%}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.1
|
|
377
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.3", type: AXPaintViewComponent, isStandalone: true, selector: "ax-paint-view", inputs: { paintBackgroundColor: { classPropertyName: "paintBackgroundColor", publicName: "paintBackgroundColor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [{ provide: AXComponent, useExisting: AXPaintViewComponent }], 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: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{ax-paint-view{touch-action:none;width:100%;display:block}ax-paint-view.ax-white{background-color:var(--color-white,#fff)}ax-paint-view.ax-black{background-color:var(--color-black,#000)}ax-paint-view .ax-canvas-element{cursor:crosshair;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-lightest,rgba(var(--ax-sys-color-border-lightest-surface)));width:100%}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
378
378
|
}
|
|
379
379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXPaintViewComponent, decorators: [{
|
|
380
380
|
type: Component,
|
|
381
|
-
args: [{ selector: 'ax-paint-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXPaintViewComponent }], 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: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{ax-paint-view{touch-action:none;width:100%;display:block}ax-paint-view.ax-white{background-color:var(--color-white,#fff)}ax-paint-view.ax-black{background-color:var(--color-black,#000)}ax-paint-view .ax-canvas-element{cursor:crosshair;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-lightest,rgba(var(--ax-sys-color-border-lightest-surface)));width:100%}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.1
|
|
381
|
+
args: [{ selector: 'ax-paint-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXPaintViewComponent }], 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: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{ax-paint-view{touch-action:none;width:100%;display:block}ax-paint-view.ax-white{background-color:var(--color-white,#fff)}ax-paint-view.ax-black{background-color:var(--color-black,#000)}ax-paint-view .ax-canvas-element{cursor:crosshair;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-lightest,rgba(var(--ax-sys-color-border-lightest-surface)));width:100%}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n"] }]
|
|
382
382
|
}], propDecorators: { paintBackgroundColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "paintBackgroundColor", required: false }] }], canvasElem: [{ type: i0.ViewChild, args: ['c', { isSignal: true }] }], __hostClass: [{
|
|
383
383
|
type: HostBinding,
|
|
384
384
|
args: ['class']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-paint.mjs","sources":["../../../../packages/components/paint/src/lib/paint/paint.service.ts","../../../../packages/components/paint/src/lib/paint/paint-tools-selector/paint-tools-selector.component.ts","../../../../packages/components/paint/src/lib/paint/paint-tools-selector/paint-tools-selector.component.html","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-eraser-tool/paint-eraser-tool.component.ts","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-eraser-tool/paint-eraser-tool.component.html","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-highlight-tool/paint-highlight-tool.component.ts","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-highlight-tool/paint-highlight-tool.component.html","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-pen-tool/paint-pen-tool.component.ts","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-pen-tool/paint-pen-tool.component.html","../../../../packages/components/paint/src/lib/paint/paint-container/paint-container.component.ts","../../../../packages/components/paint/src/lib/paint/paint-container/paint-container.component.html","../../../../packages/components/paint/src/lib/paint/paint-view/paint-view.component.ts","../../../../packages/components/paint/src/lib/paint/paint-view/paint-view.component.html","../../../../packages/components/paint/src/lib/paint.module.ts","../../../../packages/components/paint/src/acorex-components-paint.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXPaintService {\n penColor = signal<string | CanvasGradient | CanvasPattern>('rgb(12, 12, 12)');\n highlightColor = signal<string | CanvasGradient | CanvasPattern>('rgb(255, 210, 48)');\n penWidth = signal<number>(10);\n highlightWidth = signal<number>(10);\n eraserWidth = signal<number>(10);\n toggleClear = signal(false);\n activeToolState = signal<'pen' | 'highlight' | 'eraser'>('pen');\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXPaintService } from '../paint.service';\n\n@Component({\n selector: 'ax-paint-tools-selector',\n templateUrl: './paint-tools-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [AXButtonComponent, AXDecoratorModule, AXTooltipDirective, AsyncPipe, AXTranslatorPipe],\n providers: [{ provide: AXComponent, useExisting: AXPaintToolsSelectorComponent }],\n})\nexport class AXPaintToolsSelectorComponent {\n protected service = inject(AXPaintService);\n\n protected pen = signal<string>(null);\n protected highlight = signal<string>(null);\n protected eraser = signal<string>(null);\n protected reset = signal<string>(null);\n\n protected changeToolHandler(tool: 'pen' | 'highlight' | 'eraser') {\n if (this.service.activeToolState() === tool) {\n this.service.activeToolState.set(null);\n return;\n }\n\n this.service.activeToolState.set(tool);\n }\n\n protected clear() {\n this.service.toggleClear.update((prev) => !prev);\n }\n}\n","<ax-button\n class=\"ax-sm\"\n [axTooltip]=\"'@acorex:paint.tools.pen' | translate | async\"\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 class=\"ax-sm\"\n [axTooltip]=\"'@acorex:paint.tools.highlight' | translate | async\"\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 class=\"ax-sm\"\n [axTooltip]=\"'@acorex:paint.tools.eraser' | translate | async\"\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\n class=\"ax-sm\"\n [axTooltip]=\"'@acorex:paint.actions.reset' | translate | async\"\n axTooltipPlacement=\"top\"\n (onClick)=\"clear()\"\n look=\"blank\"\n>\n <i class=\"fa-solid fa-rotate\"></i>\n</ax-button>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\n\nimport { ChangeDetectionStrategy, Component, inject, linkedSignal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintService } from '../../paint.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-eraser-tool',\n templateUrl: './paint-eraser-tool.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, AXRangeSliderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXPaintEraserToolComponent }],\n})\nexport class AXPaintEraserToolComponent {\n protected service = inject(AXPaintService);\n\n protected value = linkedSignal(() => this.service.eraserWidth());\n\n /** @ignore */\n protected valueHandler(e: number) {\n this.service.eraserWidth.set(e);\n }\n}\n","<ax-range-slider [min]=\"2\" [max]=\"20\" [(ngModel)]=\"value\" (ngModelChange)=\"valueHandler($event)\"></ax-range-slider>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXColorBoxComponent } from '@acorex/components/color-box';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\n\nimport { ChangeDetectionStrategy, Component, inject, linkedSignal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintService } from '../../paint.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-highlight-tool',\n templateUrl: './paint-highlight-tool.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [AXColorBoxComponent, FormsModule, AXRangeSliderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXPaintHighlightToolComponent }],\n})\nexport class AXPaintHighlightToolComponent {\n protected service = inject(AXPaintService);\n\n protected value = linkedSignal(() => this.service.highlightWidth());\n\n protected selectedColor = linkedSignal(() => this.service.highlightColor());\n\n protected changeColorHandler(e: string) {\n this.service.highlightColor.set(e);\n this.selectedColor.set(e);\n }\n\n /** @ignore */\n protected valueHandler(e: number) {\n this.service.highlightWidth.set(e);\n }\n}\n","<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","import { AXComponent } from '@acorex/cdk/common';\nimport { AXColorBoxComponent } from '@acorex/components/color-box';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\n\nimport { ChangeDetectionStrategy, Component, inject, linkedSignal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintService } from '../../paint.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-pen-tool',\n templateUrl: './paint-pen-tool.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [AXColorBoxComponent, FormsModule, AXRangeSliderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXPaintPenToolComponent }],\n})\nexport class AXPaintPenToolComponent {\n protected service = inject(AXPaintService);\n\n /** @ignore */\n protected value = linkedSignal(() => this.service.penWidth());\n\n /** @ignore */\n protected selectedColor = linkedSignal(() => this.service.penColor());\n\n protected changeColorHandler(e: string) {\n this.service.penColor.set(e);\n this.selectedColor.set(e);\n }\n\n /** @ignore */\n protected valueHandler(e: number) {\n this.service.penWidth.set(e);\n }\n}\n","<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","import {\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXToolBarComponent } from '@acorex/components/toolbar';\nimport { Component, HostBinding, ViewEncapsulation, effect, forwardRef, inject, input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXPaintToolsSelectorComponent } from '../paint-tools-selector/paint-tools-selector.component';\nimport { AXPaintEraserToolComponent } from '../paint-tools/paint-eraser-tool/paint-eraser-tool.component';\nimport { AXPaintHighlightToolComponent } from '../paint-tools/paint-highlight-tool/paint-highlight-tool.component';\nimport { AXPaintPenToolComponent } from '../paint-tools/paint-pen-tool/paint-pen-tool.component';\nimport { AXPaintService } from '../paint.service';\n\n/**\n * paint container.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-container',\n templateUrl: './paint-container.component.html',\n styleUrl: './paint-container.component.compiled.css',\n encapsulation: ViewEncapsulation.None,\n inputs: ['look', 'disabled'],\n providers: [\n AXPaintService,\n { provide: AXComponent, useExisting: AXPaintContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXPaintContainerComponent },\n { provide: AXValuableComponent, useExisting: AXPaintContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPaintContainerComponent),\n multi: true,\n },\n ],\n imports: [\n AXToolBarComponent,\n AXDecoratorModule,\n AXPaintToolsSelectorComponent,\n AXPaintPenToolComponent,\n AXPaintHighlightToolComponent,\n AXPaintEraserToolComponent,\n ],\n})\nexport class AXPaintContainerComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n protected service = inject(AXPaintService);\n\n readonly editMode = input(false);\n\n #eff = effect(() => {\n if (this.editMode()) {\n this.service.activeToolState.set('pen');\n }\n });\n\n @HostBinding('class')\n get __hostClass(): string {\n if (this.disabled) return 'ax-state-disabled';\n return '';\n }\n\n /**\n * Sets the active drawing tool.\n *\n * @param tool - The tool to activate: 'pen', 'highlight', or 'eraser'\n */\n setActiveTool(tool: 'pen' | 'highlight' | 'eraser') {\n this.service.activeToolState.set(tool);\n }\n\n /**\n * Sets the pen color for drawing.\n *\n * @param color - The color to use for the pen tool\n */\n setPenColor(color: string | CanvasGradient | CanvasPattern) {\n this.service.penColor.set(color);\n }\n\n /**\n * Sets the highlight color for highlighting.\n *\n * @param color - The color to use for the highlight tool\n */\n setHighlightColor(color: string | CanvasGradient | CanvasPattern) {\n this.service.highlightColor.set(color);\n }\n\n /**\n * Sets the pen width for drawing.\n *\n * @param width - The width of the pen stroke in pixels\n */\n setPenWidth(width: number) {\n this.service.penWidth.set(width);\n }\n\n /**\n * Sets the highlight width for highlighting.\n *\n * @param width - The width of the highlight stroke in pixels\n */\n setHighlightWidth(width: number) {\n this.service.highlightWidth.set(width);\n }\n\n /**\n * Sets the eraser width for erasing.\n *\n * @param width - The width of the eraser in pixels\n */\n setEraserWidth(width: number) {\n this.service.eraserWidth.set(width);\n }\n\n /**\n * Clears the entire canvas.\n */\n clear() {\n this.service.toggleClear.update((prev) => !prev);\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<div class=\"ax-editor-container ax-default {{ look }}\">\n <ng-content></ng-content>\n\n @if (service.activeToolState() && !editMode()) {\n <div class=\"ax-secondary-toolbar\">\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 </div>\n }\n\n @if (!editMode()) {\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 }\n\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","import { AXComponent } from '@acorex/cdk/common';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n OnDestroy,\n PLATFORM_ID,\n Renderer2,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXPaintContainerComponent } from '../paint-container/paint-container.component';\nimport { AXPaintService } from '../paint.service';\n\n/**\n * @category Components\n * paint view\n */\n@Component({\n selector: 'ax-paint-view',\n templateUrl: './paint-view.component.html',\n styleUrl: './paint-view.component.compiled.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXPaintViewComponent }],\n})\nexport class AXPaintViewComponent implements OnDestroy {\n /** @ignore */\n private parent = inject(AXPaintContainerComponent);\n\n /** @ignore */\n protected service = inject(AXPaintService);\n\n /** @ignore */\n protected renderer = inject(Renderer2);\n\n private platformID = inject(PLATFORM_ID);\n\n protected hostElem = inject(ElementRef);\n\n /** @ignore */\n private resizeEvent: () => void;\n\n readonly paintBackgroundColor = input<'black' | 'white'>('white');\n\n /** @ignore */\n protected canvasElem = viewChild<ElementRef<HTMLCanvasElement>>('c');\n\n /** @ignore */\n protected ctx = signal<CanvasRenderingContext2D>(null);\n\n /** @ignore */\n protected isPainting = signal(false);\n\n /** @ignore */\n protected isUserInteract = signal(false);\n\n #init = afterNextRender(() => {\n this.ctx.set(this.canvasElem().nativeElement.getContext('2d'));\n this.ctx().lineJoin = 'round';\n this.ctx().lineCap = 'round';\n\n setTimeout(() => {\n this.resizeEventHandler();\n });\n\n if (isPlatformBrowser(this.platformID)) {\n this.resizeEvent = this.renderer.listen(window, 'resize', this.resizeEventHandler.bind(this));\n }\n });\n\n #effect = effect(() => {\n this.isUserInteract.set(false);\n this.service.toggleClear();\n this.ctx()?.clearRect(0, 0, this.getBoundingCanvasHandler()?.width, this.getBoundingCanvasHandler()?.height);\n });\n\n /** @ignore */\n ngOnDestroy(): void {\n if (isPlatformBrowser(this.platformID) && this.resizeEvent) {\n this.resizeEvent();\n }\n }\n\n /** @ignore */\n protected resizeEventHandler() {\n this.ctx().canvas.width = this.getBoundingCanvasHandler()?.width;\n this.ctx().canvas.height = this.getBoundingCanvasHandler()?.height;\n }\n\n /** @ignore */\n protected penConfigHandler(penType: 'eraser' | 'pen' | 'highlight') {\n switch (penType) {\n case 'pen':\n this.ctx().globalAlpha = 1;\n this.ctx().globalCompositeOperation = 'source-over';\n this.ctx().strokeStyle = this.service.penColor();\n this.ctx().lineWidth = this.service.penWidth();\n break;\n case 'eraser':\n this.ctx().globalAlpha = 1;\n this.ctx().globalCompositeOperation = 'destination-out';\n this.ctx().lineWidth = this.service.eraserWidth();\n break;\n case 'highlight':\n this.ctx().globalAlpha = 0.008;\n this.ctx().globalCompositeOperation = 'source-over';\n this.ctx().strokeStyle = this.service.highlightColor();\n this.ctx().lineWidth = this.service.highlightWidth();\n break;\n }\n }\n\n /** @ignore */\n protected getBoundingCanvasHandler() {\n return this.hostElem.nativeElement.getBoundingClientRect();\n }\n\n /** @ignore */\n protected mouseDownHandler(e: MouseEvent) {\n if (!this.service.activeToolState()) return;\n\n this.isPainting.set(true);\n this.isUserInteract.set(true);\n\n this.penConfigHandler(this.service.activeToolState());\n\n this.ctx().beginPath();\n this.ctx().moveTo(e.offsetX, e.offsetY);\n this.ctx().lineTo(e.offsetX, e.offsetY);\n this.ctx().stroke();\n }\n\n /** @ignore */\n protected mouseMoveHandler(e: MouseEvent) {\n if (this.isPainting()) {\n this.ctx().lineTo(e.offsetX, e.offsetY);\n this.ctx().stroke();\n }\n }\n\n /** @ignore */\n protected mouseUpHandler() {\n this.ctx().closePath();\n this.isPainting.set(false);\n }\n\n /**\n * Exports the canvas content as an image.\n *\n * @param format - The image format: 'image/webp', 'image/png', or 'image/jpeg'\n */\n getOutPut(e: 'image/webp' | 'image/png' | 'image/jpeg') {\n const base64 = this.canvasElem().nativeElement.toDataURL(e, 0.1);\n if (this.isUserInteract()) {\n this.parent.commitValue(base64);\n } else {\n this.parent.commitValue(null);\n }\n }\n\n @HostBinding('class')\n get __hostClass(): string[] {\n return [`ax-${this.paintBackgroundColor()}`];\n }\n}\n","<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","import { AXButtonModule } from '@acorex/components/button';\nimport { AXColorBoxModule } from '@acorex/components/color-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXRangeSliderModule } from '@acorex/components/range-slider';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintContainerComponent } from './paint/paint-container/paint-container.component';\nimport { AXPaintToolsSelectorComponent } from './paint/paint-tools-selector/paint-tools-selector.component';\nimport { AXPaintEraserToolComponent } from './paint/paint-tools/paint-eraser-tool/paint-eraser-tool.component';\nimport { AXPaintHighlightToolComponent } from './paint/paint-tools/paint-highlight-tool/paint-highlight-tool.component';\nimport { AXPaintPenToolComponent } from './paint/paint-tools/paint-pen-tool/paint-pen-tool.component';\nimport { AXPaintViewComponent } from './paint/paint-view/paint-view.component';\n\nconst COMPONENT = [\n AXPaintContainerComponent,\n AXPaintViewComponent,\n AXPaintToolsSelectorComponent,\n AXPaintPenToolComponent,\n AXPaintHighlightToolComponent,\n AXPaintEraserToolComponent,\n];\n\nconst MODULES = [\n FormsModule,\n AXRangeSliderModule,\n AXSelectBoxModule,\n AXButtonModule,\n AXColorBoxModule,\n AXPopoverModule,\n AXDecoratorModule,\n AXTooltipModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXPaintModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-paint.mjs","sources":["../../../../packages/components/paint/src/lib/paint/paint.service.ts","../../../../packages/components/paint/src/lib/paint/paint-tools-selector/paint-tools-selector.component.ts","../../../../packages/components/paint/src/lib/paint/paint-tools-selector/paint-tools-selector.component.html","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-eraser-tool/paint-eraser-tool.component.ts","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-eraser-tool/paint-eraser-tool.component.html","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-highlight-tool/paint-highlight-tool.component.ts","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-highlight-tool/paint-highlight-tool.component.html","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-pen-tool/paint-pen-tool.component.ts","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-pen-tool/paint-pen-tool.component.html","../../../../packages/components/paint/src/lib/paint/paint-container/paint-container.component.ts","../../../../packages/components/paint/src/lib/paint/paint-container/paint-container.component.html","../../../../packages/components/paint/src/lib/paint/paint-view/paint-view.component.ts","../../../../packages/components/paint/src/lib/paint/paint-view/paint-view.component.html","../../../../packages/components/paint/src/lib/paint.module.ts","../../../../packages/components/paint/src/acorex-components-paint.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXPaintService {\n penColor = signal<string | CanvasGradient | CanvasPattern>('rgb(12, 12, 12)');\n highlightColor = signal<string | CanvasGradient | CanvasPattern>('rgb(255, 210, 48)');\n penWidth = signal<number>(10);\n highlightWidth = signal<number>(10);\n eraserWidth = signal<number>(10);\n toggleClear = signal(false);\n activeToolState = signal<'pen' | 'highlight' | 'eraser'>('pen');\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXPaintService } from '../paint.service';\n\n@Component({\n selector: 'ax-paint-tools-selector',\n templateUrl: './paint-tools-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [AXButtonComponent, AXDecoratorModule, AXTooltipDirective, AsyncPipe, AXTranslatorPipe],\n providers: [{ provide: AXComponent, useExisting: AXPaintToolsSelectorComponent }],\n})\nexport class AXPaintToolsSelectorComponent {\n protected service = inject(AXPaintService);\n\n protected pen = signal<string>(null);\n protected highlight = signal<string>(null);\n protected eraser = signal<string>(null);\n protected reset = signal<string>(null);\n\n protected changeToolHandler(tool: 'pen' | 'highlight' | 'eraser') {\n if (this.service.activeToolState() === tool) {\n this.service.activeToolState.set(null);\n return;\n }\n\n this.service.activeToolState.set(tool);\n }\n\n protected clear() {\n this.service.toggleClear.update((prev) => !prev);\n }\n}\n","<ax-button\n class=\"ax-sm\"\n [axTooltip]=\"'@acorex:paint.tools.pen' | translate | async\"\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 class=\"ax-sm\"\n [axTooltip]=\"'@acorex:paint.tools.highlight' | translate | async\"\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 class=\"ax-sm\"\n [axTooltip]=\"'@acorex:paint.tools.eraser' | translate | async\"\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\n class=\"ax-sm\"\n [axTooltip]=\"'@acorex:paint.actions.reset' | translate | async\"\n axTooltipPlacement=\"top\"\n (onClick)=\"clear()\"\n look=\"blank\"\n>\n <i class=\"fa-solid fa-rotate\"></i>\n</ax-button>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\n\nimport { ChangeDetectionStrategy, Component, inject, linkedSignal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintService } from '../../paint.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-eraser-tool',\n templateUrl: './paint-eraser-tool.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, AXRangeSliderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXPaintEraserToolComponent }],\n})\nexport class AXPaintEraserToolComponent {\n protected service = inject(AXPaintService);\n\n protected value = linkedSignal(() => this.service.eraserWidth());\n\n /** @ignore */\n protected valueHandler(e: number) {\n this.service.eraserWidth.set(e);\n }\n}\n","<ax-range-slider [min]=\"2\" [max]=\"20\" [(ngModel)]=\"value\" (ngModelChange)=\"valueHandler($event)\"></ax-range-slider>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXColorBoxComponent } from '@acorex/components/color-box';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\n\nimport { ChangeDetectionStrategy, Component, inject, linkedSignal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintService } from '../../paint.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-highlight-tool',\n templateUrl: './paint-highlight-tool.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [AXColorBoxComponent, FormsModule, AXRangeSliderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXPaintHighlightToolComponent }],\n})\nexport class AXPaintHighlightToolComponent {\n protected service = inject(AXPaintService);\n\n protected value = linkedSignal(() => this.service.highlightWidth());\n\n protected selectedColor = linkedSignal(() => this.service.highlightColor());\n\n protected changeColorHandler(e: string) {\n this.service.highlightColor.set(e);\n this.selectedColor.set(e);\n }\n\n /** @ignore */\n protected valueHandler(e: number) {\n this.service.highlightWidth.set(e);\n }\n}\n","<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","import { AXComponent } from '@acorex/cdk/common';\nimport { AXColorBoxComponent } from '@acorex/components/color-box';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\n\nimport { ChangeDetectionStrategy, Component, inject, linkedSignal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintService } from '../../paint.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-pen-tool',\n templateUrl: './paint-pen-tool.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [AXColorBoxComponent, FormsModule, AXRangeSliderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXPaintPenToolComponent }],\n})\nexport class AXPaintPenToolComponent {\n protected service = inject(AXPaintService);\n\n /** @ignore */\n protected value = linkedSignal(() => this.service.penWidth());\n\n /** @ignore */\n protected selectedColor = linkedSignal(() => this.service.penColor());\n\n protected changeColorHandler(e: string) {\n this.service.penColor.set(e);\n this.selectedColor.set(e);\n }\n\n /** @ignore */\n protected valueHandler(e: number) {\n this.service.penWidth.set(e);\n }\n}\n","<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","import {\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXToolBarComponent } from '@acorex/components/toolbar';\nimport { Component, HostBinding, ViewEncapsulation, effect, forwardRef, inject, input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXPaintToolsSelectorComponent } from '../paint-tools-selector/paint-tools-selector.component';\nimport { AXPaintEraserToolComponent } from '../paint-tools/paint-eraser-tool/paint-eraser-tool.component';\nimport { AXPaintHighlightToolComponent } from '../paint-tools/paint-highlight-tool/paint-highlight-tool.component';\nimport { AXPaintPenToolComponent } from '../paint-tools/paint-pen-tool/paint-pen-tool.component';\nimport { AXPaintService } from '../paint.service';\n\n/**\n * paint container.\n * @category Components\n */\n@Component({\n selector: 'ax-paint-container',\n templateUrl: './paint-container.component.html',\n styleUrl: './paint-container.component.compiled.css',\n encapsulation: ViewEncapsulation.None,\n inputs: ['look', 'disabled'],\n providers: [\n AXPaintService,\n { provide: AXComponent, useExisting: AXPaintContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXPaintContainerComponent },\n { provide: AXValuableComponent, useExisting: AXPaintContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPaintContainerComponent),\n multi: true,\n },\n ],\n imports: [\n AXToolBarComponent,\n AXDecoratorModule,\n AXPaintToolsSelectorComponent,\n AXPaintPenToolComponent,\n AXPaintHighlightToolComponent,\n AXPaintEraserToolComponent,\n ],\n})\nexport class AXPaintContainerComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n protected service = inject(AXPaintService);\n\n readonly editMode = input(false);\n\n #eff = effect(() => {\n if (this.editMode()) {\n this.service.activeToolState.set('pen');\n }\n });\n\n @HostBinding('class')\n get __hostClass(): string {\n if (this.disabled) return 'ax-state-disabled';\n return '';\n }\n\n /**\n * Sets the active drawing tool.\n *\n * @param tool - The tool to activate: 'pen', 'highlight', or 'eraser'\n */\n setActiveTool(tool: 'pen' | 'highlight' | 'eraser') {\n this.service.activeToolState.set(tool);\n }\n\n /**\n * Sets the pen color for drawing.\n *\n * @param color - The color to use for the pen tool\n */\n setPenColor(color: string | CanvasGradient | CanvasPattern) {\n this.service.penColor.set(color);\n }\n\n /**\n * Sets the highlight color for highlighting.\n *\n * @param color - The color to use for the highlight tool\n */\n setHighlightColor(color: string | CanvasGradient | CanvasPattern) {\n this.service.highlightColor.set(color);\n }\n\n /**\n * Sets the pen width for drawing.\n *\n * @param width - The width of the pen stroke in pixels\n */\n setPenWidth(width: number) {\n this.service.penWidth.set(width);\n }\n\n /**\n * Sets the highlight width for highlighting.\n *\n * @param width - The width of the highlight stroke in pixels\n */\n setHighlightWidth(width: number) {\n this.service.highlightWidth.set(width);\n }\n\n /**\n * Sets the eraser width for erasing.\n *\n * @param width - The width of the eraser in pixels\n */\n setEraserWidth(width: number) {\n this.service.eraserWidth.set(width);\n }\n\n /**\n * Clears the entire canvas.\n */\n clear() {\n this.service.toggleClear.update((prev) => !prev);\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<div class=\"ax-editor-container ax-default {{ look }}\">\n <ng-content></ng-content>\n\n @if (service.activeToolState() && !editMode()) {\n <div class=\"ax-secondary-toolbar\">\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 </div>\n }\n\n @if (!editMode()) {\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 }\n\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","import { AXComponent } from '@acorex/cdk/common';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n OnDestroy,\n PLATFORM_ID,\n Renderer2,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXPaintContainerComponent } from '../paint-container/paint-container.component';\nimport { AXPaintService } from '../paint.service';\n\n/**\n * @category Components\n * paint view\n */\n@Component({\n selector: 'ax-paint-view',\n templateUrl: './paint-view.component.html',\n styleUrl: './paint-view.component.compiled.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXPaintViewComponent }],\n})\nexport class AXPaintViewComponent implements OnDestroy {\n /** @ignore */\n private parent = inject(AXPaintContainerComponent);\n\n /** @ignore */\n protected service = inject(AXPaintService);\n\n /** @ignore */\n protected renderer = inject(Renderer2);\n\n private platformID = inject(PLATFORM_ID);\n\n protected hostElem = inject(ElementRef);\n\n /** @ignore */\n private resizeEvent: () => void;\n\n readonly paintBackgroundColor = input<'black' | 'white'>('white');\n\n /** @ignore */\n protected canvasElem = viewChild<ElementRef<HTMLCanvasElement>>('c');\n\n /** @ignore */\n protected ctx = signal<CanvasRenderingContext2D>(null);\n\n /** @ignore */\n protected isPainting = signal(false);\n\n /** @ignore */\n protected isUserInteract = signal(false);\n\n #init = afterNextRender(() => {\n this.ctx.set(this.canvasElem().nativeElement.getContext('2d'));\n this.ctx().lineJoin = 'round';\n this.ctx().lineCap = 'round';\n\n setTimeout(() => {\n this.resizeEventHandler();\n });\n\n if (isPlatformBrowser(this.platformID)) {\n this.resizeEvent = this.renderer.listen(window, 'resize', this.resizeEventHandler.bind(this));\n }\n });\n\n #effect = effect(() => {\n this.isUserInteract.set(false);\n this.service.toggleClear();\n this.ctx()?.clearRect(0, 0, this.getBoundingCanvasHandler()?.width, this.getBoundingCanvasHandler()?.height);\n });\n\n /** @ignore */\n ngOnDestroy(): void {\n if (isPlatformBrowser(this.platformID) && this.resizeEvent) {\n this.resizeEvent();\n }\n }\n\n /** @ignore */\n protected resizeEventHandler() {\n this.ctx().canvas.width = this.getBoundingCanvasHandler()?.width;\n this.ctx().canvas.height = this.getBoundingCanvasHandler()?.height;\n }\n\n /** @ignore */\n protected penConfigHandler(penType: 'eraser' | 'pen' | 'highlight') {\n switch (penType) {\n case 'pen':\n this.ctx().globalAlpha = 1;\n this.ctx().globalCompositeOperation = 'source-over';\n this.ctx().strokeStyle = this.service.penColor();\n this.ctx().lineWidth = this.service.penWidth();\n break;\n case 'eraser':\n this.ctx().globalAlpha = 1;\n this.ctx().globalCompositeOperation = 'destination-out';\n this.ctx().lineWidth = this.service.eraserWidth();\n break;\n case 'highlight':\n this.ctx().globalAlpha = 0.008;\n this.ctx().globalCompositeOperation = 'source-over';\n this.ctx().strokeStyle = this.service.highlightColor();\n this.ctx().lineWidth = this.service.highlightWidth();\n break;\n }\n }\n\n /** @ignore */\n protected getBoundingCanvasHandler() {\n return this.hostElem.nativeElement.getBoundingClientRect();\n }\n\n /** @ignore */\n protected mouseDownHandler(e: MouseEvent) {\n if (!this.service.activeToolState()) return;\n\n this.isPainting.set(true);\n this.isUserInteract.set(true);\n\n this.penConfigHandler(this.service.activeToolState());\n\n this.ctx().beginPath();\n this.ctx().moveTo(e.offsetX, e.offsetY);\n this.ctx().lineTo(e.offsetX, e.offsetY);\n this.ctx().stroke();\n }\n\n /** @ignore */\n protected mouseMoveHandler(e: MouseEvent) {\n if (this.isPainting()) {\n this.ctx().lineTo(e.offsetX, e.offsetY);\n this.ctx().stroke();\n }\n }\n\n /** @ignore */\n protected mouseUpHandler() {\n this.ctx().closePath();\n this.isPainting.set(false);\n }\n\n /**\n * Exports the canvas content as an image.\n *\n * @param format - The image format: 'image/webp', 'image/png', or 'image/jpeg'\n */\n getOutPut(e: 'image/webp' | 'image/png' | 'image/jpeg') {\n const base64 = this.canvasElem().nativeElement.toDataURL(e, 0.1);\n if (this.isUserInteract()) {\n this.parent.commitValue(base64);\n } else {\n this.parent.commitValue(null);\n }\n }\n\n @HostBinding('class')\n get __hostClass(): string[] {\n return [`ax-${this.paintBackgroundColor()}`];\n }\n}\n","<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","import { AXButtonModule } from '@acorex/components/button';\nimport { AXColorBoxModule } from '@acorex/components/color-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXRangeSliderModule } from '@acorex/components/range-slider';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintContainerComponent } from './paint/paint-container/paint-container.component';\nimport { AXPaintToolsSelectorComponent } from './paint/paint-tools-selector/paint-tools-selector.component';\nimport { AXPaintEraserToolComponent } from './paint/paint-tools/paint-eraser-tool/paint-eraser-tool.component';\nimport { AXPaintHighlightToolComponent } from './paint/paint-tools/paint-highlight-tool/paint-highlight-tool.component';\nimport { AXPaintPenToolComponent } from './paint/paint-tools/paint-pen-tool/paint-pen-tool.component';\nimport { AXPaintViewComponent } from './paint/paint-view/paint-view.component';\n\nconst COMPONENT = [\n AXPaintContainerComponent,\n AXPaintViewComponent,\n AXPaintToolsSelectorComponent,\n AXPaintPenToolComponent,\n AXPaintHighlightToolComponent,\n AXPaintEraserToolComponent,\n];\n\nconst MODULES = [\n FormsModule,\n AXRangeSliderModule,\n AXSelectBoxModule,\n AXButtonModule,\n AXColorBoxModule,\n AXPopoverModule,\n AXDecoratorModule,\n AXTooltipModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXPaintModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -166,11 +166,11 @@ class AXPasswordStrengthValidationComponent {
|
|
|
166
166
|
this.passwordStrength.set((strength * 100) / 5);
|
|
167
167
|
}
|
|
168
168
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXPasswordStrengthValidationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
169
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: AXPasswordStrengthValidationComponent, isStandalone: true, selector: "ax-password-strength-validation", inputs: { showProgress: { classPropertyName: "showProgress", publicName: "showProgress", isSignal: true, isRequired: false, transformFunction: null }, showLengthGraterThan8: { classPropertyName: "showLengthGraterThan8", publicName: "showLengthGraterThan8", isSignal: true, isRequired: false, transformFunction: null }, showUseUpperCase: { classPropertyName: "showUseUpperCase", publicName: "showUseUpperCase", isSignal: true, isRequired: false, transformFunction: null }, showUseLowerCase: { classPropertyName: "showUseLowerCase", publicName: "showUseLowerCase", isSignal: true, isRequired: false, transformFunction: null }, showUseNumber: { classPropertyName: "showUseNumber", publicName: "showUseNumber", isSignal: true, isRequired: false, transformFunction: null }, showUseSpecialCharacter: { classPropertyName: "showUseSpecialCharacter", publicName: "showUseSpecialCharacter", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXPasswordStrengthValidationComponent }], ngImport: i0, template: "@if (showProgress()) {\n <small\n class=\"ax-state-password\"\n [class.ax-text-red]=\"strengthLabelColor() === 'danger'\"\n [class.ax-text-orange]=\"strengthLabelColor() === 'warning'\"\n [class.ax-text-green]=\"strengthLabelColor() === 'success'\"\n >\n {{ '@acorex:password-strength.levels.' + strengthLabel() | translate | async }}\n </small>\n\n <ax-progress-bar [color]=\"strengthLabelColor()\" [progress]=\"passwordStrength()\" [height]=\"4\"></ax-progress-bar>\n}\n\n<div class=\"ax-hint-container\">\n @if (showLengthGraterThan8()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLengthGraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.at-least-8-characters' | translate | async }}\n </span>\n </small>\n }\n @if (showUseUpperCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-upper-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseLowerCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-lower-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseNumber()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ '@acorex:password-strength.rules.digits' | translate | async }} </span>\n </small>\n }\n @if (showUseSpecialCharacter()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.special-character' | translate | async }}\n </span>\n </small>\n }\n</div>\n", styles: ["@layer components{.ax-state-password{margin-bottom:calc(var(--spacing,.25rem)*1.5);display:block}.ax-state-password.ax-text-red{color:var(--color-danger,rgba(var(--ax-sys-color-danger-surface)))}.ax-state-password.ax-text-orange{color:var(--color-warning,rgba(var(--ax-sys-color-warning-surface)))}.ax-state-password.ax-text-green{color:var(--color-success,rgba(var(--ax-sys-color-success-surface)))}.ax-hint-container{gap:calc(var(--spacing,.25rem)*2);padding-top:calc(var(--spacing,.25rem)*2);flex-direction:column;display:flex}.ax-hint-container ax-badge{margin-inline-end:calc(var(--spacing,.25rem)*1)}}\n/*! tailwindcss v4.1
|
|
169
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: AXPasswordStrengthValidationComponent, isStandalone: true, selector: "ax-password-strength-validation", inputs: { showProgress: { classPropertyName: "showProgress", publicName: "showProgress", isSignal: true, isRequired: false, transformFunction: null }, showLengthGraterThan8: { classPropertyName: "showLengthGraterThan8", publicName: "showLengthGraterThan8", isSignal: true, isRequired: false, transformFunction: null }, showUseUpperCase: { classPropertyName: "showUseUpperCase", publicName: "showUseUpperCase", isSignal: true, isRequired: false, transformFunction: null }, showUseLowerCase: { classPropertyName: "showUseLowerCase", publicName: "showUseLowerCase", isSignal: true, isRequired: false, transformFunction: null }, showUseNumber: { classPropertyName: "showUseNumber", publicName: "showUseNumber", isSignal: true, isRequired: false, transformFunction: null }, showUseSpecialCharacter: { classPropertyName: "showUseSpecialCharacter", publicName: "showUseSpecialCharacter", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXPasswordStrengthValidationComponent }], ngImport: i0, template: "@if (showProgress()) {\n <small\n class=\"ax-state-password\"\n [class.ax-text-red]=\"strengthLabelColor() === 'danger'\"\n [class.ax-text-orange]=\"strengthLabelColor() === 'warning'\"\n [class.ax-text-green]=\"strengthLabelColor() === 'success'\"\n >\n {{ '@acorex:password-strength.levels.' + strengthLabel() | translate | async }}\n </small>\n\n <ax-progress-bar [color]=\"strengthLabelColor()\" [progress]=\"passwordStrength()\" [height]=\"4\"></ax-progress-bar>\n}\n\n<div class=\"ax-hint-container\">\n @if (showLengthGraterThan8()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLengthGraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.at-least-8-characters' | translate | async }}\n </span>\n </small>\n }\n @if (showUseUpperCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-upper-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseLowerCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-lower-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseNumber()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ '@acorex:password-strength.rules.digits' | translate | async }} </span>\n </small>\n }\n @if (showUseSpecialCharacter()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.special-character' | translate | async }}\n </span>\n </small>\n }\n</div>\n", styles: ["@layer components{.ax-state-password{margin-bottom:calc(var(--spacing,.25rem) * 1.5);display:block}.ax-state-password.ax-text-red{color:var(--color-danger,rgba(var(--ax-sys-color-danger-surface)))}.ax-state-password.ax-text-orange{color:var(--color-warning,rgba(var(--ax-sys-color-warning-surface)))}.ax-state-password.ax-text-green{color:var(--color-success,rgba(var(--ax-sys-color-success-surface)))}.ax-hint-container{gap:calc(var(--spacing,.25rem) * 2);padding-top:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}.ax-hint-container ax-badge{margin-inline-end:calc(var(--spacing,.25rem) * 1)}}\n/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXProgressBarComponent, selector: "ax-progress-bar", inputs: ["color", "mode", "progress", "height"], outputs: ["ValueChange", "sizeChange"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
170
170
|
}
|
|
171
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXPasswordStrengthValidationComponent, decorators: [{
|
|
172
172
|
type: Component,
|
|
173
|
-
args: [{ selector: 'ax-password-strength-validation', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXProgressBarComponent, AXBadgeComponent, AsyncPipe, AXTranslatorPipe], providers: [{ provide: AXComponent, useExisting: AXPasswordStrengthValidationComponent }], template: "@if (showProgress()) {\n <small\n class=\"ax-state-password\"\n [class.ax-text-red]=\"strengthLabelColor() === 'danger'\"\n [class.ax-text-orange]=\"strengthLabelColor() === 'warning'\"\n [class.ax-text-green]=\"strengthLabelColor() === 'success'\"\n >\n {{ '@acorex:password-strength.levels.' + strengthLabel() | translate | async }}\n </small>\n\n <ax-progress-bar [color]=\"strengthLabelColor()\" [progress]=\"passwordStrength()\" [height]=\"4\"></ax-progress-bar>\n}\n\n<div class=\"ax-hint-container\">\n @if (showLengthGraterThan8()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLengthGraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.at-least-8-characters' | translate | async }}\n </span>\n </small>\n }\n @if (showUseUpperCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-upper-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseLowerCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-lower-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseNumber()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ '@acorex:password-strength.rules.digits' | translate | async }} </span>\n </small>\n }\n @if (showUseSpecialCharacter()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.special-character' | translate | async }}\n </span>\n </small>\n }\n</div>\n", styles: ["@layer components{.ax-state-password{margin-bottom:calc(var(--spacing,.25rem)*1.5);display:block}.ax-state-password.ax-text-red{color:var(--color-danger,rgba(var(--ax-sys-color-danger-surface)))}.ax-state-password.ax-text-orange{color:var(--color-warning,rgba(var(--ax-sys-color-warning-surface)))}.ax-state-password.ax-text-green{color:var(--color-success,rgba(var(--ax-sys-color-success-surface)))}.ax-hint-container{gap:calc(var(--spacing,.25rem)*2);padding-top:calc(var(--spacing,.25rem)*2);flex-direction:column;display:flex}.ax-hint-container ax-badge{margin-inline-end:calc(var(--spacing,.25rem)*1)}}\n/*! tailwindcss v4.1
|
|
173
|
+
args: [{ selector: 'ax-password-strength-validation', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXProgressBarComponent, AXBadgeComponent, AsyncPipe, AXTranslatorPipe], providers: [{ provide: AXComponent, useExisting: AXPasswordStrengthValidationComponent }], template: "@if (showProgress()) {\n <small\n class=\"ax-state-password\"\n [class.ax-text-red]=\"strengthLabelColor() === 'danger'\"\n [class.ax-text-orange]=\"strengthLabelColor() === 'warning'\"\n [class.ax-text-green]=\"strengthLabelColor() === 'success'\"\n >\n {{ '@acorex:password-strength.levels.' + strengthLabel() | translate | async }}\n </small>\n\n <ax-progress-bar [color]=\"strengthLabelColor()\" [progress]=\"passwordStrength()\" [height]=\"4\"></ax-progress-bar>\n}\n\n<div class=\"ax-hint-container\">\n @if (showLengthGraterThan8()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLengthGraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.at-least-8-characters' | translate | async }}\n </span>\n </small>\n }\n @if (showUseUpperCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-upper-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseLowerCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-lower-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseNumber()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ '@acorex:password-strength.rules.digits' | translate | async }} </span>\n </small>\n }\n @if (showUseSpecialCharacter()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.special-character' | translate | async }}\n </span>\n </small>\n }\n</div>\n", styles: ["@layer components{.ax-state-password{margin-bottom:calc(var(--spacing,.25rem) * 1.5);display:block}.ax-state-password.ax-text-red{color:var(--color-danger,rgba(var(--ax-sys-color-danger-surface)))}.ax-state-password.ax-text-orange{color:var(--color-warning,rgba(var(--ax-sys-color-warning-surface)))}.ax-state-password.ax-text-green{color:var(--color-success,rgba(var(--ax-sys-color-success-surface)))}.ax-hint-container{gap:calc(var(--spacing,.25rem) * 2);padding-top:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}.ax-hint-container ax-badge{margin-inline-end:calc(var(--spacing,.25rem) * 1)}}\n/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n"] }]
|
|
174
174
|
}], propDecorators: { showProgress: [{ type: i0.Input, args: [{ isSignal: true, alias: "showProgress", required: false }] }], showLengthGraterThan8: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLengthGraterThan8", required: false }] }], showUseUpperCase: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUseUpperCase", required: false }] }], showUseLowerCase: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUseLowerCase", required: false }] }], showUseNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUseNumber", required: false }] }], showUseSpecialCharacter: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUseSpecialCharacter", required: false }] }] } });
|
|
175
175
|
|
|
176
176
|
const COMPONENT = [AXPasswordBoxComponent, AXPasswordStrengthValidationComponent];
|