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 +1 -1
- package/assets/styles.scss +45 -29
- package/fesm2022/ngx-gccb.mjs +145 -136
- package/fesm2022/ngx-gccb.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ngx-gccb.d.ts +4 -3
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-
|
|
11
|
+
- Angular v21 and ngx-gccb [link](https://stackblitz.com/edit/ng-21-ngx-gccb)
|
|
12
12
|
|
|
13
13
|
## Get started
|
|
14
14
|
|
package/assets/styles.scss
CHANGED
|
@@ -1,36 +1,53 @@
|
|
|
1
1
|
@import 'bootstrap/scss/functions';
|
|
2
|
-
@import 'bootstrap/scss/variables';
|
|
3
2
|
|
|
4
|
-
$primary
|
|
5
|
-
|
|
6
|
-
$
|
|
7
|
-
$
|
|
8
|
-
$
|
|
9
|
-
$
|
|
10
|
-
$
|
|
11
|
-
|
|
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
|
-
|
|
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.
|
|
33
|
-
--bs-btn-active-bg: rgba(var(--bs-#{$color}-rgb), 0.
|
|
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
|
+
}
|
package/fesm2022/ngx-gccb.mjs
CHANGED
|
@@ -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,
|
|
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 = [
|
|
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
|
|
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
|
|
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(
|
|
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" }] : []));
|