@festo-ui/angular 9.0.1 → 10.0.0-dev.827
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/css/bundle.css +1 -1
- package/css/image-gallery.css +1 -1
- package/fesm2022/festo-ui-angular.mjs +134 -50
- package/fesm2022/festo-ui-angular.mjs.map +1 -1
- package/index.d.ts +22 -3
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { ViewEncapsulation, Component, ContentChild, SimpleChange, ContentChildren, Input, EventEmitter, Output, HostListener, Directive, HostBinding, Optional, TemplateRef, Injector, Injectable,
|
|
2
|
+
import { ViewEncapsulation, Component, ContentChild, SimpleChange, ContentChildren, Input, EventEmitter, ViewChild, Output, HostListener, Directive, HostBinding, Optional, TemplateRef, Injector, Injectable, Pipe, signal, output, DOCUMENT, Inject, ChangeDetectionStrategy, inject, ViewContainerRef, ElementRef, NgModule, forwardRef, CUSTOM_ELEMENTS_SCHEMA, LOCALE_ID, SecurityContext } from '@angular/core';
|
|
3
3
|
import { Subject, BehaviorSubject, noop, Subscription } from 'rxjs';
|
|
4
4
|
import * as i1 from '@angular/router';
|
|
5
5
|
import { RouterModule, NavigationStart } from '@angular/router';
|
|
@@ -271,23 +271,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
271
271
|
}] });
|
|
272
272
|
|
|
273
273
|
class FngBreadcrumbComponent {
|
|
274
|
-
constructor() {
|
|
274
|
+
constructor(cdr) {
|
|
275
|
+
this.cdr = cdr;
|
|
275
276
|
this.useRouterLink = false;
|
|
276
277
|
this.locations = [];
|
|
278
|
+
this.ariaLabel = 'Breadcrumb';
|
|
277
279
|
this.navigate = new EventEmitter();
|
|
280
|
+
this.isMobile = false;
|
|
281
|
+
this.onResize = () => this.measure();
|
|
282
|
+
}
|
|
283
|
+
ngAfterViewInit() {
|
|
284
|
+
this.measure();
|
|
285
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
286
|
+
this.resizeObserver = new ResizeObserver(() => this.measure());
|
|
287
|
+
this.resizeObserver.observe(this.containerEl.nativeElement);
|
|
288
|
+
this.resizeObserver.observe(this.measureEl.nativeElement);
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
window.addEventListener('resize', this.onResize);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
ngOnDestroy() {
|
|
295
|
+
this.resizeObserver?.disconnect();
|
|
296
|
+
window.removeEventListener('resize', this.onResize);
|
|
297
|
+
}
|
|
298
|
+
measure() {
|
|
299
|
+
const container = this.containerEl?.nativeElement;
|
|
300
|
+
const measure = this.measureEl?.nativeElement;
|
|
301
|
+
if (!container || !measure)
|
|
302
|
+
return;
|
|
303
|
+
const nextIsMobile = measure.scrollWidth > container.clientWidth;
|
|
304
|
+
if (this.isMobile !== nextIsMobile) {
|
|
305
|
+
this.isMobile = nextIsMobile;
|
|
306
|
+
this.cdr.detectChanges();
|
|
307
|
+
}
|
|
278
308
|
}
|
|
279
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FngBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
280
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FngBreadcrumbComponent, isStandalone: true, selector: "fng-breadcrumb", inputs: { useRouterLink: "useRouterLink", locations: "locations" }, outputs: { navigate: "navigate" }, ngImport: i0, template: "<div class=\"fwe-breadcrumb\">\n
|
|
309
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FngBreadcrumbComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
310
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FngBreadcrumbComponent, isStandalone: true, selector: "fng-breadcrumb", inputs: { useRouterLink: "useRouterLink", locations: "locations", ariaLabel: "ariaLabel" }, outputs: { navigate: "navigate" }, viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["containerEl"], descendants: true }, { propertyName: "measureEl", first: true, predicate: ["measureEl"], descendants: true }], ngImport: i0, template: "<div>\n <!-- Hidden measurement nav \u2014 renders all items at natural width to detect overflow -->\n <nav\n aria-hidden=\"true\"\n class=\"fwe-breadcrumb\"\n #measureEl\n style=\"position: absolute; visibility: hidden; pointer-events: none; white-space: nowrap; height: 0; overflow: hidden;\">\n <ol>\n @for (location of locations; track location) {\n <li><a>{{ location.label }}</a></li>\n }\n </ol>\n </nav>\n\n <nav\n [attr.aria-label]=\"ariaLabel\"\n class=\"fwe-breadcrumb fng-breadcrumb\"\n [class.fwe-breadcrumb--mobile]=\"isMobile\"\n #containerEl>\n <ol>\n @for (location of locations; track location; let isLast = $last) {\n @if (useRouterLink) {\n <li>\n <a [routerLink]=\"isLast ? null : location.url\" [attr.aria-current]=\"isLast ? 'page' : null\">{{ location.label }}</a>\n </li>\n } @else {\n <li>\n <a (click)=\"isLast || navigate.emit(location.url)\" [attr.aria-current]=\"isLast ? 'page' : null\">{{ location.label }}</a>\n </li>\n }\n }\n </ol>\n </nav>\n</div>\n", styles: [".fng-breadcrumb a{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
281
311
|
}
|
|
282
312
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FngBreadcrumbComponent, decorators: [{
|
|
283
313
|
type: Component,
|
|
284
|
-
args: [{ imports: [RouterModule], selector: 'fng-breadcrumb', encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-breadcrumb\">\n
|
|
285
|
-
}], propDecorators: { useRouterLink: [{
|
|
314
|
+
args: [{ imports: [RouterModule], selector: 'fng-breadcrumb', encapsulation: ViewEncapsulation.None, template: "<div>\n <!-- Hidden measurement nav \u2014 renders all items at natural width to detect overflow -->\n <nav\n aria-hidden=\"true\"\n class=\"fwe-breadcrumb\"\n #measureEl\n style=\"position: absolute; visibility: hidden; pointer-events: none; white-space: nowrap; height: 0; overflow: hidden;\">\n <ol>\n @for (location of locations; track location) {\n <li><a>{{ location.label }}</a></li>\n }\n </ol>\n </nav>\n\n <nav\n [attr.aria-label]=\"ariaLabel\"\n class=\"fwe-breadcrumb fng-breadcrumb\"\n [class.fwe-breadcrumb--mobile]=\"isMobile\"\n #containerEl>\n <ol>\n @for (location of locations; track location; let isLast = $last) {\n @if (useRouterLink) {\n <li>\n <a [routerLink]=\"isLast ? null : location.url\" [attr.aria-current]=\"isLast ? 'page' : null\">{{ location.label }}</a>\n </li>\n } @else {\n <li>\n <a (click)=\"isLast || navigate.emit(location.url)\" [attr.aria-current]=\"isLast ? 'page' : null\">{{ location.label }}</a>\n </li>\n }\n }\n </ol>\n </nav>\n</div>\n", styles: [".fng-breadcrumb a{cursor:pointer}\n"] }]
|
|
315
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { useRouterLink: [{
|
|
286
316
|
type: Input
|
|
287
317
|
}], locations: [{
|
|
288
318
|
type: Input
|
|
319
|
+
}], ariaLabel: [{
|
|
320
|
+
type: Input
|
|
289
321
|
}], navigate: [{
|
|
290
322
|
type: Output
|
|
323
|
+
}], containerEl: [{
|
|
324
|
+
type: ViewChild,
|
|
325
|
+
args: ['containerEl']
|
|
326
|
+
}], measureEl: [{
|
|
327
|
+
type: ViewChild,
|
|
328
|
+
args: ['measureEl']
|
|
291
329
|
}] } });
|
|
292
330
|
|
|
293
331
|
class FngButtonComponent {
|
|
@@ -2060,6 +2098,9 @@ class FngTabPaneComponent {
|
|
|
2060
2098
|
}
|
|
2061
2099
|
static { this.nextId = 0; }
|
|
2062
2100
|
ngOnChanges() {
|
|
2101
|
+
if (this.id) {
|
|
2102
|
+
this.tabPaneId = this.id;
|
|
2103
|
+
}
|
|
2063
2104
|
this.changesSubject.next(true);
|
|
2064
2105
|
}
|
|
2065
2106
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FngTabPaneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -2084,6 +2125,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2084
2125
|
|
|
2085
2126
|
class FngTabsComponent {
|
|
2086
2127
|
static { this.nextId = 0; }
|
|
2128
|
+
set fngActivePaneId(value) {
|
|
2129
|
+
this.activePaneId = value;
|
|
2130
|
+
// Only trigger a programmatic tab change once content is initialized.
|
|
2131
|
+
if (value != null && this.panes != null && this.tabs.length > 0) {
|
|
2132
|
+
this.showTabPane(value);
|
|
2133
|
+
}
|
|
2134
|
+
}
|
|
2135
|
+
get fngActivePaneId() {
|
|
2136
|
+
return this.activePaneId;
|
|
2137
|
+
}
|
|
2087
2138
|
constructor(elRef, document, renderer, cd) {
|
|
2088
2139
|
this.elRef = elRef;
|
|
2089
2140
|
this.document = document;
|
|
@@ -2091,6 +2142,9 @@ class FngTabsComponent {
|
|
|
2091
2142
|
this.cd = cd;
|
|
2092
2143
|
this.viewType = 'responsive';
|
|
2093
2144
|
this.showDivider = false;
|
|
2145
|
+
// Allows selecting a tab programmatically by pane id (`FngTabPaneComponent.tabPaneId`).
|
|
2146
|
+
// If set before the component is shown, it becomes the initial selection without emitting `fngTabChange`.
|
|
2147
|
+
this.activePaneId = null;
|
|
2094
2148
|
this.config = null;
|
|
2095
2149
|
this.fngBeforeTabChange = new EventEmitter();
|
|
2096
2150
|
this.fngTabChange = new EventEmitter();
|
|
@@ -2103,26 +2157,6 @@ class FngTabsComponent {
|
|
|
2103
2157
|
}
|
|
2104
2158
|
ngAfterContentInit() {
|
|
2105
2159
|
this.initTabs();
|
|
2106
|
-
if (null == this.activeTab) {
|
|
2107
|
-
this.panes?.map((pane, i) => {
|
|
2108
|
-
if (0 === i) {
|
|
2109
|
-
pane.isVisible = true;
|
|
2110
|
-
}
|
|
2111
|
-
});
|
|
2112
|
-
}
|
|
2113
|
-
else {
|
|
2114
|
-
const pane = this.panes?.find(pane => {
|
|
2115
|
-
if (this.activeTab) {
|
|
2116
|
-
return this.activeTab.paneId != null && pane.tabPaneId === this.activeTab.paneId;
|
|
2117
|
-
}
|
|
2118
|
-
else {
|
|
2119
|
-
return false;
|
|
2120
|
-
}
|
|
2121
|
-
});
|
|
2122
|
-
if (pane) {
|
|
2123
|
-
pane.isVisible = true;
|
|
2124
|
-
}
|
|
2125
|
-
}
|
|
2126
2160
|
}
|
|
2127
2161
|
ngAfterViewInit() {
|
|
2128
2162
|
this.elemScroller = this.scroller?.nativeElement;
|
|
@@ -2163,6 +2197,9 @@ class FngTabsComponent {
|
|
|
2163
2197
|
if (id == null) {
|
|
2164
2198
|
return;
|
|
2165
2199
|
}
|
|
2200
|
+
if (id === this.activeTab?.paneId) {
|
|
2201
|
+
return;
|
|
2202
|
+
}
|
|
2166
2203
|
const pane = this.panes?.find(p => p.tabPaneId === id);
|
|
2167
2204
|
const handleTabChange = (id) => {
|
|
2168
2205
|
if (pane != null && pane.disabled !== true) {
|
|
@@ -2228,6 +2265,7 @@ class FngTabsComponent {
|
|
|
2228
2265
|
this.scrollIntoView(index, currentTab);
|
|
2229
2266
|
}
|
|
2230
2267
|
initTabs() {
|
|
2268
|
+
const previousActivePaneId = this.activeTab?.paneId ?? null;
|
|
2231
2269
|
this.tabs = [];
|
|
2232
2270
|
this.panes?.map((pane, i) => {
|
|
2233
2271
|
pane.tabId = this.componentId + '-tab-' + i;
|
|
@@ -2240,18 +2278,51 @@ class FngTabsComponent {
|
|
|
2240
2278
|
};
|
|
2241
2279
|
this.tabs.push(tab);
|
|
2242
2280
|
});
|
|
2243
|
-
this.initActiveTab();
|
|
2281
|
+
this.initActiveTab(previousActivePaneId);
|
|
2282
|
+
this.syncPanesVisibilityToActiveTab();
|
|
2244
2283
|
this.cd.detectChanges();
|
|
2245
2284
|
}
|
|
2246
|
-
initActiveTab() {
|
|
2247
|
-
const
|
|
2248
|
-
if (
|
|
2249
|
-
this.
|
|
2250
|
-
|
|
2285
|
+
initActiveTab(previousActivePaneId) {
|
|
2286
|
+
const explicitActiveTab = this.tabs.find((tab) => !!tab.active);
|
|
2287
|
+
if (explicitActiveTab?.paneId != null && explicitActiveTab.disabled !== true) {
|
|
2288
|
+
this.setActiveTabByPaneId(explicitActiveTab.paneId);
|
|
2289
|
+
return;
|
|
2251
2290
|
}
|
|
2252
|
-
|
|
2253
|
-
|
|
2291
|
+
if (this.fngActivePaneId != null && this.setActiveTabByPaneId(this.fngActivePaneId)) {
|
|
2292
|
+
return;
|
|
2293
|
+
}
|
|
2294
|
+
if (previousActivePaneId != null && this.setActiveTabByPaneId(previousActivePaneId)) {
|
|
2295
|
+
return;
|
|
2296
|
+
}
|
|
2297
|
+
const firstEnabled = this.tabs.find(t => t.disabled !== true);
|
|
2298
|
+
if (firstEnabled?.paneId != null) {
|
|
2299
|
+
this.setActiveTabByPaneId(firstEnabled.paneId);
|
|
2300
|
+
return;
|
|
2301
|
+
}
|
|
2302
|
+
this.activeTab = undefined;
|
|
2303
|
+
}
|
|
2304
|
+
setActiveTabByPaneId(paneId) {
|
|
2305
|
+
const next = this.tabs.find(t => t.paneId === paneId && t.disabled !== true);
|
|
2306
|
+
if (!next) {
|
|
2307
|
+
return false;
|
|
2308
|
+
}
|
|
2309
|
+
this.tabs.forEach(t => {
|
|
2310
|
+
t.active = t === next;
|
|
2311
|
+
});
|
|
2312
|
+
this.activeTab = next;
|
|
2313
|
+
return true;
|
|
2314
|
+
}
|
|
2315
|
+
syncPanesVisibilityToActiveTab() {
|
|
2316
|
+
const activePaneId = this.activeTab?.paneId ?? null;
|
|
2317
|
+
if (activePaneId != null) {
|
|
2318
|
+
this.panes?.forEach(p => {
|
|
2319
|
+
p.isVisible = p.tabPaneId === activePaneId;
|
|
2320
|
+
});
|
|
2321
|
+
return;
|
|
2254
2322
|
}
|
|
2323
|
+
this.panes?.forEach((p, i) => {
|
|
2324
|
+
p.isVisible = i === 0;
|
|
2325
|
+
});
|
|
2255
2326
|
}
|
|
2256
2327
|
handleTabPaneChanges() {
|
|
2257
2328
|
// first subscribe to any changes in tab pane, so that the tabs in this view wiil be updated
|
|
@@ -2500,11 +2571,11 @@ class FngTabsComponent {
|
|
|
2500
2571
|
return -1;
|
|
2501
2572
|
}
|
|
2502
2573
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FngTabsComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2503
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FngTabsComponent, isStandalone: true, selector: "fng-tabs", inputs: { viewType: ["fngTabsViewType", "viewType"], showDivider: ["fngTabsUseBottomDivider", "showDivider"], config: "config" }, outputs: { fngBeforeTabChange: "fngBeforeTabChange", fngTabChange: "fngTabChange" }, queries: [{ propertyName: "panes", predicate: FngTabPaneComponent }], viewQueries: [{ propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }, { propertyName: "scrollAera", first: true, predicate: ["scrollAera"], descendants: true }, { propertyName: "scrollContent", first: true, predicate: ["scrollContent"], descendants: true }], ngImport: i0, template: "@if (viewType === 'legacy') {\n <div class=\"fwe-legacy-tabs\">\n <ul\n role=\"tablist\"\n class=\"fwe-legacy-tab-bar\"\n [class.fwe-legacy-tab-bar-full-width]=\"config?.tabBar?.fullWidth\"\n [class.fwe-legacy-tab-items-equal-width]=\"'equal' === config?.tabItems?.appearance\"\n [class.fwe-legacy-tab-items-fill]=\"'fill' === config?.tabItems?.appearance\"\n >\n @for (tab of tabs; track tab; let i = $index) {\n <li\n class=\"fwe-legacy-tab-item\"\n [ngClass]=\"{ 'fwe-active': tab?.active, 'fwe-disabled': tab?.disabled }\"\n >\n @if (null == tab?.icon) {\n <a\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\n role=\"tab\"\n class=\"fwe-legacy-tab-link\"\n (click)=\"showTabPane(tab.paneId)\"\n >{{ tab.name }}</a\n >\n }\n @if (null != tab?.icon) {\n <a\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\n role=\"tab\"\n class=\"fwe-legacy-tab-link\"\n (click)=\"showTabPane(tab.paneId)\"\n [class.fwe-can-swap-icon]=\"2 === tabs.length && 1 === i\"\n >\n <i [class]=\"'fwe-icon ' + tab.icon\"></i>\n <span>{{ tab.name }}</span>\n </a>\n }\n </li>\n }\n </ul>\n <div class=\"fwe-legacy-tab-panel-content\">\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\n </div>\n </div>\n }\n\n @if (viewType !== 'legacy') {\n <div class=\"fng-tab-bar\" role=\"tablist\">\n <div class=\"fng-tab-scroller\" #scroller>\n <div\n class=\"fng-tab-scroller-scroll-area fng-tab-scroller-scroll-area--scroll\"\n [class.fng-tab-scroller-scroll-area--compact]=\"useCompactDensity\"\n #scrollAera\n >\n <div class=\"fng-tab-scroller-scroll-content\" [class.fng-tab-scroller-scroll-content--with-divider]=\"showDivider\" #scrollContent>\n @for (tab of tabs; track tab; let i = $index) {\n <button\n role=\"tab\"\n class=\"fng-tab\"\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\n [tabindex]=\"i === 0 ? 0 : -1\"\n [class.fng-tab--active]=\"tab?.active\"\n [class.fng-tab--disabled]=\"tab?.disabled\"\n (click)=\"handleTabScroll($event, i); showTabPane(tab.paneId)\"\n >\n <span class=\"fng-tab-content\">\n <span class=\"fng-tab-text-label\">{{ tab.name }}</span>\n </span>\n <span class=\"fng-tab-indicator\" [class.fng-tab-indicator--active]=\"tab?.active\">\n <span class=\"fng-tab-indicator-content fng-tab-indicator-content--underline\"></span>\n </span>\n </button>\n }\n <div class=\"fng-tab-scroller-divider-line\"></div>\n </div>\n </div>\n </div>\n <div class=\"fng-tab-panel-content\">\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\n </div>\n </div>\n }\n\n <ng-template #tabPanelContent>\n <ng-content></ng-content>\n </ng-template>\n", styles: [".fwe-legacy-tabs{margin:48px 0;width:100%;height:100%}.fwe-legacy-tab-bar{display:flex;flex-wrap:nowrap;width:75%;padding-left:0;margin-bottom:0;margin-top:0;list-style:none;font-size:var(--fwe-font-size-base)}.fwe-legacy-tab-bar.fwe-legacy-tab-bar-full-width{width:100%}.fwe-legacy-tab-bar.fwe-legacy-tab-items-fill .fwe-legacy-tab-item{flex:1 1 auto}.fwe-legacy-tab-bar.fwe-legacy-tab-items-equal-width .fwe-legacy-tab-item{flex:1 1 0}.fwe-legacy-tab-item{height:48px;max-height:48px;background-color:var(--fwe-gray-300);border-right:2px solid var(--fwe-gray-100);text-align:center}.fwe-legacy-tab-item:last-child{border-right:none}.fwe-legacy-tab-item.fwe-active{background-color:var(--fwe-white)}.fwe-legacy-tab-item.fwe-active .fwe-legacy-tab-link{color:var(--fwe-caerul)}.fwe-legacy-tab-item.fwe-disabled{background-color:var(--fwe-control-disabled)}.fwe-legacy-tab-item.fwe-disabled .fwe-legacy-tab-link{color:var(--fwe-text-disabled)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-gray-100)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{padding:11px 16px}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:hover{color:var(--fwe-text);background-color:var(--fwe-control-hover)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:active{background-color:var(--fwe-control-active)}.fwe-legacy-tab-link{display:inline-block;width:100%;height:46px;padding:11px 16px 13px;line-height:24px;cursor:pointer;color:var(--fwe-black);white-space:nowrap}.fwe-legacy-tab-link i.fwe-icon{padding-right:8px;vertical-align:initial}.fwe-legacy-tab-link i.fwe-icon.fwe-icon-lg{position:relative;top:3px}.fwe-legacy-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}@media (max-width: 375px){.fwe-legacy-tab-bar{justify-content:space-between;background-color:var(--fwe-white);width:100%}.fwe-legacy-tab-item{background-color:var(--fwe-white);border-right:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{color:var(--fwe-hero-gray)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link i.fwe-icon{color:var(--fwe-hero-gray)}.fwe-legacy-tab-link.fwe-can-swap-icon{direction:rtl}.fwe-legacy-tab-link.fwe-can-swap-icon i.fwe-icon{padding-left:8px;padding-right:0}}.fng-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}.fng-tab-bar{width:100%}.fng-tab-scroller{overflow-y:hidden}.fng-tab-scroller-scroll-area{position:relative;display:flex;overflow-x:hidden}.fng-tab-scroller-scroll-area::-webkit-scrollbar{display:none}.fng-tab-scroller-scroll-area--scroll{overflow-x:scroll}.fng-tab-scroller-scroll-content{position:relative;display:flex;flex:1 0 auto;transform:none;will-change:transform;padding:0 17px 0 16px}.fng-tab-scroller-scroll-content--with-divider .fng-tab-scroller-divider-line{display:block}.fng-tab-scroller--animating .fng-tab-scroller-scroll-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-scroller-divider-line{display:none;position:absolute;inset:0;border-bottom:1px solid var(--fwe-control)}.fng-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.fng-tab-indicator-content{transform-origin:left;opacity:0}.fng-tab-indicator-content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.fng-tab-indicator .fng-tab-indicator-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-indicator .fng-tab-indicator-content--underline{border-top:4px solid var(--fwe-caerul)}.fng-tab-indicator--active .fng-tab-indicator-content{opacity:1}.fng-tab{position:relative;display:flex;flex:1 0 auto;justify-content:center;padding:0;margin:0;border:none;outline:none;background:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;appearance:none;z-index:1;height:36px}.fng-tab:hover .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab:active .fng-tab-text-label{color:var(--fwe-hero-active)}.fng-tab:not(:last-child){margin-right:32px}.fng-tab::-moz-focus-inner{padding:0;border:0}.fng-tab .fng-tab-text-label{color:var(--fwe-text)}.fng-tab--active .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab--disabled .fng-tab-text-label{color:var(--fwe-text-disabled)}.fng-tab-content{position:relative;display:flex;align-items:flex-start;justify-content:center;height:inherit;pointer-events:none}.fng-tab-text-label{display:inline-block;z-index:2}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab{flex:none}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab:not(:last-child){margin-right:64px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-scroll-content{padding:0 32px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-divider-line{padding-right:64px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:hidden}@media (hover: none){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:auto}@-moz-document url-prefix(){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) transparent}}}@media (hover: none) and (pointer: fine){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar{width:14px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-track{background:transparent}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2574
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FngTabsComponent, isStandalone: true, selector: "fng-tabs", inputs: { viewType: ["fngTabsViewType", "viewType"], showDivider: ["fngTabsUseBottomDivider", "showDivider"], fngActivePaneId: "fngActivePaneId", config: "config" }, outputs: { fngBeforeTabChange: "fngBeforeTabChange", fngTabChange: "fngTabChange" }, queries: [{ propertyName: "panes", predicate: FngTabPaneComponent }], viewQueries: [{ propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }, { propertyName: "scrollAera", first: true, predicate: ["scrollAera"], descendants: true }, { propertyName: "scrollContent", first: true, predicate: ["scrollContent"], descendants: true }], ngImport: i0, template: "@if (viewType === 'legacy') {\n <div class=\"fwe-legacy-tabs\">\n <ul\n role=\"tablist\"\n class=\"fwe-legacy-tab-bar\"\n [class.fwe-legacy-tab-bar-full-width]=\"config?.tabBar?.fullWidth\"\n [class.fwe-legacy-tab-items-equal-width]=\"'equal' === config?.tabItems?.appearance\"\n [class.fwe-legacy-tab-items-fill]=\"'fill' === config?.tabItems?.appearance\"\n >\n @for (tab of tabs; track tab.paneId; let i = $index) {\n <li\n class=\"fwe-legacy-tab-item\"\n [ngClass]=\"{ 'fwe-active': tab?.active, 'fwe-disabled': tab?.disabled }\"\n >\n @if (null == tab?.icon) {\n <a\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\n role=\"tab\"\n class=\"fwe-legacy-tab-link\"\n (click)=\"showTabPane(tab.paneId)\"\n >{{ tab.name }}</a\n >\n }\n @if (null != tab?.icon) {\n <a\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\n role=\"tab\"\n class=\"fwe-legacy-tab-link\"\n (click)=\"showTabPane(tab.paneId)\"\n [class.fwe-can-swap-icon]=\"2 === tabs.length && 1 === i\"\n >\n <i [class]=\"'fwe-icon ' + tab.icon\"></i>\n <span>{{ tab.name }}</span>\n </a>\n }\n </li>\n }\n </ul>\n <div class=\"fwe-legacy-tab-panel-content\">\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\n </div>\n </div>\n }\n\n @if (viewType !== 'legacy') {\n <div class=\"fng-tab-bar\" role=\"tablist\">\n <div class=\"fng-tab-scroller\" #scroller>\n <div\n class=\"fng-tab-scroller-scroll-area fng-tab-scroller-scroll-area--scroll\"\n [class.fng-tab-scroller-scroll-area--compact]=\"useCompactDensity\"\n #scrollAera\n >\n <div class=\"fng-tab-scroller-scroll-content\" [class.fng-tab-scroller-scroll-content--with-divider]=\"showDivider\" #scrollContent>\n @for (tab of tabs; track tab.paneId; let i = $index) {\n <button\n role=\"tab\"\n class=\"fng-tab\"\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\n [tabindex]=\"i === 0 ? 0 : -1\"\n [class.fng-tab--active]=\"tab?.active\"\n [class.fng-tab--disabled]=\"tab?.disabled\"\n (click)=\"handleTabScroll($event, i); showTabPane(tab.paneId)\"\n >\n <span class=\"fng-tab-content\">\n <span class=\"fng-tab-text-label\">{{ tab.name }}</span>\n </span>\n <span class=\"fng-tab-indicator\" [class.fng-tab-indicator--active]=\"tab?.active\">\n <span class=\"fng-tab-indicator-content fng-tab-indicator-content--underline\"></span>\n </span>\n </button>\n }\n <div class=\"fng-tab-scroller-divider-line\"></div>\n </div>\n </div>\n </div>\n <div class=\"fng-tab-panel-content\">\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\n </div>\n </div>\n }\n\n <ng-template #tabPanelContent>\n <ng-content></ng-content>\n </ng-template>\n", styles: [".fwe-legacy-tabs{margin:48px 0;width:100%;height:100%}.fwe-legacy-tab-bar{display:flex;flex-wrap:nowrap;width:75%;padding-left:0;margin-bottom:0;margin-top:0;list-style:none;font-size:var(--fwe-font-size-base)}.fwe-legacy-tab-bar.fwe-legacy-tab-bar-full-width{width:100%}.fwe-legacy-tab-bar.fwe-legacy-tab-items-fill .fwe-legacy-tab-item{flex:1 1 auto}.fwe-legacy-tab-bar.fwe-legacy-tab-items-equal-width .fwe-legacy-tab-item{flex:1 1 0}.fwe-legacy-tab-item{height:48px;max-height:48px;background-color:var(--fwe-gray-300);border-right:2px solid var(--fwe-gray-100);text-align:center}.fwe-legacy-tab-item:last-child{border-right:none}.fwe-legacy-tab-item.fwe-active{background-color:var(--fwe-white)}.fwe-legacy-tab-item.fwe-active .fwe-legacy-tab-link{color:var(--fwe-caerul)}.fwe-legacy-tab-item.fwe-disabled{background-color:var(--fwe-control-disabled)}.fwe-legacy-tab-item.fwe-disabled .fwe-legacy-tab-link{color:var(--fwe-text-disabled)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-gray-100)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{padding:11px 16px}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:hover{color:var(--fwe-text);background-color:var(--fwe-control-hover)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:active{background-color:var(--fwe-control-active)}.fwe-legacy-tab-link{display:inline-block;width:100%;height:46px;padding:11px 16px 13px;line-height:24px;cursor:pointer;color:var(--fwe-black);white-space:nowrap}.fwe-legacy-tab-link i.fwe-icon{padding-right:8px;vertical-align:initial}.fwe-legacy-tab-link i.fwe-icon.fwe-icon-lg{position:relative;top:3px}.fwe-legacy-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}@media (max-width: 375px){.fwe-legacy-tab-bar{justify-content:space-between;background-color:var(--fwe-white);width:100%}.fwe-legacy-tab-item{background-color:var(--fwe-white);border-right:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{color:var(--fwe-hero-gray)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link i.fwe-icon{color:var(--fwe-hero-gray)}.fwe-legacy-tab-link.fwe-can-swap-icon{direction:rtl}.fwe-legacy-tab-link.fwe-can-swap-icon i.fwe-icon{padding-left:8px;padding-right:0}}.fng-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}.fng-tab-bar{width:100%}.fng-tab-scroller{overflow-y:hidden}.fng-tab-scroller-scroll-area{position:relative;display:flex;overflow-x:hidden}.fng-tab-scroller-scroll-area::-webkit-scrollbar{display:none}.fng-tab-scroller-scroll-area--scroll{overflow-x:scroll}.fng-tab-scroller-scroll-content{position:relative;display:flex;flex:1 0 auto;transform:none;will-change:transform;padding:0 17px 0 16px}.fng-tab-scroller-scroll-content--with-divider .fng-tab-scroller-divider-line{display:block}.fng-tab-scroller--animating .fng-tab-scroller-scroll-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-scroller-divider-line{display:none;position:absolute;inset:0;border-bottom:1px solid var(--fwe-control)}.fng-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.fng-tab-indicator-content{transform-origin:left;opacity:0}.fng-tab-indicator-content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.fng-tab-indicator .fng-tab-indicator-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-indicator .fng-tab-indicator-content--underline{border-top:4px solid var(--fwe-caerul)}.fng-tab-indicator--active .fng-tab-indicator-content{opacity:1}.fng-tab{position:relative;display:flex;flex:1 0 auto;justify-content:center;padding:0;margin:0;border:none;outline:none;background:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;appearance:none;z-index:1;height:36px}.fng-tab:hover .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab:active .fng-tab-text-label{color:var(--fwe-hero-active)}.fng-tab:not(:last-child){margin-right:32px}.fng-tab::-moz-focus-inner{padding:0;border:0}.fng-tab .fng-tab-text-label{color:var(--fwe-text)}.fng-tab--active .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab--disabled .fng-tab-text-label{color:var(--fwe-text-disabled)}.fng-tab-content{position:relative;display:flex;align-items:flex-start;justify-content:center;height:inherit;pointer-events:none}.fng-tab-text-label{display:inline-block;z-index:2}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab{flex:none}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab:not(:last-child){margin-right:64px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-scroll-content{padding:0 32px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-divider-line{padding-right:64px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:hidden}@media (hover: none){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:auto}@-moz-document url-prefix(){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) transparent}}}@media (hover: none) and (pointer: fine){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar{width:14px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-track{background:transparent}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2504
2575
|
}
|
|
2505
2576
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FngTabsComponent, decorators: [{
|
|
2506
2577
|
type: Component,
|
|
2507
|
-
args: [{ imports: [CommonModule], selector: 'fng-tabs', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (viewType === 'legacy') {\n <div class=\"fwe-legacy-tabs\">\n <ul\n role=\"tablist\"\n class=\"fwe-legacy-tab-bar\"\n [class.fwe-legacy-tab-bar-full-width]=\"config?.tabBar?.fullWidth\"\n [class.fwe-legacy-tab-items-equal-width]=\"'equal' === config?.tabItems?.appearance\"\n [class.fwe-legacy-tab-items-fill]=\"'fill' === config?.tabItems?.appearance\"\n >\n @for (tab of tabs; track tab; let i = $index) {\n <li\n class=\"fwe-legacy-tab-item\"\n [ngClass]=\"{ 'fwe-active': tab?.active, 'fwe-disabled': tab?.disabled }\"\n >\n @if (null == tab?.icon) {\n <a\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\n role=\"tab\"\n class=\"fwe-legacy-tab-link\"\n (click)=\"showTabPane(tab.paneId)\"\n >{{ tab.name }}</a\n >\n }\n @if (null != tab?.icon) {\n <a\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\n role=\"tab\"\n class=\"fwe-legacy-tab-link\"\n (click)=\"showTabPane(tab.paneId)\"\n [class.fwe-can-swap-icon]=\"2 === tabs.length && 1 === i\"\n >\n <i [class]=\"'fwe-icon ' + tab.icon\"></i>\n <span>{{ tab.name }}</span>\n </a>\n }\n </li>\n }\n </ul>\n <div class=\"fwe-legacy-tab-panel-content\">\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\n </div>\n </div>\n }\n\n @if (viewType !== 'legacy') {\n <div class=\"fng-tab-bar\" role=\"tablist\">\n <div class=\"fng-tab-scroller\" #scroller>\n <div\n class=\"fng-tab-scroller-scroll-area fng-tab-scroller-scroll-area--scroll\"\n [class.fng-tab-scroller-scroll-area--compact]=\"useCompactDensity\"\n #scrollAera\n >\n <div class=\"fng-tab-scroller-scroll-content\" [class.fng-tab-scroller-scroll-content--with-divider]=\"showDivider\" #scrollContent>\n @for (tab of tabs; track tab; let i = $index) {\n <button\n role=\"tab\"\n class=\"fng-tab\"\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\n [tabindex]=\"i === 0 ? 0 : -1\"\n [class.fng-tab--active]=\"tab?.active\"\n [class.fng-tab--disabled]=\"tab?.disabled\"\n (click)=\"handleTabScroll($event, i); showTabPane(tab.paneId)\"\n >\n <span class=\"fng-tab-content\">\n <span class=\"fng-tab-text-label\">{{ tab.name }}</span>\n </span>\n <span class=\"fng-tab-indicator\" [class.fng-tab-indicator--active]=\"tab?.active\">\n <span class=\"fng-tab-indicator-content fng-tab-indicator-content--underline\"></span>\n </span>\n </button>\n }\n <div class=\"fng-tab-scroller-divider-line\"></div>\n </div>\n </div>\n </div>\n <div class=\"fng-tab-panel-content\">\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\n </div>\n </div>\n }\n\n <ng-template #tabPanelContent>\n <ng-content></ng-content>\n </ng-template>\n", styles: [".fwe-legacy-tabs{margin:48px 0;width:100%;height:100%}.fwe-legacy-tab-bar{display:flex;flex-wrap:nowrap;width:75%;padding-left:0;margin-bottom:0;margin-top:0;list-style:none;font-size:var(--fwe-font-size-base)}.fwe-legacy-tab-bar.fwe-legacy-tab-bar-full-width{width:100%}.fwe-legacy-tab-bar.fwe-legacy-tab-items-fill .fwe-legacy-tab-item{flex:1 1 auto}.fwe-legacy-tab-bar.fwe-legacy-tab-items-equal-width .fwe-legacy-tab-item{flex:1 1 0}.fwe-legacy-tab-item{height:48px;max-height:48px;background-color:var(--fwe-gray-300);border-right:2px solid var(--fwe-gray-100);text-align:center}.fwe-legacy-tab-item:last-child{border-right:none}.fwe-legacy-tab-item.fwe-active{background-color:var(--fwe-white)}.fwe-legacy-tab-item.fwe-active .fwe-legacy-tab-link{color:var(--fwe-caerul)}.fwe-legacy-tab-item.fwe-disabled{background-color:var(--fwe-control-disabled)}.fwe-legacy-tab-item.fwe-disabled .fwe-legacy-tab-link{color:var(--fwe-text-disabled)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-gray-100)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{padding:11px 16px}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:hover{color:var(--fwe-text);background-color:var(--fwe-control-hover)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:active{background-color:var(--fwe-control-active)}.fwe-legacy-tab-link{display:inline-block;width:100%;height:46px;padding:11px 16px 13px;line-height:24px;cursor:pointer;color:var(--fwe-black);white-space:nowrap}.fwe-legacy-tab-link i.fwe-icon{padding-right:8px;vertical-align:initial}.fwe-legacy-tab-link i.fwe-icon.fwe-icon-lg{position:relative;top:3px}.fwe-legacy-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}@media (max-width: 375px){.fwe-legacy-tab-bar{justify-content:space-between;background-color:var(--fwe-white);width:100%}.fwe-legacy-tab-item{background-color:var(--fwe-white);border-right:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{color:var(--fwe-hero-gray)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link i.fwe-icon{color:var(--fwe-hero-gray)}.fwe-legacy-tab-link.fwe-can-swap-icon{direction:rtl}.fwe-legacy-tab-link.fwe-can-swap-icon i.fwe-icon{padding-left:8px;padding-right:0}}.fng-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}.fng-tab-bar{width:100%}.fng-tab-scroller{overflow-y:hidden}.fng-tab-scroller-scroll-area{position:relative;display:flex;overflow-x:hidden}.fng-tab-scroller-scroll-area::-webkit-scrollbar{display:none}.fng-tab-scroller-scroll-area--scroll{overflow-x:scroll}.fng-tab-scroller-scroll-content{position:relative;display:flex;flex:1 0 auto;transform:none;will-change:transform;padding:0 17px 0 16px}.fng-tab-scroller-scroll-content--with-divider .fng-tab-scroller-divider-line{display:block}.fng-tab-scroller--animating .fng-tab-scroller-scroll-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-scroller-divider-line{display:none;position:absolute;inset:0;border-bottom:1px solid var(--fwe-control)}.fng-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.fng-tab-indicator-content{transform-origin:left;opacity:0}.fng-tab-indicator-content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.fng-tab-indicator .fng-tab-indicator-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-indicator .fng-tab-indicator-content--underline{border-top:4px solid var(--fwe-caerul)}.fng-tab-indicator--active .fng-tab-indicator-content{opacity:1}.fng-tab{position:relative;display:flex;flex:1 0 auto;justify-content:center;padding:0;margin:0;border:none;outline:none;background:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;appearance:none;z-index:1;height:36px}.fng-tab:hover .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab:active .fng-tab-text-label{color:var(--fwe-hero-active)}.fng-tab:not(:last-child){margin-right:32px}.fng-tab::-moz-focus-inner{padding:0;border:0}.fng-tab .fng-tab-text-label{color:var(--fwe-text)}.fng-tab--active .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab--disabled .fng-tab-text-label{color:var(--fwe-text-disabled)}.fng-tab-content{position:relative;display:flex;align-items:flex-start;justify-content:center;height:inherit;pointer-events:none}.fng-tab-text-label{display:inline-block;z-index:2}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab{flex:none}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab:not(:last-child){margin-right:64px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-scroll-content{padding:0 32px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-divider-line{padding-right:64px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:hidden}@media (hover: none){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:auto}@-moz-document url-prefix(){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) transparent}}}@media (hover: none) and (pointer: fine){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar{width:14px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-track{background:transparent}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}\n"] }]
|
|
2578
|
+
args: [{ imports: [CommonModule], selector: 'fng-tabs', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (viewType === 'legacy') {\n <div class=\"fwe-legacy-tabs\">\n <ul\n role=\"tablist\"\n class=\"fwe-legacy-tab-bar\"\n [class.fwe-legacy-tab-bar-full-width]=\"config?.tabBar?.fullWidth\"\n [class.fwe-legacy-tab-items-equal-width]=\"'equal' === config?.tabItems?.appearance\"\n [class.fwe-legacy-tab-items-fill]=\"'fill' === config?.tabItems?.appearance\"\n >\n @for (tab of tabs; track tab.paneId; let i = $index) {\n <li\n class=\"fwe-legacy-tab-item\"\n [ngClass]=\"{ 'fwe-active': tab?.active, 'fwe-disabled': tab?.disabled }\"\n >\n @if (null == tab?.icon) {\n <a\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\n role=\"tab\"\n class=\"fwe-legacy-tab-link\"\n (click)=\"showTabPane(tab.paneId)\"\n >{{ tab.name }}</a\n >\n }\n @if (null != tab?.icon) {\n <a\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\n role=\"tab\"\n class=\"fwe-legacy-tab-link\"\n (click)=\"showTabPane(tab.paneId)\"\n [class.fwe-can-swap-icon]=\"2 === tabs.length && 1 === i\"\n >\n <i [class]=\"'fwe-icon ' + tab.icon\"></i>\n <span>{{ tab.name }}</span>\n </a>\n }\n </li>\n }\n </ul>\n <div class=\"fwe-legacy-tab-panel-content\">\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\n </div>\n </div>\n }\n\n @if (viewType !== 'legacy') {\n <div class=\"fng-tab-bar\" role=\"tablist\">\n <div class=\"fng-tab-scroller\" #scroller>\n <div\n class=\"fng-tab-scroller-scroll-area fng-tab-scroller-scroll-area--scroll\"\n [class.fng-tab-scroller-scroll-area--compact]=\"useCompactDensity\"\n #scrollAera\n >\n <div class=\"fng-tab-scroller-scroll-content\" [class.fng-tab-scroller-scroll-content--with-divider]=\"showDivider\" #scrollContent>\n @for (tab of tabs; track tab.paneId; let i = $index) {\n <button\n role=\"tab\"\n class=\"fng-tab\"\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\n [tabindex]=\"i === 0 ? 0 : -1\"\n [class.fng-tab--active]=\"tab?.active\"\n [class.fng-tab--disabled]=\"tab?.disabled\"\n (click)=\"handleTabScroll($event, i); showTabPane(tab.paneId)\"\n >\n <span class=\"fng-tab-content\">\n <span class=\"fng-tab-text-label\">{{ tab.name }}</span>\n </span>\n <span class=\"fng-tab-indicator\" [class.fng-tab-indicator--active]=\"tab?.active\">\n <span class=\"fng-tab-indicator-content fng-tab-indicator-content--underline\"></span>\n </span>\n </button>\n }\n <div class=\"fng-tab-scroller-divider-line\"></div>\n </div>\n </div>\n </div>\n <div class=\"fng-tab-panel-content\">\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\n </div>\n </div>\n }\n\n <ng-template #tabPanelContent>\n <ng-content></ng-content>\n </ng-template>\n", styles: [".fwe-legacy-tabs{margin:48px 0;width:100%;height:100%}.fwe-legacy-tab-bar{display:flex;flex-wrap:nowrap;width:75%;padding-left:0;margin-bottom:0;margin-top:0;list-style:none;font-size:var(--fwe-font-size-base)}.fwe-legacy-tab-bar.fwe-legacy-tab-bar-full-width{width:100%}.fwe-legacy-tab-bar.fwe-legacy-tab-items-fill .fwe-legacy-tab-item{flex:1 1 auto}.fwe-legacy-tab-bar.fwe-legacy-tab-items-equal-width .fwe-legacy-tab-item{flex:1 1 0}.fwe-legacy-tab-item{height:48px;max-height:48px;background-color:var(--fwe-gray-300);border-right:2px solid var(--fwe-gray-100);text-align:center}.fwe-legacy-tab-item:last-child{border-right:none}.fwe-legacy-tab-item.fwe-active{background-color:var(--fwe-white)}.fwe-legacy-tab-item.fwe-active .fwe-legacy-tab-link{color:var(--fwe-caerul)}.fwe-legacy-tab-item.fwe-disabled{background-color:var(--fwe-control-disabled)}.fwe-legacy-tab-item.fwe-disabled .fwe-legacy-tab-link{color:var(--fwe-text-disabled)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-gray-100)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{padding:11px 16px}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:hover{color:var(--fwe-text);background-color:var(--fwe-control-hover)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link:active{background-color:var(--fwe-control-active)}.fwe-legacy-tab-link{display:inline-block;width:100%;height:46px;padding:11px 16px 13px;line-height:24px;cursor:pointer;color:var(--fwe-black);white-space:nowrap}.fwe-legacy-tab-link i.fwe-icon{padding-right:8px;vertical-align:initial}.fwe-legacy-tab-link i.fwe-icon.fwe-icon-lg{position:relative;top:3px}.fwe-legacy-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}@media (max-width: 375px){.fwe-legacy-tab-bar{justify-content:space-between;background-color:var(--fwe-white);width:100%}.fwe-legacy-tab-item{background-color:var(--fwe-white);border-right:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active){border-bottom:2px solid var(--fwe-white)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link{color:var(--fwe-hero-gray)}.fwe-legacy-tab-item:not(.fwe-active) .fwe-legacy-tab-link i.fwe-icon{color:var(--fwe-hero-gray)}.fwe-legacy-tab-link.fwe-can-swap-icon{direction:rtl}.fwe-legacy-tab-link.fwe-can-swap-icon i.fwe-icon{padding-left:8px;padding-right:0}}.fng-tab-panel-content{padding:48px 24px;background-color:var(--fwe-white);height:100%;overflow:auto}.fng-tab-bar{width:100%}.fng-tab-scroller{overflow-y:hidden}.fng-tab-scroller-scroll-area{position:relative;display:flex;overflow-x:hidden}.fng-tab-scroller-scroll-area::-webkit-scrollbar{display:none}.fng-tab-scroller-scroll-area--scroll{overflow-x:scroll}.fng-tab-scroller-scroll-content{position:relative;display:flex;flex:1 0 auto;transform:none;will-change:transform;padding:0 17px 0 16px}.fng-tab-scroller-scroll-content--with-divider .fng-tab-scroller-divider-line{display:block}.fng-tab-scroller--animating .fng-tab-scroller-scroll-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-scroller-divider-line{display:none;position:absolute;inset:0;border-bottom:1px solid var(--fwe-control)}.fng-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.fng-tab-indicator-content{transform-origin:left;opacity:0}.fng-tab-indicator-content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.fng-tab-indicator .fng-tab-indicator-content{transition:.25s transform cubic-bezier(.4,0,.2,1)}.fng-tab-indicator .fng-tab-indicator-content--underline{border-top:4px solid var(--fwe-caerul)}.fng-tab-indicator--active .fng-tab-indicator-content{opacity:1}.fng-tab{position:relative;display:flex;flex:1 0 auto;justify-content:center;padding:0;margin:0;border:none;outline:none;background:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;appearance:none;z-index:1;height:36px}.fng-tab:hover .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab:active .fng-tab-text-label{color:var(--fwe-hero-active)}.fng-tab:not(:last-child){margin-right:32px}.fng-tab::-moz-focus-inner{padding:0;border:0}.fng-tab .fng-tab-text-label{color:var(--fwe-text)}.fng-tab--active .fng-tab-text-label{color:var(--fwe-caerul)}.fng-tab--disabled .fng-tab-text-label{color:var(--fwe-text-disabled)}.fng-tab-content{position:relative;display:flex;align-items:flex-start;justify-content:center;height:inherit;pointer-events:none}.fng-tab-text-label{display:inline-block;z-index:2}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab{flex:none}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab:not(:last-child){margin-right:64px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-scroll-content{padding:0 32px}.fng-tab-scroller-scroll-area:not(.fng-tab-scroller-scroll-area--compact) .fng-tab-scroller-divider-line{padding-right:64px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:hidden}@media (hover: none){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{overflow-x:auto}@-moz-document url-prefix(){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) transparent}}}@media (hover: none) and (pointer: fine){.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar{width:14px}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-track{background:transparent}.fng-tab-scroller-scroll-area.fng-tab-scroller-scroll-area--scroll::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}\n"] }]
|
|
2508
2579
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: Document, decorators: [{
|
|
2509
2580
|
type: Inject,
|
|
2510
2581
|
args: [DOCUMENT]
|
|
@@ -2514,6 +2585,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2514
2585
|
}], showDivider: [{
|
|
2515
2586
|
type: Input,
|
|
2516
2587
|
args: ['fngTabsUseBottomDivider']
|
|
2588
|
+
}], fngActivePaneId: [{
|
|
2589
|
+
type: Input,
|
|
2590
|
+
args: ['fngActivePaneId']
|
|
2517
2591
|
}], config: [{
|
|
2518
2592
|
type: Input
|
|
2519
2593
|
}], fngBeforeTabChange: [{
|
|
@@ -3090,7 +3164,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
3090
3164
|
* A custom form element for text inputs.
|
|
3091
3165
|
*/
|
|
3092
3166
|
class FngTextInputComponent {
|
|
3093
|
-
constructor() {
|
|
3167
|
+
constructor(cdr) {
|
|
3168
|
+
this.cdr = cdr;
|
|
3094
3169
|
/**
|
|
3095
3170
|
* The text input label.
|
|
3096
3171
|
*/
|
|
@@ -3178,9 +3253,6 @@ class FngTextInputComponent {
|
|
|
3178
3253
|
if (this.onChange != null) {
|
|
3179
3254
|
this.onChange(value);
|
|
3180
3255
|
}
|
|
3181
|
-
if (this.onTouched != null) {
|
|
3182
|
-
this.onTouched();
|
|
3183
|
-
}
|
|
3184
3256
|
}
|
|
3185
3257
|
get required() {
|
|
3186
3258
|
return this.innerRequired;
|
|
@@ -3204,6 +3276,7 @@ class FngTextInputComponent {
|
|
|
3204
3276
|
}
|
|
3205
3277
|
this.innerValue = value;
|
|
3206
3278
|
this.focused = !!value;
|
|
3279
|
+
this.cdr.markForCheck();
|
|
3207
3280
|
}
|
|
3208
3281
|
/**
|
|
3209
3282
|
* Registers a function to onChange.
|
|
@@ -3232,6 +3305,9 @@ class FngTextInputComponent {
|
|
|
3232
3305
|
if (this.focused) {
|
|
3233
3306
|
this.focused = false;
|
|
3234
3307
|
}
|
|
3308
|
+
if (this.onTouched != null) {
|
|
3309
|
+
this.onTouched();
|
|
3310
|
+
}
|
|
3235
3311
|
}
|
|
3236
3312
|
/**
|
|
3237
3313
|
* Sets the disabled state.
|
|
@@ -3239,15 +3315,16 @@ class FngTextInputComponent {
|
|
|
3239
3315
|
*/
|
|
3240
3316
|
setDisabledState(isDisabled) {
|
|
3241
3317
|
this.disabled = isDisabled;
|
|
3318
|
+
this.cdr.markForCheck();
|
|
3242
3319
|
}
|
|
3243
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FngTextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3320
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FngTextInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3244
3321
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FngTextInputComponent, isStandalone: true, selector: "fng-text-input", inputs: { label: "label", showValidationIcons: "showValidationIcons", type: "type", readonly: "readonly", step: "step", min: "min", max: "max", tabindex: "tabindex", placeholder: "placeholder", name: "name", disabled: "disabled", value: "value", required: "required", error: "error", hint: "hint" }, providers: [
|
|
3245
3322
|
{
|
|
3246
3323
|
provide: NG_VALUE_ACCESSOR,
|
|
3247
3324
|
useExisting: forwardRef(() => FngTextInputComponent),
|
|
3248
3325
|
multi: true
|
|
3249
3326
|
}
|
|
3250
|
-
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<label class=\"fwe-input-text\" [class.fwe-no-pointer-events]=\"readonly === true\" [ngClass]=\"{ 'fng-input-text--with-icon': showValidationIcons }\">\n <input\n #inputElement\n [disabled]=\"disabled\"\n [required]=\"required === true || false\"\n [attr.readonly]=\"readonly === true || null\"\n [attr.placeholder]=\"placeholder || null\"\n [attr.type]=\"type\"\n [attr.step]=\"step\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.name]=\"name || null\"\n [attr.tabindex]=\"tabindex\"\n [class.fng-has-value]=\"value != null && value !== ''\"\n autocomplete=\"off\"\n (focus)=\"onFocus()\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlur()\"\n />\n <span class=\"fwe-input-text-label\">{{ label }}</span>\n @if (hint) {\n <span class=\"fwe-input-text-info\">{{ hint }}</span>\n } @else {\n <span class=\"fwe-input-text-info fng-projected\"><ng-content select=\".fng-hint\"></ng-content></span>\n } @if (error) {\n <span class=\"fwe-input-text-invalid\">{{ error }}</span>\n } @else {\n <span class=\"fwe-input-text-invalid fng-projected\"><ng-content select=\".fng-error\"></ng-content></span>\n } @if(showValidationIcons){\n <i class=\"fng-icon-svg-validation-state\" aria-hidden=\"true\"></i>\n }\n</label>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}fng-text-input label.fwe-input-text:has(input:disabled){cursor:not-allowed!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}.fng-input-text--with-icon input{padding-right:24px}.fng-input-text--with-icon i{position:absolute;line-height:1;bottom:26px;right:4px;height:16px;width:16px;visibility:hidden}
|
|
3327
|
+
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<label class=\"fwe-input-text\" [class.fwe-no-pointer-events]=\"readonly === true\" [ngClass]=\"{ 'fng-input-text--with-icon': showValidationIcons }\">\n <input\n #inputElement\n [disabled]=\"disabled\"\n [required]=\"required === true || false\"\n [attr.readonly]=\"readonly === true || null\"\n [attr.placeholder]=\"placeholder || null\"\n [attr.type]=\"type\"\n [attr.step]=\"step\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.name]=\"name || null\"\n [attr.tabindex]=\"tabindex\"\n [class.fng-has-value]=\"value != null && value !== ''\"\n autocomplete=\"off\"\n (focus)=\"onFocus()\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlur()\"\n />\n <span class=\"fwe-input-text-label\">{{ label }}</span>\n @if (hint) {\n <span class=\"fwe-input-text-info\">{{ hint }}</span>\n } @else {\n <span class=\"fwe-input-text-info fng-projected\"><ng-content select=\".fng-hint\"></ng-content></span>\n } @if (error) {\n <span class=\"fwe-input-text-invalid\">{{ error }}</span>\n } @else {\n <span class=\"fwe-input-text-invalid fng-projected\"><ng-content select=\".fng-error\"></ng-content></span>\n } @if(showValidationIcons){\n <i class=\"fng-icon-svg-validation-state\" aria-hidden=\"true\"></i>\n }\n</label>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}fng-text-input label.fwe-input-text:has(input:disabled){cursor:not-allowed!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}.fng-input-text--with-icon input{padding-right:24px}.fng-input-text--with-icon i{position:absolute;line-height:1;bottom:26px;right:4px;height:16px;width:16px;visibility:hidden}fng-text-input.ng-valid.ng-touched .fng-input-text--with-icon i.fng-icon-svg-validation-state{visibility:visible;background-image:url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='13' height='10' viewBox='0 0 13 10' fill='none'><path d='M4.207 9.621L0 5.414L1.414 4L4.207 6.793L11 0L12.414 1.414L4.207 9.621Z' fill='%230091DC'/></svg>\");background-repeat:no-repeat;background-size:13px 13px;background-position:center center}fng-text-input.ng-invalid.ng-touched:not(.ng-pristine) .fng-input-text--with-icon i.fng-icon-svg-validation-state{visibility:visible;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj48cGF0aCBkPSJNMTYuOTUgOC40NjQwNUwxNS41MzYgNy4wNTAwNUwxMiAxMC41ODZMOC40NjQwNSA3LjA1MDA1TDcuMDUwMDUgOC40NjQwNUwxMC41ODYgMTJMNy4wNTAwNSAxNS41MzZMOC40NjQwNSAxNi45NUwxMiAxMy40MTRMMTUuNTM2IDE2Ljk1TDE2Ljk1IDE1LjUzNkwxMy40MTQgMTJMMTYuOTUgOC40NjQwNVoiIGZpbGw9IiNENTAwMDAiLz48L3N2Zz4=);background-repeat:no-repeat;background-position:center center;background-size:24px 24px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3251
3328
|
}
|
|
3252
3329
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FngTextInputComponent, decorators: [{
|
|
3253
3330
|
type: Component,
|
|
@@ -3257,8 +3334,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
3257
3334
|
useExisting: forwardRef(() => FngTextInputComponent),
|
|
3258
3335
|
multi: true
|
|
3259
3336
|
}
|
|
3260
|
-
], encapsulation: ViewEncapsulation.None, template: "<label class=\"fwe-input-text\" [class.fwe-no-pointer-events]=\"readonly === true\" [ngClass]=\"{ 'fng-input-text--with-icon': showValidationIcons }\">\n <input\n #inputElement\n [disabled]=\"disabled\"\n [required]=\"required === true || false\"\n [attr.readonly]=\"readonly === true || null\"\n [attr.placeholder]=\"placeholder || null\"\n [attr.type]=\"type\"\n [attr.step]=\"step\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.name]=\"name || null\"\n [attr.tabindex]=\"tabindex\"\n [class.fng-has-value]=\"value != null && value !== ''\"\n autocomplete=\"off\"\n (focus)=\"onFocus()\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlur()\"\n />\n <span class=\"fwe-input-text-label\">{{ label }}</span>\n @if (hint) {\n <span class=\"fwe-input-text-info\">{{ hint }}</span>\n } @else {\n <span class=\"fwe-input-text-info fng-projected\"><ng-content select=\".fng-hint\"></ng-content></span>\n } @if (error) {\n <span class=\"fwe-input-text-invalid\">{{ error }}</span>\n } @else {\n <span class=\"fwe-input-text-invalid fng-projected\"><ng-content select=\".fng-error\"></ng-content></span>\n } @if(showValidationIcons){\n <i class=\"fng-icon-svg-validation-state\" aria-hidden=\"true\"></i>\n }\n</label>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}fng-text-input label.fwe-input-text:has(input:disabled){cursor:not-allowed!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}.fng-input-text--with-icon input{padding-right:24px}.fng-input-text--with-icon i{position:absolute;line-height:1;bottom:26px;right:4px;height:16px;width:16px;visibility:hidden}
|
|
3261
|
-
}], propDecorators: { label: [{
|
|
3337
|
+
], encapsulation: ViewEncapsulation.None, template: "<label class=\"fwe-input-text\" [class.fwe-no-pointer-events]=\"readonly === true\" [ngClass]=\"{ 'fng-input-text--with-icon': showValidationIcons }\">\n <input\n #inputElement\n [disabled]=\"disabled\"\n [required]=\"required === true || false\"\n [attr.readonly]=\"readonly === true || null\"\n [attr.placeholder]=\"placeholder || null\"\n [attr.type]=\"type\"\n [attr.step]=\"step\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.name]=\"name || null\"\n [attr.tabindex]=\"tabindex\"\n [class.fng-has-value]=\"value != null && value !== ''\"\n autocomplete=\"off\"\n (focus)=\"onFocus()\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlur()\"\n />\n <span class=\"fwe-input-text-label\">{{ label }}</span>\n @if (hint) {\n <span class=\"fwe-input-text-info\">{{ hint }}</span>\n } @else {\n <span class=\"fwe-input-text-info fng-projected\"><ng-content select=\".fng-hint\"></ng-content></span>\n } @if (error) {\n <span class=\"fwe-input-text-invalid\">{{ error }}</span>\n } @else {\n <span class=\"fwe-input-text-invalid fng-projected\"><ng-content select=\".fng-error\"></ng-content></span>\n } @if(showValidationIcons){\n <i class=\"fng-icon-svg-validation-state\" aria-hidden=\"true\"></i>\n }\n</label>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid.ng-touched label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}fng-text-input label.fwe-input-text:has(input:disabled){cursor:not-allowed!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}.fng-input-text--with-icon input{padding-right:24px}.fng-input-text--with-icon i{position:absolute;line-height:1;bottom:26px;right:4px;height:16px;width:16px;visibility:hidden}fng-text-input.ng-valid.ng-touched .fng-input-text--with-icon i.fng-icon-svg-validation-state{visibility:visible;background-image:url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='13' height='10' viewBox='0 0 13 10' fill='none'><path d='M4.207 9.621L0 5.414L1.414 4L4.207 6.793L11 0L12.414 1.414L4.207 9.621Z' fill='%230091DC'/></svg>\");background-repeat:no-repeat;background-size:13px 13px;background-position:center center}fng-text-input.ng-invalid.ng-touched:not(.ng-pristine) .fng-input-text--with-icon i.fng-icon-svg-validation-state{visibility:visible;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj48cGF0aCBkPSJNMTYuOTUgOC40NjQwNUwxNS41MzYgNy4wNTAwNUwxMiAxMC41ODZMOC40NjQwNSA3LjA1MDA1TDcuMDUwMDUgOC40NjQwNUwxMC41ODYgMTJMNy4wNTAwNSAxNS41MzZMOC40NjQwNSAxNi45NUwxMiAxMy40MTRMMTUuNTM2IDE2Ljk1TDE2Ljk1IDE1LjUzNkwxMy40MTQgMTJMMTYuOTUgOC40NjQwNVoiIGZpbGw9IiNENTAwMDAiLz48L3N2Zz4=);background-repeat:no-repeat;background-position:center center;background-size:24px 24px}\n"] }]
|
|
3338
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { label: [{
|
|
3262
3339
|
type: Input
|
|
3263
3340
|
}], showValidationIcons: [{
|
|
3264
3341
|
type: Input
|
|
@@ -3527,12 +3604,11 @@ class FngModalService {
|
|
|
3527
3604
|
const positionStrategy = options.positionStrategy || this.overlay.position().global().centerHorizontally().centerVertically();
|
|
3528
3605
|
const scrollStrategy = this.overlay.scrollStrategies.block();
|
|
3529
3606
|
const overlayRef = this.overlay.create({
|
|
3530
|
-
panelClass: options.overlayClass,
|
|
3531
3607
|
positionStrategy,
|
|
3532
3608
|
scrollStrategy,
|
|
3533
|
-
|
|
3534
|
-
|
|
3535
|
-
|
|
3609
|
+
panelClass: options.overlayClass,
|
|
3610
|
+
backdropClass: options.backdropClass ?? 'fwe-modal-backdrop',
|
|
3611
|
+
hasBackdrop: options.hasBackdrop ?? true,
|
|
3536
3612
|
});
|
|
3537
3613
|
if (options.closeOnNavigation) {
|
|
3538
3614
|
this.router.events
|
|
@@ -5814,6 +5890,7 @@ class FngSelectComponent {
|
|
|
5814
5890
|
}
|
|
5815
5891
|
setDisabledState(shouldDisable) {
|
|
5816
5892
|
this.disabled = shouldDisable;
|
|
5893
|
+
this.cd.markForCheck();
|
|
5817
5894
|
}
|
|
5818
5895
|
writeValue(value) {
|
|
5819
5896
|
if (value === undefined) {
|
|
@@ -5831,6 +5908,7 @@ class FngSelectComponent {
|
|
|
5831
5908
|
else {
|
|
5832
5909
|
this._value = value;
|
|
5833
5910
|
}
|
|
5911
|
+
this.cd.markForCheck();
|
|
5834
5912
|
}
|
|
5835
5913
|
getOptionText(index) {
|
|
5836
5914
|
if (this.options[index] && this.optionsTextKey && this.options[index][this.optionsTextKey] != null) {
|
|
@@ -5919,6 +5997,12 @@ class FngSelectComponent {
|
|
|
5919
5997
|
isEmpty() {
|
|
5920
5998
|
this.empty = !this.showOptions && (!this._value || '' === this._value);
|
|
5921
5999
|
}
|
|
6000
|
+
isOptionSelected(index) {
|
|
6001
|
+
if (this.multiple) {
|
|
6002
|
+
return false;
|
|
6003
|
+
}
|
|
6004
|
+
return this.value === this.getOptionValue(index);
|
|
6005
|
+
}
|
|
5922
6006
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FngSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5923
6007
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: FngSelectComponent, isStandalone: true, selector: "fng-select", inputs: { disabled: "disabled", required: "required", multiple: "multiple", size: "size", options: "options", optionsValueKey: "optionsValueKey", optionsTextKey: "optionsTextKey", optionObjectAsValue: "optionObjectAsValue", error: "error", label: "label", hideLabel: "hideLabel", hint: "hint", resetOption: "resetOption" }, outputs: { fngChange: "fngChange" }, host: { listeners: { "blur": "markAsTouched()" }, properties: { "id": "this.id" } }, providers: [
|
|
5924
6008
|
{
|
|
@@ -5926,7 +6010,7 @@ class FngSelectComponent {
|
|
|
5926
6010
|
useExisting: forwardRef(() => FngSelectComponent),
|
|
5927
6011
|
multi: true
|
|
5928
6012
|
}
|
|
5929
|
-
], queries: [{ propertyName: "fngSelectOptions", predicate: FngSelectOptionComponent }], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["div"], descendants: true }], ngImport: i0, template: "<div #div class=\"fwe-select-wrapper\" [class.fwe-disabled]=\"disabled\" [class.fng-hide-label]=\"hideLabel\">\n <div\n class=\"fwe-select\"\n (click)=\"toggle()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [class.fwe-focus]=\"showOptions\"\n [class.fwe-required]=\"required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fwe-pty]=\"empty\"\n >\n <div class=\"fwe-select-content\">\n @if (!multiple) {\n {{ value != null && value | fngChipText: options:optionsValueKey:optionsTextKey }}\n } @else {\n <div class=\"fwe-chip-container\">\n @for (v of value; track v) {\n <div\n class=\"fwe-chip chip-text-truncate fwe-pr-4\"\n [style.max-width.px]=\"triggerWidth\"\n [title]=\"v | fngChipText: options:optionsValueKey:optionsTextKey\"\n >\n {{ v | fngChipText: options:optionsValueKey:optionsTextKey }}\n <span class=\"chip-removable\" (click)=\"removeChip($event, v)\"></span>\n </div>\n }\n </div>\n }\n </div>\n </div>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayMinWidth]=\"triggerWidth\"\n [cdkConnectedOverlayOpen]=\"showOptions\"\n [cdkConnectedOverlayPanelClass]=\"selectPanelClasses\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n >\n <div class=\"fng-select-panel-wrap\">\n <ul class=\"fwe-select-options-container\">\n @if (resetOption != null && !multiple) {\n <li class=\"fwe-select-option\" (click)=\"select(null, $event)\">{{ resetOption }}</li>\n }\n @for (option of options; track option; let i = $index) {\n <li\n class=\"fwe-select-option\"\n (click)=\"select(getOptionValue(i), $event)\"\n [title]=\"getOptionText(i) || option?.text\"\n >\n <span class=\"fwe-select-option-content\">\n @if (multiple) {\n <span\n class=\"fng-select-pseudo-checkbox\"\n [ngClass]=\"{ 'fng-select-pseudo-checkbox-checked': checked.get(getOptionValue(i)) === 'checked' }\"\n ></span>\n }\n @if (hasProjectedOptions) {\n <span [innerHTML]=\"projectedHtml[i]\"></span>\n } @else {\n {{ getOptionText(i) || option?.text }}\n }\n </span>\n </li>\n }\n </ul>\n </div>\n </ng-template>\n <label class=\"fwe-select-label\" [for]=\"id\" [class.fwe-sr-only]=\"hideLabel\">{{ label }}</label>\n @if (hint) {\n <div class=\"fwe-select-description\">\n {{ hint }}\n </div>\n }\n @if (error) {\n <div class=\"fwe-select-invalid\">\n {{ error }}\n </div>\n }\n</div>\n<div class=\"fwe-d-none\">\n <ng-content></ng-content>\n</div>\n", styles: [".fng-select-panel-open .fng-select-panel{opacity:1!important}fng-select{width:auto}fng-select.ng-invalid:not(.ng-pristine) .fwe-select:hover{border-color:var(--fwe-red)}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-invalid{display:block}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-description{display:none}.fng-select-panel{opacity:0!important}.fng-select-panel.fng-select-panel-options-3 .fwe-select-options-container{max-height:162px}.fng-select-panel.fng-select-panel-options-4 .fwe-select-options-container{max-height:210px}.fng-select-panel.fng-select-panel-options-5 .fwe-select-options-container{max-height:258px}.fng-select-panel.fng-select-panel-options-6 .fwe-select-options-container{max-height:306px}.fng-select-panel.fng-select-panel-options-7 .fwe-select-options-container{max-height:354px}.fng-select-panel.fng-select-panel-options-8 .fwe-select-options-container{max-height:402px}.fng-select-panel.fng-select-panel-options-9 .fwe-select-options-container{max-height:450px}.fng-select-panel.fng-select-panel-options-10 .fwe-select-options-container{max-height:498px}@-moz-document url-prefix(){.fng-select-panel .fwe-select-options-container{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) transparent}}@media (pointer: fine){.fng-select-panel .fwe-select-options-container::-webkit-scrollbar{width:14px}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-track{background:transparent}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}.fng-select-panel-wrap{flex-basis:100%}.fwe-select-options-container{position:relative;top:4px;left:0;max-height:258px;min-width:calc(100% + 0px)!important;max-width:280px;overflow:auto;font-size:var(--fwe-font-size-base);background-color:var(--fwe-white);border-radius:4px;padding:8px;margin:0;border:1px solid var(--fwe-gray-200);box-shadow:0 1px 4px #00000029;list-style:none;outline:0}.fwe-select-options-container .fwe-select-option{position:relative;line-height:24px;padding:12px 8px;min-height:24px;cursor:pointer}.fwe-select-options-container .fwe-select-option:hover{background-color:var(--fwe-gray-100)}.fwe-select-options-container .fwe-select-option:last-child{border-bottom:none}.fwe-select-options-container .fwe-select-option .fwe-select-option-content{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;line-height:24px;min-height:24px}.fng-select-pseudo-checkbox{width:16px;height:16px;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;color:var(--fwe-control-border);border:1px solid;transition:none;margin-right:12px;top:-1px}.fng-select-pseudo-checkbox:after{color:var(--fwe-white);position:absolute;display:block;opacity:0;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked{background:var(--fwe-caerul);border:1px solid var(--fwe-caerul)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked:after{top:3px;left:2px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.chip-text-truncate{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-removable:after{position:absolute;right:5px;top:4px;color:var(--fwe-text);font-family:var(--fwe-font-family-icons-16);font-size:var(--fwe-font-size-base);content:\"\\ea1c\";line-height:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fwe-select-wrapper{display:flex;width:inherit;min-width:48px}.fwe-select-wrapper:before{bottom:unset;top:24px}.fwe-select-wrapper.fng-hide-label{margin-top:18px}.fwe-select-wrapper.fng-hide-label:before{top:6px}.fwe-select-wrapper.fwe-disabled:before{color:var(--fwe-text-disabled);background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiAxMikiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMiAtMTIpIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDApIj48cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiLz48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNS41OTggOC41MTMpIj48cGF0aCBkPSJNNS42MzYsOS4xOTRsNi4yNzgsNi41NjQsNi4yNzgtNi41NjQtLjctLjczTDExLjkxNCwxNC4zLDYuMzMzLDguNDY0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuNjM2IC04LjQ2NCkiIGZpbGw9IiNiOWJhYmIiLz48L2c+PC9nPjwvZz48L3N2Zz4=)}.fwe-select-wrapper .fwe-select{cursor:pointer;height:unset;min-height:33px}.fwe-select-wrapper .fwe-select .fwe-select-content{padding-right:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5rem}.fwe-select-wrapper .fwe-select.fwe-required:not(.fwe-disabled)~.fwe-select-label:after{position:relative;left:3px;display:inline-block;content:\"*\"}.fwe-select-wrapper .fwe-select.fwe-disabled{cursor:default;border-color:var(--fwe-control-disabled)!important}.fwe-select-wrapper .fwe-select.fwe-disabled~.fwe-select-label{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-select-content{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip{color:var(--fwe-text-disabled);border:1px solid var(--fwe-control-disabled);pointer-events:none}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip .chip-removable:after{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select-label:empty~.fwe-select-options-container,.fwe-select-wrapper .fwe-select-label.fwe-sr-only~.fwe-select-options-container{top:38px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1$2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1$2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "pipe", type: FngChipTextPipe, name: "fngChipText" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
6013
|
+
], queries: [{ propertyName: "fngSelectOptions", predicate: FngSelectOptionComponent }], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["div"], descendants: true }], ngImport: i0, template: "<div #div class=\"fwe-select-wrapper\" [class.fwe-disabled]=\"disabled\" [class.fng-hide-label]=\"hideLabel\">\n <div\n class=\"fwe-select\"\n (click)=\"toggle()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [class.fwe-focus]=\"showOptions\"\n [class.fwe-required]=\"required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fwe-pty]=\"empty\"\n >\n <div class=\"fwe-select-content\">\n @if (!multiple) {\n {{ value != null && value | fngChipText: options:optionsValueKey:optionsTextKey }}\n } @else {\n <div class=\"fwe-chip-container\">\n @for (v of value; track v) {\n <div\n class=\"fwe-chip chip-text-truncate fwe-pr-4\"\n [style.max-width.px]=\"triggerWidth\"\n [title]=\"v | fngChipText: options:optionsValueKey:optionsTextKey\"\n >\n {{ v | fngChipText: options:optionsValueKey:optionsTextKey }}\n <span class=\"chip-removable\" (click)=\"removeChip($event, v)\"></span>\n </div>\n }\n </div>\n }\n </div>\n </div>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayMinWidth]=\"triggerWidth\"\n [cdkConnectedOverlayOpen]=\"showOptions\"\n [cdkConnectedOverlayPanelClass]=\"selectPanelClasses\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n >\n <div class=\"fng-select-panel-wrap\">\n <ul class=\"fwe-select-options-container\">\n @if (resetOption != null && !multiple) {\n <li class=\"fwe-select-option\" (click)=\"select(null, $event)\">{{ resetOption }}</li>\n }\n @for (option of options; track option; let i = $index) {\n <li\n class=\"fwe-select-option\"\n (click)=\"select(getOptionValue(i), $event)\"\n [title]=\"getOptionText(i) || option?.text\"\n [class.fwe-selected]=\"isOptionSelected(i)\"\n >\n <span class=\"fwe-select-option-content\">\n @if (multiple) {\n <span\n class=\"fng-select-pseudo-checkbox\"\n [ngClass]=\"{ 'fng-select-pseudo-checkbox-checked': checked.get(getOptionValue(i)) === 'checked' }\"\n ></span>\n }\n @if (hasProjectedOptions) {\n <span [innerHTML]=\"projectedHtml[i]\"></span>\n } @else {\n {{ getOptionText(i) || option?.text }}\n }\n </span>\n </li>\n }\n </ul>\n </div>\n </ng-template>\n <label class=\"fwe-select-label\" [for]=\"id\" [class.fwe-sr-only]=\"hideLabel\">{{ label }}</label>\n @if (hint) {\n <div class=\"fwe-select-description\">\n {{ hint }}\n </div>\n }\n @if (error) {\n <div class=\"fwe-select-invalid\">\n {{ error }}\n </div>\n }\n</div>\n<div class=\"fwe-d-none\">\n <ng-content></ng-content>\n</div>\n", styles: [".fng-select-panel-open .fng-select-panel{opacity:1!important}fng-select{width:auto}fng-select.ng-invalid:not(.ng-pristine) .fwe-select:hover{border-color:var(--fwe-red)}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-invalid{display:block}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-description{display:none}.fng-select-panel{opacity:0!important}.fng-select-panel.fng-select-panel-options-3 .fwe-select-options-container{max-height:162px}.fng-select-panel.fng-select-panel-options-4 .fwe-select-options-container{max-height:210px}.fng-select-panel.fng-select-panel-options-5 .fwe-select-options-container{max-height:258px}.fng-select-panel.fng-select-panel-options-6 .fwe-select-options-container{max-height:306px}.fng-select-panel.fng-select-panel-options-7 .fwe-select-options-container{max-height:354px}.fng-select-panel.fng-select-panel-options-8 .fwe-select-options-container{max-height:402px}.fng-select-panel.fng-select-panel-options-9 .fwe-select-options-container{max-height:450px}.fng-select-panel.fng-select-panel-options-10 .fwe-select-options-container{max-height:498px}@-moz-document url-prefix(){.fng-select-panel .fwe-select-options-container{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) transparent}}@media (pointer: fine){.fng-select-panel .fwe-select-options-container::-webkit-scrollbar{width:14px}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-track{background:transparent}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}.fng-select-panel-wrap{flex-basis:100%}.fwe-select-options-container{position:relative;top:4px;left:0;max-height:258px;min-width:calc(100% + 0px)!important;max-width:280px;overflow:auto;font-size:var(--fwe-font-size-base);background-color:var(--fwe-white);border-radius:4px;padding:8px 0;margin:0;border:1px solid var(--fwe-gray-200);box-shadow:0 1px 4px #00000029;list-style:none;outline:0}.fwe-select-options-container .fwe-select-option{position:relative;line-height:24px;padding:12px 8px 12px 16px;min-height:24px;cursor:pointer}.fwe-select-options-container .fwe-select-option:hover{background-color:var(--fwe-gray-100)}.fwe-select-options-container .fwe-select-option.fwe-selected{color:var(--fwe-hero)}.fwe-select-options-container .fwe-select-option.fwe-selected:before{content:\"\";width:4px;height:100%;background-color:var(--fwe-hero);position:absolute;left:0;top:0}.fwe-select-options-container .fwe-select-option.fwe-selected:hover{color:var(--fwe-hero-hover)}.fwe-select-options-container .fwe-select-option.fwe-selected:hover:before{background-color:var(--fwe-hero-hover)}.fwe-select-options-container .fwe-select-option:last-child{border-bottom:none}.fwe-select-options-container .fwe-select-option .fwe-select-option-content{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;line-height:24px;min-height:24px}.fng-select-pseudo-checkbox{width:16px;height:16px;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;color:var(--fwe-control-border);border:1px solid;transition:none;margin-right:12px;top:-1px}.fng-select-pseudo-checkbox:after{color:var(--fwe-white);position:absolute;display:block;opacity:0;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked{background:var(--fwe-caerul);border:1px solid var(--fwe-caerul)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked:after{top:3px;left:2px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.chip-text-truncate{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-removable{position:absolute;right:0;top:0}.chip-removable:after{content:\"\";display:block;position:absolute;right:5px;top:4px;height:16px;width:16px;background-size:16px 16px;background-repeat:no-repeat;background-image:url(data:image/svg+xml;base64,PHN2ZyBpZD0iYTAwMzhlNDEtMjFlNi00ZjBlLWFmZjctMzViMzY2MWQ0ZDhlIiBkYXRhLW5hbWU9ImNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij4NCgk8ZyBpZD0iZmQwZDc0NmQtZTE2My00Yjk4LTkxYTctYjk0MGYyYTlkZDc4IiBkYXRhLW5hbWU9ImFiYjU1YWU4LWNhNTUtNDcwYy04N2MzLTRiMDY3MzhiNDM2MCI+DQoJCTxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIvPg0KCTwvZz4NCgk8ZyBpZD0iYTE4OTFiZmMtNDBjMS00Y2EwLWFmOTgtMmJiOTQ1YTdmMDFmIiBkYXRhLW5hbWU9ImI2NGIxZWQyLWI4MzEtNDM1Yy05Y2VlLWI5OTY0MjYwMjA5ZCI+DQoJCTxwb2x5Z29uIHBvaW50cz0iMTAuMjQgNS4wNSA4IDcuMyA1Ljc1IDUuMDUgNS4wNSA1Ljc2IDcuMjkgOCA1LjA1IDEwLjI1IDUuNzUgMTAuOTUgOCA4LjcxIDEwLjI0IDEwLjk1IDEwLjk1IDEwLjI1IDguNyA4IDEwLjk1IDUuNzYgMTAuMjQgNS4wNSAxMC4yNCA1LjA1IiBmaWxsPSIjMzMzIi8+DQoJPC9nPg0KPC9zdmc+)}.fwe-select-wrapper{display:flex;width:inherit;min-width:48px}.fwe-select-wrapper:before{bottom:unset;top:24px}.fwe-select-wrapper.fng-hide-label{margin-top:18px}.fwe-select-wrapper.fng-hide-label:before{top:6px}.fwe-select-wrapper:has(.fwe-select.fwe-focus):before{transform:rotate(180deg)}.fwe-select-wrapper.fwe-disabled:before{color:var(--fwe-text-disabled);background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiAxMikiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMiAtMTIpIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDApIj48cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiLz48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNS41OTggOC41MTMpIj48cGF0aCBkPSJNNS42MzYsOS4xOTRsNi4yNzgsNi41NjQsNi4yNzgtNi41NjQtLjctLjczTDExLjkxNCwxNC4zLDYuMzMzLDguNDY0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuNjM2IC04LjQ2NCkiIGZpbGw9IiNiOWJhYmIiLz48L2c+PC9nPjwvZz48L3N2Zz4=)}.fwe-select-wrapper .fwe-select{cursor:pointer;height:unset;min-height:33px}.fwe-select-wrapper .fwe-select .fwe-select-content{padding-right:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5rem}.fwe-select-wrapper .fwe-select.fwe-required:not(.fwe-disabled)~.fwe-select-label:after{position:relative;left:3px;display:inline-block;content:\"*\"}.fwe-select-wrapper .fwe-select.fwe-disabled{cursor:default;border-color:var(--fwe-control-disabled)!important}.fwe-select-wrapper .fwe-select.fwe-disabled~.fwe-select-label{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-select-content{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip{color:var(--fwe-text-disabled);border:1px solid var(--fwe-control-disabled);pointer-events:none}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip .chip-removable:after{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select-label:empty~.fwe-select-options-container,.fwe-select-wrapper .fwe-select-label.fwe-sr-only~.fwe-select-options-container{top:38px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1$2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1$2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "pipe", type: FngChipTextPipe, name: "fngChipText" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
5930
6014
|
}
|
|
5931
6015
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FngSelectComponent, decorators: [{
|
|
5932
6016
|
type: Component,
|
|
@@ -5936,7 +6020,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
5936
6020
|
useExisting: forwardRef(() => FngSelectComponent),
|
|
5937
6021
|
multi: true
|
|
5938
6022
|
}
|
|
5939
|
-
], template: "<div #div class=\"fwe-select-wrapper\" [class.fwe-disabled]=\"disabled\" [class.fng-hide-label]=\"hideLabel\">\n <div\n class=\"fwe-select\"\n (click)=\"toggle()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [class.fwe-focus]=\"showOptions\"\n [class.fwe-required]=\"required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fwe-pty]=\"empty\"\n >\n <div class=\"fwe-select-content\">\n @if (!multiple) {\n {{ value != null && value | fngChipText: options:optionsValueKey:optionsTextKey }}\n } @else {\n <div class=\"fwe-chip-container\">\n @for (v of value; track v) {\n <div\n class=\"fwe-chip chip-text-truncate fwe-pr-4\"\n [style.max-width.px]=\"triggerWidth\"\n [title]=\"v | fngChipText: options:optionsValueKey:optionsTextKey\"\n >\n {{ v | fngChipText: options:optionsValueKey:optionsTextKey }}\n <span class=\"chip-removable\" (click)=\"removeChip($event, v)\"></span>\n </div>\n }\n </div>\n }\n </div>\n </div>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayMinWidth]=\"triggerWidth\"\n [cdkConnectedOverlayOpen]=\"showOptions\"\n [cdkConnectedOverlayPanelClass]=\"selectPanelClasses\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n >\n <div class=\"fng-select-panel-wrap\">\n <ul class=\"fwe-select-options-container\">\n @if (resetOption != null && !multiple) {\n <li class=\"fwe-select-option\" (click)=\"select(null, $event)\">{{ resetOption }}</li>\n }\n @for (option of options; track option; let i = $index) {\n <li\n class=\"fwe-select-option\"\n (click)=\"select(getOptionValue(i), $event)\"\n [title]=\"getOptionText(i) || option?.text\"\n >\n <span class=\"fwe-select-option-content\">\n @if (multiple) {\n <span\n class=\"fng-select-pseudo-checkbox\"\n [ngClass]=\"{ 'fng-select-pseudo-checkbox-checked': checked.get(getOptionValue(i)) === 'checked' }\"\n ></span>\n }\n @if (hasProjectedOptions) {\n <span [innerHTML]=\"projectedHtml[i]\"></span>\n } @else {\n {{ getOptionText(i) || option?.text }}\n }\n </span>\n </li>\n }\n </ul>\n </div>\n </ng-template>\n <label class=\"fwe-select-label\" [for]=\"id\" [class.fwe-sr-only]=\"hideLabel\">{{ label }}</label>\n @if (hint) {\n <div class=\"fwe-select-description\">\n {{ hint }}\n </div>\n }\n @if (error) {\n <div class=\"fwe-select-invalid\">\n {{ error }}\n </div>\n }\n</div>\n<div class=\"fwe-d-none\">\n <ng-content></ng-content>\n</div>\n", styles: [".fng-select-panel-open .fng-select-panel{opacity:1!important}fng-select{width:auto}fng-select.ng-invalid:not(.ng-pristine) .fwe-select:hover{border-color:var(--fwe-red)}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-invalid{display:block}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-description{display:none}.fng-select-panel{opacity:0!important}.fng-select-panel.fng-select-panel-options-3 .fwe-select-options-container{max-height:162px}.fng-select-panel.fng-select-panel-options-4 .fwe-select-options-container{max-height:210px}.fng-select-panel.fng-select-panel-options-5 .fwe-select-options-container{max-height:258px}.fng-select-panel.fng-select-panel-options-6 .fwe-select-options-container{max-height:306px}.fng-select-panel.fng-select-panel-options-7 .fwe-select-options-container{max-height:354px}.fng-select-panel.fng-select-panel-options-8 .fwe-select-options-container{max-height:402px}.fng-select-panel.fng-select-panel-options-9 .fwe-select-options-container{max-height:450px}.fng-select-panel.fng-select-panel-options-10 .fwe-select-options-container{max-height:498px}@-moz-document url-prefix(){.fng-select-panel .fwe-select-options-container{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) transparent}}@media (pointer: fine){.fng-select-panel .fwe-select-options-container::-webkit-scrollbar{width:14px}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-track{background:transparent}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}.fng-select-panel-wrap{flex-basis:100%}.fwe-select-options-container{position:relative;top:4px;left:0;max-height:258px;min-width:calc(100% + 0px)!important;max-width:280px;overflow:auto;font-size:var(--fwe-font-size-base);background-color:var(--fwe-white);border-radius:4px;padding:8px;margin:0;border:1px solid var(--fwe-gray-200);box-shadow:0 1px 4px #00000029;list-style:none;outline:0}.fwe-select-options-container .fwe-select-option{position:relative;line-height:24px;padding:12px 8px;min-height:24px;cursor:pointer}.fwe-select-options-container .fwe-select-option:hover{background-color:var(--fwe-gray-100)}.fwe-select-options-container .fwe-select-option:last-child{border-bottom:none}.fwe-select-options-container .fwe-select-option .fwe-select-option-content{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;line-height:24px;min-height:24px}.fng-select-pseudo-checkbox{width:16px;height:16px;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;color:var(--fwe-control-border);border:1px solid;transition:none;margin-right:12px;top:-1px}.fng-select-pseudo-checkbox:after{color:var(--fwe-white);position:absolute;display:block;opacity:0;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked{background:var(--fwe-caerul);border:1px solid var(--fwe-caerul)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked:after{top:3px;left:2px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.chip-text-truncate{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-removable:after{position:absolute;right:5px;top:4px;color:var(--fwe-text);font-family:var(--fwe-font-family-icons-16);font-size:var(--fwe-font-size-base);content:\"\\ea1c\";line-height:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fwe-select-wrapper{display:flex;width:inherit;min-width:48px}.fwe-select-wrapper:before{bottom:unset;top:24px}.fwe-select-wrapper.fng-hide-label{margin-top:18px}.fwe-select-wrapper.fng-hide-label:before{top:6px}.fwe-select-wrapper.fwe-disabled:before{color:var(--fwe-text-disabled);background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiAxMikiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMiAtMTIpIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDApIj48cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiLz48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNS41OTggOC41MTMpIj48cGF0aCBkPSJNNS42MzYsOS4xOTRsNi4yNzgsNi41NjQsNi4yNzgtNi41NjQtLjctLjczTDExLjkxNCwxNC4zLDYuMzMzLDguNDY0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuNjM2IC04LjQ2NCkiIGZpbGw9IiNiOWJhYmIiLz48L2c+PC9nPjwvZz48L3N2Zz4=)}.fwe-select-wrapper .fwe-select{cursor:pointer;height:unset;min-height:33px}.fwe-select-wrapper .fwe-select .fwe-select-content{padding-right:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5rem}.fwe-select-wrapper .fwe-select.fwe-required:not(.fwe-disabled)~.fwe-select-label:after{position:relative;left:3px;display:inline-block;content:\"*\"}.fwe-select-wrapper .fwe-select.fwe-disabled{cursor:default;border-color:var(--fwe-control-disabled)!important}.fwe-select-wrapper .fwe-select.fwe-disabled~.fwe-select-label{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-select-content{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip{color:var(--fwe-text-disabled);border:1px solid var(--fwe-control-disabled);pointer-events:none}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip .chip-removable:after{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select-label:empty~.fwe-select-options-container,.fwe-select-wrapper .fwe-select-label.fwe-sr-only~.fwe-select-options-container{top:38px}\n"] }]
|
|
6023
|
+
], template: "<div #div class=\"fwe-select-wrapper\" [class.fwe-disabled]=\"disabled\" [class.fng-hide-label]=\"hideLabel\">\n <div\n class=\"fwe-select\"\n (click)=\"toggle()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [class.fwe-focus]=\"showOptions\"\n [class.fwe-required]=\"required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fwe-pty]=\"empty\"\n >\n <div class=\"fwe-select-content\">\n @if (!multiple) {\n {{ value != null && value | fngChipText: options:optionsValueKey:optionsTextKey }}\n } @else {\n <div class=\"fwe-chip-container\">\n @for (v of value; track v) {\n <div\n class=\"fwe-chip chip-text-truncate fwe-pr-4\"\n [style.max-width.px]=\"triggerWidth\"\n [title]=\"v | fngChipText: options:optionsValueKey:optionsTextKey\"\n >\n {{ v | fngChipText: options:optionsValueKey:optionsTextKey }}\n <span class=\"chip-removable\" (click)=\"removeChip($event, v)\"></span>\n </div>\n }\n </div>\n }\n </div>\n </div>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayMinWidth]=\"triggerWidth\"\n [cdkConnectedOverlayOpen]=\"showOptions\"\n [cdkConnectedOverlayPanelClass]=\"selectPanelClasses\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n >\n <div class=\"fng-select-panel-wrap\">\n <ul class=\"fwe-select-options-container\">\n @if (resetOption != null && !multiple) {\n <li class=\"fwe-select-option\" (click)=\"select(null, $event)\">{{ resetOption }}</li>\n }\n @for (option of options; track option; let i = $index) {\n <li\n class=\"fwe-select-option\"\n (click)=\"select(getOptionValue(i), $event)\"\n [title]=\"getOptionText(i) || option?.text\"\n [class.fwe-selected]=\"isOptionSelected(i)\"\n >\n <span class=\"fwe-select-option-content\">\n @if (multiple) {\n <span\n class=\"fng-select-pseudo-checkbox\"\n [ngClass]=\"{ 'fng-select-pseudo-checkbox-checked': checked.get(getOptionValue(i)) === 'checked' }\"\n ></span>\n }\n @if (hasProjectedOptions) {\n <span [innerHTML]=\"projectedHtml[i]\"></span>\n } @else {\n {{ getOptionText(i) || option?.text }}\n }\n </span>\n </li>\n }\n </ul>\n </div>\n </ng-template>\n <label class=\"fwe-select-label\" [for]=\"id\" [class.fwe-sr-only]=\"hideLabel\">{{ label }}</label>\n @if (hint) {\n <div class=\"fwe-select-description\">\n {{ hint }}\n </div>\n }\n @if (error) {\n <div class=\"fwe-select-invalid\">\n {{ error }}\n </div>\n }\n</div>\n<div class=\"fwe-d-none\">\n <ng-content></ng-content>\n</div>\n", styles: [".fng-select-panel-open .fng-select-panel{opacity:1!important}fng-select{width:auto}fng-select.ng-invalid:not(.ng-pristine) .fwe-select:hover{border-color:var(--fwe-red)}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-invalid{display:block}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-description{display:none}.fng-select-panel{opacity:0!important}.fng-select-panel.fng-select-panel-options-3 .fwe-select-options-container{max-height:162px}.fng-select-panel.fng-select-panel-options-4 .fwe-select-options-container{max-height:210px}.fng-select-panel.fng-select-panel-options-5 .fwe-select-options-container{max-height:258px}.fng-select-panel.fng-select-panel-options-6 .fwe-select-options-container{max-height:306px}.fng-select-panel.fng-select-panel-options-7 .fwe-select-options-container{max-height:354px}.fng-select-panel.fng-select-panel-options-8 .fwe-select-options-container{max-height:402px}.fng-select-panel.fng-select-panel-options-9 .fwe-select-options-container{max-height:450px}.fng-select-panel.fng-select-panel-options-10 .fwe-select-options-container{max-height:498px}@-moz-document url-prefix(){.fng-select-panel .fwe-select-options-container{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) transparent}}@media (pointer: fine){.fng-select-panel .fwe-select-options-container::-webkit-scrollbar{width:14px}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-track{background:transparent}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:8px}}.fng-select-panel-wrap{flex-basis:100%}.fwe-select-options-container{position:relative;top:4px;left:0;max-height:258px;min-width:calc(100% + 0px)!important;max-width:280px;overflow:auto;font-size:var(--fwe-font-size-base);background-color:var(--fwe-white);border-radius:4px;padding:8px 0;margin:0;border:1px solid var(--fwe-gray-200);box-shadow:0 1px 4px #00000029;list-style:none;outline:0}.fwe-select-options-container .fwe-select-option{position:relative;line-height:24px;padding:12px 8px 12px 16px;min-height:24px;cursor:pointer}.fwe-select-options-container .fwe-select-option:hover{background-color:var(--fwe-gray-100)}.fwe-select-options-container .fwe-select-option.fwe-selected{color:var(--fwe-hero)}.fwe-select-options-container .fwe-select-option.fwe-selected:before{content:\"\";width:4px;height:100%;background-color:var(--fwe-hero);position:absolute;left:0;top:0}.fwe-select-options-container .fwe-select-option.fwe-selected:hover{color:var(--fwe-hero-hover)}.fwe-select-options-container .fwe-select-option.fwe-selected:hover:before{background-color:var(--fwe-hero-hover)}.fwe-select-options-container .fwe-select-option:last-child{border-bottom:none}.fwe-select-options-container .fwe-select-option .fwe-select-option-content{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;line-height:24px;min-height:24px}.fng-select-pseudo-checkbox{width:16px;height:16px;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;color:var(--fwe-control-border);border:1px solid;transition:none;margin-right:12px;top:-1px}.fng-select-pseudo-checkbox:after{color:var(--fwe-white);position:absolute;display:block;opacity:0;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked{background:var(--fwe-caerul);border:1px solid var(--fwe-caerul)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked:after{top:3px;left:2px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.chip-text-truncate{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-removable{position:absolute;right:0;top:0}.chip-removable:after{content:\"\";display:block;position:absolute;right:5px;top:4px;height:16px;width:16px;background-size:16px 16px;background-repeat:no-repeat;background-image:url(data:image/svg+xml;base64,PHN2ZyBpZD0iYTAwMzhlNDEtMjFlNi00ZjBlLWFmZjctMzViMzY2MWQ0ZDhlIiBkYXRhLW5hbWU9ImNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij4NCgk8ZyBpZD0iZmQwZDc0NmQtZTE2My00Yjk4LTkxYTctYjk0MGYyYTlkZDc4IiBkYXRhLW5hbWU9ImFiYjU1YWU4LWNhNTUtNDcwYy04N2MzLTRiMDY3MzhiNDM2MCI+DQoJCTxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIvPg0KCTwvZz4NCgk8ZyBpZD0iYTE4OTFiZmMtNDBjMS00Y2EwLWFmOTgtMmJiOTQ1YTdmMDFmIiBkYXRhLW5hbWU9ImI2NGIxZWQyLWI4MzEtNDM1Yy05Y2VlLWI5OTY0MjYwMjA5ZCI+DQoJCTxwb2x5Z29uIHBvaW50cz0iMTAuMjQgNS4wNSA4IDcuMyA1Ljc1IDUuMDUgNS4wNSA1Ljc2IDcuMjkgOCA1LjA1IDEwLjI1IDUuNzUgMTAuOTUgOCA4LjcxIDEwLjI0IDEwLjk1IDEwLjk1IDEwLjI1IDguNyA4IDEwLjk1IDUuNzYgMTAuMjQgNS4wNSAxMC4yNCA1LjA1IiBmaWxsPSIjMzMzIi8+DQoJPC9nPg0KPC9zdmc+)}.fwe-select-wrapper{display:flex;width:inherit;min-width:48px}.fwe-select-wrapper:before{bottom:unset;top:24px}.fwe-select-wrapper.fng-hide-label{margin-top:18px}.fwe-select-wrapper.fng-hide-label:before{top:6px}.fwe-select-wrapper:has(.fwe-select.fwe-focus):before{transform:rotate(180deg)}.fwe-select-wrapper.fwe-disabled:before{color:var(--fwe-text-disabled);background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiAxMikiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMiAtMTIpIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDApIj48cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiLz48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNS41OTggOC41MTMpIj48cGF0aCBkPSJNNS42MzYsOS4xOTRsNi4yNzgsNi41NjQsNi4yNzgtNi41NjQtLjctLjczTDExLjkxNCwxNC4zLDYuMzMzLDguNDY0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuNjM2IC04LjQ2NCkiIGZpbGw9IiNiOWJhYmIiLz48L2c+PC9nPjwvZz48L3N2Zz4=)}.fwe-select-wrapper .fwe-select{cursor:pointer;height:unset;min-height:33px}.fwe-select-wrapper .fwe-select .fwe-select-content{padding-right:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5rem}.fwe-select-wrapper .fwe-select.fwe-required:not(.fwe-disabled)~.fwe-select-label:after{position:relative;left:3px;display:inline-block;content:\"*\"}.fwe-select-wrapper .fwe-select.fwe-disabled{cursor:default;border-color:var(--fwe-control-disabled)!important}.fwe-select-wrapper .fwe-select.fwe-disabled~.fwe-select-label{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-select-content{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip{color:var(--fwe-text-disabled);border:1px solid var(--fwe-control-disabled);pointer-events:none}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip .chip-removable:after{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select-label:empty~.fwe-select-options-container,.fwe-select-wrapper .fwe-select-label.fwe-sr-only~.fwe-select-options-container{top:38px}\n"] }]
|
|
5940
6024
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: Document, decorators: [{
|
|
5941
6025
|
type: Inject,
|
|
5942
6026
|
args: [DOCUMENT]
|