@koobiq/components 19.6.0 → 19.8.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/accordion/accordion-content.directive.d.ts +1 -0
- package/autocomplete/autocomplete-trigger.directive.d.ts +2 -1
- package/autocomplete/autocomplete.component.d.ts +7 -1
- package/breadcrumbs/breadcrumbs.scss +0 -4
- package/code-block/_code-block-theme.scss +1 -10
- package/code-block/code-block-highlight.d.ts +62 -7
- package/code-block/code-block-tokens.scss +5 -10
- package/code-block/code-block.d.ts +10 -1
- package/code-block/code-block.scss +8 -7
- package/core/forms/forms-tokens.scss +1 -1
- package/core/option/option.d.ts +10 -1
- package/core/styles/common/_groups-mixins.scss +2 -2
- package/core/styles/common/_groups.scss +6 -6
- package/core/validation/validation.d.ts +1 -1
- package/dropdown/dropdown-item.scss +9 -6
- package/dropdown/dropdown-tokens.scss +1 -1
- package/dropdown/dropdown-trigger.directive.d.ts +8 -1
- package/dropdown/dropdown.component.d.ts +6 -6
- package/dropdown/dropdown.scss +1 -1
- package/dropdown/dropdown.types.d.ts +19 -7
- package/fesm2022/koobiq-components-accordion.mjs +32 -29
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +10 -10
- package/fesm2022/koobiq-components-alert.mjs +16 -16
- package/fesm2022/koobiq-components-app-switcher.mjs +25 -25
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +35 -23
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +13 -13
- package/fesm2022/koobiq-components-breadcrumbs.mjs +26 -26
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +10 -10
- package/fesm2022/koobiq-components-button.mjs +19 -19
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +10 -10
- package/fesm2022/koobiq-components-clamped-text.mjs +13 -13
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +126 -51
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +28 -28
- package/fesm2022/koobiq-components-core.mjs +249 -232
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +37 -42
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +7 -7
- package/fesm2022/koobiq-components-dl.mjs +13 -13
- package/fesm2022/koobiq-components-dropdown.mjs +69 -38
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
- package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -7
- package/fesm2022/koobiq-components-empty-state.mjs +19 -19
- package/fesm2022/koobiq-components-file-upload.mjs +39 -39
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +85 -85
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +83 -81
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +343 -21
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +19 -17
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +22 -22
- package/fesm2022/koobiq-components-link.mjs +7 -7
- package/fesm2022/koobiq-components-list.mjs +19 -19
- package/fesm2022/koobiq-components-loader-overlay.mjs +16 -16
- package/fesm2022/koobiq-components-markdown.mjs +10 -10
- package/fesm2022/koobiq-components-modal.mjs +34 -32
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar-ic.mjs +40 -40
- package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +82 -56
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +16 -16
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +16 -16
- package/fesm2022/koobiq-components-popover.mjs +18 -18
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
- package/fesm2022/koobiq-components-progress-spinner.mjs +13 -13
- package/fesm2022/koobiq-components-radio.mjs +10 -10
- package/fesm2022/koobiq-components-resizer.mjs +10 -10
- package/fesm2022/koobiq-components-risk-level.mjs +7 -7
- package/fesm2022/koobiq-components-scrollbar.mjs +12 -12
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +7 -7
- package/fesm2022/koobiq-components-select.mjs +155 -68
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +13 -13
- package/fesm2022/koobiq-components-sidepanel.mjs +28 -28
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +10 -10
- package/fesm2022/koobiq-components-split-button.mjs +7 -7
- package/fesm2022/koobiq-components-splitter.mjs +16 -16
- package/fesm2022/koobiq-components-table.mjs +10 -10
- package/fesm2022/koobiq-components-tabs.mjs +52 -52
- package/fesm2022/koobiq-components-tags.mjs +87 -65
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +7 -7
- package/fesm2022/koobiq-components-time-range.mjs +22 -22
- package/fesm2022/koobiq-components-timepicker.mjs +11 -26
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +62 -41
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +7 -7
- package/fesm2022/koobiq-components-toast.mjs +58 -39
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +7 -7
- package/fesm2022/koobiq-components-tooltip.mjs +17 -17
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +17 -25
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +16 -10
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +75 -40
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +28 -28
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/multiple-file-upload.component.scss +6 -0
- package/file-upload/single-file-upload.component.scss +6 -0
- package/form-field/_form-field-theme.scss +19 -6
- package/form-field/fieldset-tokens.scss +1 -0
- package/form-field/fieldset.scss +1 -0
- package/form-field/form-field-tokens.scss +2 -0
- package/form-field/form-field.scss +19 -0
- package/form-field/password-toggle.scss +1 -1
- package/icon/icon-button.scss +5 -0
- package/icon/icon-item.scss +5 -0
- package/icon/icon-registry-providers.d.ts +34 -0
- package/icon/icon-registry.d.ts +50 -0
- package/icon/icon.component.d.ts +16 -3
- package/icon/icon.scss +7 -0
- package/icon/public-api.d.ts +2 -0
- package/inline-edit/inline-edit.d.ts +3 -1
- package/inline-edit/inline-edit.scss +1 -11
- package/link/_link-theme.scss +9 -2
- package/navbar/_navbar-theme.scss +0 -4
- package/navbar/navbar-brand.component.d.ts +3 -1
- package/navbar/navbar-item.component.d.ts +1 -0
- package/navbar/navbar.component.d.ts +1 -0
- package/package.json +4 -4
- package/popover/popover.scss +3 -3
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/schematics/ng-add/index.js +4 -4
- package/scrollbar/scrollbar-tokens.scss +1 -1
- package/select/select-option.directive.d.ts +9 -10
- package/select/select-tokens.scss +2 -2
- package/select/select.component.d.ts +51 -3
- package/tags/tag-list.component.d.ts +15 -11
- package/tags/tag.component.d.ts +5 -2
- package/timepicker/timepicker.directive.d.ts +1 -0
- package/timezone/timezone-option-tokens.scss +0 -10
- package/timezone/timezone-option.directive.d.ts +12 -9
- package/toast/toast.service.d.ts +5 -3
- package/tooltip/_tooltip-theme.scss +5 -1
- package/top-bar/top-bar.d.ts +0 -7
- package/top-bar/top-bar.scss +3 -9
- package/tree/tree-selection.component.d.ts +7 -0
|
@@ -1,8 +1,280 @@
|
|
|
1
1
|
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, ElementRef, ChangeDetectorRef, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, signal, effect, booleanAttribute, NgModule } from '@angular/core';
|
|
4
|
-
import { toObservable } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { InjectionToken, inject, SecurityContext, Injectable, ElementRef, ChangeDetectorRef, DestroyRef, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, signal, effect, booleanAttribute, NgModule } from '@angular/core';
|
|
4
|
+
import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { KbqColorDirective, KBQ_FORM_FIELD_REF } from '@koobiq/components/core';
|
|
6
|
+
import { of, throwError, ReplaySubject, EMPTY } from 'rxjs';
|
|
7
|
+
import { map, catchError, share, finalize, switchMap } from 'rxjs/operators';
|
|
8
|
+
import { DOCUMENT } from '@angular/common';
|
|
9
|
+
import { HttpClient } from '@angular/common/http';
|
|
10
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
11
|
+
|
|
12
|
+
const KBQ_ICONS_CONFIG = new InjectionToken('KBQ_ICONS_CONFIG');
|
|
13
|
+
/**
|
|
14
|
+
* Multi-valued injection token for icon resolver functions.
|
|
15
|
+
* Resolvers are tried in registration order; the first non-null result wins.
|
|
16
|
+
*/
|
|
17
|
+
const KBQ_ICON_RESOLVER = new InjectionToken('KBQ_ICON_RESOLVER');
|
|
18
|
+
/** Configures the icon registry to load icons from one or more SVG sprite assets. */
|
|
19
|
+
function kbqIconsProvider(...sprites) {
|
|
20
|
+
return { provide: KBQ_ICONS_CONFIG, useValue: sprites };
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Registers a resolver function that maps icon names to SVG strings or URLs.
|
|
24
|
+
* Multiple resolvers can be registered; they are tried in registration order.
|
|
25
|
+
*/
|
|
26
|
+
function kbqIconsResolverProvider(resolver) {
|
|
27
|
+
return { provide: KBQ_ICON_RESOLVER, useValue: resolver, multi: true };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Registers a name→SVG/URL dictionary as an icon resolver.
|
|
31
|
+
* Values starting with `<` are treated as inline SVG (no HTTP request).
|
|
32
|
+
* All other values are treated as URLs and fetched at runtime.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* kbqIconsDictProvider({ 'chevron-down-s_16': '<svg>...</svg>' })
|
|
36
|
+
*/
|
|
37
|
+
function kbqIconsDictProvider(dict) {
|
|
38
|
+
return kbqIconsResolverProvider((name) => dict[name] ?? null);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function iconKey(namespace, name) {
|
|
42
|
+
return namespace ? `${namespace}:${name}` : name;
|
|
43
|
+
}
|
|
44
|
+
function cloneSvg(svg) {
|
|
45
|
+
return svg.cloneNode(true);
|
|
46
|
+
}
|
|
47
|
+
class KbqIconRegistry {
|
|
48
|
+
constructor() {
|
|
49
|
+
this.sanitizer = inject(DomSanitizer);
|
|
50
|
+
this.document = inject(DOCUMENT);
|
|
51
|
+
this.httpClient = inject(HttpClient, { optional: true });
|
|
52
|
+
this.iconsConfig = inject(KBQ_ICONS_CONFIG, { optional: true });
|
|
53
|
+
this.resolvers = inject(KBQ_ICON_RESOLVER, { optional: true }) ?? [];
|
|
54
|
+
/** Individual icon configs, keyed by "namespace:name". */
|
|
55
|
+
this.iconConfigs = new Map();
|
|
56
|
+
/** Icon-set configs per namespace. */
|
|
57
|
+
this.iconSetConfigs = new Map();
|
|
58
|
+
/** In-progress URL fetches to dedupe concurrent requests. */
|
|
59
|
+
this.inProgressUrlFetches = new Map();
|
|
60
|
+
/** Cached parsed SVG sets, keyed by URL string. */
|
|
61
|
+
this.cachedIconSets = new Map();
|
|
62
|
+
this.registerIconSet();
|
|
63
|
+
}
|
|
64
|
+
/** Registers an SVG icon by URL in the default namespace. */
|
|
65
|
+
addSvgIcon(name, url, options) {
|
|
66
|
+
this.addSvgIconInNamespace('', name, url, options);
|
|
67
|
+
}
|
|
68
|
+
/** Registers an SVG icon from an inline HTML string in the default namespace. */
|
|
69
|
+
addSvgIconLiteral(name, literal, options) {
|
|
70
|
+
this.addSvgIconLiteralInNamespace('', name, literal, options);
|
|
71
|
+
}
|
|
72
|
+
/** Registers an SVG icon by URL under the given namespace. */
|
|
73
|
+
addSvgIconInNamespace(namespace, name, url, options) {
|
|
74
|
+
this.cacheIcon(namespace, name, { url, svgText: null, options, svgElement: null });
|
|
75
|
+
}
|
|
76
|
+
/** Registers an SVG icon from an inline HTML string under the given namespace. */
|
|
77
|
+
addSvgIconLiteralInNamespace(namespace, name, literal, options) {
|
|
78
|
+
const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, literal);
|
|
79
|
+
if (!sanitized) {
|
|
80
|
+
throw Error(`KbqIconRegistry: literal for icon "${iconKey(namespace, name)}" sanitized to empty string.`);
|
|
81
|
+
}
|
|
82
|
+
this.cacheIcon(namespace, name, {
|
|
83
|
+
url: null,
|
|
84
|
+
svgText: this.sanitizer.bypassSecurityTrustHtml(sanitized),
|
|
85
|
+
options,
|
|
86
|
+
svgElement: null
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/** Registers an SVG sprite file in the default namespace. Icons are looked up by their `symbol id`. */
|
|
90
|
+
addSvgIconSet(url, options) {
|
|
91
|
+
this.addSvgIconSetInNamespace('', url, options);
|
|
92
|
+
}
|
|
93
|
+
/** Registers an SVG sprite file under the given namespace. Duplicate URLs are silently ignored. */
|
|
94
|
+
addSvgIconSetInNamespace(namespace, url, options) {
|
|
95
|
+
const urlStr = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, url) ?? '';
|
|
96
|
+
const sets = this.iconSetConfigs.get(namespace) ?? [];
|
|
97
|
+
const alreadyRegistered = sets.some((set) => this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, set.url) === urlStr);
|
|
98
|
+
if (alreadyRegistered)
|
|
99
|
+
return;
|
|
100
|
+
const config = { url, svgText: null, options, svgElement: null };
|
|
101
|
+
sets.push(config);
|
|
102
|
+
this.iconSetConfigs.set(namespace, sets);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Emits a cloned SVGElement for the given name.
|
|
106
|
+
* Accepts "namespace:name" syntax.
|
|
107
|
+
*/
|
|
108
|
+
getNamedSvgIcon(name, namespace = '') {
|
|
109
|
+
let resolvedNs = namespace;
|
|
110
|
+
let resolvedName = name;
|
|
111
|
+
if (resolvedName.trimStart().startsWith('<')) {
|
|
112
|
+
const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, resolvedName) ?? '';
|
|
113
|
+
return of(this.svgElementFromText(sanitized));
|
|
114
|
+
}
|
|
115
|
+
const colonIndex = name.indexOf(':');
|
|
116
|
+
if (colonIndex !== -1) {
|
|
117
|
+
resolvedNs = name.slice(0, colonIndex);
|
|
118
|
+
resolvedName = name.slice(colonIndex + 1);
|
|
119
|
+
}
|
|
120
|
+
const key = iconKey(resolvedNs, resolvedName);
|
|
121
|
+
const iconConfig = this.iconConfigs.get(key);
|
|
122
|
+
if (iconConfig) {
|
|
123
|
+
return this.loadIcon(iconConfig, resolvedName);
|
|
124
|
+
}
|
|
125
|
+
for (const resolver of this.resolvers) {
|
|
126
|
+
const result = resolver(resolvedName);
|
|
127
|
+
if (result == null)
|
|
128
|
+
continue;
|
|
129
|
+
const config = {
|
|
130
|
+
url: null,
|
|
131
|
+
svgText: null,
|
|
132
|
+
svgElement: null,
|
|
133
|
+
options: undefined
|
|
134
|
+
};
|
|
135
|
+
if (result.trimStart().startsWith('<')) {
|
|
136
|
+
const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, result) ?? '';
|
|
137
|
+
config.svgText = this.sanitizer.bypassSecurityTrustHtml(sanitized);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
config.url = this.sanitizer.bypassSecurityTrustResourceUrl(result);
|
|
141
|
+
}
|
|
142
|
+
this.iconConfigs.set(key, config);
|
|
143
|
+
return this.loadIcon(config, resolvedName);
|
|
144
|
+
}
|
|
145
|
+
const sets = this.iconSetConfigs.get(resolvedNs);
|
|
146
|
+
if (sets?.length) {
|
|
147
|
+
return this.loadIconFromSets(resolvedName, sets);
|
|
148
|
+
}
|
|
149
|
+
return throwError(() => Error(`KbqIconRegistry: no icon registered for "${key}".`));
|
|
150
|
+
}
|
|
151
|
+
cacheIcon(namespace, name, config) {
|
|
152
|
+
this.iconConfigs.set(iconKey(namespace, name), config);
|
|
153
|
+
return this;
|
|
154
|
+
}
|
|
155
|
+
loadIcon(config, name) {
|
|
156
|
+
if (config.svgElement) {
|
|
157
|
+
return of(cloneSvg(config.svgElement));
|
|
158
|
+
}
|
|
159
|
+
if (config.svgText) {
|
|
160
|
+
const svg = this.svgElementFromText(config.svgText, config.options);
|
|
161
|
+
config.svgElement = svg;
|
|
162
|
+
return of(cloneSvg(svg));
|
|
163
|
+
}
|
|
164
|
+
if (config.url) {
|
|
165
|
+
return this.fetchUrl(config.url, config.options?.withCredentials).pipe(map((text) => {
|
|
166
|
+
const svg = this.svgElementFromText(text, config.options);
|
|
167
|
+
config.svgElement = svg;
|
|
168
|
+
return cloneSvg(svg);
|
|
169
|
+
}));
|
|
170
|
+
}
|
|
171
|
+
return throwError(() => Error(`KbqIconRegistry: icon "${name}" has neither URL nor literal.`));
|
|
172
|
+
}
|
|
173
|
+
registerIconSet() {
|
|
174
|
+
if (!this.iconsConfig)
|
|
175
|
+
return;
|
|
176
|
+
for (const config of this.iconsConfig) {
|
|
177
|
+
const url = this.sanitizer.bypassSecurityTrustResourceUrl(config.spriteUrl);
|
|
178
|
+
if (config.namespace) {
|
|
179
|
+
this.addSvgIconSetInNamespace(config.namespace, url);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
this.addSvgIconSet(url);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
loadIconFromSets(name, sets) {
|
|
187
|
+
const sources = sets
|
|
188
|
+
.slice()
|
|
189
|
+
.reverse()
|
|
190
|
+
.map((set) => this.loadIconSet(set));
|
|
191
|
+
const tryNext = (index) => {
|
|
192
|
+
if (index >= sources.length) {
|
|
193
|
+
return throwError(() => Error(`KbqIconRegistry: icon "${name}" not found in any registered icon set.`));
|
|
194
|
+
}
|
|
195
|
+
return sources[index].pipe(map((setElement) => {
|
|
196
|
+
const icon = this.extractIconFromSet(name, setElement);
|
|
197
|
+
if (!icon) {
|
|
198
|
+
throw Error(`KbqIconRegistry: icon "${name}" not found in set.`);
|
|
199
|
+
}
|
|
200
|
+
return icon;
|
|
201
|
+
}), catchError(() => tryNext(index + 1)));
|
|
202
|
+
};
|
|
203
|
+
return tryNext(0);
|
|
204
|
+
}
|
|
205
|
+
loadIconSet(config) {
|
|
206
|
+
if (config.svgElement) {
|
|
207
|
+
return of(config.svgElement);
|
|
208
|
+
}
|
|
209
|
+
if (!config.url) {
|
|
210
|
+
return throwError(() => Error('KbqIconRegistry: icon set has no URL.'));
|
|
211
|
+
}
|
|
212
|
+
const urlStr = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, config.url);
|
|
213
|
+
if (!urlStr) {
|
|
214
|
+
return throwError(() => Error('KbqIconRegistry: icon set URL failed sanitization.'));
|
|
215
|
+
}
|
|
216
|
+
if (this.cachedIconSets.has(urlStr)) {
|
|
217
|
+
config.svgElement = this.cachedIconSets.get(urlStr);
|
|
218
|
+
return of(config.svgElement);
|
|
219
|
+
}
|
|
220
|
+
return this.fetchUrl(config.url, config.options?.withCredentials).pipe(map((text) => {
|
|
221
|
+
const svg = this.svgElementFromText(text, config.options);
|
|
222
|
+
config.svgElement = svg;
|
|
223
|
+
this.cachedIconSets.set(urlStr, svg);
|
|
224
|
+
return svg;
|
|
225
|
+
}));
|
|
226
|
+
}
|
|
227
|
+
extractIconFromSet(name, setElement) {
|
|
228
|
+
const symbol = setElement.querySelector(`#${name}`);
|
|
229
|
+
if (!symbol)
|
|
230
|
+
return null;
|
|
231
|
+
const svg = this.document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
232
|
+
const viewBox = symbol.getAttribute('viewBox') || setElement.getAttribute('viewBox') || '0 0 24 24';
|
|
233
|
+
svg.setAttribute('viewBox', viewBox);
|
|
234
|
+
svg.setAttribute('aria-hidden', 'true');
|
|
235
|
+
svg.setAttribute('focusable', 'false');
|
|
236
|
+
for (const child of Array.from(symbol.childNodes)) {
|
|
237
|
+
svg.appendChild(child.cloneNode(true));
|
|
238
|
+
}
|
|
239
|
+
return svg;
|
|
240
|
+
}
|
|
241
|
+
svgElementFromText(text, options) {
|
|
242
|
+
const div = this.document.createElement('div');
|
|
243
|
+
div.innerHTML = text;
|
|
244
|
+
const svg = div.querySelector('svg');
|
|
245
|
+
if (!svg) {
|
|
246
|
+
throw Error('KbqIconRegistry: could not find <svg> element in icon markup.');
|
|
247
|
+
}
|
|
248
|
+
if (options?.viewBox) {
|
|
249
|
+
svg.setAttribute('viewBox', options.viewBox);
|
|
250
|
+
}
|
|
251
|
+
svg.setAttribute('aria-hidden', 'true');
|
|
252
|
+
svg.setAttribute('focusable', 'false');
|
|
253
|
+
return svg;
|
|
254
|
+
}
|
|
255
|
+
fetchUrl(url, withCredentials = false) {
|
|
256
|
+
if (!this.httpClient) {
|
|
257
|
+
throw Error('KbqIconRegistry: HttpClient is required for loading icons from URLs. ' +
|
|
258
|
+
'Provide it via provideHttpClient() or HttpClientModule.');
|
|
259
|
+
}
|
|
260
|
+
const urlStr = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, url);
|
|
261
|
+
if (!urlStr) {
|
|
262
|
+
return throwError(() => Error('KbqIconRegistry: URL failed security sanitization.'));
|
|
263
|
+
}
|
|
264
|
+
const inProgress = this.inProgressUrlFetches.get(urlStr);
|
|
265
|
+
if (inProgress)
|
|
266
|
+
return inProgress;
|
|
267
|
+
const fetch = this.httpClient.get(urlStr, { responseType: 'text', withCredentials }).pipe(share(), finalize(() => this.inProgressUrlFetches.delete(urlStr)));
|
|
268
|
+
this.inProgressUrlFetches.set(urlStr, fetch);
|
|
269
|
+
return fetch;
|
|
270
|
+
}
|
|
271
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
272
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconRegistry, providedIn: 'root' }); }
|
|
273
|
+
}
|
|
274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconRegistry, decorators: [{
|
|
275
|
+
type: Injectable,
|
|
276
|
+
args: [{ providedIn: 'root' }]
|
|
277
|
+
}], ctorParameters: () => [] });
|
|
6
278
|
|
|
7
279
|
class KbqIcon extends KbqColorDirective {
|
|
8
280
|
constructor() {
|
|
@@ -10,10 +282,19 @@ class KbqIcon extends KbqColorDirective {
|
|
|
10
282
|
this.elementRef = inject(ElementRef);
|
|
11
283
|
this.formField = inject(KBQ_FORM_FIELD_REF, { optional: true });
|
|
12
284
|
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
285
|
+
this.registry = inject(KbqIconRegistry, { optional: true });
|
|
286
|
+
this.destroyRef = inject(DestroyRef);
|
|
13
287
|
this.small = false;
|
|
14
288
|
this.autoColor = false;
|
|
15
289
|
this.hasError = false;
|
|
16
290
|
this.name = 'KbqIcon';
|
|
291
|
+
/**
|
|
292
|
+
* True when icon is being rendered as inline SVG.
|
|
293
|
+
* @docs-private
|
|
294
|
+
*/
|
|
295
|
+
this.svgIcon = false;
|
|
296
|
+
/** @docs-private */
|
|
297
|
+
this.svgIconName = new ReplaySubject(1);
|
|
17
298
|
this.updateState = () => {
|
|
18
299
|
this.hasError = this.formField?.control?.errorState;
|
|
19
300
|
this.changeDetectorRef.markForCheck();
|
|
@@ -26,28 +307,69 @@ class KbqIcon extends KbqColorDirective {
|
|
|
26
307
|
if (this.name !== 'KbqIcon') {
|
|
27
308
|
return;
|
|
28
309
|
}
|
|
29
|
-
const size =
|
|
310
|
+
const size = this.parseIconSize();
|
|
30
311
|
if (size) {
|
|
31
312
|
this.getHostElement().style.maxHeight = `${size}px`;
|
|
32
313
|
}
|
|
33
314
|
}
|
|
315
|
+
ngOnChanges(changes) {
|
|
316
|
+
if (changes.iconName) {
|
|
317
|
+
this.svgIconName.next(changes['iconName'].currentValue);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
34
320
|
ngAfterContentInit() {
|
|
35
321
|
if (this.autoColor) {
|
|
36
322
|
this.formField?.control?.stateChanges.subscribe(this.updateState);
|
|
37
323
|
this.updateState();
|
|
38
324
|
}
|
|
39
325
|
this.updateMaxHeight();
|
|
326
|
+
this.svgIconName
|
|
327
|
+
.pipe(switchMap((name) => {
|
|
328
|
+
if (!this.registry || !name) {
|
|
329
|
+
this.svgIcon = false;
|
|
330
|
+
return EMPTY;
|
|
331
|
+
}
|
|
332
|
+
return this.registry.getNamedSvgIcon(name);
|
|
333
|
+
}), takeUntilDestroyed(this.destroyRef))
|
|
334
|
+
.subscribe({
|
|
335
|
+
next: (svg) => {
|
|
336
|
+
this.svgIcon = true;
|
|
337
|
+
const host = this.getHostElement();
|
|
338
|
+
// Remove any previously injected SVG.
|
|
339
|
+
const existing = host.querySelector('svg');
|
|
340
|
+
if (existing) {
|
|
341
|
+
host.removeChild(existing);
|
|
342
|
+
}
|
|
343
|
+
const size = this.parseIconSize();
|
|
344
|
+
if (size) {
|
|
345
|
+
svg.setAttribute('width', `${size}`);
|
|
346
|
+
svg.setAttribute('height', `${size}`);
|
|
347
|
+
}
|
|
348
|
+
host.insertBefore(svg, host.firstChild);
|
|
349
|
+
this.changeDetectorRef.markForCheck();
|
|
350
|
+
},
|
|
351
|
+
error: () => {
|
|
352
|
+
// Icon not registered — fall through to font-class path.
|
|
353
|
+
this.svgIcon = false;
|
|
354
|
+
this.updateMaxHeight();
|
|
355
|
+
this.changeDetectorRef.markForCheck();
|
|
356
|
+
}
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
parseIconSize() {
|
|
360
|
+
const baseName = this.iconName?.includes(':') ? this.iconName.split(':')[1] : this.iconName;
|
|
361
|
+
return parseInt(baseName?.split('_').pop() ?? '');
|
|
40
362
|
}
|
|
41
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
42
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
363
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIcon, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
364
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: KbqIcon, isStandalone: true, selector: "[kbq-icon]", inputs: { small: "small", autoColor: "autoColor", iconName: ["kbq-icon", "iconName"] }, host: { properties: { "class": "svgIcon ? null : iconName", "class.kbq-error": "color === \"error\" || hasError" }, classAttribute: "kbq kbq-icon" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon>svg{fill:currentColor;vertical-align:middle}.kbq-icon-rotate_90{transform:rotate(90deg)}.kbq-icon-rotate_180{transform:rotate(180deg)}.kbq-icon-rotate_270{transform:rotate(270deg)}.kbq-icon-flip-h{transform:scaleY(-1)}.kbq-icon-flip-v{transform:scaleX(-1)}.kbq-icon-flip-vh{transform:scale(-1)}.kbq-icon{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-theme{color:var(--kbq-icon-theme-color)}.kbq-icon.kbq-contrast{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-contrast-fade{color:var(--kbq-icon-fade-contrast-color)}.kbq-icon.kbq-error{color:var(--kbq-icon-error-color)}.kbq-icon.kbq-warning{color:var(--kbq-icon-warning-color)}.kbq-icon.kbq-success{color:var(--kbq-icon-success-color)}\n", ".kbq-icon{--kbq-icon-theme-color: var(--kbq-icon-theme);--kbq-icon-contrast-color: var(--kbq-icon-contrast);--kbq-icon-fade-contrast-color: var(--kbq-icon-contrast-fade);--kbq-icon-error-color: var(--kbq-icon-error);--kbq-icon-success-color: var(--kbq-icon-success);--kbq-icon-warning-color: var(--kbq-icon-warning)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
43
365
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
366
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIcon, decorators: [{
|
|
45
367
|
type: Component,
|
|
46
368
|
args: [{ selector: '[kbq-icon]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
47
369
|
class: 'kbq kbq-icon',
|
|
48
|
-
'[class]': 'iconName',
|
|
370
|
+
'[class]': 'svgIcon ? null : iconName',
|
|
49
371
|
'[class.kbq-error]': 'color === "error" || hasError'
|
|
50
|
-
}, styles: [".kbq-icon-rotate_90{transform:rotate(90deg)}.kbq-icon-rotate_180{transform:rotate(180deg)}.kbq-icon-rotate_270{transform:rotate(270deg)}.kbq-icon-flip-h{transform:scaleY(-1)}.kbq-icon-flip-v{transform:scaleX(-1)}.kbq-icon-flip-vh{transform:scale(-1)}.kbq-icon{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-theme{color:var(--kbq-icon-theme-color)}.kbq-icon.kbq-contrast{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-contrast-fade{color:var(--kbq-icon-fade-contrast-color)}.kbq-icon.kbq-error{color:var(--kbq-icon-error-color)}.kbq-icon.kbq-warning{color:var(--kbq-icon-warning-color)}.kbq-icon.kbq-success{color:var(--kbq-icon-success-color)}\n", ".kbq-icon{--kbq-icon-theme-color: var(--kbq-icon-theme);--kbq-icon-contrast-color: var(--kbq-icon-contrast);--kbq-icon-fade-contrast-color: var(--kbq-icon-contrast-fade);--kbq-icon-error-color: var(--kbq-icon-error);--kbq-icon-success-color: var(--kbq-icon-success);--kbq-icon-warning-color: var(--kbq-icon-warning)}\n"] }]
|
|
372
|
+
}, styles: [".kbq-icon>svg{fill:currentColor;vertical-align:middle}.kbq-icon-rotate_90{transform:rotate(90deg)}.kbq-icon-rotate_180{transform:rotate(180deg)}.kbq-icon-rotate_270{transform:rotate(270deg)}.kbq-icon-flip-h{transform:scaleY(-1)}.kbq-icon-flip-v{transform:scaleX(-1)}.kbq-icon-flip-vh{transform:scale(-1)}.kbq-icon{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-theme{color:var(--kbq-icon-theme-color)}.kbq-icon.kbq-contrast{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-contrast-fade{color:var(--kbq-icon-fade-contrast-color)}.kbq-icon.kbq-error{color:var(--kbq-icon-error-color)}.kbq-icon.kbq-warning{color:var(--kbq-icon-warning-color)}.kbq-icon.kbq-success{color:var(--kbq-icon-success-color)}\n", ".kbq-icon{--kbq-icon-theme-color: var(--kbq-icon-theme);--kbq-icon-contrast-color: var(--kbq-icon-contrast);--kbq-icon-fade-contrast-color: var(--kbq-icon-contrast-fade);--kbq-icon-error-color: var(--kbq-icon-error);--kbq-icon-success-color: var(--kbq-icon-success);--kbq-icon-warning-color: var(--kbq-icon-warning)}\n"] }]
|
|
51
373
|
}], propDecorators: { small: [{
|
|
52
374
|
type: Input
|
|
53
375
|
}], autoColor: [{
|
|
@@ -96,10 +418,10 @@ class KbqIconButton extends KbqIcon {
|
|
|
96
418
|
stopFocusMonitor() {
|
|
97
419
|
this.focusMonitor.stopMonitoring(this.getHostElement());
|
|
98
420
|
}
|
|
99
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
100
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.
|
|
421
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
422
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.21", type: KbqIconButton, isStandalone: true, selector: "[kbq-icon-button]", inputs: { small: "small", iconName: ["kbq-icon-button", "iconName"], tabindex: "tabindex", disabled: ["disabled", "disabled", booleanAttribute] }, host: { properties: { "attr.tabindex": "tabindex", "attr.disabled": "disabled || null", "class.kbq-disabled": "disabled", "class.kbq-icon-button_small": "small" }, classAttribute: "kbq kbq-icon-button" }, usesInheritance: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button.kbq-icon-button_small{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}.kbq-icon-button.kbq-disabled{pointer-events:none}.kbq-icon-button>svg{fill:currentColor;vertical-align:middle}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover,.kbq-icon-button.kbq-theme.kbq-hovered{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover,.kbq-icon-button.kbq-contrast.kbq-hovered{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover,.kbq-icon-button.kbq-contrast-fade.kbq-hovered{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover,.kbq-icon-button.kbq-error.kbq-hovered{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover,.kbq-icon-button.kbq-success.kbq-hovered{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover,.kbq-icon-button.kbq-warning.kbq-hovered{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
101
423
|
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
424
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconButton, decorators: [{
|
|
103
425
|
type: Component,
|
|
104
426
|
args: [{ selector: `[kbq-icon-button]`, template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
105
427
|
class: 'kbq kbq-icon-button',
|
|
@@ -107,7 +429,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
107
429
|
'[attr.disabled]': 'disabled || null',
|
|
108
430
|
'[class.kbq-disabled]': 'disabled',
|
|
109
431
|
'[class.kbq-icon-button_small]': 'small'
|
|
110
|
-
}, styles: [".kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button.kbq-icon-button_small{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}.kbq-icon-button.kbq-disabled{pointer-events:none}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover,.kbq-icon-button.kbq-theme.kbq-hovered{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover,.kbq-icon-button.kbq-contrast.kbq-hovered{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover,.kbq-icon-button.kbq-contrast-fade.kbq-hovered{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover,.kbq-icon-button.kbq-error.kbq-hovered{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover,.kbq-icon-button.kbq-success.kbq-hovered{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover,.kbq-icon-button.kbq-warning.kbq-hovered{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"] }]
|
|
432
|
+
}, styles: [".kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button.kbq-icon-button_small{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}.kbq-icon-button.kbq-disabled{pointer-events:none}.kbq-icon-button>svg{fill:currentColor;vertical-align:middle}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover,.kbq-icon-button.kbq-theme.kbq-hovered{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover,.kbq-icon-button.kbq-contrast.kbq-hovered{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover,.kbq-icon-button.kbq-contrast-fade.kbq-hovered{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover,.kbq-icon-button.kbq-error.kbq-hovered{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover,.kbq-icon-button.kbq-success.kbq-hovered{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover,.kbq-icon-button.kbq-warning.kbq-hovered{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"] }]
|
|
111
433
|
}], ctorParameters: () => [], propDecorators: { small: [{
|
|
112
434
|
type: Input
|
|
113
435
|
}], iconName: [{
|
|
@@ -127,10 +449,10 @@ class KbqIconItem extends KbqIcon {
|
|
|
127
449
|
this.fade = false;
|
|
128
450
|
this.big = false;
|
|
129
451
|
}
|
|
130
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
131
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
452
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconItem, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
453
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: KbqIconItem, isStandalone: true, selector: "[kbq-icon-item]", inputs: { iconName: ["kbq-icon-item", "iconName"], fade: "fade", big: "big" }, host: { properties: { "class.kbq-icon-item_normal": "!big", "class.kbq-icon-item_big": "big", "class.kbq-icon-item_fade-off": "!fade", "class.kbq-icon-item_fade-on": "fade" }, classAttribute: "kbq kbq-icon-item kbq-icon-item_filled" }, usesInheritance: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon-item{box-sizing:border-box;border-radius:50%}.kbq-icon-item.kbq-icon-item_normal{padding:var(--kbq-icon-item-size-normal-vertical-padding) var(--kbq-icon-item-size-normal-horizontal-padding)}.kbq-icon-item.kbq-icon-item_big{padding:var(--kbq-icon-item-size-big-vertical-padding) var(--kbq-icon-item-size-big-horizontal-padding)}.kbq-icon-item>svg{fill:currentColor;vertical-align:middle}.kbq-icon-item.kbq-icon-item_filled{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-theme{color:var(--kbq-icon-item-filled-fade-off-theme-color);background:var(--kbq-icon-item-filled-fade-off-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-contrast{color:var(--kbq-icon-item-filled-fade-off-contrast-color);background:var(--kbq-icon-item-filled-fade-off-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-error{color:var(--kbq-icon-item-filled-fade-off-error-color);background:var(--kbq-icon-item-filled-fade-off-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-warning{color:var(--kbq-icon-item-filled-fade-off-warning-color);background:var(--kbq-icon-item-filled-fade-off-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-success{color:var(--kbq-icon-item-filled-fade-off-success-color);background:var(--kbq-icon-item-filled-fade-off-success-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-theme{color:var(--kbq-icon-item-filled-fade-on-theme-color);background:var(--kbq-icon-item-filled-fade-on-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-contrast{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-error{color:var(--kbq-icon-item-filled-fade-on-error-color);background:var(--kbq-icon-item-filled-fade-on-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-warning{color:var(--kbq-icon-item-filled-fade-on-warning-color);background:var(--kbq-icon-item-filled-fade-on-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-success{color:var(--kbq-icon-item-filled-fade-on-success-color);background:var(--kbq-icon-item-filled-fade-on-success-background)}\n", ".kbq-icon-item{--kbq-icon-item-size-normal-horizontal-padding: var(--kbq-size-s);--kbq-icon-item-size-normal-vertical-padding: var(--kbq-size-s);--kbq-icon-item-size-big-horizontal-padding: var(--kbq-size-l);--kbq-icon-item-size-big-vertical-padding: var(--kbq-size-l);--kbq-icon-item-filled-fade-off-theme-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-theme-background: var(--kbq-background-theme);--kbq-icon-item-filled-fade-off-contrast-color: var(--kbq-icon-on-contrast);--kbq-icon-item-filled-fade-off-contrast-background: var(--kbq-background-contrast);--kbq-icon-item-filled-fade-off-error-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-error-background: var(--kbq-background-error);--kbq-icon-item-filled-fade-off-warning-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-warning-background: var(--kbq-background-warning);--kbq-icon-item-filled-fade-off-success-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-success-background: var(--kbq-background-success);--kbq-icon-item-filled-fade-on-theme-color: var(--kbq-icon-theme);--kbq-icon-item-filled-fade-on-theme-background: var(--kbq-background-theme-fade);--kbq-icon-item-filled-fade-on-contrast-color: var(--kbq-icon-contrast);--kbq-icon-item-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);--kbq-icon-item-filled-fade-on-error-color: var(--kbq-icon-error);--kbq-icon-item-filled-fade-on-error-background: var(--kbq-background-error-fade);--kbq-icon-item-filled-fade-on-warning-color: var(--kbq-icon-warning);--kbq-icon-item-filled-fade-on-warning-background: var(--kbq-background-warning-fade);--kbq-icon-item-filled-fade-on-success-color: var(--kbq-icon-success);--kbq-icon-item-filled-fade-on-success-background: var(--kbq-background-success-fade)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
132
454
|
}
|
|
133
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
455
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconItem, decorators: [{
|
|
134
456
|
type: Component,
|
|
135
457
|
args: [{ selector: `[kbq-icon-item]`, template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
136
458
|
class: 'kbq kbq-icon-item kbq-icon-item_filled',
|
|
@@ -138,7 +460,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
138
460
|
'[class.kbq-icon-item_big]': 'big',
|
|
139
461
|
'[class.kbq-icon-item_fade-off]': '!fade',
|
|
140
462
|
'[class.kbq-icon-item_fade-on]': 'fade'
|
|
141
|
-
}, styles: [".kbq-icon-item{box-sizing:border-box;border-radius:50%}.kbq-icon-item.kbq-icon-item_normal{padding:var(--kbq-icon-item-size-normal-vertical-padding) var(--kbq-icon-item-size-normal-horizontal-padding)}.kbq-icon-item.kbq-icon-item_big{padding:var(--kbq-icon-item-size-big-vertical-padding) var(--kbq-icon-item-size-big-horizontal-padding)}.kbq-icon-item.kbq-icon-item_filled{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-theme{color:var(--kbq-icon-item-filled-fade-off-theme-color);background:var(--kbq-icon-item-filled-fade-off-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-contrast{color:var(--kbq-icon-item-filled-fade-off-contrast-color);background:var(--kbq-icon-item-filled-fade-off-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-error{color:var(--kbq-icon-item-filled-fade-off-error-color);background:var(--kbq-icon-item-filled-fade-off-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-warning{color:var(--kbq-icon-item-filled-fade-off-warning-color);background:var(--kbq-icon-item-filled-fade-off-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-success{color:var(--kbq-icon-item-filled-fade-off-success-color);background:var(--kbq-icon-item-filled-fade-off-success-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-theme{color:var(--kbq-icon-item-filled-fade-on-theme-color);background:var(--kbq-icon-item-filled-fade-on-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-contrast{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-error{color:var(--kbq-icon-item-filled-fade-on-error-color);background:var(--kbq-icon-item-filled-fade-on-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-warning{color:var(--kbq-icon-item-filled-fade-on-warning-color);background:var(--kbq-icon-item-filled-fade-on-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-success{color:var(--kbq-icon-item-filled-fade-on-success-color);background:var(--kbq-icon-item-filled-fade-on-success-background)}\n", ".kbq-icon-item{--kbq-icon-item-size-normal-horizontal-padding: var(--kbq-size-s);--kbq-icon-item-size-normal-vertical-padding: var(--kbq-size-s);--kbq-icon-item-size-big-horizontal-padding: var(--kbq-size-l);--kbq-icon-item-size-big-vertical-padding: var(--kbq-size-l);--kbq-icon-item-filled-fade-off-theme-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-theme-background: var(--kbq-background-theme);--kbq-icon-item-filled-fade-off-contrast-color: var(--kbq-icon-on-contrast);--kbq-icon-item-filled-fade-off-contrast-background: var(--kbq-background-contrast);--kbq-icon-item-filled-fade-off-error-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-error-background: var(--kbq-background-error);--kbq-icon-item-filled-fade-off-warning-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-warning-background: var(--kbq-background-warning);--kbq-icon-item-filled-fade-off-success-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-success-background: var(--kbq-background-success);--kbq-icon-item-filled-fade-on-theme-color: var(--kbq-icon-theme);--kbq-icon-item-filled-fade-on-theme-background: var(--kbq-background-theme-fade);--kbq-icon-item-filled-fade-on-contrast-color: var(--kbq-icon-contrast);--kbq-icon-item-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);--kbq-icon-item-filled-fade-on-error-color: var(--kbq-icon-error);--kbq-icon-item-filled-fade-on-error-background: var(--kbq-background-error-fade);--kbq-icon-item-filled-fade-on-warning-color: var(--kbq-icon-warning);--kbq-icon-item-filled-fade-on-warning-background: var(--kbq-background-warning-fade);--kbq-icon-item-filled-fade-on-success-color: var(--kbq-icon-success);--kbq-icon-item-filled-fade-on-success-background: var(--kbq-background-success-fade)}\n"] }]
|
|
463
|
+
}, styles: [".kbq-icon-item{box-sizing:border-box;border-radius:50%}.kbq-icon-item.kbq-icon-item_normal{padding:var(--kbq-icon-item-size-normal-vertical-padding) var(--kbq-icon-item-size-normal-horizontal-padding)}.kbq-icon-item.kbq-icon-item_big{padding:var(--kbq-icon-item-size-big-vertical-padding) var(--kbq-icon-item-size-big-horizontal-padding)}.kbq-icon-item>svg{fill:currentColor;vertical-align:middle}.kbq-icon-item.kbq-icon-item_filled{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-theme{color:var(--kbq-icon-item-filled-fade-off-theme-color);background:var(--kbq-icon-item-filled-fade-off-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-contrast{color:var(--kbq-icon-item-filled-fade-off-contrast-color);background:var(--kbq-icon-item-filled-fade-off-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-error{color:var(--kbq-icon-item-filled-fade-off-error-color);background:var(--kbq-icon-item-filled-fade-off-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-warning{color:var(--kbq-icon-item-filled-fade-off-warning-color);background:var(--kbq-icon-item-filled-fade-off-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-success{color:var(--kbq-icon-item-filled-fade-off-success-color);background:var(--kbq-icon-item-filled-fade-off-success-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-theme{color:var(--kbq-icon-item-filled-fade-on-theme-color);background:var(--kbq-icon-item-filled-fade-on-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-contrast{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-error{color:var(--kbq-icon-item-filled-fade-on-error-color);background:var(--kbq-icon-item-filled-fade-on-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-warning{color:var(--kbq-icon-item-filled-fade-on-warning-color);background:var(--kbq-icon-item-filled-fade-on-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-success{color:var(--kbq-icon-item-filled-fade-on-success-color);background:var(--kbq-icon-item-filled-fade-on-success-background)}\n", ".kbq-icon-item{--kbq-icon-item-size-normal-horizontal-padding: var(--kbq-size-s);--kbq-icon-item-size-normal-vertical-padding: var(--kbq-size-s);--kbq-icon-item-size-big-horizontal-padding: var(--kbq-size-l);--kbq-icon-item-size-big-vertical-padding: var(--kbq-size-l);--kbq-icon-item-filled-fade-off-theme-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-theme-background: var(--kbq-background-theme);--kbq-icon-item-filled-fade-off-contrast-color: var(--kbq-icon-on-contrast);--kbq-icon-item-filled-fade-off-contrast-background: var(--kbq-background-contrast);--kbq-icon-item-filled-fade-off-error-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-error-background: var(--kbq-background-error);--kbq-icon-item-filled-fade-off-warning-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-warning-background: var(--kbq-background-warning);--kbq-icon-item-filled-fade-off-success-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-success-background: var(--kbq-background-success);--kbq-icon-item-filled-fade-on-theme-color: var(--kbq-icon-theme);--kbq-icon-item-filled-fade-on-theme-background: var(--kbq-background-theme-fade);--kbq-icon-item-filled-fade-on-contrast-color: var(--kbq-icon-contrast);--kbq-icon-item-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);--kbq-icon-item-filled-fade-on-error-color: var(--kbq-icon-error);--kbq-icon-item-filled-fade-on-error-background: var(--kbq-background-error-fade);--kbq-icon-item-filled-fade-on-warning-color: var(--kbq-icon-warning);--kbq-icon-item-filled-fade-on-warning-background: var(--kbq-background-warning-fade);--kbq-icon-item-filled-fade-on-success-color: var(--kbq-icon-success);--kbq-icon-item-filled-fade-on-success-background: var(--kbq-background-success-fade)}\n"] }]
|
|
142
464
|
}], propDecorators: { iconName: [{
|
|
143
465
|
type: Input,
|
|
144
466
|
args: [{ alias: 'kbq-icon-item' }]
|
|
@@ -154,15 +476,15 @@ const COMPONENTS = [
|
|
|
154
476
|
KbqIconItem
|
|
155
477
|
];
|
|
156
478
|
class KbqIconModule {
|
|
157
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
158
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
479
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
480
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqIconModule, imports: [KbqIcon,
|
|
159
481
|
KbqIconButton,
|
|
160
482
|
KbqIconItem], exports: [KbqIcon,
|
|
161
483
|
KbqIconButton,
|
|
162
484
|
KbqIconItem] }); }
|
|
163
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
485
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconModule }); }
|
|
164
486
|
}
|
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
487
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconModule, decorators: [{
|
|
166
488
|
type: NgModule,
|
|
167
489
|
args: [{
|
|
168
490
|
imports: COMPONENTS,
|
|
@@ -174,5 +496,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
174
496
|
* Generated bundle index. Do not edit.
|
|
175
497
|
*/
|
|
176
498
|
|
|
177
|
-
export { KbqIcon, KbqIconButton, KbqIconItem, KbqIconModule };
|
|
499
|
+
export { KBQ_ICONS_CONFIG, KBQ_ICON_RESOLVER, KbqIcon, KbqIconButton, KbqIconItem, KbqIconModule, KbqIconRegistry, kbqIconsDictProvider, kbqIconsProvider, kbqIconsResolverProvider };
|
|
178
500
|
//# sourceMappingURL=koobiq-components-icon.mjs.map
|