quang 21.1.2 → 21.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/fesm2022/quang-auth.mjs +25 -25
  2. package/fesm2022/quang-auth.mjs.map +1 -1
  3. package/fesm2022/quang-components-autocomplete.mjs +92 -51
  4. package/fesm2022/quang-components-autocomplete.mjs.map +1 -1
  5. package/fesm2022/quang-components-checkbox.mjs +8 -8
  6. package/fesm2022/quang-components-checkbox.mjs.map +1 -1
  7. package/fesm2022/quang-components-date.mjs +38 -38
  8. package/fesm2022/quang-components-date.mjs.map +1 -1
  9. package/fesm2022/quang-components-input.mjs +16 -16
  10. package/fesm2022/quang-components-input.mjs.map +1 -1
  11. package/fesm2022/quang-components-paginator.mjs +28 -28
  12. package/fesm2022/quang-components-paginator.mjs.map +1 -1
  13. package/fesm2022/quang-components-radio-group.mjs +10 -9
  14. package/fesm2022/quang-components-radio-group.mjs.map +1 -1
  15. package/fesm2022/quang-components-select.mjs +15 -15
  16. package/fesm2022/quang-components-select.mjs.map +1 -1
  17. package/fesm2022/quang-components-shared.mjs +56 -54
  18. package/fesm2022/quang-components-shared.mjs.map +1 -1
  19. package/fesm2022/quang-components-table.mjs +19 -19
  20. package/fesm2022/quang-components-table.mjs.map +1 -1
  21. package/fesm2022/quang-components-tabs.mjs +5 -5
  22. package/fesm2022/quang-components-tabs.mjs.map +1 -1
  23. package/fesm2022/quang-components-wysiwyg.mjs +33 -33
  24. package/fesm2022/quang-components-wysiwyg.mjs.map +1 -1
  25. package/fesm2022/quang-device.mjs +3 -3
  26. package/fesm2022/quang-loader.mjs +8 -8
  27. package/fesm2022/quang-loader.mjs.map +1 -1
  28. package/fesm2022/quang-overlay-modal.mjs +21 -21
  29. package/fesm2022/quang-overlay-modal.mjs.map +1 -1
  30. package/fesm2022/quang-overlay-popover.mjs +12 -12
  31. package/fesm2022/quang-overlay-popover.mjs.map +1 -1
  32. package/fesm2022/quang-overlay-shared.mjs +33 -33
  33. package/fesm2022/quang-overlay-shared.mjs.map +1 -1
  34. package/fesm2022/quang-overlay-toast.mjs +10 -10
  35. package/fesm2022/quang-overlay-toast.mjs.map +1 -1
  36. package/fesm2022/quang-overlay-tooltip.mjs +14 -14
  37. package/fesm2022/quang-overlay-tooltip.mjs.map +1 -1
  38. package/fesm2022/quang-translation.mjs +6 -6
  39. package/package.json +3 -2
  40. package/types/quang-components-autocomplete.d.ts +5 -0
  41. package/types/quang-components-radio-group.d.ts +1 -1
  42. package/types/quang-components-shared.d.ts +3 -1
  43. package/types/quang-forms.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"quang-overlay-toast.mjs","sources":["../../../projects/quang/overlay/toast/toast.service.ts","../../../projects/quang/overlay/toast/toast.component.ts","../../../projects/quang/overlay/toast/toast.component.html","../../../projects/quang/overlay/toast/quang-overlay-toast.ts"],"sourcesContent":["import { Injectable, TemplateRef, computed, signal } from '@angular/core'\n\nimport { patchState, signalState } from '@ngrx/signals'\n\nexport interface ToastData {\n type: 'success' | 'warning' | 'error'\n title?: string\n position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'center' | 'top-center' | 'bottom-center'\n timing: number\n text?: string\n textValue?: string\n showCloseButton?: boolean\n date?: Date\n dateFormat?: string\n customTemplate?: TemplateRef<unknown>\n customIcon?: string\n hideHeader?: boolean\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class QuangToastService {\n private toastState = signalState({\n count: 0,\n currentTimeout: null as ReturnType<typeof setTimeout> | null,\n })\n\n public isShowing = computed(() => this.toastState.count() > 0)\n\n count = this.toastState.count\n currentTimeout = this.toastState.currentTimeout\n\n public openToast(toastData: ToastData): void {\n patchState(this.toastState, {\n count: this.count() + 1,\n })\n\n this.currentToast.set(toastData)\n\n if (this.count() > 1) {\n const currentTimeout = this.currentTimeout()\n if (currentTimeout) {\n clearTimeout(currentTimeout)\n }\n patchState(this.toastState, {\n count: this.count() - 1,\n currentTimeout: null,\n })\n }\n patchState(this.toastState, {\n currentTimeout: setTimeout(() => {\n this.closeToast()\n }, toastData.timing),\n })\n }\n\n public closeToast(): void {\n this.currentToast.set(null)\n patchState(this.toastState, { count: this.count() - 1 })\n }\n\n public currentToast = signal<ToastData | null>(null)\n}\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { DatePipe, NgClass, NgTemplateOutlet } from '@angular/common'\nimport { ChangeDetectionStrategy, Component, inject, input, signal } from '@angular/core'\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop'\n\nimport { TranslocoPipe } from '@jsverse/transloco'\nimport { map, of, switchAll, timer } from 'rxjs'\n\nimport { QuangToastService } from './toast.service'\n\n@Component({\n selector: 'quang-toast',\n imports: [OverlayModule, NgClass, TranslocoPipe, DatePipe, NgTemplateOutlet],\n templateUrl: './toast.component.html',\n styleUrl: './toast.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n/**\n * Toast component that can be displayed by calling the `QuangToastService.openToast()` method,\n * passing an object of config {@link ToastData}.\n *\n * @usageNotes\n * The {@link ToastData.customTemplate} property is used to display the custom template inside the toast.\n *\n * The toast header can be hidden by setting the {@link ToastData.hideHeader} boolean to `true`.\n *\n * If the toast header is visible, setting the {@link ToastData.type} property will change the background color\n * of a squared indicator positioned next to the header's title.\n *\n * The component can also display a {@link ToastData.customIcon} in the toast header instead of the squared indicator.\n *\n * @example\n * <quang-toast></quang-toast>\n * this.quangToast.openToast({\n type,\n title: type,\n position: 'bottom-center',\n text: 'custom text here',\n showCloseButton: true,\n timing: 50000000,\n })\n */\nexport class QuangToastComponent {\n toastService = signal(inject(QuangToastService))\n\n readonly isShowing = this.toastService().isShowing\n showAtLeastFor = input<number>(500)\n\n private showToastBuffer$ = toObservable(this.isShowing).pipe(\n map((isShowing) =>\n isShowing\n ? of(isShowing)\n : timer(this.toastService().currentToast()?.timing ?? this.showAtLeastFor()).pipe(map(() => isShowing))\n ),\n switchAll()\n )\n\n showToast = toSignal(this.showToastBuffer$)\n\n readonly _currentToast = this.toastService().currentToast\n\n close(): void {\n this.toastService().closeToast()\n }\n}\n","<div\n [class.hide]=\"!isShowing()\"\n [class.show]=\"isShowing()\"\n [ngClass]=\"[_currentToast()?.position ?? '', _currentToast()?.type ?? '']\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n class=\"toast fade\"\n role=\"alert\"\n>\n @if (!_currentToast()?.hideHeader) {\n <div class=\"toast-header\">\n @if (!_currentToast()?.customIcon) {\n <span\n [ngClass]=\"_currentToast()?.type\"\n class=\"rounded me-2\"\n ></span>\n }\n @if (_currentToast()?.customIcon) {\n <img\n [src]=\"_currentToast()?.customIcon\"\n alt=\"\"\n />\n }\n @if (_currentToast()?.title) {\n <strong class=\"me-auto\">{{ _currentToast()?.title | transloco }}</strong>\n }\n @if (_currentToast()?.date) {\n <small>{{ _currentToast()?.date ?? '' | date: _currentToast()?.dateFormat }}</small>\n }\n @if (_currentToast()?.showCloseButton) {\n <button\n (click)=\"close()\"\n aria-label=\"Close\"\n class=\"ms-2 mb-1 btn-close\"\n data-dismiss=\"toast\"\n type=\"button\"\n >\n <span aria-hidden=\"true\"></span>\n </button>\n }\n </div>\n }\n @if (_currentToast()?.text) {\n <div class=\"toast-body\">\n {{ _currentToast()?.text?.trim() | transloco: { textValue: _currentToast()?.textValue?.trim() } }}\n </div>\n }\n <ng-container *ngTemplateOutlet=\"_currentToast()?.customTemplate ?? null\"></ng-container>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quang-overlay-toast.mjs","sources":["../../../projects/quang/overlay/toast/toast.service.ts","../../../projects/quang/overlay/toast/toast.component.ts","../../../projects/quang/overlay/toast/toast.component.html","../../../projects/quang/overlay/toast/quang-overlay-toast.ts"],"sourcesContent":["import { Injectable, TemplateRef, computed, signal } from '@angular/core'\n\nimport { patchState, signalState } from '@ngrx/signals'\n\nexport interface ToastData {\n type: 'success' | 'warning' | 'error'\n title?: string\n position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'center' | 'top-center' | 'bottom-center'\n timing: number\n text?: string\n textValue?: string\n showCloseButton?: boolean\n date?: Date\n dateFormat?: string\n customTemplate?: TemplateRef<unknown>\n customIcon?: string\n hideHeader?: boolean\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class QuangToastService {\n private toastState = signalState({\n count: 0,\n currentTimeout: null as ReturnType<typeof setTimeout> | null,\n })\n\n public isShowing = computed(() => this.toastState.count() > 0)\n\n count = this.toastState.count\n currentTimeout = this.toastState.currentTimeout\n\n public openToast(toastData: ToastData): void {\n patchState(this.toastState, {\n count: this.count() + 1,\n })\n\n this.currentToast.set(toastData)\n\n if (this.count() > 1) {\n const currentTimeout = this.currentTimeout()\n if (currentTimeout) {\n clearTimeout(currentTimeout)\n }\n patchState(this.toastState, {\n count: this.count() - 1,\n currentTimeout: null,\n })\n }\n patchState(this.toastState, {\n currentTimeout: setTimeout(() => {\n this.closeToast()\n }, toastData.timing),\n })\n }\n\n public closeToast(): void {\n this.currentToast.set(null)\n patchState(this.toastState, { count: this.count() - 1 })\n }\n\n public currentToast = signal<ToastData | null>(null)\n}\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { DatePipe, NgClass, NgTemplateOutlet } from '@angular/common'\nimport { ChangeDetectionStrategy, Component, inject, input, signal } from '@angular/core'\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop'\n\nimport { TranslocoPipe } from '@jsverse/transloco'\nimport { map, of, switchAll, timer } from 'rxjs'\n\nimport { QuangToastService } from './toast.service'\n\n@Component({\n selector: 'quang-toast',\n imports: [OverlayModule, NgClass, TranslocoPipe, DatePipe, NgTemplateOutlet],\n templateUrl: './toast.component.html',\n styleUrl: './toast.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n/**\n * Toast component that can be displayed by calling the `QuangToastService.openToast()` method,\n * passing an object of config {@link ToastData}.\n *\n * @usageNotes\n * The {@link ToastData.customTemplate} property is used to display the custom template inside the toast.\n *\n * The toast header can be hidden by setting the {@link ToastData.hideHeader} boolean to `true`.\n *\n * If the toast header is visible, setting the {@link ToastData.type} property will change the background color\n * of a squared indicator positioned next to the header's title.\n *\n * The component can also display a {@link ToastData.customIcon} in the toast header instead of the squared indicator.\n *\n * @example\n * <quang-toast></quang-toast>\n * this.quangToast.openToast({\n type,\n title: type,\n position: 'bottom-center',\n text: 'custom text here',\n showCloseButton: true,\n timing: 50000000,\n })\n */\nexport class QuangToastComponent {\n toastService = signal(inject(QuangToastService))\n\n readonly isShowing = this.toastService().isShowing\n showAtLeastFor = input<number>(500)\n\n private showToastBuffer$ = toObservable(this.isShowing).pipe(\n map((isShowing) =>\n isShowing\n ? of(isShowing)\n : timer(this.toastService().currentToast()?.timing ?? this.showAtLeastFor()).pipe(map(() => isShowing))\n ),\n switchAll()\n )\n\n showToast = toSignal(this.showToastBuffer$)\n\n readonly _currentToast = this.toastService().currentToast\n\n close(): void {\n this.toastService().closeToast()\n }\n}\n","<div\n [class.hide]=\"!isShowing()\"\n [class.show]=\"isShowing()\"\n [ngClass]=\"[_currentToast()?.position ?? '', _currentToast()?.type ?? '']\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n class=\"toast fade\"\n role=\"alert\"\n>\n @if (!_currentToast()?.hideHeader) {\n <div class=\"toast-header\">\n @if (!_currentToast()?.customIcon) {\n <span\n [ngClass]=\"_currentToast()?.type\"\n class=\"rounded me-2\"\n ></span>\n }\n @if (_currentToast()?.customIcon) {\n <img\n [src]=\"_currentToast()?.customIcon\"\n alt=\"\"\n />\n }\n @if (_currentToast()?.title) {\n <strong class=\"me-auto\">{{ _currentToast()?.title | transloco }}</strong>\n }\n @if (_currentToast()?.date) {\n <small>{{ _currentToast()?.date ?? '' | date: _currentToast()?.dateFormat }}</small>\n }\n @if (_currentToast()?.showCloseButton) {\n <button\n (click)=\"close()\"\n aria-label=\"Close\"\n class=\"ms-2 mb-1 btn-close\"\n data-dismiss=\"toast\"\n type=\"button\"\n >\n <span aria-hidden=\"true\"></span>\n </button>\n }\n </div>\n }\n @if (_currentToast()?.text) {\n <div class=\"toast-body\">\n {{ _currentToast()?.text?.trim() | transloco: { textValue: _currentToast()?.textValue?.trim() } }}\n </div>\n }\n <ng-container *ngTemplateOutlet=\"_currentToast()?.customTemplate ?? null\"></ng-container>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { input, signal, ChangeDetectionStrategy, Component, Directive } from '@angular/core';
3
3
  import { QuangBaseOverlayDirective } from 'quang/overlay/shared';
4
- import { trigger, state, transition, style, animate } from '@angular/animations';
4
+ import { trigger, state, style, transition, animate } from '@angular/animations';
5
5
  import { OverlayModule } from '@angular/cdk/overlay';
6
6
 
7
7
  class QuangTooltipComponent {
8
8
  constructor() {
9
- this.overlayContent = input.required(...(ngDevMode ? [{ debugName: "overlayContent" }] : []));
10
- this.quangTooltipPosition = input('top', ...(ngDevMode ? [{ debugName: "quangTooltipPosition" }] : []));
11
- this.positionPair = signal(null, ...(ngDevMode ? [{ debugName: "positionPair" }] : []));
12
- this.payload = input(...(ngDevMode ? [undefined, { debugName: "payload" }] : []));
9
+ this.overlayContent = input.required(...(ngDevMode ? [{ debugName: "overlayContent" }] : /* istanbul ignore next */ []));
10
+ this.quangTooltipPosition = input('top', ...(ngDevMode ? [{ debugName: "quangTooltipPosition" }] : /* istanbul ignore next */ []));
11
+ this.positionPair = signal(null, ...(ngDevMode ? [{ debugName: "positionPair" }] : /* istanbul ignore next */ []));
12
+ this.payload = input(...(ngDevMode ? [undefined, { debugName: "payload" }] : /* istanbul ignore next */ []));
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: QuangTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: QuangTooltipComponent, isStandalone: true, selector: "quang-tooltip", inputs: { overlayContent: { classPropertyName: "overlayContent", publicName: "overlayContent", isSignal: true, isRequired: true, transformFunction: null }, quangTooltipPosition: { classPropertyName: "quangTooltipPosition", publicName: "quangTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, payload: { classPropertyName: "payload", publicName: "payload", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (overlayContent()) {\n <div\n @tooltip\n class=\"quang-tooltip\"\n >\n {{ overlayContent() }}\n </div>\n}\n", styles: [".quang-tooltip{background-color:var(--bs-body-color);color:var(--bs-body-bg);padding:.5rem;border-radius:5px;font-size:.75rem;opacity:0}\n"], dependencies: [{ kind: "ngmodule", type: OverlayModule }], animations: [
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: QuangTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: QuangTooltipComponent, isStandalone: true, selector: "quang-tooltip", inputs: { overlayContent: { classPropertyName: "overlayContent", publicName: "overlayContent", isSignal: true, isRequired: true, transformFunction: null }, quangTooltipPosition: { classPropertyName: "quangTooltipPosition", publicName: "quangTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, payload: { classPropertyName: "payload", publicName: "payload", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (overlayContent()) {\n <div\n @tooltip\n class=\"quang-tooltip\"\n >\n {{ overlayContent() }}\n </div>\n}\n", styles: [".quang-tooltip{background-color:var(--bs-body-color);color:var(--bs-body-bg);padding:.5rem;border-radius:5px;font-size:.75rem;opacity:0}\n"], dependencies: [{ kind: "ngmodule", type: OverlayModule }], animations: [
16
16
  trigger('tooltip', [
17
17
  state('*', style({ opacity: 1 })),
18
18
  transition(':enter', [style({ opacity: 0 }), animate(200, style({ opacity: 1 }))]),
@@ -20,7 +20,7 @@ class QuangTooltipComponent {
20
20
  ]),
21
21
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: QuangTooltipComponent, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: QuangTooltipComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{ selector: 'quang-tooltip', imports: [OverlayModule], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
26
26
  trigger('tooltip', [
@@ -34,14 +34,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
34
34
  class QuangTooltipDirective extends QuangBaseOverlayDirective {
35
35
  constructor() {
36
36
  super(...arguments);
37
- this.targetComponentType = signal(QuangTooltipComponent, ...(ngDevMode ? [{ debugName: "targetComponentType" }] : []));
38
- this.content = input.required({ ...(ngDevMode ? { debugName: "content" } : {}), alias: 'quangTooltip' });
39
- this.showMethod = input('hover', ...(ngDevMode ? [{ debugName: "showMethod" }] : []));
37
+ this.targetComponentType = signal(QuangTooltipComponent, ...(ngDevMode ? [{ debugName: "targetComponentType" }] : /* istanbul ignore next */ []));
38
+ this.content = input.required({ ...(ngDevMode ? { debugName: "content" } : /* istanbul ignore next */ {}), alias: 'quangTooltip' });
39
+ this.showMethod = input('hover', ...(ngDevMode ? [{ debugName: "showMethod" }] : /* istanbul ignore next */ []));
40
40
  }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: QuangTooltipDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
42
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: QuangTooltipDirective, isStandalone: true, selector: "[quangTooltip]", inputs: { content: { classPropertyName: "content", publicName: "quangTooltip", isSignal: true, isRequired: true, transformFunction: null }, showMethod: { classPropertyName: "showMethod", publicName: "showMethod", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: QuangTooltipDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
42
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.7", type: QuangTooltipDirective, isStandalone: true, selector: "[quangTooltip]", inputs: { content: { classPropertyName: "content", publicName: "quangTooltip", isSignal: true, isRequired: true, transformFunction: null }, showMethod: { classPropertyName: "showMethod", publicName: "showMethod", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
43
43
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: QuangTooltipDirective, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: QuangTooltipDirective, decorators: [{
45
45
  type: Directive,
46
46
  args: [{
47
47
  selector: '[quangTooltip]',
@@ -1 +1 @@
1
- {"version":3,"file":"quang-overlay-tooltip.mjs","sources":["../../../projects/quang/overlay/tooltip/tooltip.component.ts","../../../projects/quang/overlay/tooltip/tooltip.component.html","../../../projects/quang/overlay/tooltip/tooltip.directive.ts","../../../projects/quang/overlay/tooltip/quang-overlay-tooltip.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations'\nimport { ConnectionPositionPair, OverlayModule } from '@angular/cdk/overlay'\nimport { ChangeDetectionStrategy, Component, input, signal } from '@angular/core'\n\nimport { QuangBaseOverlayComponent } from 'quang/overlay/shared'\n\n@Component({\n selector: 'quang-tooltip',\n imports: [OverlayModule],\n templateUrl: './tooltip.component.html',\n styleUrl: './tooltip.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n\n animations: [\n trigger('tooltip', [\n state('*', style({ opacity: 1 })),\n transition(':enter', [style({ opacity: 0 }), animate(200, style({ opacity: 1 }))]),\n transition(':leave', [style({ opacity: 1 }), animate(300, style({ opacity: 0 }))]),\n ]),\n ],\n})\nexport class QuangTooltipComponent implements QuangBaseOverlayComponent<string, unknown> {\n overlayContent = input.required<string>()\n\n quangTooltipPosition = input<'top' | 'bottom' | 'left' | 'right'>('top')\n\n positionPair = signal<ConnectionPositionPair | null>(null)\n\n payload = input<unknown>()\n}\n","@if (overlayContent()) {\n <div\n @tooltip\n class=\"quang-tooltip\"\n >\n {{ overlayContent() }}\n </div>\n}\n","import { ComponentType } from '@angular/cdk/portal'\nimport { Directive, input, signal } from '@angular/core'\n\nimport { QuangBaseOverlayDirective } from 'quang/overlay/shared'\n\nimport { QuangTooltipComponent } from './tooltip.component'\n\n@Directive({\n selector: '[quangTooltip]',\n})\nexport class QuangTooltipDirective extends QuangBaseOverlayDirective<QuangTooltipComponent, string, unknown> {\n override targetComponentType = signal<ComponentType<QuangTooltipComponent> | undefined>(QuangTooltipComponent)\n\n override content = input.required<string>({ alias: 'quangTooltip' })\n\n override showMethod = input<'click' | 'hover'>('hover')\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quang-overlay-tooltip.mjs","sources":["../../../projects/quang/overlay/tooltip/tooltip.component.ts","../../../projects/quang/overlay/tooltip/tooltip.component.html","../../../projects/quang/overlay/tooltip/tooltip.directive.ts","../../../projects/quang/overlay/tooltip/quang-overlay-tooltip.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations'\nimport { ConnectionPositionPair, OverlayModule } from '@angular/cdk/overlay'\nimport { ChangeDetectionStrategy, Component, input, signal } from '@angular/core'\n\nimport { QuangBaseOverlayComponent } from 'quang/overlay/shared'\n\n@Component({\n selector: 'quang-tooltip',\n imports: [OverlayModule],\n templateUrl: './tooltip.component.html',\n styleUrl: './tooltip.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n\n animations: [\n trigger('tooltip', [\n state('*', style({ opacity: 1 })),\n transition(':enter', [style({ opacity: 0 }), animate(200, style({ opacity: 1 }))]),\n transition(':leave', [style({ opacity: 1 }), animate(300, style({ opacity: 0 }))]),\n ]),\n ],\n})\nexport class QuangTooltipComponent implements QuangBaseOverlayComponent<string, unknown> {\n overlayContent = input.required<string>()\n\n quangTooltipPosition = input<'top' | 'bottom' | 'left' | 'right'>('top')\n\n positionPair = signal<ConnectionPositionPair | null>(null)\n\n payload = input<unknown>()\n}\n","@if (overlayContent()) {\n <div\n @tooltip\n class=\"quang-tooltip\"\n >\n {{ overlayContent() }}\n </div>\n}\n","import { ComponentType } from '@angular/cdk/portal'\nimport { Directive, input, signal } from '@angular/core'\n\nimport { QuangBaseOverlayDirective } from 'quang/overlay/shared'\n\nimport { QuangTooltipComponent } from './tooltip.component'\n\n@Directive({\n selector: '[quangTooltip]',\n})\nexport class QuangTooltipDirective extends QuangBaseOverlayDirective<QuangTooltipComponent, string, unknown> {\n override targetComponentType = signal<ComponentType<QuangTooltipComponent> | undefined>(QuangTooltipComponent)\n\n override content = input.required<string>({ alias: 'quangTooltip' })\n\n override showMethod = input<'click' | 'hover'>('hover')\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -18,10 +18,10 @@ class QuangTranslationLoaderService {
18
18
  getTranslation(lang) {
19
19
  return this.httpClient.get(`${this.translationBasePath ?? './'}assets/i18n/${lang}.json`);
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: QuangTranslationLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
22
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: QuangTranslationLoaderService }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: QuangTranslationLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
22
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: QuangTranslationLoaderService }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: QuangTranslationLoaderService, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: QuangTranslationLoaderService, decorators: [{
25
25
  type: Injectable
26
26
  }], propDecorators: { translationBasePath: [{
27
27
  type: Optional
@@ -50,10 +50,10 @@ class QuangTranslationService {
50
50
  setTranslationKey(key, value, options) {
51
51
  return this._translocoService.setTranslationKey(key, value, options);
52
52
  }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: QuangTranslationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
54
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: QuangTranslationService }); }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: QuangTranslationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
54
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: QuangTranslationService }); }
55
55
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: QuangTranslationService, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: QuangTranslationService, decorators: [{
57
57
  type: Injectable
58
58
  }] });
59
59
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "quang",
3
3
  "sideEffects": false,
4
- "version": "21.1.2",
4
+ "version": "21.2.0",
5
5
  "dependencies": {
6
6
  "tslib": "^2.3.0"
7
7
  },
@@ -159,5 +159,6 @@
159
159
  "types": "./types/quang-translation.d.ts",
160
160
  "default": "./fesm2022/quang-translation.mjs"
161
161
  }
162
- }
162
+ },
163
+ "type": "module"
163
164
  }
@@ -277,6 +277,11 @@ declare class QuangAutocompleteComponent extends QuangBaseComponent<string | num
277
277
  * Handles selecting a value (adding to chip list in multiple mode).
278
278
  */
279
279
  private handleSelectValue;
280
+ /**
281
+ * Resolves the value to add in multiple mode.
282
+ * If no option value is provided and free text is enabled, use the currently typed text.
283
+ */
284
+ private resolveValueForMultipleMode;
280
285
  /**
281
286
  * Emits search text change after debounce.
282
287
  * When `updateValueOnType` is true, also updates the form value using the same
@@ -24,7 +24,7 @@ declare class QuangRadioGroupComponent extends QuangBaseComponent<string | numbe
24
24
  getOptionLabel(option: RadioOption): string;
25
25
  onSelectOption(option: RadioOption): void;
26
26
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<QuangRadioGroupComponent, never>;
27
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<QuangRadioGroupComponent, "quang-radio-group", never, { "radioOptions": { "alias": "radioOptions"; "required": true; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "radioPosition": { "alias": "radioPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
27
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<QuangRadioGroupComponent, "quang-radio-group", never, { "radioOptions": { "alias": "radioOptions"; "required": true; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "radioPosition": { "alias": "radioPosition"; "required": false; "isSignal": true; }; }, {}, never, ["[help-icon]"], true, never>;
28
28
  }
29
29
 
30
30
  export { QuangRadioGroupComponent };
@@ -18,6 +18,8 @@ declare abstract class QuangBaseComponent<T = unknown> implements ControlValueAc
18
18
  componentClass: _angular_core.InputSignal<string | string[]>;
19
19
  componentLabel: _angular_core.InputSignal<string>;
20
20
  componentPlaceholder: _angular_core.InputSignal<string>;
21
+ helpTooltipPosition: _angular_core.InputSignal<"top" | "top-left" | "top-right" | "bottom" | "bottom-left" | "bottom-right" | "left" | "right">;
22
+ showHelpTooltipMethod: _angular_core.InputSignal<"click" | "hover">;
21
23
  errorMap: _angular_core.InputSignal<ErrorData[]>;
22
24
  errorMap$: Subscription;
23
25
  _errorMessagesByKey: _angular_core.Signal<Map<string, string>>;
@@ -57,7 +59,7 @@ declare abstract class QuangBaseComponent<T = unknown> implements ControlValueAc
57
59
  checkFormErrors(): void;
58
60
  ngAfterViewInit(): void;
59
61
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<QuangBaseComponent<any>, never>;
60
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<QuangBaseComponent<any>, never, never, { "componentId": { "alias": "componentId"; "required": false; "isSignal": true; }; "isReadonly": { "alias": "isReadonly"; "required": false; "isSignal": true; }; "componentTabIndex": { "alias": "componentTabIndex"; "required": false; "isSignal": true; }; "componentClass": { "alias": "componentClass"; "required": false; "isSignal": true; }; "componentLabel": { "alias": "componentLabel"; "required": false; "isSignal": true; }; "componentPlaceholder": { "alias": "componentPlaceholder"; "required": false; "isSignal": true; }; "errorMap": { "alias": "errorMap"; "required": false; "isSignal": true; }; "successMessage": { "alias": "successMessage"; "required": false; "isSignal": true; }; "helpMessage": { "alias": "helpMessage"; "required": false; "isSignal": true; }; "formControl": { "alias": "formControl"; "required": false; "isSignal": true; }; "helpMessageTooltip": { "alias": "helpMessageTooltip"; "required": false; "isSignal": true; }; }, { "componentBlur": "componentBlur"; }, never, never, true, never>;
62
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<QuangBaseComponent<any>, never, never, { "componentId": { "alias": "componentId"; "required": false; "isSignal": true; }; "isReadonly": { "alias": "isReadonly"; "required": false; "isSignal": true; }; "componentTabIndex": { "alias": "componentTabIndex"; "required": false; "isSignal": true; }; "componentClass": { "alias": "componentClass"; "required": false; "isSignal": true; }; "componentLabel": { "alias": "componentLabel"; "required": false; "isSignal": true; }; "componentPlaceholder": { "alias": "componentPlaceholder"; "required": false; "isSignal": true; }; "helpTooltipPosition": { "alias": "helpTooltipPosition"; "required": false; "isSignal": true; }; "showHelpTooltipMethod": { "alias": "showHelpTooltipMethod"; "required": false; "isSignal": true; }; "errorMap": { "alias": "errorMap"; "required": false; "isSignal": true; }; "successMessage": { "alias": "successMessage"; "required": false; "isSignal": true; }; "helpMessage": { "alias": "helpMessage"; "required": false; "isSignal": true; }; "formControl": { "alias": "formControl"; "required": false; "isSignal": true; }; "helpMessageTooltip": { "alias": "helpMessageTooltip"; "required": false; "isSignal": true; }; }, { "componentBlur": "componentBlur"; }, never, never, true, never>;
61
63
  }
62
64
 
63
65
  interface QuangSelectOptionTemplateContext {
@@ -1,4 +1,4 @@
1
- import { ValidatorFn, AbstractControl, ValidationErrors, FormGroup, FormControl } from '@angular/forms';
1
+ import { AbstractControl, ValidationErrors, ValidatorFn, FormGroup, FormControl } from '@angular/forms';
2
2
 
3
3
  declare enum EuroLocale {
4
4
  AT = "AT",