ngx-gccb 0.39.1 → 0.40.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.
package/README.md CHANGED
@@ -8,7 +8,7 @@ ngx-gccb interactive showcase with code snippets [link](https://ngx-gccb.netlify
8
8
 
9
9
  ## Stackblitz Demo
10
10
 
11
- - Angular v21 and ngx-gccb [link](https://stackblitz.com/edit/ng-19-ngx-gccb)
11
+ - Angular v21 and ngx-gccb [link](https://stackblitz.com/edit/ng-21-ngx-gccb)
12
12
 
13
13
  ## Get started
14
14
 
@@ -1,36 +1,53 @@
1
1
  @import 'bootstrap/scss/functions';
2
- @import 'bootstrap/scss/variables';
3
2
 
4
- $primary-hover: darken($primary, 20%);
5
- $secondary-hover: darken($secondary, 20%);
6
- $info-hover: darken($info, 20%);
7
- $warning-hover: darken($warning, 20%);
8
- $danger-hover: darken($danger, 20%);
9
- $success-hover: darken($success, 20%);
10
- $light-hover: darken($light, 20%);
11
- $dark-hover: darken($dark, 20%);
3
+ $primary: #4053bb;
4
+
5
+ $font-family-base: 'Inter', sans-serif;
6
+ $font-weight-base: 400 !default;
7
+ $font-size-base: 1rem; // default
8
+ $enable-responsive-font-sizes: false;
9
+ $line-height-base: 1.7;
10
+
11
+ $grid-gutter-width: 1rem;
12
+
13
+ $focus-ring-width: 0.185rem; // Default ist .25rem
14
+ // $focus-ring-opacity: 0.15;
15
+
16
+ $enable-gradients: false;
17
+
18
+ $box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.125);
19
+ $box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.25);
20
+ $box-shadow-lg: 0 0.5rem 1rem rgba(0, 0, 0, 0.3);
21
+
22
+ $card-border-color: transparent;
23
+
24
+ $offcanvas-horizontal-width: 320px;
25
+
26
+ $list-group-border-color: transparent;
27
+ $list-group-action-hover-bg: var(--bs-tertiary-bg);
28
+ $list-group-active-bg: transparent;
29
+ $list-group-active-border-color: transparent;
30
+ $list-group-action-hover-color: var(--bs-emphasis-color);
31
+ $list-group-active-color: $primary;
32
+
33
+ $nav-pills-link-active-bg: $primary;
34
+
12
35
  // $btn-border-width: 2px;
13
36
 
14
- :root {
15
- --primary-hover: #{$primary-hover};
16
- --secondary-hover: #{$secondary-hover};
17
- --info-hover: #{$info-hover};
18
- --warning-hover: #{$warning-hover};
19
- --danger-hover: #{$danger-hover};
20
- --success-hover: #{$success-hover};
21
- }
37
+ @import 'bootstrap/scss/variables';
22
38
 
23
39
  @each $color, $value in $theme-colors {
24
40
  .btn-ghost-#{$color} {
25
41
  @extend .btn-outline-#{$color};
26
42
 
27
- --bs-btn-border-color: transparent;
43
+ --bs-btn-border-color: transparent !important;
28
44
 
29
- --bs-btn-hover-border-color: transparent;
30
- --bs-btn-active-border-color: transparent;
45
+ --bs-btn-hover-border-color: transparent !important;
46
+ --bs-btn-active-border-color: transparent !important;
47
+ --bs-btn-disabled-border-color: transparent !important;
31
48
 
32
- --bs-btn-hover-bg: rgba(var(--bs-#{$color}-rgb), 0.1);
33
- --bs-btn-active-bg: rgba(var(--bs-#{$color}-rgb), 0.2);
49
+ --bs-btn-hover-bg: rgba(var(--bs-#{$color}-rgb), 0.2) !important;
50
+ --bs-btn-active-bg: rgba(var(--bs-#{$color}-rgb), 0.4) !important;
34
51
  }
35
52
  }
36
53
 
@@ -52,12 +69,6 @@ $dark-hover: darken($dark, 20%);
52
69
  }
53
70
  }
54
71
 
55
- .focus-active {
56
- z-index: 10;
57
- box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0)
58
- var(--bs-focus-ring-width) var(--bs-focus-ring-color);
59
- }
60
-
61
72
  .list-group-item-avatar {
62
73
  min-width: 24px;
63
74
  max-width: 24px;
@@ -96,7 +107,6 @@ $dark-hover: darken($dark, 20%);
96
107
  }
97
108
  &.dropdown-item.active,
98
109
  &.dropdown-item:active {
99
- color: var(--secondary-hover);
100
110
  background-color: rgba(0, 0, 0, 0.04) !important;
101
111
  }
102
112
  }
@@ -185,3 +195,9 @@ p {
185
195
  .border-transparent {
186
196
  border-color: transparent;
187
197
  }
198
+
199
+ a:focus-visible,
200
+ li:focus-visible {
201
+ outline: 0.185rem solid var(--bs-primary);
202
+ outline-offset: 2px;
203
+ }
@@ -2,16 +2,16 @@ import { trigger, transition, style, animate } from '@angular/animations';
2
2
  import * as i1 from '@angular/common';
3
3
  import { NgClass, CommonModule } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
- import { forwardRef, inject, ElementRef, input, output, computed, ChangeDetectionStrategy, Component, Renderer2, ViewContainerRef, Injector, HostListener, Directive, effect, HostBinding, Input, Pipe, NgZone, viewChild, EventEmitter, Output, model, Injectable, TemplateRef, contentChildren } from '@angular/core';
5
+ import { forwardRef, inject, ElementRef, input, output, computed, ChangeDetectionStrategy, Component, HostBinding, Renderer2, ViewContainerRef, Injector, HostListener, Directive, effect, Input, Pipe, NgZone, viewChild, EventEmitter, Output, model, Injectable, TemplateRef, contentChildren } from '@angular/core';
6
6
  import dayjs from 'dayjs';
7
7
  import isoWeek from 'dayjs/plugin/isoWeek';
8
+ import { DomSanitizer } from '@angular/platform-browser';
8
9
  import * as i2$1 from '@angular/cdk/a11y';
9
10
  import { ConfigurableFocusTrapFactory, A11yModule } from '@angular/cdk/a11y';
10
11
  import { createPopper } from '@popperjs/core';
11
12
  import * as i2 from '@angular/forms';
12
13
  import { UntypedFormGroup, UntypedFormControl, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
13
14
  import { debounceTime } from 'rxjs';
14
- import { DomSanitizer } from '@angular/platform-browser';
15
15
 
16
16
  const NgxFadeRightAnimation = trigger('ngxFadeRightAnimation', [
17
17
  transition(':enter', [
@@ -51,7 +51,13 @@ class NgxButtonComponent {
51
51
  this.onFocus = output();
52
52
  this.onBlur = output();
53
53
  this.getCssClasses = computed(() => {
54
- const cssClasses = ['btn', 'flex-shrink-0'];
54
+ const cssClasses = [
55
+ 'btn',
56
+ 'd-flex',
57
+ 'align-items-center',
58
+ 'justify-content-center',
59
+ 'flex-shrink-0',
60
+ ];
55
61
  if (this.variant() !== 'contained') {
56
62
  cssClasses.push(`btn-${this.variant()}-${this.color()}`);
57
63
  }
@@ -85,9 +91,142 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
85
91
  args: [{ selector: 'ngx-button', host: { class: 'd-inline-flex align-items-center' }, changeDetection: ChangeDetectionStrategy.OnPush, providers: [HOST_COMPONENT_PROVIDER], imports: [NgClass], template: "<button\n\t[ngClass]=\"getCssClasses()\"\n\t[attr.type]=\"type()\"\n\t[disabled]=\"disabled()\"\n\t(click)=\"onClick.emit($event)\"\n\t(focus)=\"onFocus.emit($event)\"\n\t(blur)=\"onBlur.emit($event)\">\n\t<ng-content />\n</button>\n" }]
86
92
  }], propDecorators: { cssClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cssClass", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], shadow: [{ type: i0.Input, args: [{ isSignal: true, alias: "shadow", required: false }] }], onClick: [{ type: i0.Output, args: ["onClick"] }], onFocus: [{ type: i0.Output, args: ["onFocus"] }], onBlur: [{ type: i0.Output, args: ["onBlur"] }] } });
87
93
 
94
+ const LibIcons = {
95
+ faXmark: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M183.1 137.4C170.6 124.9 150.3 124.9 137.8 137.4C125.3 149.9 125.3 170.2 137.8 182.7L275.2 320L137.9 457.4C125.4 469.9 125.4 490.2 137.9 502.7C150.4 515.2 170.7 515.2 183.2 502.7L320.5 365.3L457.9 502.6C470.4 515.1 490.7 515.1 503.2 502.6C515.7 490.1 515.7 469.8 503.2 457.3L365.8 320L503.1 182.6C515.6 170.1 515.6 149.8 503.1 137.3C490.6 124.8 470.3 124.8 457.8 137.3L320.5 274.7L183.1 137.4z"/></svg>',
96
+ faSpinner: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M272 112C272 85.5 293.5 64 320 64C346.5 64 368 85.5 368 112C368 138.5 346.5 160 320 160C293.5 160 272 138.5 272 112zM272 528C272 501.5 293.5 480 320 480C346.5 480 368 501.5 368 528C368 554.5 346.5 576 320 576C293.5 576 272 554.5 272 528zM112 272C138.5 272 160 293.5 160 320C160 346.5 138.5 368 112 368C85.5 368 64 346.5 64 320C64 293.5 85.5 272 112 272zM480 320C480 293.5 501.5 272 528 272C554.5 272 576 293.5 576 320C576 346.5 554.5 368 528 368C501.5 368 480 346.5 480 320zM139 433.1C157.8 414.3 188.1 414.3 206.9 433.1C225.7 451.9 225.7 482.2 206.9 501C188.1 519.8 157.8 519.8 139 501C120.2 482.2 120.2 451.9 139 433.1zM139 139C157.8 120.2 188.1 120.2 206.9 139C225.7 157.8 225.7 188.1 206.9 206.9C188.1 225.7 157.8 225.7 139 206.9C120.2 188.1 120.2 157.8 139 139zM501 433.1C519.8 451.9 519.8 482.2 501 501C482.2 519.8 451.9 519.8 433.1 501C414.3 482.2 414.3 451.9 433.1 433.1C451.9 414.3 482.2 414.3 501 433.1z"/></svg>',
97
+ faChevronRight: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M471.1 297.4C483.6 309.9 483.6 330.2 471.1 342.7L279.1 534.7C266.6 547.2 246.3 547.2 233.8 534.7C221.3 522.2 221.3 501.9 233.8 489.4L403.2 320L233.9 150.6C221.4 138.1 221.4 117.8 233.9 105.3C246.4 92.8 266.7 92.8 279.2 105.3L471.2 297.3z"/></svg>',
98
+ faChevronLeft: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M169.4 297.4C156.9 309.9 156.9 330.2 169.4 342.7L361.4 534.7C373.9 547.2 394.2 547.2 406.7 534.7C419.2 522.2 419.2 501.9 406.7 489.4L237.3 320L406.6 150.6C419.1 138.1 419.1 117.8 406.6 105.3C394.1 92.8 373.8 92.8 361.3 105.3L169.3 297.3z"/></svg>',
99
+ };
100
+
101
+ class NgxIconComponent {
102
+ constructor() {
103
+ this.sanitizer = inject(DomSanitizer);
104
+ this.svg = input.required(...(ngDevMode ? [{ debugName: "svg" }] : []));
105
+ this.size = input('1.25em', ...(ngDevMode ? [{ debugName: "size" }] : []));
106
+ this.title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
107
+ this.ariaHidden = input(true, ...(ngDevMode ? [{ debugName: "ariaHidden" }] : []));
108
+ this.cssClass = input(...(ngDevMode ? [undefined, { debugName: "cssClass" }] : []));
109
+ this.svgHtml = computed(() => {
110
+ return this.svg() ? this.sanitizer.bypassSecurityTrustHtml(this.fixFill(this.svg())) : '';
111
+ }, ...(ngDevMode ? [{ debugName: "svgHtml" }] : []));
112
+ }
113
+ get hostSize() {
114
+ const size = this.size();
115
+ return typeof size === 'number' ? `${size}px` : (size ?? '1.25em');
116
+ }
117
+ get hostClass() {
118
+ return this.cssClass() ?? null;
119
+ }
120
+ fixFill(svg) {
121
+ if (!svg) {
122
+ return '';
123
+ }
124
+ if (/^<svg[^>]*fill=/i.test(svg)) {
125
+ return svg.replace(/^<svg([^>]*)fill="[^"]*"/i, '<svg$1fill="currentColor"');
126
+ }
127
+ return svg.replace(/^<svg/i, '<svg fill="currentColor"');
128
+ }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NgxIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: NgxIconComponent, isStandalone: true, selector: "ngx-icon", inputs: { svg: { classPropertyName: "svg", publicName: "svg", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, ariaHidden: { classPropertyName: "ariaHidden", publicName: "ariaHidden", isSignal: true, isRequired: false, transformFunction: null }, cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--ngx-icon-size": "this.hostSize", "class": "this.hostClass" } }, ngImport: i0, template: `
131
+ <span
132
+ class="ngx-icon"
133
+ [attr.aria-hidden]="ariaHidden() ? 'true' : null"
134
+ [attr.role]="ariaHidden() ? null : 'img'"
135
+ [attr.title]="title() || null"
136
+ [innerHTML]="svgHtml()">
137
+ </span>
138
+ `, isInline: true, styles: [":host{display:inline-flex;line-height:0;vertical-align:middle}.ngx-icon{display:inline-flex;width:var(--ngx-icon-size, 1.5em);height:var(--ngx-icon-size, 1.5em)}.ngx-icon svg{width:100%;height:100%;display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
139
+ }
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NgxIconComponent, decorators: [{
141
+ type: Component,
142
+ args: [{ selector: 'ngx-icon', standalone: true, imports: [CommonModule], template: `
143
+ <span
144
+ class="ngx-icon"
145
+ [attr.aria-hidden]="ariaHidden() ? 'true' : null"
146
+ [attr.role]="ariaHidden() ? null : 'img'"
147
+ [attr.title]="title() || null"
148
+ [innerHTML]="svgHtml()">
149
+ </span>
150
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:inline-flex;line-height:0;vertical-align:middle}.ngx-icon{display:inline-flex;width:var(--ngx-icon-size, 1.5em);height:var(--ngx-icon-size, 1.5em)}.ngx-icon svg{width:100%;height:100%;display:block}\n"] }]
151
+ }], propDecorators: { svg: [{ type: i0.Input, args: [{ isSignal: true, alias: "svg", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], ariaHidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaHidden", required: false }] }], cssClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cssClass", required: false }] }], hostSize: [{
152
+ type: HostBinding,
153
+ args: ['style.--ngx-icon-size']
154
+ }], hostClass: [{
155
+ type: HostBinding,
156
+ args: ['class']
157
+ }] } });
158
+
159
+ class NgxIconButtonComponent {
160
+ constructor() {
161
+ this.elementRef = inject(ElementRef);
162
+ this.cssClass = input('', ...(ngDevMode ? [{ debugName: "cssClass" }] : []));
163
+ this.svg = input.required(...(ngDevMode ? [{ debugName: "svg" }] : []));
164
+ this.type = input('button', ...(ngDevMode ? [{ debugName: "type" }] : []));
165
+ this.color = input('secondary', ...(ngDevMode ? [{ debugName: "color" }] : []));
166
+ this.size = input('sm', ...(ngDevMode ? [{ debugName: "size" }] : []));
167
+ this.variant = input('ghost', ...(ngDevMode ? [{ debugName: "variant" }] : []));
168
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
169
+ this.shadow = input(...(ngDevMode ? [undefined, { debugName: "shadow" }] : []));
170
+ this.onClick = output();
171
+ this.onFocus = output();
172
+ this.onBlur = output();
173
+ this.getCssClasses = computed(() => {
174
+ const cssClasses = [
175
+ 'btn',
176
+ 'rounded-circle',
177
+ 'p-0',
178
+ 'd-flex',
179
+ 'align-items-center',
180
+ 'justify-content-center',
181
+ ];
182
+ if (this.variant() !== 'contained') {
183
+ cssClasses.push(`btn-${this.variant()}-${this.color()}`);
184
+ }
185
+ else {
186
+ cssClasses.push(`btn-${this.color()}`);
187
+ }
188
+ cssClasses.push(`btn-${this.size()}`);
189
+ cssClasses.push('flex-shrink-0');
190
+ if (this.shadow()) {
191
+ cssClasses.push('shadow-sm');
192
+ }
193
+ if (this.cssClass()) {
194
+ cssClasses.push(this.cssClass());
195
+ }
196
+ return cssClasses.join(' ');
197
+ }, ...(ngDevMode ? [{ debugName: "getCssClasses" }] : []));
198
+ }
199
+ focus() {
200
+ const nativeButton = this.elementRef.nativeElement.querySelector('button');
201
+ if (nativeButton) {
202
+ nativeButton.focus();
203
+ }
204
+ else {
205
+ this.elementRef.nativeElement.focus();
206
+ }
207
+ }
208
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NgxIconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
209
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: NgxIconButtonComponent, isStandalone: true, selector: "ngx-icon-button", inputs: { cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null }, svg: { classPropertyName: "svg", publicName: "svg", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur" }, host: { classAttribute: "d-inline-flex align-items-center" }, providers: [
210
+ {
211
+ provide: FocusableHost,
212
+ useExisting: forwardRef(() => NgxIconButtonComponent),
213
+ },
214
+ ], ngImport: i0, template: "<button\n\t[ngClass]=\"getCssClasses()\"\n\t[attr.type]=\"type()\"\n\t[disabled]=\"disabled()\"\n\t(click)=\"onClick.emit($event)\"\n\t(focus)=\"onFocus.emit($event)\"\n\t(blur)=\"onBlur.emit($event)\"\n\tstyle=\"width: 40px; height: 40px\">\n\t<ngx-icon [svg]=\"svg()\" />\n</button>\n", dependencies: [{ kind: "component", type: NgxIconComponent, selector: "ngx-icon", inputs: ["svg", "size", "title", "ariaHidden", "cssClass"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
215
+ }
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NgxIconButtonComponent, decorators: [{
217
+ type: Component,
218
+ args: [{ selector: 'ngx-icon-button', host: { class: 'd-inline-flex align-items-center' }, imports: [NgxIconComponent, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
219
+ {
220
+ provide: FocusableHost,
221
+ useExisting: forwardRef(() => NgxIconButtonComponent),
222
+ },
223
+ ], template: "<button\n\t[ngClass]=\"getCssClasses()\"\n\t[attr.type]=\"type()\"\n\t[disabled]=\"disabled()\"\n\t(click)=\"onClick.emit($event)\"\n\t(focus)=\"onFocus.emit($event)\"\n\t(blur)=\"onBlur.emit($event)\"\n\tstyle=\"width: 40px; height: 40px\">\n\t<ngx-icon [svg]=\"svg()\" />\n</button>\n" }]
224
+ }], propDecorators: { cssClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cssClass", required: false }] }], svg: [{ type: i0.Input, args: [{ isSignal: true, alias: "svg", required: true }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], shadow: [{ type: i0.Input, args: [{ isSignal: true, alias: "shadow", required: false }] }], onClick: [{ type: i0.Output, args: ["onClick"] }], onFocus: [{ type: i0.Output, args: ["onFocus"] }], onBlur: [{ type: i0.Output, args: ["onBlur"] }] } });
225
+
88
226
  dayjs.extend(isoWeek);
89
227
  class CalendarComponent {
90
228
  constructor() {
229
+ this.LibIcons = LibIcons;
91
230
  this.onDaySelected = output();
92
231
  this.cssClass = input('', ...(ngDevMode ? [{ debugName: "cssClass" }] : []));
93
232
  this.weekdayHeaders = [];
@@ -149,11 +288,11 @@ class CalendarComponent {
149
288
  return this.selectedDay?.isSame(day, 'day') || false;
150
289
  }
151
290
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: CalendarComponent, isStandalone: true, selector: "ngx-calendar", inputs: { cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDaySelected: "onDaySelected" }, ngImport: i0, template: "<div [ngClass]=\"getCssClasses()\">\n\t<ngx-button variant=\"outline\" (click)=\"previousMonth()\">\u00AB</ngx-button>\n\t<h4 class=\"m-0\">\n\t\t{{ currentMonth.format('MMMM YYYY') }}\n\t</h4>\n\t<ngx-button variant=\"outline\" (click)=\"nextMonth()\">\u00BB</ngx-button>\n</div>\n\n<div class=\"table-responsive\">\n\t<table class=\"table table-bordered text-center\">\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t@for (weekdayHeader of weekdayHeaders; track weekdayHeader) {\n\t\t\t\t\t<th>{{ weekdayHeader }}</th>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t@for (week of weeks; track $index) {\n\t\t\t\t<tr>\n\t\t\t\t\t@for (day of week; track day.date()) {\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tclass=\"day\"\n\t\t\t\t\t\t\t[class.bg-secondary-subtle]=\"!isCurrentMonth(day)\"\n\t\t\t\t\t\t\t[class.bg-primary]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t[class.text-white]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t[class.bg-dark-subtle]=\"isToday(day)\"\n\t\t\t\t\t\t\t(click)=\"onSelectDay(day)\"\n\t\t\t\t\t\t\t(mouseover)=\"hoveredDay = day\"\n\t\t\t\t\t\t\t(mouseout)=\"hoveredDay = null\">\n\t\t\t\t\t\t\t{{ day.date() }}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t}\n\t\t</tbody>\n\t</table>\n</div>\n", styles: [".day:hover{cursor:pointer}\n"], dependencies: [{ kind: "component", type: NgxButtonComponent, selector: "ngx-button", inputs: ["cssClass", "type", "color", "size", "variant", "disabled", "shadow"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
291
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: CalendarComponent, isStandalone: true, selector: "ngx-calendar", inputs: { cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDaySelected: "onDaySelected" }, ngImport: i0, template: "<div [ngClass]=\"getCssClasses()\">\n\t<ngx-icon-button\n\t\tcolor=\"secondary\"\n\t\tvariant=\"ghost\"\n\t\t[svg]=\"LibIcons.faChevronLeft\"\n\t\t(onClick)=\"previousMonth()\" />\n\t<h4 class=\"m-0\">\n\t\t{{ currentMonth.format('MMMM YYYY') }}\n\t</h4>\n\t<ngx-icon-button\n\t\tcolor=\"secondary\"\n\t\tvariant=\"ghost\"\n\t\t(onClick)=\"nextMonth()\"\n\t\t[svg]=\"LibIcons.faChevronRight\" />\n</div>\n\n<div class=\"table-responsive\">\n\t<table class=\"table table-bordered text-center\">\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t@for (weekdayHeader of weekdayHeaders; track weekdayHeader) {\n\t\t\t\t\t<th>{{ weekdayHeader }}</th>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t@for (week of weeks; track $index) {\n\t\t\t\t<tr>\n\t\t\t\t\t@for (day of week; track day.date()) {\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tclass=\"day\"\n\t\t\t\t\t\t\t[class.bg-body-tertiary]=\"!isCurrentMonth(day)\"\n\t\t\t\t\t\t\t[class.bg-info-subtle]=\"\n\t\t\t\t\t\t\t\tisToday(day) && !(isSelected(day) || day === hoveredDay)\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\t[class.bg-primary]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t[class.text-white]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t(click)=\"onSelectDay(day)\"\n\t\t\t\t\t\t\t(mouseover)=\"hoveredDay = day\"\n\t\t\t\t\t\t\t(mouseout)=\"hoveredDay = null\">\n\t\t\t\t\t\t\t{{ day.date() }}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t}\n\t\t</tbody>\n\t</table>\n</div>\n", styles: [".day:hover{cursor:pointer}\n"], dependencies: [{ kind: "component", type: NgxIconButtonComponent, selector: "ngx-icon-button", inputs: ["cssClass", "svg", "type", "color", "size", "variant", "disabled", "shadow"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
153
292
  }
154
293
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CalendarComponent, decorators: [{
155
294
  type: Component,
156
- args: [{ selector: 'ngx-calendar', imports: [NgxButtonComponent, NgClass], template: "<div [ngClass]=\"getCssClasses()\">\n\t<ngx-button variant=\"outline\" (click)=\"previousMonth()\">\u00AB</ngx-button>\n\t<h4 class=\"m-0\">\n\t\t{{ currentMonth.format('MMMM YYYY') }}\n\t</h4>\n\t<ngx-button variant=\"outline\" (click)=\"nextMonth()\">\u00BB</ngx-button>\n</div>\n\n<div class=\"table-responsive\">\n\t<table class=\"table table-bordered text-center\">\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t@for (weekdayHeader of weekdayHeaders; track weekdayHeader) {\n\t\t\t\t\t<th>{{ weekdayHeader }}</th>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t@for (week of weeks; track $index) {\n\t\t\t\t<tr>\n\t\t\t\t\t@for (day of week; track day.date()) {\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tclass=\"day\"\n\t\t\t\t\t\t\t[class.bg-secondary-subtle]=\"!isCurrentMonth(day)\"\n\t\t\t\t\t\t\t[class.bg-primary]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t[class.text-white]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t[class.bg-dark-subtle]=\"isToday(day)\"\n\t\t\t\t\t\t\t(click)=\"onSelectDay(day)\"\n\t\t\t\t\t\t\t(mouseover)=\"hoveredDay = day\"\n\t\t\t\t\t\t\t(mouseout)=\"hoveredDay = null\">\n\t\t\t\t\t\t\t{{ day.date() }}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t}\n\t\t</tbody>\n\t</table>\n</div>\n", styles: [".day:hover{cursor:pointer}\n"] }]
295
+ args: [{ selector: 'ngx-calendar', imports: [NgxButtonComponent, NgxIconButtonComponent, NgClass], template: "<div [ngClass]=\"getCssClasses()\">\n\t<ngx-icon-button\n\t\tcolor=\"secondary\"\n\t\tvariant=\"ghost\"\n\t\t[svg]=\"LibIcons.faChevronLeft\"\n\t\t(onClick)=\"previousMonth()\" />\n\t<h4 class=\"m-0\">\n\t\t{{ currentMonth.format('MMMM YYYY') }}\n\t</h4>\n\t<ngx-icon-button\n\t\tcolor=\"secondary\"\n\t\tvariant=\"ghost\"\n\t\t(onClick)=\"nextMonth()\"\n\t\t[svg]=\"LibIcons.faChevronRight\" />\n</div>\n\n<div class=\"table-responsive\">\n\t<table class=\"table table-bordered text-center\">\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t@for (weekdayHeader of weekdayHeaders; track weekdayHeader) {\n\t\t\t\t\t<th>{{ weekdayHeader }}</th>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t@for (week of weeks; track $index) {\n\t\t\t\t<tr>\n\t\t\t\t\t@for (day of week; track day.date()) {\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tclass=\"day\"\n\t\t\t\t\t\t\t[class.bg-body-tertiary]=\"!isCurrentMonth(day)\"\n\t\t\t\t\t\t\t[class.bg-info-subtle]=\"\n\t\t\t\t\t\t\t\tisToday(day) && !(isSelected(day) || day === hoveredDay)\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\t[class.bg-primary]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t[class.text-white]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t(click)=\"onSelectDay(day)\"\n\t\t\t\t\t\t\t(mouseover)=\"hoveredDay = day\"\n\t\t\t\t\t\t\t(mouseout)=\"hoveredDay = null\">\n\t\t\t\t\t\t\t{{ day.date() }}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t}\n\t\t</tbody>\n\t</table>\n</div>\n", styles: [".day:hover{cursor:pointer}\n"] }]
157
296
  }], propDecorators: { onDaySelected: [{ type: i0.Output, args: ["onDaySelected"] }], cssClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cssClass", required: false }] }] } });
158
297
 
159
298
  class NgxCardBodyComponent {
@@ -709,131 +848,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
709
848
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\n\t[ngClass]=\"getCssClasses()\"\n\tngxFormGroup\n\t#formGroupDirective=\"ngxFormGroup\"\n\t[formGroup]=\"formGroup()\">\n\t@for (control of formGroup().controls | keyvalue: keepOriginalOrder; track $index) {\n\t\t@if (isFormControl(control.value)) {\n\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: control }\" />\n\t\t} @else {\n\t\t\t<div ngxFormGroup [formGroup]=\"control.value | ngxIsFormGroup\" class=\"row\">\n\t\t\t\t@for (\n\t\t\t\t\tsubControl of (control.value | ngxIsFormGroup).controls\n\t\t\t\t\t\t| keyvalue: keepOriginalOrder;\n\t\t\t\t\ttrack $index\n\t\t\t\t) {\n\t\t\t\t\t<div class=\"col\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"formField; context: { control: subControl }\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t}\n</form>\n\n<ng-template #formField let-control=\"control\">\n\t@if (control.value | appIsFormControl; as typedControl) {\n\t\t<div class=\"mb-3\">\n\t\t\t<!-- <label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t{{ typedControl.customConfig?.label }}\n\t\t</label> -->\n\n\t\t\t@switch (typedControl.config?.type) {\n\t\t\t\t@case ('textarea') {\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"textarea\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[rows]=\"typedControl.config?.textareaConfig?.rows || 4\">\n\t\t\t\t\t</textarea>\n\t\t\t\t}\n\n\t\t\t\t@case ('select') {\n\t\t\t\t\t<select\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"select\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\">\n\t\t\t\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\t\t\t\t\t\t@for (\n\t\t\t\t\t\t\toption of typedControl.config?.selectConfig?.options;\n\t\t\t\t\t\t\ttrack option.value\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t\t\t\t{{ option.label }}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t}\n\t\t\t\t\t</select>\n\t\t\t\t}\n\n\t\t\t\t@case ('checkbox') {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\n\t\t\t\t@default {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\t[type]=\"typedControl.config?.type || 'text'\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[autocomplete]=\"\n\t\t\t\t\t\t\ttypedControl.config?.type === 'password' ? 'new-password' : undefined\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t<label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t\t{{ typedControl.config?.label }}\n\t\t\t</label>\n\n\t\t\t@if (typedControl.config?.hint) {\n\t\t\t\t<small class=\"text-muted\">\n\t\t\t\t\t{{ typedControl.config?.hint }}\n\t\t\t\t</small>\n\t\t\t}\n\n\t\t\t<ngx-form-errors [errors]=\"control.value.errors\" [isDirty]=\"control.value.dirty\" />\n\t\t</div>\n\t}\n</ng-template>\n", styles: [":host{display:block}\n"] }]
710
849
  }], propDecorators: { cssClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cssClass", required: false }] }], formGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "formGroup", required: true }] }], formGroupDirective: [{ type: i0.ViewChild, args: [i0.forwardRef(() => NgxFormGroupDirective), { isSignal: true }] }], onValidated: [{ type: i0.Output, args: ["onValidated"] }] } });
711
850
 
712
- class NgxIconComponent {
713
- constructor() {
714
- this.sanitizer = inject(DomSanitizer);
715
- this.svg = input.required(...(ngDevMode ? [{ debugName: "svg" }] : []));
716
- this.size = input('1.25em', ...(ngDevMode ? [{ debugName: "size" }] : []));
717
- this.title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
718
- this.ariaHidden = input(true, ...(ngDevMode ? [{ debugName: "ariaHidden" }] : []));
719
- this.cssClass = input(...(ngDevMode ? [undefined, { debugName: "cssClass" }] : []));
720
- this.svgHtml = computed(() => {
721
- return this.svg() ? this.sanitizer.bypassSecurityTrustHtml(this.fixFill(this.svg())) : '';
722
- }, ...(ngDevMode ? [{ debugName: "svgHtml" }] : []));
723
- }
724
- get hostSize() {
725
- const size = this.size();
726
- return typeof size === 'number' ? `${size}px` : (size ?? '1.25em');
727
- }
728
- get hostClass() {
729
- return this.cssClass() ?? null;
730
- }
731
- fixFill(svg) {
732
- if (!svg) {
733
- return '';
734
- }
735
- if (/^<svg[^>]*fill=/i.test(svg)) {
736
- return svg.replace(/^<svg([^>]*)fill="[^"]*"/i, '<svg$1fill="currentColor"');
737
- }
738
- return svg.replace(/^<svg/i, '<svg fill="currentColor"');
739
- }
740
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NgxIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
741
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: NgxIconComponent, isStandalone: true, selector: "ngx-icon", inputs: { svg: { classPropertyName: "svg", publicName: "svg", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, ariaHidden: { classPropertyName: "ariaHidden", publicName: "ariaHidden", isSignal: true, isRequired: false, transformFunction: null }, cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--ngx-icon-size": "this.hostSize", "class": "this.hostClass" } }, ngImport: i0, template: `
742
- <span
743
- class="ngx-icon"
744
- [attr.aria-hidden]="ariaHidden() ? 'true' : null"
745
- [attr.role]="ariaHidden() ? null : 'img'"
746
- [attr.title]="title() || null"
747
- [innerHTML]="svgHtml()">
748
- </span>
749
- `, isInline: true, styles: [":host{display:inline-flex;line-height:0;vertical-align:middle}.ngx-icon{display:inline-flex;width:var(--ngx-icon-size, 1.5em);height:var(--ngx-icon-size, 1.5em)}.ngx-icon svg{width:100%;height:100%;display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
750
- }
751
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NgxIconComponent, decorators: [{
752
- type: Component,
753
- args: [{ selector: 'ngx-icon', standalone: true, imports: [CommonModule], template: `
754
- <span
755
- class="ngx-icon"
756
- [attr.aria-hidden]="ariaHidden() ? 'true' : null"
757
- [attr.role]="ariaHidden() ? null : 'img'"
758
- [attr.title]="title() || null"
759
- [innerHTML]="svgHtml()">
760
- </span>
761
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:inline-flex;line-height:0;vertical-align:middle}.ngx-icon{display:inline-flex;width:var(--ngx-icon-size, 1.5em);height:var(--ngx-icon-size, 1.5em)}.ngx-icon svg{width:100%;height:100%;display:block}\n"] }]
762
- }], propDecorators: { svg: [{ type: i0.Input, args: [{ isSignal: true, alias: "svg", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], ariaHidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaHidden", required: false }] }], cssClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cssClass", required: false }] }], hostSize: [{
763
- type: HostBinding,
764
- args: ['style.--ngx-icon-size']
765
- }], hostClass: [{
766
- type: HostBinding,
767
- args: ['class']
768
- }] } });
769
-
770
- class NgxIconButtonComponent {
771
- constructor() {
772
- this.elementRef = inject(ElementRef);
773
- this.cssClass = input('', ...(ngDevMode ? [{ debugName: "cssClass" }] : []));
774
- this.svg = input.required(...(ngDevMode ? [{ debugName: "svg" }] : []));
775
- this.type = input('button', ...(ngDevMode ? [{ debugName: "type" }] : []));
776
- this.color = input('secondary', ...(ngDevMode ? [{ debugName: "color" }] : []));
777
- this.size = input('sm', ...(ngDevMode ? [{ debugName: "size" }] : []));
778
- this.variant = input('ghost', ...(ngDevMode ? [{ debugName: "variant" }] : []));
779
- this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
780
- this.shadow = input(...(ngDevMode ? [undefined, { debugName: "shadow" }] : []));
781
- this.onClick = output();
782
- this.onFocus = output();
783
- this.onBlur = output();
784
- this.getCssClasses = computed(() => {
785
- const cssClasses = [
786
- 'btn',
787
- 'rounded-circle',
788
- 'p-0',
789
- 'd-flex',
790
- 'align-items-center',
791
- 'justify-content-center',
792
- ];
793
- if (this.variant() !== 'contained') {
794
- cssClasses.push(`btn-${this.variant()}-${this.color()}`);
795
- }
796
- else {
797
- cssClasses.push(`btn-${this.color()}`);
798
- }
799
- cssClasses.push(`btn-${this.size()}`);
800
- cssClasses.push('flex-shrink-0');
801
- if (this.shadow()) {
802
- cssClasses.push('shadow-sm');
803
- }
804
- if (this.cssClass()) {
805
- cssClasses.push(this.cssClass());
806
- }
807
- return cssClasses.join(' ');
808
- }, ...(ngDevMode ? [{ debugName: "getCssClasses" }] : []));
809
- }
810
- focus() {
811
- const nativeButton = this.elementRef.nativeElement.querySelector('button');
812
- if (nativeButton) {
813
- nativeButton.focus();
814
- }
815
- else {
816
- this.elementRef.nativeElement.focus();
817
- }
818
- }
819
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NgxIconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
820
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: NgxIconButtonComponent, isStandalone: true, selector: "ngx-icon-button", inputs: { cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null }, svg: { classPropertyName: "svg", publicName: "svg", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur" }, host: { classAttribute: "d-inline-flex align-items-center" }, providers: [
821
- {
822
- provide: FocusableHost,
823
- useExisting: forwardRef(() => NgxIconButtonComponent),
824
- },
825
- ], ngImport: i0, template: "<button\n\t[ngClass]=\"getCssClasses()\"\n\t[attr.type]=\"type()\"\n\t[disabled]=\"disabled()\"\n\t(click)=\"onClick.emit($event)\"\n\t(focus)=\"onFocus.emit($event)\"\n\t(blur)=\"onBlur.emit($event)\"\n\tstyle=\"width: 40px; height: 40px\">\n\t<ngx-icon [svg]=\"svg()\" />\n</button>\n", dependencies: [{ kind: "component", type: NgxIconComponent, selector: "ngx-icon", inputs: ["svg", "size", "title", "ariaHidden", "cssClass"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
826
- }
827
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NgxIconButtonComponent, decorators: [{
828
- type: Component,
829
- args: [{ selector: 'ngx-icon-button', host: { class: 'd-inline-flex align-items-center' }, imports: [NgxIconComponent, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
830
- {
831
- provide: FocusableHost,
832
- useExisting: forwardRef(() => NgxIconButtonComponent),
833
- },
834
- ], template: "<button\n\t[ngClass]=\"getCssClasses()\"\n\t[attr.type]=\"type()\"\n\t[disabled]=\"disabled()\"\n\t(click)=\"onClick.emit($event)\"\n\t(focus)=\"onFocus.emit($event)\"\n\t(blur)=\"onBlur.emit($event)\"\n\tstyle=\"width: 40px; height: 40px\">\n\t<ngx-icon [svg]=\"svg()\" />\n</button>\n" }]
835
- }], propDecorators: { cssClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cssClass", required: false }] }], svg: [{ type: i0.Input, args: [{ isSignal: true, alias: "svg", required: true }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], shadow: [{ type: i0.Input, args: [{ isSignal: true, alias: "shadow", required: false }] }], onClick: [{ type: i0.Output, args: ["onClick"] }], onFocus: [{ type: i0.Output, args: ["onFocus"] }], onBlur: [{ type: i0.Output, args: ["onBlur"] }] } });
836
-
837
851
  class NgxListGroupItemAvatarDirective {
838
852
  constructor() {
839
853
  this.elementRef = inject((ElementRef));
@@ -917,11 +931,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
917
931
  }]
918
932
  }] });
919
933
 
920
- const LibIcons = {
921
- faXmark: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M183.1 137.4C170.6 124.9 150.3 124.9 137.8 137.4C125.3 149.9 125.3 170.2 137.8 182.7L275.2 320L137.9 457.4C125.4 469.9 125.4 490.2 137.9 502.7C150.4 515.2 170.7 515.2 183.2 502.7L320.5 365.3L457.9 502.6C470.4 515.1 490.7 515.1 503.2 502.6C515.7 490.1 515.7 469.8 503.2 457.3L365.8 320L503.1 182.6C515.6 170.1 515.6 149.8 503.1 137.3C490.6 124.8 470.3 124.8 457.8 137.3L320.5 274.7L183.1 137.4z"/></svg>',
922
- faSpinner: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M272 112C272 85.5 293.5 64 320 64C346.5 64 368 85.5 368 112C368 138.5 346.5 160 320 160C293.5 160 272 138.5 272 112zM272 528C272 501.5 293.5 480 320 480C346.5 480 368 501.5 368 528C368 554.5 346.5 576 320 576C293.5 576 272 554.5 272 528zM112 272C138.5 272 160 293.5 160 320C160 346.5 138.5 368 112 368C85.5 368 64 346.5 64 320C64 293.5 85.5 272 112 272zM480 320C480 293.5 501.5 272 528 272C554.5 272 576 293.5 576 320C576 346.5 554.5 368 528 368C501.5 368 480 346.5 480 320zM139 433.1C157.8 414.3 188.1 414.3 206.9 433.1C225.7 451.9 225.7 482.2 206.9 501C188.1 519.8 157.8 519.8 139 501C120.2 482.2 120.2 451.9 139 433.1zM139 139C157.8 120.2 188.1 120.2 206.9 139C225.7 157.8 225.7 188.1 206.9 206.9C188.1 225.7 157.8 225.7 139 206.9C120.2 188.1 120.2 157.8 139 139zM501 433.1C519.8 451.9 519.8 482.2 501 501C482.2 519.8 451.9 519.8 433.1 501C414.3 482.2 414.3 451.9 433.1 433.1C451.9 414.3 482.2 414.3 501 433.1z"/></svg>',
923
- };
924
-
925
934
  class NgxLoadingIndicatorComponent {
926
935
  constructor() {
927
936
  this.icon = input(LibIcons.faSpinner, ...(ngDevMode ? [{ debugName: "icon" }] : []));
@@ -1014,7 +1023,7 @@ class NgxTooltipDirective {
1014
1023
  this.ngxTooltipIsShow = input(false, ...(ngDevMode ? [{ debugName: "ngxTooltipIsShow" }] : []));
1015
1024
  this.ngxTooltipXOffset = input(0, ...(ngDevMode ? [{ debugName: "ngxTooltipXOffset" }] : []));
1016
1025
  this.ngxTooltipYOffset = input(8, ...(ngDevMode ? [{ debugName: "ngxTooltipYOffset" }] : []));
1017
- this.ngxTooltipDelay = input(1000, ...(ngDevMode ? [{ debugName: "ngxTooltipDelay" }] : []));
1026
+ this.ngxTooltipDelay = input(100, ...(ngDevMode ? [{ debugName: "ngxTooltipDelay" }] : []));
1018
1027
  this.ngxTooltipTriggers = input(['hover'], ...(ngDevMode ? [{ debugName: "ngxTooltipTriggers" }] : []));
1019
1028
  this.ngxTooltipSize = input('sm', ...(ngDevMode ? [{ debugName: "ngxTooltipSize" }] : []));
1020
1029
  this.ngxTooltipZIndex = input(5, ...(ngDevMode ? [{ debugName: "ngxTooltipZIndex" }] : []));