@koobiq/components 20.0.0 → 20.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/_accordion-theme.scss +1 -1
- package/accordion/accordion-tokens.scss +1 -0
- package/accordion/{accordion-trigger.component.scss → accordion-trigger.scss} +4 -18
- package/accordion/{accordion.component.scss → accordion.scss} +12 -5
- package/accordion/index.d.ts +215 -119
- package/actions-panel/index.d.ts +1 -0
- package/alert/_alert-theme.scss +14 -4
- package/alert/alert-tokens.scss +4 -4
- package/alert/alert.component.scss +24 -13
- package/alert/index.d.ts +63 -29
- package/app-switcher/app-switcher-dropdown-app.scss +2 -0
- package/autocomplete/autocomplete.scss +2 -1
- package/autocomplete/index.d.ts +35 -29
- package/badge/index.d.ts +2 -3
- package/breadcrumbs/breadcrumbs.scss +4 -0
- package/breadcrumbs/index.d.ts +2 -1
- package/button/button-group.scss +42 -2
- package/button-toggle/button-toggle.scss +23 -0
- package/button-toggle/index.d.ts +3 -1
- package/checkbox/checkbox.scss +5 -4
- package/clamped-text/index.d.ts +4 -2
- package/core/index.d.ts +515 -21
- package/core/styles/_core.scss +2 -0
- package/core/styles/common/_animation.scss +35 -24
- package/core/styles/common/_connected-overlay.scss +36 -0
- package/core/styles/common/_select.scss +7 -2
- package/core/styles/theming/_components-theming.scss +1 -1
- package/core/styles/theming/_scrollbar-theme.scss +4 -0
- package/datepicker/_datepicker-theme.scss +1 -1
- package/datepicker/datepicker-toggle.scss +3 -3
- package/dl/index.d.ts +1 -0
- package/dropdown/dropdown-item.scss +16 -0
- package/dropdown/dropdown-tokens.scss +2 -1
- package/dropdown/dropdown.scss +11 -2
- package/dropdown/index.d.ts +73 -6
- package/fesm2022/koobiq-components-accordion.mjs +406 -303
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +15 -6
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +88 -48
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +7 -7
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +37 -23
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +5 -4
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +6 -4
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +9 -6
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +4 -4
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +2 -2
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +9 -0
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +5 -1
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +544 -113
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +13 -10
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +3 -2
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +105 -31
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +33 -22
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +1169 -782
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +66 -0
- package/fesm2022/koobiq-components-flag.mjs.map +1 -0
- package/fesm2022/koobiq-components-form-field.mjs +6 -6
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +16 -7
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +30 -7
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +39 -20
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +9 -5
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +123 -27
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +193 -19
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +12 -4
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +9 -4
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +3 -7
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +43 -8
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +72 -59
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +4 -0
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +3 -3
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +2 -2
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +5 -12
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +6 -2
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +8 -6
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +42 -18
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +8 -1
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +7 -14
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +4 -4
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +3 -4
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +9 -5
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +132 -14
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +1 -1
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +2 -2
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +168 -8
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +79 -38
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +67 -41
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +16 -3
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/file-upload-tokens.scss +1 -0
- package/file-upload/index.d.ts +10 -7
- package/filter-bar/_filter-bar-theme.scss +82 -0
- package/filter-bar/filter-bar-tokens.scss +9 -0
- package/filter-bar/filter-bar.scss +10 -4
- package/filter-bar/filter-refresher.scss +1 -1
- package/filter-bar/filters.scss +25 -20
- package/filter-bar/index.d.ts +764 -336
- package/filter-bar/pipes/base-pipe.scss +12 -44
- package/filter-bar/pipes/pipe-date.scss +20 -14
- package/filter-bar/pipes/pipe-input.scss +10 -0
- package/filter-bar/pipes/pipe-multi-tree-select.scss +5 -3
- package/filter-bar/pipes/pipe-multiselect.scss +5 -3
- package/filter-bar/pipes/pipe-readonly.scss +4 -13
- package/filter-bar/pipes/pipe-select.scss +3 -1
- package/filter-bar/pipes/pipe-tree-select.scss +3 -1
- package/flag/flag.scss +53 -0
- package/flag/index.d.ts +44 -0
- package/icon/icon-button.scss +3 -1
- package/icon/icon-item-tokens.scss +1 -1
- package/icon/index.d.ts +15 -2
- package/inline-edit/index.d.ts +5 -0
- package/inline-edit/inline-edit.scss +7 -7
- package/link/link-tokens.scss +2 -2
- package/list/index.d.ts +11 -2
- package/loader-overlay/loader-overlay-tokens.scss +1 -1
- package/modal/_modal-animation.scss +6 -6
- package/modal/_modal-theme.scss +5 -0
- package/modal/index.d.ts +3 -1
- package/modal/modal.scss +15 -0
- package/navbar/_navbar-item_vertical.scss +7 -5
- package/navbar/index.d.ts +39 -4
- package/navbar/navbar-brand.scss +17 -7
- package/navbar/navbar-item.scss +9 -0
- package/notification-center/_notification-center-theme.scss +2 -1
- package/notification-center/index.d.ts +89 -3
- package/notification-center/notification-center.scss +42 -4
- package/notification-center/notification-item.scss +3 -2
- package/overflow-items/index.d.ts +1 -0
- package/package.json +7 -3
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/progress-bar.scss +4 -0
- package/progress-spinner/progress-spinner.scss +5 -1
- package/radio/index.d.ts +1 -5
- package/radio/radio.scss +18 -4
- package/schematics/collection.json +15 -0
- package/schematics/migrations/alert-signals/README.md +64 -0
- package/schematics/migrations/alert-signals/data.js +70 -0
- package/schematics/migrations/alert-signals/index.js +350 -0
- package/schematics/migrations/alert-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +68 -0
- package/schematics/migrations/autocomplete-panel-width-auto/index.js +70 -0
- package/schematics/migrations/autocomplete-panel-width-auto/schema.json +15 -0
- package/schematics/migrations/filter-bar-signals/README.md +66 -0
- package/schematics/migrations/filter-bar-signals/data.js +72 -0
- package/schematics/migrations/filter-bar-signals/index.js +316 -0
- package/schematics/migrations/filter-bar-signals/schema.json +20 -0
- package/schematics/migrations.json +15 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/utils/angular-parsing.js +11 -2
- package/search-expandable/index.d.ts +3 -0
- package/select/index.d.ts +59 -24
- package/sidebar/index.d.ts +1 -0
- package/skeleton/skeleton.scss +4 -0
- package/split-button/_split-button-theme.scss +2 -2
- package/splitter/_splitter-theme.scss +2 -2
- package/splitter/index.d.ts +1 -0
- package/table/_table-theme.scss +4 -0
- package/table/index.d.ts +3 -2
- package/tabs/_tabs-common.scss +60 -31
- package/tabs/_tabs-theme.scss +12 -0
- package/tabs/index.d.ts +4 -2
- package/tabs/tab-header.scss +15 -0
- package/tabs/tab-nav-bar.scss +4 -0
- package/tabs/tabs-tokens.scss +2 -1
- package/textarea/index.d.ts +0 -1
- package/time-range/time-range.scss +0 -8
- package/timepicker/timepicker.scss +2 -2
- package/timezone/index.d.ts +2 -3
- package/title/index.d.ts +92 -2
- package/tooltip/index.d.ts +124 -7
- package/tree/_tree-theme.scss +2 -7
- package/tree/index.d.ts +19 -4
- package/tree/toggle.scss +5 -0
- package/tree/tree-option.scss +0 -4
- package/tree-select/_tree-select-theme.scss +1 -1
- package/tree-select/index.d.ts +53 -22
- package/username/index.d.ts +20 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { QueryList, inject, ElementRef, Directive, isDevMode, Input, ChangeDetectorRef, InjectionToken, LOCALE_ID, Type, Injectable, Renderer2, DestroyRef, afterNextRender, NgModule, Pipe, contentChildren, booleanAttribute, ViewEncapsulation, ChangeDetectionStrategy, Component, input, EventEmitter, Output, ViewChild, numberAttribute, signal, TemplateRef, NgZone, ViewContainerRef, RendererFactory2, Version } from '@angular/core';
|
|
2
|
+
import { QueryList, inject, ElementRef, Directive, isDevMode, Input, ChangeDetectorRef, InjectionToken, LOCALE_ID, Type, Injectable, Renderer2, DestroyRef, afterNextRender, NgModule, Pipe, contentChildren, booleanAttribute, ViewEncapsulation, ChangeDetectionStrategy, Component, input, EventEmitter, Output, ViewChild, numberAttribute, signal, ApplicationRef, TemplateRef, NgZone, ViewContainerRef, RendererFactory2, Version } from '@angular/core';
|
|
3
3
|
import { Subject, Subscription, merge, fromEvent, map as map$1, BehaviorSubject, interval, pairwise } from 'rxjs';
|
|
4
4
|
import { tap, debounceTime, filter, map, distinctUntilChanged, delay } from 'rxjs/operators';
|
|
5
5
|
import { _getEventTarget, Platform } from '@angular/cdk/platform';
|
|
@@ -11,10 +11,11 @@ import { DOCUMENT } from '@angular/common';
|
|
|
11
11
|
import { DateFormatter as DateFormatter$1 } from '@koobiq/date-formatter';
|
|
12
12
|
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
13
13
|
import { SharedResizeObserver } from '@angular/cdk/observers/private';
|
|
14
|
-
import { Overlay, ScrollDispatcher, CdkScrollable } from '@angular/cdk/overlay';
|
|
14
|
+
import { Overlay, CdkOverlayOrigin, OverlayContainer, ScrollDispatcher, CdkScrollable } from '@angular/cdk/overlay';
|
|
15
15
|
import { TooltipSizeArrowSize } from '@koobiq/design-tokens';
|
|
16
16
|
import { Directionality } from '@angular/cdk/bidi';
|
|
17
17
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
18
|
+
import { ViewportRuler } from '@angular/cdk/scrolling';
|
|
18
19
|
import { AsyncScheduler } from 'rxjs/internal/scheduler/AsyncScheduler';
|
|
19
20
|
|
|
20
21
|
const MAC_ENTER = 3;
|
|
@@ -1267,10 +1268,16 @@ const enUSLocaleData = {
|
|
|
1267
1268
|
error: 'The search with such name already exists',
|
|
1268
1269
|
errorHint: 'Could not save the filter. Try again or contact the administrator.',
|
|
1269
1270
|
saveButton: 'Save',
|
|
1270
|
-
cancelButton: 'Cancel'
|
|
1271
|
+
cancelButton: 'Cancel',
|
|
1272
|
+
actionsTooltip: 'Filter actions'
|
|
1271
1273
|
},
|
|
1272
1274
|
add: {
|
|
1273
|
-
tooltip: 'Add filter'
|
|
1275
|
+
tooltip: 'Add filter',
|
|
1276
|
+
addedAnnouncement: '{{ name }} filter added'
|
|
1277
|
+
},
|
|
1278
|
+
refresher: {
|
|
1279
|
+
refresh: 'Refresh',
|
|
1280
|
+
settings: 'Refresh settings'
|
|
1274
1281
|
},
|
|
1275
1282
|
pipe: {
|
|
1276
1283
|
clearButtonTooltip: 'Clear',
|
|
@@ -1324,10 +1331,13 @@ const enUSLocaleData = {
|
|
|
1324
1331
|
to: 'to',
|
|
1325
1332
|
apply: 'Apply',
|
|
1326
1333
|
cancel: 'Cancel',
|
|
1327
|
-
rangeLabel: '
|
|
1334
|
+
rangeLabel: 'Period',
|
|
1328
1335
|
allTime: 'for all time',
|
|
1329
1336
|
currentQuarter: 'for the current quarter',
|
|
1330
|
-
currentYear: 'for the current year'
|
|
1337
|
+
currentYear: 'for the current year',
|
|
1338
|
+
allTimeOption: 'All time',
|
|
1339
|
+
currentQuarterOption: 'Current quarter',
|
|
1340
|
+
currentYearOption: 'Current year'
|
|
1331
1341
|
},
|
|
1332
1342
|
durationTemplate: {
|
|
1333
1343
|
title: {
|
|
@@ -1369,31 +1379,31 @@ const enUSLocaleData = {
|
|
|
1369
1379
|
LAST_PART_SEPARATOR: '',
|
|
1370
1380
|
YEARS: `{years, plural,
|
|
1371
1381
|
one {# year}
|
|
1372
|
-
other {
|
|
1382
|
+
other {Last # years}
|
|
1373
1383
|
}`,
|
|
1374
1384
|
MONTHS: `{months, plural,
|
|
1375
|
-
one {
|
|
1376
|
-
other {
|
|
1385
|
+
one {Last month}
|
|
1386
|
+
other {Last # months}
|
|
1377
1387
|
}`,
|
|
1378
1388
|
WEEKS: `{weeks, plural,
|
|
1379
|
-
one {
|
|
1380
|
-
other {
|
|
1389
|
+
one {Last week}
|
|
1390
|
+
other {Last # weeks}
|
|
1381
1391
|
}`,
|
|
1382
1392
|
DAYS: `{days, plural,
|
|
1383
|
-
one {
|
|
1384
|
-
other {
|
|
1393
|
+
one {Last day}
|
|
1394
|
+
other {Last # days}
|
|
1385
1395
|
}`,
|
|
1386
1396
|
HOURS: `{hours, plural,
|
|
1387
|
-
one {
|
|
1388
|
-
other {
|
|
1397
|
+
one {Last hour}
|
|
1398
|
+
other {Last # hours}
|
|
1389
1399
|
}`,
|
|
1390
1400
|
MINUTES: `{minutes, plural,
|
|
1391
|
-
one {
|
|
1392
|
-
other {
|
|
1401
|
+
one {Last minute}
|
|
1402
|
+
other {Last # minutes}
|
|
1393
1403
|
}`,
|
|
1394
1404
|
SECONDS: `{seconds, plural,
|
|
1395
|
-
one {
|
|
1396
|
-
other {
|
|
1405
|
+
one {Last second}
|
|
1406
|
+
other {Last # seconds}
|
|
1397
1407
|
}`,
|
|
1398
1408
|
YEARS_FRACTION: `{years} years`,
|
|
1399
1409
|
MONTHS_FRACTION: `{months} months`
|
|
@@ -1407,7 +1417,8 @@ const enUSLocaleData = {
|
|
|
1407
1417
|
showPopUpNotifications: 'Show pop-up notifications',
|
|
1408
1418
|
noNotifications: 'No notifications',
|
|
1409
1419
|
failedToLoadNotifications: 'Failed to load notifications',
|
|
1410
|
-
repeat: 'Repeat'
|
|
1420
|
+
repeat: 'Repeat',
|
|
1421
|
+
loadingMore: 'Loading more notifications'
|
|
1411
1422
|
}
|
|
1412
1423
|
};
|
|
1413
1424
|
|
|
@@ -1482,10 +1493,16 @@ const esLALocaleData = {
|
|
|
1482
1493
|
error: 'Ya existe una búsqueda con ese nombre',
|
|
1483
1494
|
errorHint: 'No se pudo guardar el filtro. Intente de nuevo o comuníquese con el administrador.',
|
|
1484
1495
|
saveButton: 'Guardar',
|
|
1485
|
-
cancelButton: 'Cancelar'
|
|
1496
|
+
cancelButton: 'Cancelar',
|
|
1497
|
+
actionsTooltip: 'Acciones de filtro'
|
|
1486
1498
|
},
|
|
1487
1499
|
add: {
|
|
1488
|
-
tooltip: 'Agregar filtro'
|
|
1500
|
+
tooltip: 'Agregar filtro',
|
|
1501
|
+
addedAnnouncement: 'Filtro {{ name }} agregado'
|
|
1502
|
+
},
|
|
1503
|
+
refresher: {
|
|
1504
|
+
refresh: 'Actualizar',
|
|
1505
|
+
settings: 'Configuración de actualización'
|
|
1489
1506
|
},
|
|
1490
1507
|
pipe: {
|
|
1491
1508
|
clearButtonTooltip: 'Borrar',
|
|
@@ -1539,10 +1556,13 @@ const esLALocaleData = {
|
|
|
1539
1556
|
to: 'a',
|
|
1540
1557
|
apply: 'Aplicar',
|
|
1541
1558
|
cancel: 'Cancelar',
|
|
1542
|
-
rangeLabel: '
|
|
1559
|
+
rangeLabel: 'Período',
|
|
1543
1560
|
allTime: 'por todo el tiempo',
|
|
1544
1561
|
currentQuarter: 'por el trimestre actual',
|
|
1545
|
-
currentYear: 'por el año actual'
|
|
1562
|
+
currentYear: 'por el año actual',
|
|
1563
|
+
allTimeOption: 'Todo el tiempo',
|
|
1564
|
+
currentQuarterOption: 'Trimestre actual',
|
|
1565
|
+
currentYearOption: 'Año actual'
|
|
1546
1566
|
},
|
|
1547
1567
|
durationTemplate: {
|
|
1548
1568
|
title: {
|
|
@@ -1584,31 +1604,31 @@ const esLALocaleData = {
|
|
|
1584
1604
|
LAST_PART_SEPARATOR: '',
|
|
1585
1605
|
YEARS: `{years, plural,
|
|
1586
1606
|
one {# año}
|
|
1587
|
-
other {
|
|
1607
|
+
other {Últimos # años}
|
|
1588
1608
|
}`,
|
|
1589
1609
|
MONTHS: `{months, plural,
|
|
1590
|
-
one {
|
|
1591
|
-
other {
|
|
1610
|
+
one {Último mes}
|
|
1611
|
+
other {Últimos # meses}
|
|
1592
1612
|
}`,
|
|
1593
1613
|
WEEKS: `{weeks, plural,
|
|
1594
|
-
one {
|
|
1595
|
-
other {
|
|
1614
|
+
one {Última semana}
|
|
1615
|
+
other {Últimas # semanas}
|
|
1596
1616
|
}`,
|
|
1597
1617
|
DAYS: `{days, plural,
|
|
1598
|
-
one {
|
|
1599
|
-
other {
|
|
1618
|
+
one {Último día}
|
|
1619
|
+
other {Últimos # días}
|
|
1600
1620
|
}`,
|
|
1601
1621
|
HOURS: `{hours, plural,
|
|
1602
|
-
one {
|
|
1603
|
-
other {
|
|
1622
|
+
one {Última hora}
|
|
1623
|
+
other {Últimas # horas}
|
|
1604
1624
|
}`,
|
|
1605
1625
|
MINUTES: `{minutes, plural,
|
|
1606
|
-
one {
|
|
1607
|
-
other {
|
|
1626
|
+
one {Último minuto}
|
|
1627
|
+
other {Últimos # minutos}
|
|
1608
1628
|
}`,
|
|
1609
1629
|
SECONDS: `{seconds, plural,
|
|
1610
|
-
one {
|
|
1611
|
-
other {
|
|
1630
|
+
one {Último segundo}
|
|
1631
|
+
other {Últimos # segundos}
|
|
1612
1632
|
}`,
|
|
1613
1633
|
YEARS_FRACTION: `{years} años`,
|
|
1614
1634
|
MONTHS_FRACTION: `{months} meses`
|
|
@@ -1622,7 +1642,8 @@ const esLALocaleData = {
|
|
|
1622
1642
|
showPopUpNotifications: 'Mostrar notificaciones emergentes',
|
|
1623
1643
|
noNotifications: 'Sin notificaciones',
|
|
1624
1644
|
failedToLoadNotifications: 'Error al cargar las notificaciones',
|
|
1625
|
-
repeat: 'Repetir'
|
|
1645
|
+
repeat: 'Repetir',
|
|
1646
|
+
loadingMore: 'Cargando más notificaciones'
|
|
1626
1647
|
}
|
|
1627
1648
|
};
|
|
1628
1649
|
|
|
@@ -1697,10 +1718,16 @@ const ptBRLocaleData = {
|
|
|
1697
1718
|
error: 'A busca com esse nome já existe',
|
|
1698
1719
|
errorHint: 'O filtro não pôde ser salvo. Tente de novo ou entre em contato com o administrador.',
|
|
1699
1720
|
saveButton: 'Salvar',
|
|
1700
|
-
cancelButton: 'Cancelar'
|
|
1721
|
+
cancelButton: 'Cancelar',
|
|
1722
|
+
actionsTooltip: 'Ações do filtro'
|
|
1701
1723
|
},
|
|
1702
1724
|
add: {
|
|
1703
|
-
tooltip: 'Adicionar filtros'
|
|
1725
|
+
tooltip: 'Adicionar filtros',
|
|
1726
|
+
addedAnnouncement: 'Filtro {{ name }} adicionado'
|
|
1727
|
+
},
|
|
1728
|
+
refresher: {
|
|
1729
|
+
refresh: 'Atualizar',
|
|
1730
|
+
settings: 'Configurações de atualização'
|
|
1704
1731
|
},
|
|
1705
1732
|
pipe: {
|
|
1706
1733
|
clearButtonTooltip: 'Apagar',
|
|
@@ -1754,10 +1781,13 @@ const ptBRLocaleData = {
|
|
|
1754
1781
|
to: 'até',
|
|
1755
1782
|
apply: 'Aplicar',
|
|
1756
1783
|
cancel: 'Cancelar',
|
|
1757
|
-
rangeLabel: '
|
|
1784
|
+
rangeLabel: 'Período',
|
|
1758
1785
|
allTime: 'por todo o tempo',
|
|
1759
1786
|
currentQuarter: 'pelo trimestre atual',
|
|
1760
|
-
currentYear: 'pelo ano atual'
|
|
1787
|
+
currentYear: 'pelo ano atual',
|
|
1788
|
+
allTimeOption: 'Todo o tempo',
|
|
1789
|
+
currentQuarterOption: 'Trimestre atual',
|
|
1790
|
+
currentYearOption: 'Ano atual'
|
|
1761
1791
|
},
|
|
1762
1792
|
durationTemplate: {
|
|
1763
1793
|
title: {
|
|
@@ -1799,31 +1829,31 @@ const ptBRLocaleData = {
|
|
|
1799
1829
|
LAST_PART_SEPARATOR: '',
|
|
1800
1830
|
YEARS: `{years, plural,
|
|
1801
1831
|
one {# ano}
|
|
1802
|
-
other {
|
|
1832
|
+
other {Últimos # anos}
|
|
1803
1833
|
}`,
|
|
1804
1834
|
MONTHS: `{months, plural,
|
|
1805
|
-
one {
|
|
1806
|
-
other {
|
|
1835
|
+
one {Último mês}
|
|
1836
|
+
other {Últimos # meses}
|
|
1807
1837
|
}`,
|
|
1808
1838
|
WEEKS: `{weeks, plural,
|
|
1809
|
-
one {
|
|
1810
|
-
other {
|
|
1839
|
+
one {Última semana}
|
|
1840
|
+
other {Últimas # semanas}
|
|
1811
1841
|
}`,
|
|
1812
1842
|
DAYS: `{days, plural,
|
|
1813
|
-
one {
|
|
1814
|
-
other {
|
|
1843
|
+
one {Último dia}
|
|
1844
|
+
other {Últimos # dias}
|
|
1815
1845
|
}`,
|
|
1816
1846
|
HOURS: `{hours, plural,
|
|
1817
|
-
one {
|
|
1818
|
-
other {
|
|
1847
|
+
one {Última hora}
|
|
1848
|
+
other {Últimas # horas}
|
|
1819
1849
|
}`,
|
|
1820
1850
|
MINUTES: `{minutes, plural,
|
|
1821
|
-
one {
|
|
1822
|
-
other {
|
|
1851
|
+
one {Último minuto}
|
|
1852
|
+
other {Últimos # minutos}
|
|
1823
1853
|
}`,
|
|
1824
1854
|
SECONDS: `{seconds, plural,
|
|
1825
|
-
one {
|
|
1826
|
-
other {
|
|
1855
|
+
one {Último segundo}
|
|
1856
|
+
other {Últimos # segundos}
|
|
1827
1857
|
}`,
|
|
1828
1858
|
YEARS_FRACTION: `{years} anos`,
|
|
1829
1859
|
MONTHS_FRACTION: `{months} meses`
|
|
@@ -1837,7 +1867,8 @@ const ptBRLocaleData = {
|
|
|
1837
1867
|
showPopUpNotifications: 'Mostrar notificações pop-up',
|
|
1838
1868
|
noNotifications: 'Sem notificações',
|
|
1839
1869
|
failedToLoadNotifications: 'Falha ao carregar notificações',
|
|
1840
|
-
repeat: 'Repetir'
|
|
1870
|
+
repeat: 'Repetir',
|
|
1871
|
+
loadingMore: 'Carregando mais notificações'
|
|
1841
1872
|
}
|
|
1842
1873
|
};
|
|
1843
1874
|
|
|
@@ -1913,10 +1944,16 @@ const ruRULocaleData = {
|
|
|
1913
1944
|
error: 'Поиск с таким названием уже существует',
|
|
1914
1945
|
errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',
|
|
1915
1946
|
saveButton: 'Сохранить',
|
|
1916
|
-
cancelButton: 'Отмена'
|
|
1947
|
+
cancelButton: 'Отмена',
|
|
1948
|
+
actionsTooltip: 'Действия с фильтром'
|
|
1917
1949
|
},
|
|
1918
1950
|
add: {
|
|
1919
|
-
tooltip: 'Добавить фильтр'
|
|
1951
|
+
tooltip: 'Добавить фильтр',
|
|
1952
|
+
addedAnnouncement: 'Фильтр {{ name }} добавлен'
|
|
1953
|
+
},
|
|
1954
|
+
refresher: {
|
|
1955
|
+
refresh: 'Обновить',
|
|
1956
|
+
settings: 'Настройки обновления'
|
|
1920
1957
|
},
|
|
1921
1958
|
pipe: {
|
|
1922
1959
|
clearButtonTooltip: 'Очистить',
|
|
@@ -1970,10 +2007,13 @@ const ruRULocaleData = {
|
|
|
1970
2007
|
to: 'по',
|
|
1971
2008
|
apply: 'Применить',
|
|
1972
2009
|
cancel: 'Отмена',
|
|
1973
|
-
rangeLabel: '
|
|
2010
|
+
rangeLabel: 'Период',
|
|
1974
2011
|
allTime: 'за все время',
|
|
1975
2012
|
currentQuarter: 'за текущий квартал',
|
|
1976
|
-
currentYear: 'за текущий год'
|
|
2013
|
+
currentYear: 'за текущий год',
|
|
2014
|
+
allTimeOption: 'Все время',
|
|
2015
|
+
currentQuarterOption: 'Текущий квартал',
|
|
2016
|
+
currentYearOption: 'Текущий год'
|
|
1977
2017
|
},
|
|
1978
2018
|
durationTemplate: {
|
|
1979
2019
|
title: {
|
|
@@ -1981,7 +2021,7 @@ const ruRULocaleData = {
|
|
|
1981
2021
|
LAST_PART_SEPARATOR: 'и',
|
|
1982
2022
|
YEARS: `{years, plural,
|
|
1983
2023
|
one {# год}
|
|
1984
|
-
few {последние #
|
|
2024
|
+
few {последние # года}
|
|
1985
2025
|
other {последние # лет}
|
|
1986
2026
|
}`,
|
|
1987
2027
|
MONTHS: `{months, plural,
|
|
@@ -2021,39 +2061,39 @@ const ruRULocaleData = {
|
|
|
2021
2061
|
SEPARATOR: ' ',
|
|
2022
2062
|
LAST_PART_SEPARATOR: 'и',
|
|
2023
2063
|
YEARS: `{years, plural,
|
|
2024
|
-
one {
|
|
2025
|
-
few {
|
|
2026
|
-
other {
|
|
2064
|
+
one {Последний год}
|
|
2065
|
+
few {Последние # года}
|
|
2066
|
+
other {Последние # лет}
|
|
2027
2067
|
}`,
|
|
2028
2068
|
MONTHS: `{months, plural,
|
|
2029
|
-
one {
|
|
2030
|
-
few {
|
|
2031
|
-
other {
|
|
2069
|
+
one {Последний месяц}
|
|
2070
|
+
few {Последние # месяца}
|
|
2071
|
+
other {Последние # месяцев}
|
|
2032
2072
|
}`,
|
|
2033
2073
|
WEEKS: `{weeks, plural,
|
|
2034
|
-
one {
|
|
2035
|
-
few {
|
|
2036
|
-
other {
|
|
2074
|
+
one {Последняя неделя}
|
|
2075
|
+
few {Последние # недели}
|
|
2076
|
+
other {Последние # недель}
|
|
2037
2077
|
}`,
|
|
2038
2078
|
DAYS: `{days, plural,
|
|
2039
|
-
one {
|
|
2040
|
-
few {
|
|
2041
|
-
other {
|
|
2079
|
+
one {Последний день}
|
|
2080
|
+
few {Последние # дня}
|
|
2081
|
+
other {Последние # дней}
|
|
2042
2082
|
}`,
|
|
2043
2083
|
HOURS: `{hours, plural,
|
|
2044
|
-
one {
|
|
2045
|
-
few {
|
|
2046
|
-
other {
|
|
2084
|
+
one {Последний час}
|
|
2085
|
+
few {Последние # часа}
|
|
2086
|
+
other {Последние # часов}
|
|
2047
2087
|
}`,
|
|
2048
2088
|
MINUTES: `{minutes, plural,
|
|
2049
|
-
one {
|
|
2050
|
-
few {
|
|
2051
|
-
other {
|
|
2089
|
+
one {Последняя минута}
|
|
2090
|
+
few {Последние # минуты}
|
|
2091
|
+
other {Последние # минут}
|
|
2052
2092
|
}`,
|
|
2053
2093
|
SECONDS: `{seconds, plural,
|
|
2054
|
-
one {
|
|
2055
|
-
few {
|
|
2056
|
-
other {
|
|
2094
|
+
one {Последняя секунда}
|
|
2095
|
+
few {Последние # секунды}
|
|
2096
|
+
other {Последние # секунд}
|
|
2057
2097
|
}`,
|
|
2058
2098
|
YEARS_FRACTION: `{years} лет`,
|
|
2059
2099
|
MONTHS_FRACTION: `{months} месяцев`
|
|
@@ -2067,7 +2107,8 @@ const ruRULocaleData = {
|
|
|
2067
2107
|
showPopUpNotifications: 'Показывать всплывающие уведомления',
|
|
2068
2108
|
noNotifications: 'Нет уведомлений',
|
|
2069
2109
|
failedToLoadNotifications: 'Не удалось загрузить уведомления',
|
|
2070
|
-
repeat: 'Повторить'
|
|
2110
|
+
repeat: 'Повторить',
|
|
2111
|
+
loadingMore: 'Загрузка уведомлений'
|
|
2071
2112
|
}
|
|
2072
2113
|
};
|
|
2073
2114
|
|
|
@@ -2143,10 +2184,16 @@ const tkTMLocaleData = {
|
|
|
2143
2184
|
error: 'Şeýle atly gözleg eýýäm bar',
|
|
2144
2185
|
errorHint: 'Filtri ýazdyryp bolmady. Täzeden synanyň ýa-da administratora ýüz tutuň.',
|
|
2145
2186
|
saveButton: 'Ýazdyr',
|
|
2146
|
-
cancelButton: 'Ýatyr'
|
|
2187
|
+
cancelButton: 'Ýatyr',
|
|
2188
|
+
actionsTooltip: 'Filtr amallary'
|
|
2147
2189
|
},
|
|
2148
2190
|
add: {
|
|
2149
|
-
tooltip: 'Filtr goş'
|
|
2191
|
+
tooltip: 'Filtr goş',
|
|
2192
|
+
addedAnnouncement: '{{ name }} filtri goşuldy'
|
|
2193
|
+
},
|
|
2194
|
+
refresher: {
|
|
2195
|
+
refresh: 'Täzele',
|
|
2196
|
+
settings: 'Täzeleme sazlamalary'
|
|
2150
2197
|
},
|
|
2151
2198
|
pipe: {
|
|
2152
2199
|
clearButtonTooltip: 'Arassala',
|
|
@@ -2200,10 +2247,13 @@ const tkTMLocaleData = {
|
|
|
2200
2247
|
to: 'şuňa',
|
|
2201
2248
|
apply: 'Ulanmak',
|
|
2202
2249
|
cancel: 'Ýatyrmak',
|
|
2203
|
-
rangeLabel: '
|
|
2250
|
+
rangeLabel: 'Döwür',
|
|
2204
2251
|
allTime: 'hemme döwür üçin',
|
|
2205
2252
|
currentQuarter: 'şu çärýek üçin',
|
|
2206
|
-
currentYear: 'şu ýyl üçin'
|
|
2253
|
+
currentYear: 'şu ýyl üçin',
|
|
2254
|
+
allTimeOption: 'Hemme döwür',
|
|
2255
|
+
currentQuarterOption: 'Şu çärýek',
|
|
2256
|
+
currentYearOption: 'Şu ýyl'
|
|
2207
2257
|
},
|
|
2208
2258
|
durationTemplate: {
|
|
2209
2259
|
title: {
|
|
@@ -2248,27 +2298,27 @@ const tkTMLocaleData = {
|
|
|
2248
2298
|
other {# ýyl}
|
|
2249
2299
|
}`,
|
|
2250
2300
|
MONTHS: `{months, plural,
|
|
2251
|
-
one {
|
|
2301
|
+
one {Aý}
|
|
2252
2302
|
other {# aý}
|
|
2253
2303
|
}`,
|
|
2254
2304
|
WEEKS: `{weeks, plural,
|
|
2255
|
-
one {
|
|
2305
|
+
one {Hepde}
|
|
2256
2306
|
other {# hepde}
|
|
2257
2307
|
}`,
|
|
2258
2308
|
DAYS: `{days, plural,
|
|
2259
|
-
one {
|
|
2309
|
+
one {Gün}
|
|
2260
2310
|
other {# gün}
|
|
2261
2311
|
}`,
|
|
2262
2312
|
HOURS: `{hours, plural,
|
|
2263
|
-
one {
|
|
2313
|
+
one {Sagat}
|
|
2264
2314
|
other {# sagat}
|
|
2265
2315
|
}`,
|
|
2266
2316
|
MINUTES: `{minutes, plural,
|
|
2267
|
-
one {
|
|
2317
|
+
one {Minut}
|
|
2268
2318
|
other {# minut}
|
|
2269
2319
|
}`,
|
|
2270
2320
|
SECONDS: `{seconds, plural,
|
|
2271
|
-
one {
|
|
2321
|
+
one {Sekunt}
|
|
2272
2322
|
other {# sekunt}
|
|
2273
2323
|
}`,
|
|
2274
2324
|
YEARS_FRACTION: `{years} ýyl`,
|
|
@@ -2283,7 +2333,8 @@ const tkTMLocaleData = {
|
|
|
2283
2333
|
showPopUpNotifications: 'Açylýan bildirişleri görkeziň',
|
|
2284
2334
|
noNotifications: 'Duýduryş ýok',
|
|
2285
2335
|
failedToLoadNotifications: 'Duýduryşlary ýükläp bilmedi',
|
|
2286
|
-
repeat: 'Gaýtalama'
|
|
2336
|
+
repeat: 'Gaýtalama',
|
|
2337
|
+
loadingMore: 'Duýduryşlar ýüklenýär'
|
|
2287
2338
|
}
|
|
2288
2339
|
};
|
|
2289
2340
|
|
|
@@ -2408,7 +2459,8 @@ const ruRUFormattersData = {
|
|
|
2408
2459
|
groupSeparator: ',',
|
|
2409
2460
|
thousand: 'К',
|
|
2410
2461
|
million: 'М',
|
|
2411
|
-
|
|
2462
|
+
// Latin `B` (U+0042) according to UX Guidelines.
|
|
2463
|
+
billion: 'B',
|
|
2412
2464
|
trillion: 'Т'
|
|
2413
2465
|
},
|
|
2414
2466
|
decimal: {
|
|
@@ -3590,6 +3642,7 @@ class KbqRoundDecimalPipe {
|
|
|
3590
3642
|
this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
|
|
3591
3643
|
this.localeService?.changes.subscribe((newId) => (this.id = newId));
|
|
3592
3644
|
}
|
|
3645
|
+
// @TODO: update returned type to string | null. Breaking change
|
|
3593
3646
|
transform(value, locale) {
|
|
3594
3647
|
if (isEmpty(value)) {
|
|
3595
3648
|
return null;
|
|
@@ -4592,6 +4645,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
4592
4645
|
}]
|
|
4593
4646
|
}] });
|
|
4594
4647
|
|
|
4648
|
+
/**
|
|
4649
|
+
* Canonical "select all / deselect all" toggle shared by the multi-select components (`Ctrl`/`Cmd` + `A`).
|
|
4650
|
+
*
|
|
4651
|
+
* Considers only selectable items and selects them all. When `allowDeselect` is `true` and every selectable
|
|
4652
|
+
* item is already selected, deselects them all instead; otherwise a repeated call is a no-op. No-op when
|
|
4653
|
+
* there are no selectable items.
|
|
4654
|
+
*
|
|
4655
|
+
* @returns the items whose selected state actually flipped, in input order.
|
|
4656
|
+
*/
|
|
4657
|
+
function toggleSelectAll(adapter, options) {
|
|
4658
|
+
const selectable = adapter.items.filter((item) => adapter.isSelectable(item));
|
|
4659
|
+
if (selectable.length === 0) {
|
|
4660
|
+
return [];
|
|
4661
|
+
}
|
|
4662
|
+
const shouldSelect = !options?.allowDeselect || selectable.some((item) => !adapter.isSelected(item));
|
|
4663
|
+
const changed = selectable.filter((item) => adapter.isSelected(item) !== shouldSelect);
|
|
4664
|
+
selectable.forEach((item) => adapter.setSelected(item, shouldSelect));
|
|
4665
|
+
return changed;
|
|
4666
|
+
}
|
|
4667
|
+
/** Event emitted by the `onSelectAll` outputs when the select-all toggle runs. */
|
|
4668
|
+
class KbqSelectAllEvent {
|
|
4669
|
+
constructor(
|
|
4670
|
+
/** Component that emitted the event. */
|
|
4671
|
+
source,
|
|
4672
|
+
/** The selectable options affected by the toggle. */
|
|
4673
|
+
options,
|
|
4674
|
+
/** `true` when all options were selected, `false` when all were deselected. */
|
|
4675
|
+
selected) {
|
|
4676
|
+
this.source = source;
|
|
4677
|
+
this.options = options;
|
|
4678
|
+
this.selected = selected;
|
|
4679
|
+
}
|
|
4680
|
+
}
|
|
4681
|
+
/**
|
|
4682
|
+
* Whether `Ctrl`/`Cmd` + `A` should select the text of a search `<input>` rather than toggle options.
|
|
4683
|
+
*
|
|
4684
|
+
* Returns `true` only when the input has text that is not already fully selected (nothing selected,
|
|
4685
|
+
* a partial selection, or just a caret). Returns `false` for an empty input (so select-all falls
|
|
4686
|
+
* straight through to the options) and when the whole value is already selected (a second press
|
|
4687
|
+
* then acts on the options).
|
|
4688
|
+
*/
|
|
4689
|
+
function shouldSelectSearchText(input) {
|
|
4690
|
+
if (!input) {
|
|
4691
|
+
return false;
|
|
4692
|
+
}
|
|
4693
|
+
const length = input.value.length;
|
|
4694
|
+
if (length === 0) {
|
|
4695
|
+
return false;
|
|
4696
|
+
}
|
|
4697
|
+
return !(input.selectionStart === 0 && input.selectionEnd === length);
|
|
4698
|
+
}
|
|
4699
|
+
|
|
4595
4700
|
const KBQ_TITLE_TEXT_REF = new InjectionToken('KbqTitleTextRef');
|
|
4596
4701
|
|
|
4597
4702
|
/**
|
|
@@ -4747,11 +4852,7 @@ class KbqOption extends KbqOptionBase {
|
|
|
4747
4852
|
}
|
|
4748
4853
|
/** @docs-private */
|
|
4749
4854
|
getHeight() {
|
|
4750
|
-
|
|
4751
|
-
// For SSR compatibility
|
|
4752
|
-
if (typeof element.getClientRects !== 'function')
|
|
4753
|
-
return 0;
|
|
4754
|
-
return element.getClientRects()[0]?.height ?? 0;
|
|
4855
|
+
return this.elementRef.nativeElement.getClientRects()[0]?.height ?? 0;
|
|
4755
4856
|
}
|
|
4756
4857
|
select(emitEvent = true) {
|
|
4757
4858
|
if (!this._selected) {
|
|
@@ -5335,6 +5436,193 @@ function objectValues(object) {
|
|
|
5335
5436
|
return object === null ? [] : baseValues(object, Object.keys(object));
|
|
5336
5437
|
}
|
|
5337
5438
|
|
|
5439
|
+
/**
|
|
5440
|
+
* Default minimum width of an overlay panel, in pixels.
|
|
5441
|
+
*
|
|
5442
|
+
* Kept in sync by hand with `--kbq-dropdown-size-container-width-min` in `dropdown-tokens.scss`,
|
|
5443
|
+
* which expresses the same default for the dropdown's CSS-driven sizing.
|
|
5444
|
+
*/
|
|
5445
|
+
const KBQ_PANEL_DEFAULT_MIN_WIDTH = 200;
|
|
5446
|
+
/**
|
|
5447
|
+
* Measures the rendered width of a panel's trigger.
|
|
5448
|
+
*
|
|
5449
|
+
* Uses `getBoundingClientRect()` because `getComputedStyle().width` resolves to the used
|
|
5450
|
+
* content-box width regardless of `box-sizing`, so subtracting borders from it double-counts them.
|
|
5451
|
+
* @docs-private
|
|
5452
|
+
*/
|
|
5453
|
+
function kbqGetPanelWidthOrigin(origin) {
|
|
5454
|
+
const element = origin instanceof CdkOverlayOrigin
|
|
5455
|
+
? origin.elementRef.nativeElement
|
|
5456
|
+
: origin instanceof ElementRef
|
|
5457
|
+
? origin.nativeElement
|
|
5458
|
+
: origin;
|
|
5459
|
+
return element.getBoundingClientRect().width;
|
|
5460
|
+
}
|
|
5461
|
+
/**
|
|
5462
|
+
* Resolves `panelWidth` and `panelMinWidth` into the `width` and `minWidth` of the overlay pane.
|
|
5463
|
+
*
|
|
5464
|
+
* `panelWidth` selects the sizing policy. The "never narrower than the trigger" rule belongs to the
|
|
5465
|
+
* automatic policies (`null` and `'auto'`); an explicit width is taken at face value.
|
|
5466
|
+
* @docs-private
|
|
5467
|
+
*/
|
|
5468
|
+
function kbqResolvePanelWidth(panelWidth, panelMinWidth, triggerWidth) {
|
|
5469
|
+
// `numberAttribute` coerces `null` and other invalid bindings to `NaN`, so guard on finiteness
|
|
5470
|
+
// rather than on `null`, which never reaches us from a template binding.
|
|
5471
|
+
const min = Number.isFinite(panelMinWidth) ? Math.max(panelMinWidth, 0) : 0;
|
|
5472
|
+
const floor = Math.max(min, Number.isFinite(triggerWidth) ? triggerWidth : 0);
|
|
5473
|
+
// Trigger-sized. The floor is resolved here rather than emitted as `minWidth` because
|
|
5474
|
+
// `KbqAbstractSelect.setOverlayPosition()` clears `minWidth` on viewport overflow, after having
|
|
5475
|
+
// derived the panel offset from the pre-clear width.
|
|
5476
|
+
if (panelWidth === 'auto') {
|
|
5477
|
+
return { width: floor, minWidth: '' };
|
|
5478
|
+
}
|
|
5479
|
+
// Content-sized. Only `null`/`undefined`/`''` opt in — `0` is an explicit width. A non-finite
|
|
5480
|
+
// `panelWidth` (e.g. `NaN` from an upstream computation) is treated the same way rather than
|
|
5481
|
+
// reaching the DOM unguarded, mirroring how `panelMinWidth`/`triggerWidth` are handled above.
|
|
5482
|
+
if (panelWidth == null || panelWidth === '' || (typeof panelWidth === 'number' && !Number.isFinite(panelWidth))) {
|
|
5483
|
+
return { width: '', minWidth: floor };
|
|
5484
|
+
}
|
|
5485
|
+
// Explicit width. `panelMinWidth` is not applied.
|
|
5486
|
+
return { width: panelWidth, minWidth: '' };
|
|
5487
|
+
}
|
|
5488
|
+
|
|
5489
|
+
/**
|
|
5490
|
+
* Element used by {@link KbqShadowDomOverlayContainer} to locate the shadow root that should host overlays.
|
|
5491
|
+
*
|
|
5492
|
+
* When not provided, the container falls back to the application root component element.
|
|
5493
|
+
*/
|
|
5494
|
+
const KBQ_SHADOW_DOM_OVERLAY_HOST = new InjectionToken('KBQ_SHADOW_DOM_OVERLAY_HOST');
|
|
5495
|
+
/** Marks the structural overlay stylesheet that {@link KbqShadowDomOverlayContainer} clones into a shadow root. */
|
|
5496
|
+
const overlayStructuralStylesAttribute = 'data-kbq-overlay-structural-styles';
|
|
5497
|
+
/**
|
|
5498
|
+
* `OverlayContainer` that places the `.cdk-overlay-container` inside a shadow root instead of `document.body`.
|
|
5499
|
+
*
|
|
5500
|
+
* The default CDK `OverlayContainer` always appends its container to `document.body`. When the application is
|
|
5501
|
+
* rendered inside a shadow root (e.g. a Module Federation micro-frontend), overlays — toasts, modals, dropdowns,
|
|
5502
|
+
* tooltips, etc. — escape the shadow tree into the light DOM. There they lose access to the styles and theme tokens
|
|
5503
|
+
* scoped to the shadow root (Koobiq theme tokens are defined on the `.kbq-light` / `.kbq-dark` ancestor), which
|
|
5504
|
+
* results in unstyled overlays.
|
|
5505
|
+
*
|
|
5506
|
+
* This container resolves the target shadow root from {@link KBQ_SHADOW_DOM_OVERLAY_HOST} (or the root component when
|
|
5507
|
+
* the token is absent) and relocates the overlay container into it. After relocating, it also clones CDK's own
|
|
5508
|
+
* structural overlay stylesheet (`position`/`z-index`/backdrop, `.cdk-overlay-container:empty`) into the shadow root,
|
|
5509
|
+
* since those `document.head` styles do not cross the shadow boundary. If no shadow root is found — the common case
|
|
5510
|
+
* for an app rendered directly in the light DOM — the container is left on `document.body`, so it is safe to provide
|
|
5511
|
+
* unconditionally.
|
|
5512
|
+
*
|
|
5513
|
+
* Only **open** shadow roots can be resolved: a closed shadow root exposes neither `Element.shadowRoot` nor a
|
|
5514
|
+
* `ShadowRoot` from `getRootNode()`, so pass an element that already lives inside the closed tree if you must use one.
|
|
5515
|
+
*
|
|
5516
|
+
* Note: this fixes the overlay container *placement* and delivers the CDK structural overlay styles. The host
|
|
5517
|
+
* application is still responsible for delivering the **Koobiq component/theme styles** (the `.kbq-light` / `.kbq-dark`
|
|
5518
|
+
* tokens and component CSS) into the shadow root, since global `document.head` stylesheets do not cascade across a
|
|
5519
|
+
* shadow boundary.
|
|
5520
|
+
*
|
|
5521
|
+
* @see kbqShadowDomOverlayProvider
|
|
5522
|
+
*/
|
|
5523
|
+
class KbqShadowDomOverlayContainer extends OverlayContainer {
|
|
5524
|
+
constructor() {
|
|
5525
|
+
super(...arguments);
|
|
5526
|
+
this.host = inject(KBQ_SHADOW_DOM_OVERLAY_HOST, { optional: true });
|
|
5527
|
+
this.applicationRef = inject(ApplicationRef);
|
|
5528
|
+
}
|
|
5529
|
+
/** @internal CDK lifecycle hook — overridden to relocate the container into a shadow root. */
|
|
5530
|
+
_createContainer() {
|
|
5531
|
+
// Let CDK create the container (and run its test-environment cleanup). It is appended to `document.body`.
|
|
5532
|
+
super._createContainer();
|
|
5533
|
+
const shadowRoot = this.resolveShadowRoot();
|
|
5534
|
+
if (shadowRoot) {
|
|
5535
|
+
// Relocate the container into the shadow root and deliver the structural overlay styles alongside it.
|
|
5536
|
+
shadowRoot.appendChild(this._containerElement);
|
|
5537
|
+
this.deliverStructuralStyles(shadowRoot);
|
|
5538
|
+
}
|
|
5539
|
+
else if (this.host != null) {
|
|
5540
|
+
// An explicit host was provided but did not resolve to an open shadow root (wrong element, a closed
|
|
5541
|
+
// shadow root, or an element not yet inside a shadow tree). The container stays on `document.body`, so
|
|
5542
|
+
// overlays would render unstyled — warn instead of failing silently.
|
|
5543
|
+
// eslint-disable-next-line no-console
|
|
5544
|
+
console.warn('[KbqShadowDomOverlayContainer] The provided host did not resolve to an open shadow root; the ' +
|
|
5545
|
+
'overlay container stays on document.body. Ensure the host element (or an element inside its ' +
|
|
5546
|
+
'shadow tree) uses an open shadow root.');
|
|
5547
|
+
}
|
|
5548
|
+
}
|
|
5549
|
+
/**
|
|
5550
|
+
* Clones CDK's structural overlay stylesheet into the shadow root.
|
|
5551
|
+
*
|
|
5552
|
+
* CDK ships the overlay's structural CSS as a `ViewEncapsulation.None` component, so Angular injects it as a
|
|
5553
|
+
* `<style>` in `document.head` synchronously — `OverlayContainer.getContainerElement()` loads it before
|
|
5554
|
+
* `_createContainer()` runs. Those rules do not cross the shadow boundary, so a relocated container would
|
|
5555
|
+
* otherwise be unpositioned. Cloning the already-injected stylesheet keeps it version-matched to the installed
|
|
5556
|
+
* `@angular/cdk` and is idempotent.
|
|
5557
|
+
*/
|
|
5558
|
+
deliverStructuralStyles(shadowRoot) {
|
|
5559
|
+
if (shadowRoot.querySelector(`style[${overlayStructuralStylesAttribute}]`)) {
|
|
5560
|
+
return;
|
|
5561
|
+
}
|
|
5562
|
+
const sourceStyle = Array.from(this._document.head.querySelectorAll('style')).find((style) => style.textContent?.includes('.cdk-overlay-pane'));
|
|
5563
|
+
if (sourceStyle) {
|
|
5564
|
+
const clone = sourceStyle.cloneNode(true);
|
|
5565
|
+
clone.setAttribute(overlayStructuralStylesAttribute, '');
|
|
5566
|
+
shadowRoot.appendChild(clone);
|
|
5567
|
+
}
|
|
5568
|
+
}
|
|
5569
|
+
resolveShadowRoot() {
|
|
5570
|
+
const element = this.resolveHostElement();
|
|
5571
|
+
if (!element) {
|
|
5572
|
+
return null;
|
|
5573
|
+
}
|
|
5574
|
+
// The host can be the shadow host itself (the common case — the MFE root element)...
|
|
5575
|
+
const ownShadowRoot = element.shadowRoot;
|
|
5576
|
+
if (ownShadowRoot) {
|
|
5577
|
+
return ownShadowRoot;
|
|
5578
|
+
}
|
|
5579
|
+
// ...or an element that already lives inside the shadow tree.
|
|
5580
|
+
const rootNode = element.getRootNode();
|
|
5581
|
+
return typeof ShadowRoot !== 'undefined' && rootNode instanceof ShadowRoot ? rootNode : null;
|
|
5582
|
+
}
|
|
5583
|
+
resolveHostElement() {
|
|
5584
|
+
if (this.host) {
|
|
5585
|
+
const resolved = typeof this.host === 'function' ? this.host() : this.host;
|
|
5586
|
+
if (resolved instanceof ElementRef) {
|
|
5587
|
+
return resolved.nativeElement;
|
|
5588
|
+
}
|
|
5589
|
+
return resolved ?? null;
|
|
5590
|
+
}
|
|
5591
|
+
// No explicit host provided — fall back to the application root component element.
|
|
5592
|
+
return this.applicationRef.components[0]?.location.nativeElement ?? null;
|
|
5593
|
+
}
|
|
5594
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqShadowDomOverlayContainer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5595
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqShadowDomOverlayContainer }); }
|
|
5596
|
+
}
|
|
5597
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqShadowDomOverlayContainer, decorators: [{
|
|
5598
|
+
type: Injectable
|
|
5599
|
+
}] });
|
|
5600
|
+
/**
|
|
5601
|
+
* Providers that route all CDK overlays into a shadow root via {@link KbqShadowDomOverlayContainer}.
|
|
5602
|
+
*
|
|
5603
|
+
* Add it to the bootstrap providers of an application rendered inside a shadow root:
|
|
5604
|
+
*
|
|
5605
|
+
* ```ts
|
|
5606
|
+
* bootstrapApplication(AppComponent, {
|
|
5607
|
+
* providers: kbqShadowDomOverlayProvider(() => document.querySelector('my-mfe-root')!)
|
|
5608
|
+
* });
|
|
5609
|
+
* ```
|
|
5610
|
+
*
|
|
5611
|
+
* The provider replaces the global `OverlayContainer` token, so it cannot be combined with another custom
|
|
5612
|
+
* `OverlayContainer` (e.g. CDK's `FullscreenOverlayContainer`) — the last provider wins. Apps that need both must
|
|
5613
|
+
* subclass `KbqShadowDomOverlayContainer`.
|
|
5614
|
+
*
|
|
5615
|
+
* @param host element (or getter / `ElementRef`) inside the target shadow tree. When omitted, the application root
|
|
5616
|
+
* component element is used to resolve the shadow root.
|
|
5617
|
+
*/
|
|
5618
|
+
const kbqShadowDomOverlayProvider = (host) => {
|
|
5619
|
+
const providers = [{ provide: OverlayContainer, useClass: KbqShadowDomOverlayContainer }];
|
|
5620
|
+
if (host !== undefined) {
|
|
5621
|
+
providers.push({ provide: KBQ_SHADOW_DOM_OVERLAY_HOST, useValue: host });
|
|
5622
|
+
}
|
|
5623
|
+
return providers;
|
|
5624
|
+
};
|
|
5625
|
+
|
|
5338
5626
|
/**
|
|
5339
5627
|
* InjectionToken for providing component with popup. Used in select and tree-select for tooltip.
|
|
5340
5628
|
*/
|
|
@@ -5380,6 +5668,21 @@ var PopUpSizes;
|
|
|
5380
5668
|
* Tags Input, Timezone, TreeSelect).
|
|
5381
5669
|
*/
|
|
5382
5670
|
const defaultOffsetY = 4;
|
|
5671
|
+
/**
|
|
5672
|
+
* Pane class applied to a connected overlay whose panel is positioned BELOW its trigger.
|
|
5673
|
+
*
|
|
5674
|
+
* Used instead of a physical `offsetY` gap: the pane sits flush with the trigger and the visual gap is
|
|
5675
|
+
* recreated as transparent `padding-top` inside the pane (see the `kbq-connected-overlay-gap` styles), so the
|
|
5676
|
+
* gap is covered by the pane (`pointer-events: auto`) and can no longer be clicked/hovered through.
|
|
5677
|
+
*/
|
|
5678
|
+
const KBQ_CONNECTED_OVERLAY_BELOW_CLASS = 'kbq-connected-overlay_below';
|
|
5679
|
+
/**
|
|
5680
|
+
* Pane class applied to a connected overlay whose panel is positioned ABOVE its trigger (flipped).
|
|
5681
|
+
*
|
|
5682
|
+
* Mirror of {@link KBQ_CONNECTED_OVERLAY_BELOW_CLASS}: the visual gap is recreated as transparent
|
|
5683
|
+
* `padding-bottom` inside the pane so the flipped gap is not click/hover-through.
|
|
5684
|
+
*/
|
|
5685
|
+
const KBQ_CONNECTED_OVERLAY_ABOVE_CLASS = 'kbq-connected-overlay_above';
|
|
5383
5686
|
/**
|
|
5384
5687
|
* Variable used for offsetY(X) calculations when applying Angular Overlay
|
|
5385
5688
|
*
|
|
@@ -5601,42 +5904,91 @@ const getOffset = ({ originX, overlayX, originY, overlayY }, { width, height })
|
|
|
5601
5904
|
}
|
|
5602
5905
|
return offset;
|
|
5603
5906
|
};
|
|
5907
|
+
/**
|
|
5908
|
+
* Abstract base directive for hover/focus/click-triggered pop-ups (e.g. tooltip and popover). It manages the
|
|
5909
|
+
* CDK overlay lifecycle, binds the trigger event listeners, resolves placement via a flexible connected position
|
|
5910
|
+
* strategy, and controls show/hide timing. Concrete subclasses supply the pop-up component type, its content,
|
|
5911
|
+
* and the overlay configuration.
|
|
5912
|
+
*/
|
|
5604
5913
|
class KbqPopUpTrigger {
|
|
5605
5914
|
constructor() {
|
|
5606
|
-
/** Stream that emits when the popupTrigger is hovered.
|
|
5915
|
+
/** Stream that emits when the popupTrigger is hovered.
|
|
5916
|
+
* @docs-private */
|
|
5607
5917
|
this.hovered = new BehaviorSubject(false);
|
|
5918
|
+
/** RxJS scheduler that drives the hide timeout; `undefined` falls back to the default async scheduler.
|
|
5919
|
+
* @docs-private */
|
|
5608
5920
|
this.scheduler = inject(AsyncScheduler, { optional: true }) || undefined;
|
|
5921
|
+
/** CDK Overlay service used to create and position the pop-up overlay.
|
|
5922
|
+
* @docs-private */
|
|
5609
5923
|
this.overlay = inject(Overlay);
|
|
5924
|
+
/** Reference to the host element the pop-up is anchored to.
|
|
5925
|
+
* @docs-private */
|
|
5610
5926
|
this.elementRef = inject(ElementRef);
|
|
5927
|
+
/** Angular zone, used to run the hide timer outside Angular and re-enter when hiding.
|
|
5928
|
+
* @docs-private */
|
|
5611
5929
|
this.ngZone = inject(NgZone);
|
|
5930
|
+
/** CDK ScrollDispatcher, used to track ancestor scroll containers so the pop-up repositions on scroll.
|
|
5931
|
+
* @docs-private */
|
|
5612
5932
|
this.scrollDispatcher = inject(ScrollDispatcher);
|
|
5933
|
+
/** CDK ViewportRuler, used to re-apply the stick-to-window position on window resize.
|
|
5934
|
+
* @docs-private */
|
|
5935
|
+
this.viewportRuler = inject(ViewportRuler);
|
|
5936
|
+
/** View container the pop-up component portal is attached to.
|
|
5937
|
+
* @docs-private */
|
|
5613
5938
|
this.hostView = inject(ViewContainerRef);
|
|
5939
|
+
/** Text direction (LTR/RTL) applied to the overlay when a `Directionality` is available.
|
|
5940
|
+
* @docs-private */
|
|
5614
5941
|
this.direction = inject(Directionality, { optional: true });
|
|
5942
|
+
/** Destroy reference used to auto-unsubscribe streams when the directive is destroyed.
|
|
5943
|
+
* @docs-private */
|
|
5615
5944
|
this.destroyRef = inject(DestroyRef);
|
|
5945
|
+
/** Nearest `CdkScrollable` ancestor, if any.
|
|
5946
|
+
* @docs-private */
|
|
5616
5947
|
this.scrollable = inject(CdkScrollable, { optional: true });
|
|
5948
|
+
/** Change detector used to refresh the trigger when its open state changes. */
|
|
5617
5949
|
this.popUpChangeDetectorRef = inject(ChangeDetectorRef);
|
|
5950
|
+
/** Backing field for `isOpen`. */
|
|
5618
5951
|
this._isOpen = false;
|
|
5952
|
+
/** Delay in milliseconds before the pop-up is shown.
|
|
5953
|
+
* @docs-private */
|
|
5619
5954
|
this.enterDelay = 0;
|
|
5955
|
+
/** Delay in milliseconds before the pop-up is hidden.
|
|
5956
|
+
* @docs-private */
|
|
5620
5957
|
this.leaveDelay = 0;
|
|
5958
|
+
/** Current resolved placement of the pop-up.
|
|
5959
|
+
* @docs-private */
|
|
5621
5960
|
this.placement = PopUpPlacements.Top;
|
|
5961
|
+
/** Ordered list of fallback placements to try before the default priority.
|
|
5962
|
+
* @docs-private */
|
|
5622
5963
|
this.placementPriority = null;
|
|
5964
|
+
/** Whether the pop-up is currently visible.
|
|
5965
|
+
* @docs-private */
|
|
5623
5966
|
this.visible = false;
|
|
5967
|
+
/** Map of event name to the handler currently bound on the host element.
|
|
5968
|
+
* @docs-private */
|
|
5624
5969
|
this.listeners = new Map();
|
|
5970
|
+
/** Map of placement name to its CDK connected position pair.
|
|
5971
|
+
* @docs-private */
|
|
5625
5972
|
this.availablePositions = POSITION_MAP;
|
|
5626
|
-
/** Hide pop-up with timeout. Need if you want to show pop-up after leaving trigger
|
|
5973
|
+
/** Hide pop-up with timeout. Need if you want to show pop-up after leaving trigger
|
|
5974
|
+
* @docs-private */
|
|
5627
5975
|
this.hideWithTimeout = false;
|
|
5628
|
-
/** prevents closure by any event
|
|
5976
|
+
/** prevents closure by any event
|
|
5977
|
+
* @docs-private */
|
|
5629
5978
|
this.preventClose = false;
|
|
5979
|
+
/** Detaches the overlay (if attached) and clears the current pop-up instance.
|
|
5980
|
+
* @docs-private */
|
|
5630
5981
|
this.detach = () => {
|
|
5631
5982
|
if (this.overlayRef?.hasAttached()) {
|
|
5632
5983
|
this.overlayRef.detach();
|
|
5633
5984
|
}
|
|
5634
5985
|
this.instance = null;
|
|
5635
5986
|
};
|
|
5987
|
+
/** Maps the CDK connection position back to a placement name, emits `placementChange`, and updates classes.
|
|
5988
|
+
* @docs-private */
|
|
5636
5989
|
this.onPositionChange = ($event) => {
|
|
5637
|
-
if (!this.instance)
|
|
5990
|
+
if (!this.instance)
|
|
5638
5991
|
return;
|
|
5639
|
-
}
|
|
5640
5992
|
let newPlacement = this.placement;
|
|
5641
5993
|
const { originX, originY, overlayX, overlayY } = $event.connectionPair;
|
|
5642
5994
|
Object.keys(this.availablePositions).some((key) => {
|
|
@@ -5653,13 +6005,16 @@ class KbqPopUpTrigger {
|
|
|
5653
6005
|
this.updateClassMap(newPlacement);
|
|
5654
6006
|
this.instance.detectChanges();
|
|
5655
6007
|
};
|
|
6008
|
+
/** Binds a single event listener to the pop-up's native element. */
|
|
5656
6009
|
this.addEventListener = (listener, event) => {
|
|
5657
6010
|
this.getNativeElement().addEventListener(event, listener);
|
|
5658
6011
|
};
|
|
6012
|
+
/** Unbinds a single event listener from the pop-up's native element. */
|
|
5659
6013
|
this.removeEventListener = (listener, event) => {
|
|
5660
6014
|
this.getNativeElement().removeEventListener(event, listener);
|
|
5661
6015
|
};
|
|
5662
6016
|
}
|
|
6017
|
+
/** Whether the pop-up overlay is currently open. */
|
|
5663
6018
|
get isOpen() {
|
|
5664
6019
|
return this._isOpen;
|
|
5665
6020
|
}
|
|
@@ -5667,14 +6022,18 @@ class KbqPopUpTrigger {
|
|
|
5667
6022
|
this._isOpen = value;
|
|
5668
6023
|
this.popUpChangeDetectorRef.markForCheck();
|
|
5669
6024
|
}
|
|
6025
|
+
/** Binds the DOM event listeners for the configured triggers. */
|
|
5670
6026
|
ngOnInit() {
|
|
5671
6027
|
this.initListeners();
|
|
5672
6028
|
}
|
|
6029
|
+
/** Disposes the overlay and removes all bound event listeners. */
|
|
5673
6030
|
ngOnDestroy() {
|
|
5674
6031
|
this.overlayRef?.dispose();
|
|
5675
6032
|
this.listeners.forEach(this.removeEventListener);
|
|
5676
6033
|
this.listeners.clear();
|
|
5677
6034
|
}
|
|
6035
|
+
/** Sets the placement (falling back to `Top` on an unknown value) and refreshes the classes and position.
|
|
6036
|
+
* @docs-private */
|
|
5678
6037
|
updatePlacement(value) {
|
|
5679
6038
|
if (POSITION_TO_CSS_MAP[value]) {
|
|
5680
6039
|
this.placement = value;
|
|
@@ -5689,6 +6048,8 @@ class KbqPopUpTrigger {
|
|
|
5689
6048
|
this.updatePosition();
|
|
5690
6049
|
}
|
|
5691
6050
|
}
|
|
6051
|
+
/** Sets the ordered list of fallback placements, or clears it when the value is empty.
|
|
6052
|
+
* @docs-private */
|
|
5692
6053
|
updatePlacementPriority(value) {
|
|
5693
6054
|
if (value && value.length > 0) {
|
|
5694
6055
|
this.placementPriority = value;
|
|
@@ -5697,6 +6058,8 @@ class KbqPopUpTrigger {
|
|
|
5697
6058
|
this.placementPriority = null;
|
|
5698
6059
|
}
|
|
5699
6060
|
}
|
|
6061
|
+
/** Coerces and applies an external visibility value by showing or hiding the pop-up when it changes.
|
|
6062
|
+
* @docs-private */
|
|
5700
6063
|
updateVisible(externalValue) {
|
|
5701
6064
|
const value = coerceBooleanProperty(externalValue);
|
|
5702
6065
|
if (this.visible !== value) {
|
|
@@ -5709,14 +6072,20 @@ class KbqPopUpTrigger {
|
|
|
5709
6072
|
}
|
|
5710
6073
|
}
|
|
5711
6074
|
}
|
|
6075
|
+
/** Closes the pop-up when `Escape` is pressed while it is open. Bound to the host `keydown` event.
|
|
6076
|
+
* @docs-private */
|
|
5712
6077
|
keydownHandler(event) {
|
|
5713
6078
|
if (this.isOpen && event.keyCode === ESCAPE) {
|
|
5714
6079
|
this.hide();
|
|
5715
6080
|
}
|
|
5716
6081
|
}
|
|
6082
|
+
/** Hides the pop-up. Bound to the host `touchend` event.
|
|
6083
|
+
* @docs-private */
|
|
5717
6084
|
touchendHandler() {
|
|
5718
6085
|
this.hide();
|
|
5719
6086
|
}
|
|
6087
|
+
/** Creates the overlay (if needed) and shows the pop-up after `delay` ms, wiring its visibility stream.
|
|
6088
|
+
* @docs-private */
|
|
5720
6089
|
show(delay = this.enterDelay) {
|
|
5721
6090
|
if (this.disabled || this.instance) {
|
|
5722
6091
|
return;
|
|
@@ -5739,6 +6108,14 @@ class KbqPopUpTrigger {
|
|
|
5739
6108
|
});
|
|
5740
6109
|
this.updatePosition();
|
|
5741
6110
|
this.instance.show(delay);
|
|
6111
|
+
// The position strategy re-applies the overlay position on window resize (its ViewportRuler
|
|
6112
|
+
// subscription is created inside OverlayRef.attach(), i.e. before this one), wiping the manual
|
|
6113
|
+
// styles written by setStickPosition. Re-apply them after the strategy has run.
|
|
6114
|
+
// No-op when stickToWindow is not set.
|
|
6115
|
+
this.viewportRuler
|
|
6116
|
+
.change()
|
|
6117
|
+
.pipe(takeUntilDestroyed(this.instance.destroyRef))
|
|
6118
|
+
.subscribe(() => this.instance?.setStickPosition());
|
|
5742
6119
|
if (this.hideWithTimeout && this.trigger.includes(PopUpTriggers.Hover)) {
|
|
5743
6120
|
this.ngZone.runOutsideAngular(() => {
|
|
5744
6121
|
interval(this.leaveDelay, this.scheduler)
|
|
@@ -5747,6 +6124,8 @@ class KbqPopUpTrigger {
|
|
|
5747
6124
|
});
|
|
5748
6125
|
}
|
|
5749
6126
|
}
|
|
6127
|
+
/** Hides the pop-up after `delay` ms, honoring `preventClose` and the hover state on mouseleave.
|
|
6128
|
+
* @docs-private */
|
|
5750
6129
|
hide(delay = this.leaveDelay) {
|
|
5751
6130
|
if (this.preventClose)
|
|
5752
6131
|
return;
|
|
@@ -5755,7 +6134,8 @@ class KbqPopUpTrigger {
|
|
|
5755
6134
|
this.ngZone.run(() => this.instance?.hide(delay));
|
|
5756
6135
|
}
|
|
5757
6136
|
}
|
|
5758
|
-
/** Create the overlay config and position strategy
|
|
6137
|
+
/** Create the overlay config and position strategy
|
|
6138
|
+
* @docs-private */
|
|
5759
6139
|
createOverlay() {
|
|
5760
6140
|
if (this.overlayRef) {
|
|
5761
6141
|
return this.overlayRef;
|
|
@@ -5780,9 +6160,13 @@ class KbqPopUpTrigger {
|
|
|
5780
6160
|
this.overlayRef.detachments().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);
|
|
5781
6161
|
return this.overlayRef;
|
|
5782
6162
|
}
|
|
6163
|
+
/** Resets the overlay position origin back to the host element.
|
|
6164
|
+
* @docs-private */
|
|
5783
6165
|
resetOrigin() {
|
|
5784
6166
|
this.strategy.setOrigin(this.getNativeElement());
|
|
5785
6167
|
}
|
|
6168
|
+
/** Rebinds the host DOM listeners (click/hover/focus/keydown) according to the configured triggers.
|
|
6169
|
+
* @docs-private */
|
|
5786
6170
|
initListeners() {
|
|
5787
6171
|
this.clearListeners();
|
|
5788
6172
|
if (this.trigger.includes(PopUpTriggers.Click)) {
|
|
@@ -5807,13 +6191,16 @@ class KbqPopUpTrigger {
|
|
|
5807
6191
|
}
|
|
5808
6192
|
this.listeners.forEach(this.addEventListener);
|
|
5809
6193
|
}
|
|
6194
|
+
/** Returns the `mouseleave` handler — a delayed hide when `hideWithTimeout` is set, otherwise an immediate hide.
|
|
6195
|
+
* @docs-private */
|
|
5810
6196
|
getMouseLeaveListener() {
|
|
5811
6197
|
if (this.hideWithTimeout) {
|
|
5812
6198
|
return () => setTimeout(() => this.hide(), this.leaveDelay);
|
|
5813
6199
|
}
|
|
5814
6200
|
return this.hide;
|
|
5815
6201
|
}
|
|
5816
|
-
/** Updates the position of the current popover.
|
|
6202
|
+
/** Updates the position of the current popover.
|
|
6203
|
+
* @docs-private */
|
|
5817
6204
|
updatePosition(reapplyPosition = false) {
|
|
5818
6205
|
this.overlayRef = this.createOverlay();
|
|
5819
6206
|
this.subscribeOnClosingActions();
|
|
@@ -5824,21 +6211,24 @@ class KbqPopUpTrigger {
|
|
|
5824
6211
|
setTimeout(() => position.reapplyLastPosition());
|
|
5825
6212
|
}
|
|
5826
6213
|
}
|
|
6214
|
+
/** Moves browser focus to the pop-up's native element.
|
|
6215
|
+
* @docs-private */
|
|
5827
6216
|
focus() {
|
|
5828
6217
|
this.getNativeElement().focus();
|
|
5829
6218
|
}
|
|
5830
|
-
/**
|
|
6219
|
+
/** Returns the element the pop-up is bound to: the external element when set, otherwise the host element.
|
|
6220
|
+
* @docs-private */
|
|
5831
6221
|
getNativeElement() {
|
|
5832
6222
|
return this.externalNativeElement || this.elementRef.nativeElement;
|
|
5833
6223
|
}
|
|
5834
|
-
/**
|
|
6224
|
+
/** Sets an external element to anchor and measure the pop-up against instead of the host element.
|
|
6225
|
+
* @docs-private */
|
|
5835
6226
|
setExternalNativeElement(value) {
|
|
5836
6227
|
this.externalNativeElement = value;
|
|
5837
6228
|
}
|
|
5838
6229
|
/**
|
|
5839
6230
|
* Returns a list of positions that are aligned with the element's dimensions and offsets.
|
|
5840
|
-
* @
|
|
5841
|
-
*/
|
|
6231
|
+
* @docs-private */
|
|
5842
6232
|
getAdjustedPositions() {
|
|
5843
6233
|
const res = [];
|
|
5844
6234
|
for (const pos of this.getPrioritizedPositions()) {
|
|
@@ -5852,6 +6242,8 @@ class KbqPopUpTrigger {
|
|
|
5852
6242
|
}
|
|
5853
6243
|
return res;
|
|
5854
6244
|
}
|
|
6245
|
+
/** Maps a priority placement value (or array of values) to the matching connected position pairs.
|
|
6246
|
+
* @docs-private */
|
|
5855
6247
|
getPriorityPlacementStrategy(value) {
|
|
5856
6248
|
const result = [];
|
|
5857
6249
|
const possiblePositions = Object.keys(this.availablePositions);
|
|
@@ -5867,16 +6259,21 @@ class KbqPopUpTrigger {
|
|
|
5867
6259
|
}
|
|
5868
6260
|
return result;
|
|
5869
6261
|
}
|
|
6262
|
+
/** Returns the positions to try: the custom `placementPriority` when set, otherwise the default strategy.
|
|
6263
|
+
* @docs-private */
|
|
5870
6264
|
getPrioritizedPositions() {
|
|
5871
6265
|
if (this.placementPriority) {
|
|
5872
6266
|
return this.getPriorityPlacementStrategy(this.placementPriority);
|
|
5873
6267
|
}
|
|
5874
6268
|
return POSITION_PRIORITY_STRATEGY[this.placement];
|
|
5875
6269
|
}
|
|
6270
|
+
/** Removes all bound host event listeners and clears the listener map.
|
|
6271
|
+
* @docs-private */
|
|
5876
6272
|
clearListeners() {
|
|
5877
6273
|
this.listeners.forEach(this.removeEventListener);
|
|
5878
6274
|
this.listeners.clear();
|
|
5879
6275
|
}
|
|
6276
|
+
/** Wraps a trigger handler so it records the active trigger name and mouse event before running. */
|
|
5880
6277
|
createListener(name, listener) {
|
|
5881
6278
|
return [
|
|
5882
6279
|
name,
|
|
@@ -5887,11 +6284,13 @@ class KbqPopUpTrigger {
|
|
|
5887
6284
|
}
|
|
5888
6285
|
];
|
|
5889
6286
|
}
|
|
6287
|
+
/** Remembers the last mouse event on `mouseenter`, used for cursor-relative positioning. */
|
|
5890
6288
|
saveMouseEvent(event) {
|
|
5891
6289
|
if (this.triggerName === 'mouseenter') {
|
|
5892
6290
|
this.mouseEvent = event;
|
|
5893
6291
|
}
|
|
5894
6292
|
}
|
|
6293
|
+
/** (Re)subscribes to the closing-action streams and hides the pop-up, ignoring prevented click events. */
|
|
5895
6294
|
subscribeOnClosingActions() {
|
|
5896
6295
|
this.closingActionsSubscription?.unsubscribe();
|
|
5897
6296
|
this.closingActionsSubscription = this.closingActions()
|
|
@@ -6066,6 +6465,33 @@ class KbqAbstractSelect {
|
|
|
6066
6465
|
constructor() {
|
|
6067
6466
|
/** Overlay panel class. */
|
|
6068
6467
|
this.overlayPanelClass = 'kbq-select-overlay';
|
|
6468
|
+
/** Width of the overlay panel. */
|
|
6469
|
+
this.overlayWidth = '';
|
|
6470
|
+
/** Minimum width of the overlay panel. */
|
|
6471
|
+
this.overlayMinWidth = '';
|
|
6472
|
+
}
|
|
6473
|
+
/**
|
|
6474
|
+
* Resolves the overlay panel size for the current trigger geometry and stores it for the
|
|
6475
|
+
* `cdkConnectedOverlay` width bindings.
|
|
6476
|
+
*/
|
|
6477
|
+
updateOverlayWidth(panelWidth, panelMinWidth, origin) {
|
|
6478
|
+
const { width, minWidth } = kbqResolvePanelWidth(panelWidth, panelMinWidth, kbqGetPanelWidthOrigin(origin));
|
|
6479
|
+
this.overlayWidth = width;
|
|
6480
|
+
this.overlayMinWidth = minWidth;
|
|
6481
|
+
}
|
|
6482
|
+
/**
|
|
6483
|
+
* Freezes the panel at its rendered width so that filtering the options does not reflow it.
|
|
6484
|
+
* Does nothing when the width is already pinned.
|
|
6485
|
+
*/
|
|
6486
|
+
lockOverlayWidthForSearch(panel) {
|
|
6487
|
+
// Compare against the unset sentinel rather than a truthy check — `overlayWidth` can
|
|
6488
|
+
// legitimately resolve to `0` for an explicit zero-width panel, which is falsy but pinned.
|
|
6489
|
+
if (this.overlayWidth !== '')
|
|
6490
|
+
return;
|
|
6491
|
+
const measuredPanelWidth = panel?.nativeElement.getBoundingClientRect().width;
|
|
6492
|
+
if (measuredPanelWidth) {
|
|
6493
|
+
this.overlayWidth = measuredPanelWidth;
|
|
6494
|
+
}
|
|
6069
6495
|
}
|
|
6070
6496
|
setOverlayPosition() {
|
|
6071
6497
|
if (!this.overlayDir.overlayRef)
|
|
@@ -6166,6 +6592,7 @@ class KbqMeasureScrollbarService {
|
|
|
6166
6592
|
}
|
|
6167
6593
|
constructor() {
|
|
6168
6594
|
this.document = inject(DOCUMENT);
|
|
6595
|
+
this.platform = inject(Platform);
|
|
6169
6596
|
this.scrollbarMeasure = {
|
|
6170
6597
|
position: 'absolute',
|
|
6171
6598
|
top: '-9999px',
|
|
@@ -6176,6 +6603,10 @@ class KbqMeasureScrollbarService {
|
|
|
6176
6603
|
this.initScrollBarWidth();
|
|
6177
6604
|
}
|
|
6178
6605
|
initScrollBarWidth() {
|
|
6606
|
+
if (!this.platform.isBrowser) {
|
|
6607
|
+
this._scrollBarWidth = 0;
|
|
6608
|
+
return;
|
|
6609
|
+
}
|
|
6179
6610
|
const scrollDiv = this.document.createElement('div');
|
|
6180
6611
|
for (const scrollProp in this.scrollbarMeasure) {
|
|
6181
6612
|
if (this.scrollbarMeasure.hasOwnProperty(scrollProp)) {
|
|
@@ -6407,11 +6838,11 @@ const validationTooltipShowDelay = 10;
|
|
|
6407
6838
|
*/
|
|
6408
6839
|
const validationTooltipHideDelay = 3000;
|
|
6409
6840
|
|
|
6410
|
-
const VERSION = new Version('20.
|
|
6841
|
+
const VERSION = new Version('20.2.0+sha-ee9fb3c');
|
|
6411
6842
|
|
|
6412
6843
|
/**
|
|
6413
6844
|
* Generated bundle index. Do not edit.
|
|
6414
6845
|
*/
|
|
6415
6846
|
|
|
6416
|
-
export { A, ALT, APOSTROPHE, ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT, AT_SIGN, AbsoluteDateFormatterImpurePipe, AbsoluteDateFormatterPipe, AbsoluteDateShortFormatterImpurePipe, AbsoluteDateShortFormatterPipe, AbsoluteDateTimeFormatterImpurePipe, AbsoluteDateTimeFormatterPipe, AbsoluteShortDateTimeFormatterImpurePipe, AbsoluteShortDateTimeFormatterPipe, ActiveDescendantKeyManager, B, BACKSLASH, BACKSPACE, BOTTOM_LEFT_POSITION_PRIORITY, BOTTOM_POSITION_PRIORITY, BOTTOM_RIGHT_POSITION_PRIORITY, BaseFormatterPipe, BaseLocaleAwareFormatterPipe, C, CAPS_LOCK, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, D, DASH, DELETE, DOWN_ARROW, DateAdapter, DateFormatter, E, EIGHT, END, ENTER, EQUALS, ESCAPE, EXTENDED_OVERLAY_POSITIONS, EmptyFocusTrapStrategy, ErrorStateMatcher, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FOUR, FileValidators, FocusKeyManager, G, H, HOME, I, INSERT, J, K, KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER, KBQ_DATE_FORMATS, KBQ_DATE_LOCALE, KBQ_DATE_LOCALE_FACTORY, KBQ_DEFAULT_LOCALE_DATA_FACTORY, KBQ_DEFAULT_LOCALE_ID, KBQ_DEFAULT_PRECISION_SEPARATOR, KBQ_FORM_FIELD_REF, KBQ_INVALID_VALUE_ERROR, KBQ_LOCALE_DATA, KBQ_LOCALE_ID, KBQ_LOCALE_SERVICE, KBQ_LOCALE_SERVICE_LANG_ATTR_NAME, KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS, KBQ_NUMBER_FORMATTER_OPTIONS, KBQ_OPTION_ACTION_PARENT, KBQ_OPTION_PARENT_COMPONENT, KBQ_OVERFLOW_SHADOW_SOURCE, KBQ_PARENT_ANIMATION_COMPONENT, KBQ_PARENT_POPUP, KBQ_SELECT_SCROLL_STRATEGY, KBQ_SELECT_SCROLL_STRATEGY_PROVIDER, KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD, KBQ_SIZE_UNITS_CONFIG, KBQ_SIZE_UNITS_DEFAULT_CONFIG, KBQ_TITLE_TEXT_REF, KBQ_WINDOW, KbqAbsoluteLongDatePipe, KbqAbsoluteLongDateTimePipe, KbqAbsoluteShortDatePipe, KbqAbsoluteShortDateTimePipe, KbqAbstractSelect, KbqActionContainer, KbqAnimationCurves, KbqAnimationDurations, KbqColorDirective, KbqComponentColors, KbqDataSizePipe, KbqDecimalPipe, KbqDefaultThemes, KbqErrorStateTracker, KbqFieldSizingContent, KbqForm, KbqFormElement, KbqFormattersModule, KbqFormsModule, KbqHighlightBackgroundPipe, KbqHighlightModule, KbqHighlightPipe, KbqHover, KbqLine, KbqLineSetter, KbqLocaleService, KbqLocaleServiceModule, KbqMeasureScrollbarService, KbqMeasurementSystem, KbqNormalizeWhitespace, KbqOptgroup, KbqOption, KbqOptionActionComponent, KbqOptionBase, KbqOptionModule, KbqOptionSelectionChange, KbqOverflowShadowBottom, KbqOverflowShadowContainer, KbqOverflowShadowTop, KbqPopUp, KbqPopUpTrigger, KbqPseudoCheckbox, KbqPseudoCheckboxModule, KbqRangeLongDatePipe, KbqRangeLongDateTimePipe, KbqRangeMiddleDateTimePipe, KbqRangeShortDatePipe, KbqRangeShortDateTimePipe, KbqReadStateDirective, KbqRectangleItem, KbqRelativeLongDatePipe, KbqRelativeLongDateTimePipe, KbqRelativeShortDatePipe, KbqRelativeShortDateTimePipe, KbqRoundDecimalPipe, KbqSelectFooter, KbqSelectMatcher, KbqSelectSearch, KbqSelectSearchEmptyResult, KbqSelectTrigger, KbqTableNumberPipe, KbqThemeSelector, KbqVirtualOption, L, LAST_MEDIA, LEFT_ARROW, LEFT_BOTTOM_POSITION_PRIORITY, LEFT_POSITION_PRIORITY, LEFT_TOP_POSITION_PRIORITY, ListKeyManager, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, META, MUTE, MockNgZone, MultipleMode, N, NINE, NUMBER_FORMAT_REGEXP, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PAUSE, PERIOD, PLUS_SIGN, POSITION_MAP, POSITION_PRIORITY_STRATEGY, POSITION_TO_CSS_MAP, PRINT_SCREEN, PasswordValidators, PopUpPlacements, PopUpSizes, PopUpTriggers, PopUpVisibility, Q, QUESTION_MARK, R, RIGHT_ARROW, RIGHT_BOTTOM_POSITION_PRIORITY, RIGHT_POSITION_PRIORITY, RIGHT_TOP_POSITION_PRIORITY, RangeDateFormatterImpurePipe, RangeDateFormatterPipe, RangeDateTimeFormatterImpurePipe, RangeDateTimeFormatterPipe, RangeMiddleDateTimeFormatterImpurePipe, RangeMiddleDateTimeFormatterPipe, RangeShortDateFormatterImpurePipe, RangeShortDateFormatterPipe, RangeShortDateTimeFormatterImpurePipe, RangeShortDateTimeFormatterPipe, RelativeDateFormatterImpurePipe, RelativeDateFormatterPipe, RelativeDateTimeFormatterImpurePipe, RelativeDateTimeFormatterPipe, RelativeShortDateFormatterImpurePipe, RelativeShortDateFormatterPipe, RelativeShortDateTimeFormatterImpurePipe, RelativeShortDateTimeFormatterPipe, S, SCROLL_LOCK, SELECT_PANEL_VIEWPORT_PADDING, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, ShowOnControlDirtyErrorStateMatcher, ShowOnFormSubmitErrorStateMatcher, ShowRequiredOnSubmitErrorStateMatcher, T, TAB, THREE, TILDE, TOP_LEFT_POSITION_PRIORITY, TOP_POSITION_PRIORITY, TOP_RIGHT_POSITION_PRIORITY, TWO, ThemePalette, ThemeService, U, UP_ARROW, V, VERSION, VOLUME_DOWN, VOLUME_UP, W, X, Y, Z, ZERO, applyPopupMargins, checkAndNormalizeLocalizedNumber, countGroupLabelsBeforeOption, createFakeEvent, createKeyboardEvent, createMouseEvent, createTouchEvent, defaultOffsetY, dispatchEvent, dispatchFakeEvent, dispatchKeyboardEvent, dispatchMouseEvent, dispatchTouchEvent, enUSFormattersData, enUSLocaleData, esLAFormattersData, esLALocaleData, escapeRegExp, fadeAnimation, formatNumberWithLocale, getFormattedSizeParts, getHumanizedBytes, getKbqSelectDynamicMultipleError, getKbqSelectNonArrayValueError, getKbqSelectNonFunctionValueError, getNodesWithoutComments, getOptionScrollPosition, hasModifierKey, isBoolean, isControl, isCopy, isDigit, isElement, isFunctionKey, isHorizontalMovement, isHtmlElement, isHtmlElementOrNull, isInput, isLeftBracket, isLetterKey, isMac, isNull, isNumberKey, isNumpadKey, isRightBracket, isSelectAll, isUndefined, isVerticalMovement, isWithin, kbqErrorStateMatcherProvider, kbqFilesizeFormatterConfigurationProvider, kbqHighlightBackgroundMark, kbqHighlightMark, kbqInjectNativeElement, kbqLocaleServiceLangAttrNameProvider, kbqSelectAnimations, kbqSelectScrollStrategyProviderFactory, leftIconClassName, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, normalizeNumber, numberByParts, patchElementFocus, ptBRFormattersData, ptBRLocaleData, rightIconClassName, ruRUFormattersData, ruRULocaleData, selectEvents, tkTMFormattersData, tkTMLocaleData, typeInElement, validationTooltipHideDelay, validationTooltipShowDelay, wrappedErrorMessage };
|
|
6847
|
+
export { A, ALT, APOSTROPHE, ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT, AT_SIGN, AbsoluteDateFormatterImpurePipe, AbsoluteDateFormatterPipe, AbsoluteDateShortFormatterImpurePipe, AbsoluteDateShortFormatterPipe, AbsoluteDateTimeFormatterImpurePipe, AbsoluteDateTimeFormatterPipe, AbsoluteShortDateTimeFormatterImpurePipe, AbsoluteShortDateTimeFormatterPipe, ActiveDescendantKeyManager, B, BACKSLASH, BACKSPACE, BOTTOM_LEFT_POSITION_PRIORITY, BOTTOM_POSITION_PRIORITY, BOTTOM_RIGHT_POSITION_PRIORITY, BaseFormatterPipe, BaseLocaleAwareFormatterPipe, C, CAPS_LOCK, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, D, DASH, DELETE, DOWN_ARROW, DateAdapter, DateFormatter, E, EIGHT, END, ENTER, EQUALS, ESCAPE, EXTENDED_OVERLAY_POSITIONS, EmptyFocusTrapStrategy, ErrorStateMatcher, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FOUR, FileValidators, FocusKeyManager, G, H, HOME, I, INSERT, J, K, KBQ_CONNECTED_OVERLAY_ABOVE_CLASS, KBQ_CONNECTED_OVERLAY_BELOW_CLASS, KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER, KBQ_DATE_FORMATS, KBQ_DATE_LOCALE, KBQ_DATE_LOCALE_FACTORY, KBQ_DEFAULT_LOCALE_DATA_FACTORY, KBQ_DEFAULT_LOCALE_ID, KBQ_DEFAULT_PRECISION_SEPARATOR, KBQ_FORM_FIELD_REF, KBQ_INVALID_VALUE_ERROR, KBQ_LOCALE_DATA, KBQ_LOCALE_ID, KBQ_LOCALE_SERVICE, KBQ_LOCALE_SERVICE_LANG_ATTR_NAME, KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS, KBQ_NUMBER_FORMATTER_OPTIONS, KBQ_OPTION_ACTION_PARENT, KBQ_OPTION_PARENT_COMPONENT, KBQ_OVERFLOW_SHADOW_SOURCE, KBQ_PANEL_DEFAULT_MIN_WIDTH, KBQ_PARENT_ANIMATION_COMPONENT, KBQ_PARENT_POPUP, KBQ_SELECT_SCROLL_STRATEGY, KBQ_SELECT_SCROLL_STRATEGY_PROVIDER, KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD, KBQ_SHADOW_DOM_OVERLAY_HOST, KBQ_SIZE_UNITS_CONFIG, KBQ_SIZE_UNITS_DEFAULT_CONFIG, KBQ_TITLE_TEXT_REF, KBQ_WINDOW, KbqAbsoluteLongDatePipe, KbqAbsoluteLongDateTimePipe, KbqAbsoluteShortDatePipe, KbqAbsoluteShortDateTimePipe, KbqAbstractSelect, KbqActionContainer, KbqAnimationCurves, KbqAnimationDurations, KbqColorDirective, KbqComponentColors, KbqDataSizePipe, KbqDecimalPipe, KbqDefaultThemes, KbqErrorStateTracker, KbqFieldSizingContent, KbqForm, KbqFormElement, KbqFormattersModule, KbqFormsModule, KbqHighlightBackgroundPipe, KbqHighlightModule, KbqHighlightPipe, KbqHover, KbqLine, KbqLineSetter, KbqLocaleService, KbqLocaleServiceModule, KbqMeasureScrollbarService, KbqMeasurementSystem, KbqNormalizeWhitespace, KbqOptgroup, KbqOption, KbqOptionActionComponent, KbqOptionBase, KbqOptionModule, KbqOptionSelectionChange, KbqOverflowShadowBottom, KbqOverflowShadowContainer, KbqOverflowShadowTop, KbqPopUp, KbqPopUpTrigger, KbqPseudoCheckbox, KbqPseudoCheckboxModule, KbqRangeLongDatePipe, KbqRangeLongDateTimePipe, KbqRangeMiddleDateTimePipe, KbqRangeShortDatePipe, KbqRangeShortDateTimePipe, KbqReadStateDirective, KbqRectangleItem, KbqRelativeLongDatePipe, KbqRelativeLongDateTimePipe, KbqRelativeShortDatePipe, KbqRelativeShortDateTimePipe, KbqRoundDecimalPipe, KbqSelectAllEvent, KbqSelectFooter, KbqSelectMatcher, KbqSelectSearch, KbqSelectSearchEmptyResult, KbqSelectTrigger, KbqShadowDomOverlayContainer, KbqTableNumberPipe, KbqThemeSelector, KbqVirtualOption, L, LAST_MEDIA, LEFT_ARROW, LEFT_BOTTOM_POSITION_PRIORITY, LEFT_POSITION_PRIORITY, LEFT_TOP_POSITION_PRIORITY, ListKeyManager, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, META, MUTE, MockNgZone, MultipleMode, N, NINE, NUMBER_FORMAT_REGEXP, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PAUSE, PERIOD, PLUS_SIGN, POSITION_MAP, POSITION_PRIORITY_STRATEGY, POSITION_TO_CSS_MAP, PRINT_SCREEN, PasswordValidators, PopUpPlacements, PopUpSizes, PopUpTriggers, PopUpVisibility, Q, QUESTION_MARK, R, RIGHT_ARROW, RIGHT_BOTTOM_POSITION_PRIORITY, RIGHT_POSITION_PRIORITY, RIGHT_TOP_POSITION_PRIORITY, RangeDateFormatterImpurePipe, RangeDateFormatterPipe, RangeDateTimeFormatterImpurePipe, RangeDateTimeFormatterPipe, RangeMiddleDateTimeFormatterImpurePipe, RangeMiddleDateTimeFormatterPipe, RangeShortDateFormatterImpurePipe, RangeShortDateFormatterPipe, RangeShortDateTimeFormatterImpurePipe, RangeShortDateTimeFormatterPipe, RelativeDateFormatterImpurePipe, RelativeDateFormatterPipe, RelativeDateTimeFormatterImpurePipe, RelativeDateTimeFormatterPipe, RelativeShortDateFormatterImpurePipe, RelativeShortDateFormatterPipe, RelativeShortDateTimeFormatterImpurePipe, RelativeShortDateTimeFormatterPipe, S, SCROLL_LOCK, SELECT_PANEL_VIEWPORT_PADDING, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, ShowOnControlDirtyErrorStateMatcher, ShowOnFormSubmitErrorStateMatcher, ShowRequiredOnSubmitErrorStateMatcher, T, TAB, THREE, TILDE, TOP_LEFT_POSITION_PRIORITY, TOP_POSITION_PRIORITY, TOP_RIGHT_POSITION_PRIORITY, TWO, ThemePalette, ThemeService, U, UP_ARROW, V, VERSION, VOLUME_DOWN, VOLUME_UP, W, X, Y, Z, ZERO, applyPopupMargins, checkAndNormalizeLocalizedNumber, countGroupLabelsBeforeOption, createFakeEvent, createKeyboardEvent, createMouseEvent, createTouchEvent, defaultOffsetY, dispatchEvent, dispatchFakeEvent, dispatchKeyboardEvent, dispatchMouseEvent, dispatchTouchEvent, enUSFormattersData, enUSLocaleData, esLAFormattersData, esLALocaleData, escapeRegExp, fadeAnimation, formatNumberWithLocale, getFormattedSizeParts, getHumanizedBytes, getKbqSelectDynamicMultipleError, getKbqSelectNonArrayValueError, getKbqSelectNonFunctionValueError, getNodesWithoutComments, getOptionScrollPosition, hasModifierKey, isBoolean, isControl, isCopy, isDigit, isElement, isFunctionKey, isHorizontalMovement, isHtmlElement, isHtmlElementOrNull, isInput, isLeftBracket, isLetterKey, isMac, isNull, isNumberKey, isNumpadKey, isRightBracket, isSelectAll, isUndefined, isVerticalMovement, isWithin, kbqErrorStateMatcherProvider, kbqFilesizeFormatterConfigurationProvider, kbqGetPanelWidthOrigin, kbqHighlightBackgroundMark, kbqHighlightMark, kbqInjectNativeElement, kbqLocaleServiceLangAttrNameProvider, kbqResolvePanelWidth, kbqSelectAnimations, kbqSelectScrollStrategyProviderFactory, kbqShadowDomOverlayProvider, leftIconClassName, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, normalizeNumber, numberByParts, patchElementFocus, ptBRFormattersData, ptBRLocaleData, rightIconClassName, ruRUFormattersData, ruRULocaleData, selectEvents, shouldSelectSearchText, tkTMFormattersData, tkTMLocaleData, toggleSelectAll, typeInElement, validationTooltipHideDelay, validationTooltipShowDelay, wrappedErrorMessage };
|
|
6417
6848
|
//# sourceMappingURL=koobiq-components-core.mjs.map
|