@acorex/components 18.3.2 → 18.4.1
Sign up to get free protection for your applications and to get access to all the features.
- package/button/lib/button.component.d.ts +2 -1
- package/conversation/index.d.ts +1 -0
- package/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.d.ts +13 -17
- package/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.d.ts +14 -4
- package/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.d.ts +7 -0
- package/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.d.ts +1 -1
- package/conversation/lib/conversation.module.d.ts +21 -17
- package/esm2022/button/lib/button.component.mjs +6 -5
- package/esm2022/color-palette/lib/color-palette-picker.component.mjs +1 -1
- package/esm2022/conversation/index.mjs +2 -1
- package/esm2022/conversation/lib/conversation-input/conversation-input.component.mjs +1 -1
- package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +2 -2
- package/esm2022/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.mjs +59 -86
- package/esm2022/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.mjs +38 -11
- package/esm2022/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.mjs +16 -0
- package/esm2022/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.mjs +3 -4
- package/esm2022/conversation/lib/conversation.module.mjs +21 -7
- package/esm2022/conversation/lib/services/conversation.service.mjs +11 -3
- package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +1 -1
- package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +1 -1
- package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +1 -1
- package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +1 -1
- package/esm2022/data-table/lib/data-table/data-table.component.mjs +1 -1
- package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +1 -1
- package/esm2022/datetime-input/lib/datetime-input.component.mjs +4 -2
- package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +1 -1
- package/esm2022/dialog/lib/dialog.component.mjs +1 -1
- package/esm2022/form/lib/validation-summary.component.mjs +1 -1
- package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +1 -1
- package/esm2022/notification/lib/notification.component.mjs +1 -1
- package/esm2022/otp/lib/otp.component.mjs +40 -46
- package/esm2022/phone-box/lib/phone-box.component.mjs +4 -4
- package/esm2022/range-slider/acorex-components-range-slider.mjs +5 -0
- package/esm2022/range-slider/index.mjs +2 -0
- package/esm2022/range-slider/lib/range-slider.component.mjs +11 -0
- package/esm2022/range-slider/lib/range-slider.module.mjs +17 -0
- package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +1 -1
- package/esm2022/scheduler/lib/scheduler.component.mjs +1 -1
- package/esm2022/slider/lib/slider.component.mjs +11 -15
- package/fesm2022/acorex-components-button.mjs +5 -4
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +1 -1
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +170 -128
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +4 -4
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +2 -2
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +3 -1
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +1 -1
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +1 -1
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +1 -1
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +39 -45
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +3 -3
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +32 -0
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -0
- package/fesm2022/acorex-components-scheduler.mjs +2 -2
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs +10 -14
- package/fesm2022/acorex-components-slider.mjs.map +1 -1
- package/otp/lib/otp.component.d.ts +9 -10
- package/package.json +19 -13
- package/range-slider/README.md +3 -0
- package/range-slider/index.d.ts +1 -0
- package/range-slider/lib/range-slider.component.d.ts +5 -0
- package/range-slider/lib/range-slider.module.d.ts +8 -0
- package/slider/lib/slider.component.d.ts +4 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-form.mjs","sources":["../../../../libs/components/form/src/lib/form.component.ts","../../../../libs/components/form/src/lib/form-field.component.ts","../../../../libs/components/form/src/lib/form.config.ts","../../../../libs/components/form/src/lib/validation-rule.directive.ts","../../../../libs/components/form/src/lib/validation-summary.component.ts","../../../../libs/components/form/src/lib/form.module.ts","../../../../libs/components/form/src/acorex-components-form.ts"],"sourcesContent":["import { AXEvent, AXValuableComponent, MXBaseComponent } from '@acorex/components/common';\nimport { AXValidationSummary } from '@acorex/core/validation';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n InputSignal,\n OnDestroy,\n Output,\n ViewEncapsulation,\n input,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXFormValidationEvent extends AXEvent {\n result: AXValidationSummary;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport type AXFormUpdateOn = 'change' | 'blur' | 'submit';\nexport type AXFormMessageStyle = 'bottom' | 'float';\nexport type AXLabelMode = 'static' | 'floating' | 'over';\n\n/**\n * The AXForm is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-form',\n template: `<form (submit)=\"_handleSubmit($event)\" (reset)=\"_handleReset()\" class=\"ax-{{ messageStyle() }}-error\">\n <ng-content></ng-content>\n </form>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFormComponent extends MXBaseComponent implements OnDestroy {\n labelMode = input<AXLabelMode>('static');\n\n messageStyle: InputSignal<AXFormMessageStyle> = input<AXFormMessageStyle>('bottom');\n\n @Output()\n onValidate: EventEmitter<AXFormValidationEvent> = new EventEmitter<AXFormValidationEvent>();\n\n @Output()\n updateOnChange: EventEmitter<AXFormUpdateOn> = new EventEmitter<AXFormUpdateOn>();\n\n private _updateOn: AXFormUpdateOn = 'blur';\n @Input()\n public get updateOn(): AXFormUpdateOn {\n return this._updateOn;\n }\n public set updateOn(v: AXFormUpdateOn) {\n this.setOption({\n name: 'updateOn',\n value: v,\n afterCallback: () => {\n //this._bindEvents();\n },\n });\n }\n\n private _subs: Subscription[] = [];\n\n protected async _handleSubmit(e: SubmitEvent) {\n e.preventDefault();\n await this.validate();\n }\n\n protected _handleReset() {\n this.reset();\n }\n\n constructor() {\n super();\n }\n\n //TODO: check update on\n\n // ngAfterViewInit(): void {\n // //this._bindEvents();\n // }\n\n // private _bindEvents() {\n // this._clearSubs();\n // const widgets = this._getComponenets();\n // //\n // widgets.forEach((w) => {\n // if (this.updateOn == 'change') {\n // this._subs.push(\n // w.onValueChanged?.subscribe((v: AXValueChangedEvent) => {\n // if (v.isUserInteraction) w.validate();\n // }),\n // );\n // } else if (this.updateOn == 'blur') {\n // this._subs.push(\n // w.onBlur?.subscribe((v) => {\n // w.validate();\n // }),\n // );\n // }\n // });\n // }\n\n private _clearSubs() {\n this._subs.forEach((c) => c?.unsubscribe());\n this._subs = [];\n }\n\n private get fields(): AXValuableComponent[] {\n return Array.from(this.getHostElement().querySelectorAll('[ax-form-item=\"true\"]'))\n .map((c) => (c as any).__axContext__)\n .filter((c) => c != null);\n }\n\n async validate(...names: string[]): Promise<AXValidationSummary> {\n const results = await Promise.all(\n this.fields.filter((c) => names == null || names.length == 0 || names.includes(c.name)).map((field) => field.validate()),\n );\n // Merge all validation summaries into one\n const mergedSummary: AXValidationSummary = {\n result: results.every((res) => res.result),\n rules: results.flatMap((res) => res.rules),\n };\n this._emitOnValidateEvent(mergedSummary);\n return mergedSummary;\n }\n\n private _emitOnValidateEvent(e: AXValidationSummary) {\n this.onValidate.emit({\n component: this,\n result: e,\n htmlElement: this.getHostElement(),\n });\n }\n\n reset() {\n this.fields.forEach((c) => c.reset(false));\n }\n\n resetErrors() {\n this.fields.forEach((c) => c.resetErrors());\n }\n\n ngOnDestroy(): void {\n this._clearSubs();\n }\n}\n","import { AXValuableComponent, MXBaseComponent } from '@acorex/components/common';\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n ViewContainerRef,\n ViewEncapsulation,\n WritableSignal,\n afterNextRender,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXFormComponent, AXLabelMode } from './form.component';\n\n@Component({\n selector: 'ax-form-field',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./form-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXUnsubscriber],\n})\nexport class AXFormFieldComponent extends MXBaseComponent {\n labelMode = input<AXLabelMode>('static');\n\n protected _labelMode: WritableSignal<AXLabelMode> = signal(this.labelMode());\n\n private unsubscriber = inject(AXUnsubscriber);\n\n @ContentChild(AXValuableComponent)\n private input: AXValuableComponent;\n\n @ContentChild(AXLabelComponent)\n private label: AXLabelComponent;\n\n form = inject(AXFormComponent, { optional: true });\n\n host = inject(ViewContainerRef);\n\n prefix: HTMLElement;\n\n constructor() {\n super();\n\n afterNextRender(() => {\n this.calcIndentSize();\n this.setRequired();\n this.setLabelMode();\n this.listeningEvent();\n });\n\n effect(\n () => {\n this.setLabelMode();\n },\n { allowSignalWrites: true },\n );\n }\n\n calcIndentSize() {\n const prefix = (this.input as any)?.getHostElement()?.querySelector('ax-prefix') as HTMLElement;\n if (prefix) {\n this.label.getHostElement().style.insetInlineStart = prefix?.clientWidth + 'px';\n }\n }\n\n setRequired() {\n this.autoSetRequired();\n this.input?.validationRulesChange.pipe(this.unsubscriber.takeUntilDestroy).subscribe(() => {\n this.autoSetRequired();\n });\n }\n\n setLabelMode() {\n this._labelMode.set(this.form?.labelMode());\n }\n\n listeningEvent() {\n const focusEvent = this.input?.['onFocus'] as Subject<any>;\n focusEvent?.subscribe((e) => {\n // this.handleFloating('focus');\n this.host.element.nativeElement.classList.add('ax-state-focused');\n });\n //\n const blurEvent = this.input?.['onBlur'] as Subject<any>;\n blurEvent?.subscribe((e) => {\n // this.handleFloating('blur');\n this.host.element.nativeElement.classList.remove('ax-state-focused');\n });\n }\n // protected handleFloating(mode: 'focus' | 'blur') {\n // const _host = this.host.element.nativeElement as HTMLElement;\n // const placeholder = this.input;\n\n // switch (mode) {\n // case 'focus':\n // _host.classList.add('ax-state-floating');\n // this.label.getHostElement().style.insetInlineStart = 'inherit';\n\n // break;\n // case 'blur':\n // _host.classList.remove('ax-state-floating');\n\n // break;\n // }\n // }\n\n private autoSetRequired() {\n if (this.label && this.input) {\n if (this.label.required == null || this.label['autoSetRequired']) {\n this.label.required = this.input.isRequired;\n this.label['autoSetRequired'] = true;\n }\n }\n }\n\n @HostBinding('class')\n get __hostClass(): string[] {\n let hasValue;\n if (this.input) {\n if (this.input instanceof AXSelectBoxComponent) {\n hasValue = (this.input as any).value?.length;\n } else {\n hasValue = this.input.value;\n }\n }\n return [`ax-state-${this._labelMode()}-label`, `${hasValue ? 'ax-state-has-value' : ''}`];\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AXFormConfig {}\n\nexport const AX_FORM_CONFIG = new InjectionToken<AXFormConfig>(\n 'AX_FORM_CONFIG',\n {\n providedIn: 'root',\n factory: () => {\n return AXFormDefaultConfig;\n },\n }\n);\n\nexport const AXFormDefaultConfig: AXFormConfig = {};\n\nexport type PartialFormConfig = Partial<AXFormConfig>;\n\nexport function formConfig(config: PartialFormConfig = {}): AXFormConfig {\n const result = {\n ...AXFormDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { Directive, Input, OnDestroy, OnInit } from '@angular/core';\nimport { AXValuableComponent } from '@acorex/components/common';\nimport { AXValidationRuleOptions } from '@acorex/core/validation';\n\n@Directive({\n selector: 'ax-validation-rule',\n})\nexport class AXValidationRuleDirective implements OnInit, OnDestroy {\n @Input() rule: string;\n @Input() options: Omit<AXValidationRuleOptions, 'message'>;\n @Input() message: string;\n\n constructor(private host: AXValuableComponent) {}\n\n ngOnInit() {\n this.host.addValidationRule({ rule: this.rule, options: this.ruleOptions });\n }\n\n ngOnDestroy() {\n this.host.removeValidationRule({\n rule: this.rule,\n options: this.ruleOptions,\n });\n }\n\n private get ruleOptions(): AXValidationRuleOptions {\n return Object.assign(\n { message: this.message, name: this.host.name },\n this.options\n );\n }\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { AXToastService } from '@acorex/components/toast';\nimport { translateSync } from '@acorex/core/translation';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n OnDestroy,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXFormComponent, AXFormValidationEvent } from './form.component';\n\nexport type AXValidationSummaryDisplayMode = 'toast' | 'alert';\n\n@Component({\n selector: 'ax-validation-summary',\n template: `\n @if (displayMode === 'alert' && _content) {\n <ax-alert\n color=\"danger\"\n [timeOut]=\"_timeOut\"\n #a\n (onClosed)=\"_handleOnDismissed()\"\n >\n <ax-icon></ax-icon>\n <ax-title>{{ title | translate | async }}</ax-title>\n <ax-content>\n <div [innerHTML]=\"_content\"></div>\n </ax-content>\n <ax-footer>\n <ax-suffix>\n <ax-button text=\"Dismiss\" (onClick)=\"a.close()\"></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-alert>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXValidationSummaryComponent\n extends MXBaseComponent\n implements OnDestroy\n{\n protected _content?: string = null;\n private _title: string = 'validation.messages.title';\n\n @Input()\n public get title(): string {\n return this._title;\n }\n public set title(v: string) {\n this._title = v;\n }\n\n @Input()\n displayMode: AXValidationSummaryDisplayMode = 'toast';\n\n @Input()\n timeOut?: number;\n\n @Input()\n autoHide = false;\n\n protected _timeOut: number;\n\n private sub: Subscription;\n\n constructor(\n private _tosatService: AXToastService,\n @Optional()\n @Inject(AXFormComponent)\n private host: AXFormComponent\n ) {\n super();\n //\n this.sub = host.onValidate.subscribe((e: AXFormValidationEvent) => {\n if (e.result.result) {\n this._content = null;\n } else {\n const failedRules = e.result.rules.filter(\n (c) => !c.result && c.message\n );\n\n this._content = `<ul>${failedRules\n .map((c) =>\n this.formatRule({ title: c['title'] as string, message: c.message })\n )\n .join('')}</ul>`;\n this._timeOut = this.autoHide\n ? this.timeOut ?? Math.max(failedRules.length * 1000, 2000)\n : 0;\n\n if (this.displayMode == 'toast') {\n this._tosatService.show({\n color: 'danger',\n closeButton: true,\n timeOut: this._timeOut,\n timeOutProgress: true,\n content: this._content,\n title: translateSync(this.title),\n location: 'bottom-center',\n });\n }\n }\n this.cdr.markForCheck();\n });\n }\n\n private formatRule(rule: { title?: string; message: string }): string {\n return rule.title\n ? `<li><b>${rule.title}:</b> ${rule.message}</li>`\n : `<li>${rule.message}</li>`;\n }\n\n protected _handleOnDismissed() {\n this._content = null;\n }\n\n ngOnDestroy() {\n this.sub?.unsubscribe();\n }\n}\n","import { AXAlertModule } from '@acorex/components/alert';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFormFieldComponent } from './form-field.component';\nimport { AXFormComponent } from './form.component';\nimport { AXValidationRuleDirective } from './validation-rule.directive';\nimport { AXValidationSummaryComponent } from './validation-summary.component';\n\n@NgModule({\n declarations: [AXFormFieldComponent, AXFormComponent, AXValidationRuleDirective, AXValidationSummaryComponent],\n imports: [CommonModule, AXDecoratorModule, AXAlertModule, AXButtonModule, AXValidationModule, AXTranslationModule],\n exports: [AXFormFieldComponent, AXFormComponent, AXValidationRuleDirective, AXValidationSummaryComponent],\n providers: [],\n})\nexport class AXFormModule {}\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-form.mjs","sources":["../../../../libs/components/form/src/lib/form.component.ts","../../../../libs/components/form/src/lib/form-field.component.ts","../../../../libs/components/form/src/lib/form.config.ts","../../../../libs/components/form/src/lib/validation-rule.directive.ts","../../../../libs/components/form/src/lib/validation-summary.component.ts","../../../../libs/components/form/src/lib/form.module.ts","../../../../libs/components/form/src/acorex-components-form.ts"],"sourcesContent":["import { AXEvent, AXValuableComponent, MXBaseComponent } from '@acorex/components/common';\nimport { AXValidationSummary } from '@acorex/core/validation';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n InputSignal,\n OnDestroy,\n Output,\n ViewEncapsulation,\n input,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXFormValidationEvent extends AXEvent {\n result: AXValidationSummary;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport type AXFormUpdateOn = 'change' | 'blur' | 'submit';\nexport type AXFormMessageStyle = 'bottom' | 'float';\nexport type AXLabelMode = 'static' | 'floating' | 'over';\n\n/**\n * The AXForm is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-form',\n template: `<form (submit)=\"_handleSubmit($event)\" (reset)=\"_handleReset()\" class=\"ax-{{ messageStyle() }}-error\">\n <ng-content></ng-content>\n </form>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFormComponent extends MXBaseComponent implements OnDestroy {\n labelMode = input<AXLabelMode>('static');\n\n messageStyle: InputSignal<AXFormMessageStyle> = input<AXFormMessageStyle>('bottom');\n\n @Output()\n onValidate: EventEmitter<AXFormValidationEvent> = new EventEmitter<AXFormValidationEvent>();\n\n @Output()\n updateOnChange: EventEmitter<AXFormUpdateOn> = new EventEmitter<AXFormUpdateOn>();\n\n private _updateOn: AXFormUpdateOn = 'blur';\n @Input()\n public get updateOn(): AXFormUpdateOn {\n return this._updateOn;\n }\n public set updateOn(v: AXFormUpdateOn) {\n this.setOption({\n name: 'updateOn',\n value: v,\n afterCallback: () => {\n //this._bindEvents();\n },\n });\n }\n\n private _subs: Subscription[] = [];\n\n protected async _handleSubmit(e: SubmitEvent) {\n e.preventDefault();\n await this.validate();\n }\n\n protected _handleReset() {\n this.reset();\n }\n\n constructor() {\n super();\n }\n\n //TODO: check update on\n\n // ngAfterViewInit(): void {\n // //this._bindEvents();\n // }\n\n // private _bindEvents() {\n // this._clearSubs();\n // const widgets = this._getComponenets();\n // //\n // widgets.forEach((w) => {\n // if (this.updateOn == 'change') {\n // this._subs.push(\n // w.onValueChanged?.subscribe((v: AXValueChangedEvent) => {\n // if (v.isUserInteraction) w.validate();\n // }),\n // );\n // } else if (this.updateOn == 'blur') {\n // this._subs.push(\n // w.onBlur?.subscribe((v) => {\n // w.validate();\n // }),\n // );\n // }\n // });\n // }\n\n private _clearSubs() {\n this._subs.forEach((c) => c?.unsubscribe());\n this._subs = [];\n }\n\n private get fields(): AXValuableComponent[] {\n return Array.from(this.getHostElement().querySelectorAll('[ax-form-item=\"true\"]'))\n .map((c) => (c as any).__axContext__)\n .filter((c) => c != null);\n }\n\n async validate(...names: string[]): Promise<AXValidationSummary> {\n const results = await Promise.all(\n this.fields.filter((c) => names == null || names.length == 0 || names.includes(c.name)).map((field) => field.validate()),\n );\n // Merge all validation summaries into one\n const mergedSummary: AXValidationSummary = {\n result: results.every((res) => res.result),\n rules: results.flatMap((res) => res.rules),\n };\n this._emitOnValidateEvent(mergedSummary);\n return mergedSummary;\n }\n\n private _emitOnValidateEvent(e: AXValidationSummary) {\n this.onValidate.emit({\n component: this,\n result: e,\n htmlElement: this.getHostElement(),\n });\n }\n\n reset() {\n this.fields.forEach((c) => c.reset(false));\n }\n\n resetErrors() {\n this.fields.forEach((c) => c.resetErrors());\n }\n\n ngOnDestroy(): void {\n this._clearSubs();\n }\n}\n","import { AXValuableComponent, MXBaseComponent } from '@acorex/components/common';\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n ViewContainerRef,\n ViewEncapsulation,\n WritableSignal,\n afterNextRender,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXFormComponent, AXLabelMode } from './form.component';\n\n@Component({\n selector: 'ax-form-field',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./form-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXUnsubscriber],\n})\nexport class AXFormFieldComponent extends MXBaseComponent {\n labelMode = input<AXLabelMode>('static');\n\n protected _labelMode: WritableSignal<AXLabelMode> = signal(this.labelMode());\n\n private unsubscriber = inject(AXUnsubscriber);\n\n @ContentChild(AXValuableComponent)\n private input: AXValuableComponent;\n\n @ContentChild(AXLabelComponent)\n private label: AXLabelComponent;\n\n form = inject(AXFormComponent, { optional: true });\n\n host = inject(ViewContainerRef);\n\n prefix: HTMLElement;\n\n constructor() {\n super();\n\n afterNextRender(() => {\n this.calcIndentSize();\n this.setRequired();\n this.setLabelMode();\n this.listeningEvent();\n });\n\n effect(\n () => {\n this.setLabelMode();\n },\n { allowSignalWrites: true },\n );\n }\n\n calcIndentSize() {\n const prefix = (this.input as any)?.getHostElement()?.querySelector('ax-prefix') as HTMLElement;\n if (prefix) {\n this.label.getHostElement().style.insetInlineStart = prefix?.clientWidth + 'px';\n }\n }\n\n setRequired() {\n this.autoSetRequired();\n this.input?.validationRulesChange.pipe(this.unsubscriber.takeUntilDestroy).subscribe(() => {\n this.autoSetRequired();\n });\n }\n\n setLabelMode() {\n this._labelMode.set(this.form?.labelMode());\n }\n\n listeningEvent() {\n const focusEvent = this.input?.['onFocus'] as Subject<any>;\n focusEvent?.subscribe((e) => {\n // this.handleFloating('focus');\n this.host.element.nativeElement.classList.add('ax-state-focused');\n });\n //\n const blurEvent = this.input?.['onBlur'] as Subject<any>;\n blurEvent?.subscribe((e) => {\n // this.handleFloating('blur');\n this.host.element.nativeElement.classList.remove('ax-state-focused');\n });\n }\n // protected handleFloating(mode: 'focus' | 'blur') {\n // const _host = this.host.element.nativeElement as HTMLElement;\n // const placeholder = this.input;\n\n // switch (mode) {\n // case 'focus':\n // _host.classList.add('ax-state-floating');\n // this.label.getHostElement().style.insetInlineStart = 'inherit';\n\n // break;\n // case 'blur':\n // _host.classList.remove('ax-state-floating');\n\n // break;\n // }\n // }\n\n private autoSetRequired() {\n if (this.label && this.input) {\n if (this.label.required == null || this.label['autoSetRequired']) {\n this.label.required = this.input.isRequired;\n this.label['autoSetRequired'] = true;\n }\n }\n }\n\n @HostBinding('class')\n get __hostClass(): string[] {\n let hasValue;\n if (this.input) {\n if (this.input instanceof AXSelectBoxComponent) {\n hasValue = (this.input as any).value?.length;\n } else {\n hasValue = this.input.value;\n }\n }\n return [`ax-state-${this._labelMode()}-label`, `${hasValue ? 'ax-state-has-value' : ''}`];\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AXFormConfig {}\n\nexport const AX_FORM_CONFIG = new InjectionToken<AXFormConfig>(\n 'AX_FORM_CONFIG',\n {\n providedIn: 'root',\n factory: () => {\n return AXFormDefaultConfig;\n },\n }\n);\n\nexport const AXFormDefaultConfig: AXFormConfig = {};\n\nexport type PartialFormConfig = Partial<AXFormConfig>;\n\nexport function formConfig(config: PartialFormConfig = {}): AXFormConfig {\n const result = {\n ...AXFormDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { Directive, Input, OnDestroy, OnInit } from '@angular/core';\nimport { AXValuableComponent } from '@acorex/components/common';\nimport { AXValidationRuleOptions } from '@acorex/core/validation';\n\n@Directive({\n selector: 'ax-validation-rule',\n})\nexport class AXValidationRuleDirective implements OnInit, OnDestroy {\n @Input() rule: string;\n @Input() options: Omit<AXValidationRuleOptions, 'message'>;\n @Input() message: string;\n\n constructor(private host: AXValuableComponent) {}\n\n ngOnInit() {\n this.host.addValidationRule({ rule: this.rule, options: this.ruleOptions });\n }\n\n ngOnDestroy() {\n this.host.removeValidationRule({\n rule: this.rule,\n options: this.ruleOptions,\n });\n }\n\n private get ruleOptions(): AXValidationRuleOptions {\n return Object.assign(\n { message: this.message, name: this.host.name },\n this.options\n );\n }\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { AXToastService } from '@acorex/components/toast';\nimport { translateSync } from '@acorex/core/translation';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n OnDestroy,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXFormComponent, AXFormValidationEvent } from './form.component';\n\nexport type AXValidationSummaryDisplayMode = 'toast' | 'alert';\n\n@Component({\n selector: 'ax-validation-summary',\n template: `\n @if (displayMode === 'alert' && _content) {\n <ax-alert\n color=\"danger\"\n [timeOut]=\"_timeOut\"\n #a\n (onClosed)=\"_handleOnDismissed()\"\n >\n <ax-icon></ax-icon>\n <ax-title>{{ title | translate | async }}</ax-title>\n <ax-content>\n <div [innerHTML]=\"_content\"></div>\n </ax-content>\n <ax-footer>\n <ax-suffix>\n <ax-button text=\"Dismiss\" (onClick)=\"a.close()\"></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-alert>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXValidationSummaryComponent\n extends MXBaseComponent\n implements OnDestroy\n{\n protected _content?: string = null;\n private _title: string = 'validation.messages.title';\n\n @Input()\n public get title(): string {\n return this._title;\n }\n public set title(v: string) {\n this._title = v;\n }\n\n @Input()\n displayMode: AXValidationSummaryDisplayMode = 'toast';\n\n @Input()\n timeOut?: number;\n\n @Input()\n autoHide = false;\n\n protected _timeOut: number;\n\n private sub: Subscription;\n\n constructor(\n private _tosatService: AXToastService,\n @Optional()\n @Inject(AXFormComponent)\n private host: AXFormComponent\n ) {\n super();\n //\n this.sub = host.onValidate.subscribe((e: AXFormValidationEvent) => {\n if (e.result.result) {\n this._content = null;\n } else {\n const failedRules = e.result.rules.filter(\n (c) => !c.result && c.message\n );\n\n this._content = `<ul>${failedRules\n .map((c) =>\n this.formatRule({ title: c['title'] as string, message: c.message })\n )\n .join('')}</ul>`;\n this._timeOut = this.autoHide\n ? this.timeOut ?? Math.max(failedRules.length * 1000, 2000)\n : 0;\n\n if (this.displayMode == 'toast') {\n this._tosatService.show({\n color: 'danger',\n closeButton: true,\n timeOut: this._timeOut,\n timeOutProgress: true,\n content: this._content,\n title: translateSync(this.title),\n location: 'bottom-center',\n });\n }\n }\n this.cdr.markForCheck();\n });\n }\n\n private formatRule(rule: { title?: string; message: string }): string {\n return rule.title\n ? `<li><b>${rule.title}:</b> ${rule.message}</li>`\n : `<li>${rule.message}</li>`;\n }\n\n protected _handleOnDismissed() {\n this._content = null;\n }\n\n ngOnDestroy() {\n this.sub?.unsubscribe();\n }\n}\n","import { AXAlertModule } from '@acorex/components/alert';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFormFieldComponent } from './form-field.component';\nimport { AXFormComponent } from './form.component';\nimport { AXValidationRuleDirective } from './validation-rule.directive';\nimport { AXValidationSummaryComponent } from './validation-summary.component';\n\n@NgModule({\n declarations: [AXFormFieldComponent, AXFormComponent, AXValidationRuleDirective, AXValidationSummaryComponent],\n imports: [CommonModule, AXDecoratorModule, AXAlertModule, AXButtonModule, AXValidationModule, AXTranslationModule],\n exports: [AXFormFieldComponent, AXFormComponent, AXValidationRuleDirective, AXValidationSummaryComponent],\n providers: [],\n})\nexport class AXFormModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -58,7 +58,7 @@ class AXLoadingDialogComponent extends MXBaseComponent {
|
|
58
58
|
return result;
|
59
59
|
}
|
60
60
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXLoadingDialogComponent, deps: [{ token: DIALOG_DATA }, { token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
61
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXLoadingDialogComponent, selector: "ax-loading-dialog", usesInheritance: true, ngImport: i0, template: "<ax-title>{{ dialogTitle() }}</ax-title>\n\n<ax-progress-bar\n [mode]=\"data.mode\"\n [progress]=\"this.progressValue()\"\n [color]=\"progressColor()\"\n></ax-progress-bar>\n<div class=\"progress-decorators\">\n <div>{{ progressText() }}</div>\n <div>{{ progressStatus() }}</div>\n</div>\n<ax-footer>\n @for (button of data.buttons; track $index) {\n <ax-button\n [text]=\"button.text | translate | async\"\n [tabindex]=\"$index\"\n [axHotkey]=\"button.hotkey\"\n [axAutoFocus]=\"_hasAutoFocus(button)\"\n (onClick)=\"_handleButtonClick(button)\"\n [look]=\"button.look\"\n [disabled]=\"button.disabled\"\n [color]=\"button.color\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n</ax-footer>\n", styles: ["ax-loading-dialog{display:flex;flex-direction:column;gap:.5rem;width:33vw;background-color:rgba(var(--ax-color-surface));padding:1rem;border-radius:var(--ax-rounded-border-default)}ax-loading-dialog ax-title{font-weight:500;font-size:1rem;margin-bottom:.5rem}@media (min-width: 320px) and (max-width: 600px){ax-loading-dialog{width:93vw!important}}@media (min-width: 768px){ax-loading-dialog{width:55vw!important}}@media (min-width: 1280px){ax-loading-dialog{width:30vw!important}}@media (min-width: 1536px){ax-loading-dialog{width:25vw!important}}ax-loading-dialog .progress-decorators{display:flex;justify-content:space-between;font-size:.875rem}ax-loading-dialog ax-footer{justify-content:flex-end;padding-top:.75rem}\n"], dependencies: [{ kind: "directive", type: i2.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "directive", type: i2.AXHotkeyDirective, selector: "[axHotkey]", inputs: ["axHotkey"] }, { kind: "component", type: i3.AXProgressBarComponent, selector: "ax-progress-bar", inputs: ["color", "mode", "progress", "height"], outputs: ["ValueChange", "sizeChange"] }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i5.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
61
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXLoadingDialogComponent, selector: "ax-loading-dialog", usesInheritance: true, ngImport: i0, template: "<ax-title>{{ dialogTitle() }}</ax-title>\n\n<ax-progress-bar\n [mode]=\"data.mode\"\n [progress]=\"this.progressValue()\"\n [color]=\"progressColor()\"\n></ax-progress-bar>\n<div class=\"progress-decorators\">\n <div>{{ progressText() }}</div>\n <div>{{ progressStatus() }}</div>\n</div>\n<ax-footer>\n @for (button of data.buttons; track $index) {\n <ax-button\n [text]=\"button.text | translate | async\"\n [tabindex]=\"$index\"\n [axHotkey]=\"button.hotkey\"\n [axAutoFocus]=\"_hasAutoFocus(button)\"\n (onClick)=\"_handleButtonClick(button)\"\n [look]=\"button.look\"\n [disabled]=\"button.disabled\"\n [color]=\"button.color\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n</ax-footer>\n", styles: ["ax-loading-dialog{display:flex;flex-direction:column;gap:.5rem;width:33vw;background-color:rgba(var(--ax-color-surface));padding:1rem;border-radius:var(--ax-rounded-border-default)}ax-loading-dialog ax-title{font-weight:500;font-size:1rem;margin-bottom:.5rem}@media (min-width: 320px) and (max-width: 600px){ax-loading-dialog{width:93vw!important}}@media (min-width: 768px){ax-loading-dialog{width:55vw!important}}@media (min-width: 1280px){ax-loading-dialog{width:30vw!important}}@media (min-width: 1536px){ax-loading-dialog{width:25vw!important}}ax-loading-dialog .progress-decorators{display:flex;justify-content:space-between;font-size:.875rem}ax-loading-dialog ax-footer{justify-content:flex-end;padding-top:.75rem}\n"], dependencies: [{ kind: "directive", type: i2.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "directive", type: i2.AXHotkeyDirective, selector: "[axHotkey]", inputs: ["axHotkey"] }, { kind: "component", type: i3.AXProgressBarComponent, selector: "ax-progress-bar", inputs: ["color", "mode", "progress", "height"], outputs: ["ValueChange", "sizeChange"] }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i5.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
62
62
|
}
|
63
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXLoadingDialogComponent, decorators: [{
|
64
64
|
type: Component,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-loading-dialog.mjs","sources":["../../../../libs/components/loading-dialog/src/lib/loading-dialog.component.ts","../../../../libs/components/loading-dialog/src/lib/loading-dialog.component.html","../../../../libs/components/loading-dialog/src/lib/loading-dialog.service.ts","../../../../libs/components/loading-dialog/src/lib/loading-dialog.module.ts","../../../../libs/components/loading-dialog/src/acorex-components-loading-dialog.ts"],"sourcesContent":["import {\n AXComponentCloseEvent,\n AXStyleColorType,\n MXBaseComponent,\n} from '@acorex/components/common';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n ViewEncapsulation,\n WritableSignal,\n signal,\n} from '@angular/core';\nimport {\n AXLoadingDialogButtonItem,\n AXLoadingDialogConfig,\n} from './loading-dialog.class';\n\n@Component({\n selector: 'ax-loading-dialog',\n templateUrl: './loading-dialog.component.html',\n styleUrls: ['./loading-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXLoadingDialogComponent extends MXBaseComponent {\n constructor(\n @Inject(DIALOG_DATA) public data: AXLoadingDialogConfig,\n private dialogRef: DialogRef<AXComponentCloseEvent>\n ) {\n super();\n }\n protected progressText: WritableSignal<string> = signal(this.data.text);\n protected progressStatus: WritableSignal<string> = signal(this.data.status);\n protected progressColor: WritableSignal<AXStyleColorType> = signal(\n this.data.progressColor\n );\n protected dialogTitle: WritableSignal<string> = signal(this.data.title);\n protected progressValue: WritableSignal<number> = signal(\n this.data.progressValue\n );\n\n close() {\n this.dialogRef.close();\n }\n\n setProgressText(text: string) {\n this.progressText.set(text);\n }\n\n setProgressStatus(status: string) {\n this.progressStatus.set(status);\n }\n\n setProgressColor(color: AXStyleColorType) {\n this.progressColor.set(color);\n }\n\n setDialogTitle(text: string) {\n this.dialogTitle.set(text);\n }\n\n setProgressValue(value: number) {\n this.progressValue.set(value);\n }\n\n protected _handleButtonClick(button: AXLoadingDialogButtonItem) {\n if (button.onClick) {\n button.onClick({ source: button });\n }\n }\n protected _hasAutoFocus(button: AXLoadingDialogButtonItem) {\n const result =\n button.autofocus ||\n this.data.buttons.length == 1 ||\n !this.data.buttons.some((c) => c.autofocus);\n return result;\n }\n}\n","<ax-title>{{ dialogTitle() }}</ax-title>\n\n<ax-progress-bar\n [mode]=\"data.mode\"\n [progress]=\"this.progressValue()\"\n [color]=\"progressColor()\"\n></ax-progress-bar>\n<div class=\"progress-decorators\">\n <div>{{ progressText() }}</div>\n <div>{{ progressStatus() }}</div>\n</div>\n<ax-footer>\n @for (button of data.buttons; track $index) {\n <ax-button\n [text]=\"button.text | translate | async\"\n [tabindex]=\"$index\"\n [axHotkey]=\"button.hotkey\"\n [axAutoFocus]=\"_hasAutoFocus(button)\"\n (onClick)=\"_handleButtonClick(button)\"\n [look]=\"button.look\"\n [disabled]=\"button.disabled\"\n [color]=\"button.color\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n</ax-footer>\n","import { AXStyleColorType } from '@acorex/components/common';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { Injectable, inject } from '@angular/core';\nimport { AXDialogRef, AXLoadingDialogConfig } from './loading-dialog.class';\nimport { AXLoadingDialogComponent } from './loading-dialog.component';\n\n@Injectable()\nexport class AXLoadingDialogService {\n private dialog = inject(Dialog);\n\n // private data$: BehaviorSubject<AXLoadingDialogConfig> = new BehaviorSubject<AXLoadingDialogConfig>(null);\n\n show(options: AXLoadingDialogConfig): AXDialogRef {\n const dialogRef = this.dialog.open(AXLoadingDialogComponent, {\n hasBackdrop: true,\n disableClose: true,\n restoreFocus: true,\n closeOnDestroy: true,\n closeOnNavigation: true,\n ariaModal: true,\n role: 'alertdialog',\n panelClass: ['ax-animate-fadeIn'],\n data: options,\n });\n return {\n close: () => dialogRef.componentInstance?.close(),\n setProgressValue: (value: number) =>\n dialogRef.componentInstance?.setProgressValue(value),\n setDialogTitle: (text: string) =>\n dialogRef.componentInstance?.setDialogTitle(text),\n setProgressText: (text: string) =>\n dialogRef.componentInstance?.setProgressText(text),\n setProgressStatus: (status: string) =>\n dialogRef.componentInstance?.setProgressStatus(status),\n setProgressColor: (color: AXStyleColorType) =>\n dialogRef.componentInstance?.setProgressColor(color),\n };\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXProgressBarModule } from '@acorex/components/progress-bar';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXLoadingDialogComponent } from './loading-dialog.component';\nimport { AXLoadingDialogService } from './loading-dialog.service';\n\nconst COMPONENT = [AXLoadingDialogComponent];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [\n AXCommonModule,\n AXProgressBarModule,\n AXLoadingModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n AsyncPipe,\n ],\n exports: [...COMPONENT],\n providers: [AXLoadingDialogService],\n})\nexport class AXLoadingDialogModule {}\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-loading-dialog.mjs","sources":["../../../../libs/components/loading-dialog/src/lib/loading-dialog.component.ts","../../../../libs/components/loading-dialog/src/lib/loading-dialog.component.html","../../../../libs/components/loading-dialog/src/lib/loading-dialog.service.ts","../../../../libs/components/loading-dialog/src/lib/loading-dialog.module.ts","../../../../libs/components/loading-dialog/src/acorex-components-loading-dialog.ts"],"sourcesContent":["import {\n AXComponentCloseEvent,\n AXStyleColorType,\n MXBaseComponent,\n} from '@acorex/components/common';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n ViewEncapsulation,\n WritableSignal,\n signal,\n} from '@angular/core';\nimport {\n AXLoadingDialogButtonItem,\n AXLoadingDialogConfig,\n} from './loading-dialog.class';\n\n@Component({\n selector: 'ax-loading-dialog',\n templateUrl: './loading-dialog.component.html',\n styleUrls: ['./loading-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXLoadingDialogComponent extends MXBaseComponent {\n constructor(\n @Inject(DIALOG_DATA) public data: AXLoadingDialogConfig,\n private dialogRef: DialogRef<AXComponentCloseEvent>\n ) {\n super();\n }\n protected progressText: WritableSignal<string> = signal(this.data.text);\n protected progressStatus: WritableSignal<string> = signal(this.data.status);\n protected progressColor: WritableSignal<AXStyleColorType> = signal(\n this.data.progressColor\n );\n protected dialogTitle: WritableSignal<string> = signal(this.data.title);\n protected progressValue: WritableSignal<number> = signal(\n this.data.progressValue\n );\n\n close() {\n this.dialogRef.close();\n }\n\n setProgressText(text: string) {\n this.progressText.set(text);\n }\n\n setProgressStatus(status: string) {\n this.progressStatus.set(status);\n }\n\n setProgressColor(color: AXStyleColorType) {\n this.progressColor.set(color);\n }\n\n setDialogTitle(text: string) {\n this.dialogTitle.set(text);\n }\n\n setProgressValue(value: number) {\n this.progressValue.set(value);\n }\n\n protected _handleButtonClick(button: AXLoadingDialogButtonItem) {\n if (button.onClick) {\n button.onClick({ source: button });\n }\n }\n protected _hasAutoFocus(button: AXLoadingDialogButtonItem) {\n const result =\n button.autofocus ||\n this.data.buttons.length == 1 ||\n !this.data.buttons.some((c) => c.autofocus);\n return result;\n }\n}\n","<ax-title>{{ dialogTitle() }}</ax-title>\n\n<ax-progress-bar\n [mode]=\"data.mode\"\n [progress]=\"this.progressValue()\"\n [color]=\"progressColor()\"\n></ax-progress-bar>\n<div class=\"progress-decorators\">\n <div>{{ progressText() }}</div>\n <div>{{ progressStatus() }}</div>\n</div>\n<ax-footer>\n @for (button of data.buttons; track $index) {\n <ax-button\n [text]=\"button.text | translate | async\"\n [tabindex]=\"$index\"\n [axHotkey]=\"button.hotkey\"\n [axAutoFocus]=\"_hasAutoFocus(button)\"\n (onClick)=\"_handleButtonClick(button)\"\n [look]=\"button.look\"\n [disabled]=\"button.disabled\"\n [color]=\"button.color\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n</ax-footer>\n","import { AXStyleColorType } from '@acorex/components/common';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { Injectable, inject } from '@angular/core';\nimport { AXDialogRef, AXLoadingDialogConfig } from './loading-dialog.class';\nimport { AXLoadingDialogComponent } from './loading-dialog.component';\n\n@Injectable()\nexport class AXLoadingDialogService {\n private dialog = inject(Dialog);\n\n // private data$: BehaviorSubject<AXLoadingDialogConfig> = new BehaviorSubject<AXLoadingDialogConfig>(null);\n\n show(options: AXLoadingDialogConfig): AXDialogRef {\n const dialogRef = this.dialog.open(AXLoadingDialogComponent, {\n hasBackdrop: true,\n disableClose: true,\n restoreFocus: true,\n closeOnDestroy: true,\n closeOnNavigation: true,\n ariaModal: true,\n role: 'alertdialog',\n panelClass: ['ax-animate-fadeIn'],\n data: options,\n });\n return {\n close: () => dialogRef.componentInstance?.close(),\n setProgressValue: (value: number) =>\n dialogRef.componentInstance?.setProgressValue(value),\n setDialogTitle: (text: string) =>\n dialogRef.componentInstance?.setDialogTitle(text),\n setProgressText: (text: string) =>\n dialogRef.componentInstance?.setProgressText(text),\n setProgressStatus: (status: string) =>\n dialogRef.componentInstance?.setProgressStatus(status),\n setProgressColor: (color: AXStyleColorType) =>\n dialogRef.componentInstance?.setProgressColor(color),\n };\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXProgressBarModule } from '@acorex/components/progress-bar';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXLoadingDialogComponent } from './loading-dialog.component';\nimport { AXLoadingDialogService } from './loading-dialog.service';\n\nconst COMPONENT = [AXLoadingDialogComponent];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [\n AXCommonModule,\n AXProgressBarModule,\n AXLoadingModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n AsyncPipe,\n ],\n exports: [...COMPONENT],\n providers: [AXLoadingDialogService],\n})\nexport class AXLoadingDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -95,7 +95,7 @@ class AXNotificationComponent extends MXBaseComponent {
|
|
95
95
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXNotificationComponent, deps: [{ token: DIALOG_DATA }, { token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
96
96
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXNotificationComponent, selector: "ax-notification", host: { properties: { "class": "this.__hostClass" } }, providers: [
|
97
97
|
{ provide: AXClosbaleComponent, useExisting: AXNotificationComponent },
|
98
|
-
], usesInheritance: true, ngImport: i0, template: "<span class=\"ax-notification-icon ax-icon-solid {{ _icon }}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ config.title | translate | async }}</div>\n @if(_selectedPortal){\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n } @else{\n <div>{{ config.content }}</div>\n }\n\n @if(config.buttons?.length){\n <div class=\"ax-notification-buttons\">\n @for(button of config.buttons; track $index){\n <ax-button class=\"ax-xs\" [text]=\"button.text | translate | async\" [color]=\"button.color\" [look]=\"button.look\"\n [disabled]=\"button.disabled\" (onClick)=\"_handleButtonClick(button)\">\n @if(button.loading){\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </div>\n }\n\n</div>\n@if(config.closeButton){\n<ax-close-button></ax-close-button>\n}\n@if(config.timeOutProgress && config.timeOut){\n<div class=\"ax-notification-progress\" [style.animation-duration.ms]=\"config.timeOut\"></div>\n}", styles: ["ax-notification{position:relative;display:flex;width:98vw;overflow:hidden;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));padding:1rem;font-size:.875rem;line-height:1.25rem;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow)}@media (min-width: 768px){ax-notification{width:24rem}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem;line-height:1.75rem}ax-notification .ax-notification-icon{padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex:1 1 0%;flex-direction:column;font-weight:400;color:rgba(var(--ax-color-on-surface-fore))}ax-notification .ax-notification-content .ax-notification-title{margin-bottom:.25rem;font-weight:500;line-height:1.5}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-notification-progress{position:absolute;bottom:0;inset-inline-end:0px;inset-inline-start:0px;height:.25rem;width:100%;animation-duration:4s;animation-timing-function:linear;animation-name:progressBar;background-color:rgba(var(--ax-color-border-default))}@keyframes progressBar{0%{width:100%}to{width:0%}}ax-notification.ax-primary .ax-notification-icon{color:rgba(var(--ax-color-primary-500))}ax-notification.ax-primary .ax-notification-progress{background-color:rgba(var(--ax-color-primary-500))}ax-notification.ax-secondary .ax-notification-icon{color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-secondary .ax-notification-progress{background-color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-success .ax-notification-icon{color:rgba(var(--ax-color-success-500))}ax-notification.ax-success .ax-notification-progress{background-color:rgba(var(--ax-color-success-500))}ax-notification.ax-warning .ax-notification-icon{color:rgba(var(--ax-color-warning-500))}ax-notification.ax-warning .ax-notification-progress{background-color:rgba(var(--ax-color-warning-500))}ax-notification.ax-danger .ax-notification-icon{color:rgba(var(--ax-color-danger-500))}ax-notification.ax-danger .ax-notification-progress{background-color:rgba(var(--ax-color-danger-500))}ax-notification.ax-info .ax-notification-icon{color:rgba(var(--ax-color-info-500))}ax-notification.ax-info .ax-notification-progress{background-color:rgba(var(--ax-color-info-500))}.ax-dark ax-notification.ax-primary .ax-notification-icon{color:rgba(var(--ax-color-primary-200))}.ax-dark ax-notification.ax-primary .ax-notification-progress{background-color:rgba(var(--ax-color-primary-200))}.ax-dark ax-notification.ax-secondary .ax-notification-icon{color:rgba(var(--ax-color-secondary-200))}.ax-dark ax-notification.ax-secondary .ax-notification-progress{background-color:rgba(var(--ax-color-secondary-200))}.ax-dark ax-notification.ax-success .ax-notification-icon{color:rgba(var(--ax-color-success-200))}.ax-dark ax-notification.ax-success .ax-notification-progress{background-color:rgba(var(--ax-color-success-200))}.ax-dark ax-notification.ax-warning .ax-notification-icon{color:rgba(var(--ax-color-warning-200))}.ax-dark ax-notification.ax-warning .ax-notification-progress{background-color:rgba(var(--ax-color-warning-200))}.ax-dark ax-notification.ax-danger .ax-notification-icon{color:rgba(var(--ax-color-danger-200))}.ax-dark ax-notification.ax-danger .ax-notification-progress{background-color:rgba(var(--ax-color-danger-200))}.ax-dark ax-notification.ax-info .ax-notification-icon{color:rgba(var(--ax-color-info-200))}.ax-dark ax-notification.ax-info .ax-notification-progress{background-color:rgba(var(--ax-color-info-200))}\n"], dependencies: [{ kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i5.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
98
|
+
], usesInheritance: true, ngImport: i0, template: "<span class=\"ax-notification-icon ax-icon-solid {{ _icon }}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ config.title | translate | async }}</div>\n @if(_selectedPortal){\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n } @else{\n <div>{{ config.content }}</div>\n }\n\n @if(config.buttons?.length){\n <div class=\"ax-notification-buttons\">\n @for(button of config.buttons; track $index){\n <ax-button class=\"ax-xs\" [text]=\"button.text | translate | async\" [color]=\"button.color\" [look]=\"button.look\"\n [disabled]=\"button.disabled\" (onClick)=\"_handleButtonClick(button)\">\n @if(button.loading){\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </div>\n }\n\n</div>\n@if(config.closeButton){\n<ax-close-button></ax-close-button>\n}\n@if(config.timeOutProgress && config.timeOut){\n<div class=\"ax-notification-progress\" [style.animation-duration.ms]=\"config.timeOut\"></div>\n}", styles: ["ax-notification{position:relative;display:flex;width:98vw;overflow:hidden;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));padding:1rem;font-size:.875rem;line-height:1.25rem;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow)}@media (min-width: 768px){ax-notification{width:24rem}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem;line-height:1.75rem}ax-notification .ax-notification-icon{padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex:1 1 0%;flex-direction:column;font-weight:400;color:rgba(var(--ax-color-on-surface-fore))}ax-notification .ax-notification-content .ax-notification-title{margin-bottom:.25rem;font-weight:500;line-height:1.5}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-notification-progress{position:absolute;bottom:0;inset-inline-end:0px;inset-inline-start:0px;height:.25rem;width:100%;animation-duration:4s;animation-timing-function:linear;animation-name:progressBar;background-color:rgba(var(--ax-color-border-default))}@keyframes progressBar{0%{width:100%}to{width:0%}}ax-notification.ax-primary .ax-notification-icon{color:rgba(var(--ax-color-primary-500))}ax-notification.ax-primary .ax-notification-progress{background-color:rgba(var(--ax-color-primary-500))}ax-notification.ax-secondary .ax-notification-icon{color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-secondary .ax-notification-progress{background-color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-success .ax-notification-icon{color:rgba(var(--ax-color-success-500))}ax-notification.ax-success .ax-notification-progress{background-color:rgba(var(--ax-color-success-500))}ax-notification.ax-warning .ax-notification-icon{color:rgba(var(--ax-color-warning-500))}ax-notification.ax-warning .ax-notification-progress{background-color:rgba(var(--ax-color-warning-500))}ax-notification.ax-danger .ax-notification-icon{color:rgba(var(--ax-color-danger-500))}ax-notification.ax-danger .ax-notification-progress{background-color:rgba(var(--ax-color-danger-500))}ax-notification.ax-info .ax-notification-icon{color:rgba(var(--ax-color-info-500))}ax-notification.ax-info .ax-notification-progress{background-color:rgba(var(--ax-color-info-500))}.ax-dark ax-notification.ax-primary .ax-notification-icon{color:rgba(var(--ax-color-primary-200))}.ax-dark ax-notification.ax-primary .ax-notification-progress{background-color:rgba(var(--ax-color-primary-200))}.ax-dark ax-notification.ax-secondary .ax-notification-icon{color:rgba(var(--ax-color-secondary-200))}.ax-dark ax-notification.ax-secondary .ax-notification-progress{background-color:rgba(var(--ax-color-secondary-200))}.ax-dark ax-notification.ax-success .ax-notification-icon{color:rgba(var(--ax-color-success-200))}.ax-dark ax-notification.ax-success .ax-notification-progress{background-color:rgba(var(--ax-color-success-200))}.ax-dark ax-notification.ax-warning .ax-notification-icon{color:rgba(var(--ax-color-warning-200))}.ax-dark ax-notification.ax-warning .ax-notification-progress{background-color:rgba(var(--ax-color-warning-200))}.ax-dark ax-notification.ax-danger .ax-notification-icon{color:rgba(var(--ax-color-danger-200))}.ax-dark ax-notification.ax-danger .ax-notification-progress{background-color:rgba(var(--ax-color-danger-200))}.ax-dark ax-notification.ax-info .ax-notification-icon{color:rgba(var(--ax-color-info-200))}.ax-dark ax-notification.ax-info .ax-notification-progress{background-color:rgba(var(--ax-color-info-200))}\n"], dependencies: [{ kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i5.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
99
99
|
}
|
100
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXNotificationComponent, decorators: [{
|
101
101
|
type: Component,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-notification.mjs","sources":["../../../../libs/components/notification/src/lib/notification.component.ts","../../../../libs/components/notification/src/lib/notification.component.html","../../../../libs/components/notification/src/lib/notification.config.ts","../../../../libs/components/notification/src/lib/notification.service.ts","../../../../libs/components/notification/src/lib/notification.module.ts","../../../../libs/components/notification/src/acorex-components-notification.ts"],"sourcesContent":["import {\n AXClosbaleComponent,\n AXComponentCloseEvent,\n MXBaseComponent,\n} from '@acorex/components/common';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport {\n ComponentPortal,\n ComponentType,\n Portal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Inject,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n AXNotificationButtonItem,\n AXNotificationData,\n} from './notification.class';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXClosbaleComponent, useExisting: AXNotificationComponent },\n ],\n})\nexport class AXNotificationComponent extends MXBaseComponent {\n _selectedPortal: Portal<unknown>;\n _icon: string;\n\n /**\n * @ignore\n */\n constructor(\n @Inject(DIALOG_DATA)\n public config: AXNotificationData,\n private dialogRef: DialogRef<AXComponentCloseEvent>\n ) {\n super();\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this._initContent();\n this._initIcon();\n this._handleTimeOut();\n }\n\n private _handleTimeOut() {\n if (this.config.timeOut) {\n setTimeout(() => {\n this.close();\n }, this.config.timeOut);\n }\n }\n\n private _initContent() {\n if (this.config.content instanceof TemplateRef) {\n this._selectedPortal = new TemplatePortal(\n this.config.content as TemplateRef<unknown>,\n this.getViewContainer()\n );\n this.cdr.markForCheck();\n } else if (typeof this.config.content === 'function') {\n this._selectedPortal = new ComponentPortal(\n this.config.content as ComponentType<unknown>\n );\n this.cdr.markForCheck();\n }\n }\n\n private _initIcon() {\n if (!this.config.icon) {\n switch (this.config.color) {\n case 'success':\n this._icon = 'ax-icon ax-icon-check-circle';\n break;\n case 'danger':\n this._icon = 'ax-icon ax-icon-error';\n break;\n case 'warning':\n this._icon = 'ax-icon ax-icon-warning';\n break;\n case 'info':\n this._icon = 'ax-icon ax-icon-info';\n break;\n default:\n this._icon = this.config.icon || 'ax-icon ax-icon-check-circle';\n break;\n }\n } else {\n this._icon = this.config.icon;\n }\n }\n\n protected _handleButtonClick(button: AXNotificationButtonItem) {\n if (button.onClick) {\n button.onClick({ source: button });\n }\n }\n\n @HostBinding('class')\n private get __hostClass(): string {\n return `ax-${this.config.color}`;\n }\n\n close() {\n this.dialogRef.close({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n}\n","<span class=\"ax-notification-icon ax-icon-solid {{ _icon }}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ config.title | translate | async }}</div>\n @if(_selectedPortal){\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n } @else{\n <div>{{ config.content }}</div>\n }\n\n @if(config.buttons?.length){\n <div class=\"ax-notification-buttons\">\n @for(button of config.buttons; track $index){\n <ax-button class=\"ax-xs\" [text]=\"button.text | translate | async\" [color]=\"button.color\" [look]=\"button.look\"\n [disabled]=\"button.disabled\" (onClick)=\"_handleButtonClick(button)\">\n @if(button.loading){\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </div>\n }\n\n</div>\n@if(config.closeButton){\n<ax-close-button></ax-close-button>\n}\n@if(config.timeOutProgress && config.timeOut){\n<div class=\"ax-notification-progress\" [style.animation-duration.ms]=\"config.timeOut\"></div>\n}","import { AXLocation } from '@acorex/components/common';\nimport { InjectionToken } from '@angular/core';\n\nexport interface AXNotificationConfig {\n gap: number;\n timeOut: number;\n timeOutProgress: boolean;\n location: AXLocation;\n closeButton: boolean;\n}\n\nexport const AX_NOTIFICATION_CONFIG = new InjectionToken<AXNotificationConfig>(\n 'AX_NOTIFICATION_CONFIG',\n {\n providedIn: 'root',\n factory: () => AXNotificationDefaultConfig,\n }\n);\n\nexport const AXNotificationDefaultConfig: AXNotificationConfig = {\n gap: 5,\n timeOut: 2500,\n timeOutProgress: true,\n closeButton: true,\n location: 'top-end',\n};\n\nexport type PartialNotificationConfig = Partial<AXNotificationConfig>;\n\nexport function notificationConfig(\n config: PartialNotificationConfig = {}\n): AXNotificationConfig {\n const result = {\n ...AXNotificationDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { Injectable, inject } from '@angular/core';\nimport {\n AXNotificationOptions as AXNotificationDisplayConfig,\n AXNotificationRef,\n} from './notification.class';\nimport { AXNotificationComponent } from './notification.component';\nimport {\n AXNotificationConfig,\n AX_NOTIFICATION_CONFIG,\n} from './notification.config';\n\n@Injectable()\nexport class AXNotificationService {\n private dialog: Dialog = inject(Dialog);\n private defaultConfig: AXNotificationConfig = inject(AX_NOTIFICATION_CONFIG);\n\n show(config: AXNotificationDisplayConfig): AXNotificationRef {\n config = Object.assign(\n {\n closeButton: true,\n location: this.defaultConfig.location,\n },\n config\n );\n const gap = this.defaultConfig.gap;\n\n let positionStrategy = new GlobalPositionStrategy();\n const pos = this.getPosition(config.location) + gap + 'px';\n switch (config.location) {\n case 'bottom-center':\n positionStrategy = positionStrategy.bottom(pos).centerHorizontally();\n break;\n case 'bottom-end':\n positionStrategy = positionStrategy.bottom(pos).right(gap + 'px');\n break;\n case 'bottom-start':\n positionStrategy = positionStrategy.bottom(pos).left(gap + 'px');\n break;\n case 'top-center':\n positionStrategy = positionStrategy.top(pos).centerHorizontally();\n break;\n case 'top-end':\n positionStrategy = positionStrategy.top(pos).right(gap + 'px');\n break;\n case 'top-start':\n positionStrategy = positionStrategy.top(pos).left(gap + 'px');\n break;\n case 'center-start':\n positionStrategy = positionStrategy.centerVertically().left(gap + 'px');\n break;\n case 'center-end':\n positionStrategy = positionStrategy\n .centerVertically()\n .right(gap + 'px');\n break;\n default:\n break;\n }\n\n const dialogRef = this.dialog.open(AXNotificationComponent, {\n data: config,\n autoFocus: '__no_element__',\n restoreFocus: false,\n role: 'dialog',\n ariaModal: true,\n closeOnNavigation: true,\n closeOnDestroy: true,\n hasBackdrop: false,\n panelClass: [\n 'ax-animate-animated',\n 'ax-animate-fadeIn',\n 'ax-animate-faster',\n ],\n positionStrategy: positionStrategy,\n });\n\n const toastRef = dialogRef.componentInstance as AXNotificationComponent;\n dialogRef.closed.subscribe(() => {\n this.reposition();\n });\n\n return {\n close: () => {\n toastRef.close();\n },\n };\n }\n\n public hideAll() {\n this.dialog.closeAll();\n }\n\n private reposition(): void {\n //TODO: reposition vertically afer close toast\n }\n\n private getPosition(location: string) {\n const list = this.dialog.openDialogs\n .map((c) => c.componentInstance as AXNotificationComponent)\n .filter((c) => c.config.location == location);\n if (list.length == 0) return 0;\n if (location.split('-')[0] == 'bottom') {\n return (\n window.innerHeight - list[list.length - 1].getHostElement().offsetTop\n );\n } else {\n return (\n list[list.length - 1].getHostElement().offsetTop +\n list[list.length - 1].getHostElement().offsetHeight\n );\n }\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXNotificationComponent } from './notification.component';\nimport { AXNotificationService } from './notification.service';\nimport { AXTranslationModule } from '@acorex/core/translation';\n\nconst COMPONENT = [AXNotificationComponent];\nconst MODULES = [\n CommonModule,\n PortalModule,\n AXButtonModule,\n DialogModule,\n AXLoadingModule,\n AXDecoratorModule,\n AXTranslationModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [AXNotificationService],\n})\nexport class AXNotificationModule {}\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-notification.mjs","sources":["../../../../libs/components/notification/src/lib/notification.component.ts","../../../../libs/components/notification/src/lib/notification.component.html","../../../../libs/components/notification/src/lib/notification.config.ts","../../../../libs/components/notification/src/lib/notification.service.ts","../../../../libs/components/notification/src/lib/notification.module.ts","../../../../libs/components/notification/src/acorex-components-notification.ts"],"sourcesContent":["import {\n AXClosbaleComponent,\n AXComponentCloseEvent,\n MXBaseComponent,\n} from '@acorex/components/common';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport {\n ComponentPortal,\n ComponentType,\n Portal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Inject,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n AXNotificationButtonItem,\n AXNotificationData,\n} from './notification.class';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXClosbaleComponent, useExisting: AXNotificationComponent },\n ],\n})\nexport class AXNotificationComponent extends MXBaseComponent {\n _selectedPortal: Portal<unknown>;\n _icon: string;\n\n /**\n * @ignore\n */\n constructor(\n @Inject(DIALOG_DATA)\n public config: AXNotificationData,\n private dialogRef: DialogRef<AXComponentCloseEvent>\n ) {\n super();\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this._initContent();\n this._initIcon();\n this._handleTimeOut();\n }\n\n private _handleTimeOut() {\n if (this.config.timeOut) {\n setTimeout(() => {\n this.close();\n }, this.config.timeOut);\n }\n }\n\n private _initContent() {\n if (this.config.content instanceof TemplateRef) {\n this._selectedPortal = new TemplatePortal(\n this.config.content as TemplateRef<unknown>,\n this.getViewContainer()\n );\n this.cdr.markForCheck();\n } else if (typeof this.config.content === 'function') {\n this._selectedPortal = new ComponentPortal(\n this.config.content as ComponentType<unknown>\n );\n this.cdr.markForCheck();\n }\n }\n\n private _initIcon() {\n if (!this.config.icon) {\n switch (this.config.color) {\n case 'success':\n this._icon = 'ax-icon ax-icon-check-circle';\n break;\n case 'danger':\n this._icon = 'ax-icon ax-icon-error';\n break;\n case 'warning':\n this._icon = 'ax-icon ax-icon-warning';\n break;\n case 'info':\n this._icon = 'ax-icon ax-icon-info';\n break;\n default:\n this._icon = this.config.icon || 'ax-icon ax-icon-check-circle';\n break;\n }\n } else {\n this._icon = this.config.icon;\n }\n }\n\n protected _handleButtonClick(button: AXNotificationButtonItem) {\n if (button.onClick) {\n button.onClick({ source: button });\n }\n }\n\n @HostBinding('class')\n private get __hostClass(): string {\n return `ax-${this.config.color}`;\n }\n\n close() {\n this.dialogRef.close({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n}\n","<span class=\"ax-notification-icon ax-icon-solid {{ _icon }}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ config.title | translate | async }}</div>\n @if(_selectedPortal){\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n } @else{\n <div>{{ config.content }}</div>\n }\n\n @if(config.buttons?.length){\n <div class=\"ax-notification-buttons\">\n @for(button of config.buttons; track $index){\n <ax-button class=\"ax-xs\" [text]=\"button.text | translate | async\" [color]=\"button.color\" [look]=\"button.look\"\n [disabled]=\"button.disabled\" (onClick)=\"_handleButtonClick(button)\">\n @if(button.loading){\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </div>\n }\n\n</div>\n@if(config.closeButton){\n<ax-close-button></ax-close-button>\n}\n@if(config.timeOutProgress && config.timeOut){\n<div class=\"ax-notification-progress\" [style.animation-duration.ms]=\"config.timeOut\"></div>\n}","import { AXLocation } from '@acorex/components/common';\nimport { InjectionToken } from '@angular/core';\n\nexport interface AXNotificationConfig {\n gap: number;\n timeOut: number;\n timeOutProgress: boolean;\n location: AXLocation;\n closeButton: boolean;\n}\n\nexport const AX_NOTIFICATION_CONFIG = new InjectionToken<AXNotificationConfig>(\n 'AX_NOTIFICATION_CONFIG',\n {\n providedIn: 'root',\n factory: () => AXNotificationDefaultConfig,\n }\n);\n\nexport const AXNotificationDefaultConfig: AXNotificationConfig = {\n gap: 5,\n timeOut: 2500,\n timeOutProgress: true,\n closeButton: true,\n location: 'top-end',\n};\n\nexport type PartialNotificationConfig = Partial<AXNotificationConfig>;\n\nexport function notificationConfig(\n config: PartialNotificationConfig = {}\n): AXNotificationConfig {\n const result = {\n ...AXNotificationDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { Injectable, inject } from '@angular/core';\nimport {\n AXNotificationOptions as AXNotificationDisplayConfig,\n AXNotificationRef,\n} from './notification.class';\nimport { AXNotificationComponent } from './notification.component';\nimport {\n AXNotificationConfig,\n AX_NOTIFICATION_CONFIG,\n} from './notification.config';\n\n@Injectable()\nexport class AXNotificationService {\n private dialog: Dialog = inject(Dialog);\n private defaultConfig: AXNotificationConfig = inject(AX_NOTIFICATION_CONFIG);\n\n show(config: AXNotificationDisplayConfig): AXNotificationRef {\n config = Object.assign(\n {\n closeButton: true,\n location: this.defaultConfig.location,\n },\n config\n );\n const gap = this.defaultConfig.gap;\n\n let positionStrategy = new GlobalPositionStrategy();\n const pos = this.getPosition(config.location) + gap + 'px';\n switch (config.location) {\n case 'bottom-center':\n positionStrategy = positionStrategy.bottom(pos).centerHorizontally();\n break;\n case 'bottom-end':\n positionStrategy = positionStrategy.bottom(pos).right(gap + 'px');\n break;\n case 'bottom-start':\n positionStrategy = positionStrategy.bottom(pos).left(gap + 'px');\n break;\n case 'top-center':\n positionStrategy = positionStrategy.top(pos).centerHorizontally();\n break;\n case 'top-end':\n positionStrategy = positionStrategy.top(pos).right(gap + 'px');\n break;\n case 'top-start':\n positionStrategy = positionStrategy.top(pos).left(gap + 'px');\n break;\n case 'center-start':\n positionStrategy = positionStrategy.centerVertically().left(gap + 'px');\n break;\n case 'center-end':\n positionStrategy = positionStrategy\n .centerVertically()\n .right(gap + 'px');\n break;\n default:\n break;\n }\n\n const dialogRef = this.dialog.open(AXNotificationComponent, {\n data: config,\n autoFocus: '__no_element__',\n restoreFocus: false,\n role: 'dialog',\n ariaModal: true,\n closeOnNavigation: true,\n closeOnDestroy: true,\n hasBackdrop: false,\n panelClass: [\n 'ax-animate-animated',\n 'ax-animate-fadeIn',\n 'ax-animate-faster',\n ],\n positionStrategy: positionStrategy,\n });\n\n const toastRef = dialogRef.componentInstance as AXNotificationComponent;\n dialogRef.closed.subscribe(() => {\n this.reposition();\n });\n\n return {\n close: () => {\n toastRef.close();\n },\n };\n }\n\n public hideAll() {\n this.dialog.closeAll();\n }\n\n private reposition(): void {\n //TODO: reposition vertically afer close toast\n }\n\n private getPosition(location: string) {\n const list = this.dialog.openDialogs\n .map((c) => c.componentInstance as AXNotificationComponent)\n .filter((c) => c.config.location == location);\n if (list.length == 0) return 0;\n if (location.split('-')[0] == 'bottom') {\n return (\n window.innerHeight - list[list.length - 1].getHostElement().offsetTop\n );\n } else {\n return (\n list[list.length - 1].getHostElement().offsetTop +\n list[list.length - 1].getHostElement().offsetHeight\n );\n }\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXNotificationComponent } from './notification.component';\nimport { AXNotificationService } from './notification.service';\nimport { AXTranslationModule } from '@acorex/core/translation';\n\nconst COMPONENT = [AXNotificationComponent];\nconst MODULES = [\n CommonModule,\n PortalModule,\n AXButtonModule,\n DialogModule,\n AXLoadingModule,\n AXDecoratorModule,\n AXTranslationModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [AXNotificationService],\n})\nexport class AXNotificationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { AXEvent, MXValueComponent, MXLookComponent } from '@acorex/components/common';
|
2
2
|
import * as i0 from '@angular/core';
|
3
|
-
import {
|
3
|
+
import { model, output, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';
|
4
4
|
import * as i2 from '@angular/forms';
|
5
5
|
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
6
6
|
import { classes } from 'polytype';
|
@@ -13,40 +13,35 @@ class AXOtpCompletedEvent extends AXEvent {
|
|
13
13
|
class AXOtpComponent extends classes((MXValueComponent), MXLookComponent) {
|
14
14
|
constructor() {
|
15
15
|
super(...arguments);
|
16
|
+
this.length = model();
|
17
|
+
this.onCompleted = output();
|
18
|
+
this.inputValues = [];
|
16
19
|
this.inputs = [];
|
17
|
-
this.lengthChange = new EventEmitter();
|
18
|
-
this.onCompleted = new EventEmitter();
|
19
|
-
this._numbers = [];
|
20
20
|
}
|
21
|
-
|
22
|
-
|
21
|
+
ngOnInit() {
|
22
|
+
super.ngOnInit();
|
23
|
+
this._render();
|
23
24
|
}
|
24
|
-
|
25
|
-
this.
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
25
|
+
ngAfterViewInit() {
|
26
|
+
this.calcFontSize();
|
27
|
+
this.mapValueToInputs();
|
28
|
+
}
|
29
|
+
mapValueToInputs() {
|
30
|
+
this._emitOnComplete();
|
31
|
+
if (!this.value)
|
32
|
+
return;
|
33
|
+
this.value.split('').map((v, i) => {
|
34
|
+
this.inputValues[i] = +v;
|
32
35
|
});
|
33
36
|
}
|
34
37
|
reset() {
|
35
|
-
this.
|
36
|
-
this.reset();
|
37
|
-
}
|
38
|
-
ngOnInit() {
|
39
|
-
super.ngOnInit();
|
40
|
-
this._render();
|
38
|
+
this.inputValues = [];
|
41
39
|
}
|
42
40
|
_render() {
|
43
|
-
this.inputs = Array(this.length)
|
41
|
+
this.inputs = Array(this.length())
|
44
42
|
.fill(1)
|
45
43
|
.map((x, i) => i);
|
46
44
|
}
|
47
|
-
ngAfterViewInit() {
|
48
|
-
this.calcFontSize();
|
49
|
-
}
|
50
45
|
_handleOnInput(event, i) {
|
51
46
|
const inputs = this.getHostElement().querySelectorAll('.ax-input');
|
52
47
|
const numberRegex = /^\d+$/;
|
@@ -62,21 +57,17 @@ class AXOtpComponent extends classes((MXValueComponent), MXLookComponent) {
|
|
62
57
|
if (inputs[i + 1]) {
|
63
58
|
inputs[i + 1].select();
|
64
59
|
}
|
65
|
-
this.
|
60
|
+
this.inputValues[i] = event.target.value;
|
66
61
|
// if (this._numbers.filter((c) => c).length === this.length) {
|
67
62
|
// this.setState('success');
|
68
63
|
// } else {
|
69
64
|
// this.setState('error');
|
70
65
|
// }
|
71
|
-
this.
|
72
|
-
component: AXOtpComponent,
|
73
|
-
value: this._numbers.join(''),
|
74
|
-
isCompleted: this._numbers.filter((c) => c).length === this.length,
|
75
|
-
});
|
66
|
+
this._emitOnComplete();
|
76
67
|
}
|
77
68
|
internalSetValue(value) {
|
78
69
|
if (value) {
|
79
|
-
this.
|
70
|
+
this.inputValues = value?.toString().split('');
|
80
71
|
}
|
81
72
|
return value;
|
82
73
|
}
|
@@ -94,7 +85,7 @@ class AXOtpComponent extends classes((MXValueComponent), MXLookComponent) {
|
|
94
85
|
inputs[i - 1].select();
|
95
86
|
event.preventDefault();
|
96
87
|
}
|
97
|
-
this.
|
88
|
+
this.inputValues[i] = null;
|
98
89
|
break;
|
99
90
|
case 'ArrowRight':
|
100
91
|
if (inputs[i + 1]) {
|
@@ -110,7 +101,7 @@ class AXOtpComponent extends classes((MXValueComponent), MXLookComponent) {
|
|
110
101
|
inputs[0].focus();
|
111
102
|
break;
|
112
103
|
case 'End':
|
113
|
-
inputs[this.length - 1].select();
|
104
|
+
inputs[this.length() - 1].select();
|
114
105
|
break;
|
115
106
|
case 'ArrowUp':
|
116
107
|
case 'ArrowDown':
|
@@ -124,9 +115,9 @@ class AXOtpComponent extends classes((MXValueComponent), MXLookComponent) {
|
|
124
115
|
const isNumber = /\d+/;
|
125
116
|
if (isNumber.test(data)) {
|
126
117
|
inputs[inputs.length - 1].focus();
|
127
|
-
this.
|
118
|
+
this.inputValues = [];
|
128
119
|
for (let i = 0; i < inputs.length; i++) {
|
129
|
-
this.
|
120
|
+
this.inputValues[i] = +data[i];
|
130
121
|
}
|
131
122
|
}
|
132
123
|
event.preventDefault();
|
@@ -135,14 +126,23 @@ class AXOtpComponent extends classes((MXValueComponent), MXLookComponent) {
|
|
135
126
|
const inputs = this.getHostElement().querySelectorAll('.ax-input');
|
136
127
|
inputs[i].select();
|
137
128
|
}
|
129
|
+
_emitOnComplete() {
|
130
|
+
setTimeout(() => {
|
131
|
+
this.onCompleted.emit({
|
132
|
+
component: AXOtpComponent,
|
133
|
+
value: this.inputValues.join(''),
|
134
|
+
isCompleted: this.inputValues.filter((c) => c).length === this.length(),
|
135
|
+
});
|
136
|
+
});
|
137
|
+
}
|
138
138
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXOtpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
139
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXOtpComponent, selector: "ax-otp", inputs: { state: "state", disabled: "disabled", readonly: "readonly", look: "look", length: "length" }, outputs: { stateChange: "stateChange", disabledChange: "disabledChange",
|
139
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXOtpComponent, selector: "ax-otp", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { stateChange: "stateChange", disabledChange: "disabledChange", length: "lengthChange", onCompleted: "onCompleted" }, providers: [
|
140
140
|
{
|
141
141
|
provide: NG_VALUE_ACCESSOR,
|
142
142
|
useExisting: forwardRef(() => AXOtpComponent),
|
143
143
|
multi: true,
|
144
144
|
},
|
145
|
-
], usesInheritance: true, ngImport: i0, template: "<div
|
145
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n dir=\"ltr\"\n class=\"ax-otp-input-container ax-editor-container ax-look-{{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs.length + ', minmax(0, 1fr))' }\"\n (paste)=\"_handleOnPaste($event)\"\n>\n @for (input of inputs; let i = $index; track i) {\n <input\n class=\"ax-input\"\n type=\"number\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-success]=\"state === 'success'\"\n [class.ax-state-error]=\"state === 'error'\"\n maxlength=\"1\"\n [ngModel]=\"inputValues[i]\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (click)=\"_handleOnClick(i)\"\n (input)=\"_handleOnInput($event, i)\"\n (keydown)=\"_handleOnKeyDown($event, i)\"\n [attr.disabled]=\"disabled\"\n />\n }\n</div>\n", styles: ["ax-otp{display:block}ax-otp .ax-otp-input-container{display:grid;gap:.5rem;position:relative}ax-otp .ax-otp-input-container.ax-editor-container{height:auto;border-style:none;outline-color:transparent;overflow:initial;background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container:focus-within,ax-otp .ax-otp-input-container.ax-editor-container:focus{border:none!important;box-shadow:none!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-input-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500));border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500));border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error .ax-input::placeholder,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input{border-radius:0;border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input:focus-within{border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input{border-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-on-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error{background-color:rgba(var(--ax-color-danger-50));color:rgba(var(--ax-color-danger-fore-tint))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container .ax-input{aspect-ratio:1/1;overflow:hidden;text-align:center;font-size:var(--font-size, 2rem)}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:read-only{cursor:text;opacity:.75}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:disabled{cursor:not-allowed;opacity:.5}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]{-moz-appearance:textfield}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-inner-spin-button,ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
146
146
|
}
|
147
147
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXOtpComponent, decorators: [{
|
148
148
|
type: Component,
|
@@ -152,14 +152,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
152
152
|
useExisting: forwardRef(() => AXOtpComponent),
|
153
153
|
multi: true,
|
154
154
|
},
|
155
|
-
], template: "<div
|
156
|
-
}]
|
157
|
-
type: Output
|
158
|
-
}], length: [{
|
159
|
-
type: Input
|
160
|
-
}], onCompleted: [{
|
161
|
-
type: Output
|
162
|
-
}] } });
|
155
|
+
], template: "<div\n dir=\"ltr\"\n class=\"ax-otp-input-container ax-editor-container ax-look-{{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs.length + ', minmax(0, 1fr))' }\"\n (paste)=\"_handleOnPaste($event)\"\n>\n @for (input of inputs; let i = $index; track i) {\n <input\n class=\"ax-input\"\n type=\"number\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-success]=\"state === 'success'\"\n [class.ax-state-error]=\"state === 'error'\"\n maxlength=\"1\"\n [ngModel]=\"inputValues[i]\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (click)=\"_handleOnClick(i)\"\n (input)=\"_handleOnInput($event, i)\"\n (keydown)=\"_handleOnKeyDown($event, i)\"\n [attr.disabled]=\"disabled\"\n />\n }\n</div>\n", styles: ["ax-otp{display:block}ax-otp .ax-otp-input-container{display:grid;gap:.5rem;position:relative}ax-otp .ax-otp-input-container.ax-editor-container{height:auto;border-style:none;outline-color:transparent;overflow:initial;background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container:focus-within,ax-otp .ax-otp-input-container.ax-editor-container:focus{border:none!important;box-shadow:none!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-input-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500));border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500));border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error .ax-input::placeholder,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input{border-radius:0;border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input:focus-within{border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input{border-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-on-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error{background-color:rgba(var(--ax-color-danger-50));color:rgba(var(--ax-color-danger-fore-tint))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container .ax-input{aspect-ratio:1/1;overflow:hidden;text-align:center;font-size:var(--font-size, 2rem)}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:read-only{cursor:text;opacity:.75}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:disabled{cursor:not-allowed;opacity:.5}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]{-moz-appearance:textfield}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-inner-spin-button,ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"] }]
|
156
|
+
}] });
|
163
157
|
|
164
158
|
const COMPONENT = [AXOtpComponent];
|
165
159
|
const MODULES = [CommonModule, FormsModule];
|