@koobiq/components 18.31.0 → 18.32.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/actions-panel/actions-panel-config.d.ts +2 -0
- package/actions-panel/actions-panel.d.ts +3 -57
- package/autocomplete/autocomplete-trigger.directive.d.ts +3 -4
- package/autocomplete/autocomplete.component.d.ts +1 -0
- package/autocomplete/autocomplete.module.d.ts +1 -1
- package/button-toggle/button-toggle.module.d.ts +3 -4
- package/code-block/code-block-highlight.d.ts +1 -2
- package/code-block/code-block.d.ts +57 -10
- package/core/common-behaviors/color.d.ts +3 -0
- package/core/common-behaviors/common-module.d.ts +16 -3
- package/core/form-field/form-field-ref.d.ts +5 -3
- package/core/option/option.d.ts +2 -2
- package/core/public-api.d.ts +1 -0
- package/core/styles/common/_select.scss +10 -24
- package/core/styles/theming/_theming.scss +0 -4
- package/core/tokens/index.d.ts +1 -0
- package/core/tokens/window.d.ts +5 -0
- package/core/validation/validation.d.ts +23 -2
- package/datepicker/datepicker-input.scss +1 -5
- package/dropdown/dropdown-trigger.directive.d.ts +1 -0
- package/ellipsis-center/ellipsis-center.directive.d.ts +7 -1
- package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
- package/esm2022/actions-panel/actions-panel.mjs +16 -113
- package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +9 -13
- package/esm2022/autocomplete/autocomplete.component.mjs +10 -2
- package/esm2022/autocomplete/autocomplete.module.mjs +5 -11
- package/esm2022/breadcrumbs/breadcrumbs.mjs +1 -1
- package/esm2022/button-toggle/button-toggle.module.mjs +5 -6
- package/esm2022/code-block/code-block-highlight.mjs +8 -12
- package/esm2022/code-block/code-block.mjs +60 -18
- package/esm2022/core/common-behaviors/color.mjs +4 -1
- package/esm2022/core/common-behaviors/common-module.mjs +19 -26
- package/esm2022/core/form-field/form-field-ref.mjs +3 -4
- package/esm2022/core/option/option.mjs +7 -5
- package/esm2022/core/public-api.mjs +2 -1
- package/esm2022/core/tokens/index.mjs +2 -0
- package/esm2022/core/tokens/window.mjs +19 -0
- package/esm2022/core/utils/utils.mjs +2 -1
- package/esm2022/core/validation/validation.mjs +21 -2
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/datepicker/calendar-body.component.mjs +3 -3
- package/esm2022/datepicker/calendar-header.component.mjs +3 -3
- package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -3
- package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +8 -1
- package/esm2022/file-upload/multiple-file-upload.component.mjs +2 -2
- package/esm2022/filter-bar/filter-bar.mjs +17 -3
- package/esm2022/filter-bar/filter-search.mjs +2 -2
- package/esm2022/filter-bar/filters.mjs +3 -3
- package/esm2022/filter-bar/pipes/pipe-date.mjs +5 -11
- package/esm2022/filter-bar/pipes/pipe-datetime.mjs +5 -11
- package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
- package/esm2022/form-field/cleaner.mjs +11 -6
- package/esm2022/form-field/error.mjs +20 -0
- package/esm2022/form-field/fieldset.mjs +84 -0
- package/esm2022/form-field/form-field-control.mjs +2 -2
- package/esm2022/form-field/form-field.mjs +247 -74
- package/esm2022/form-field/form-field.module.mjs +59 -47
- package/esm2022/form-field/hint.mjs +10 -18
- package/esm2022/form-field/label.mjs +19 -0
- package/esm2022/form-field/password-hint.mjs +6 -5
- package/esm2022/form-field/password-toggle.mjs +52 -27
- package/esm2022/form-field/prefix.mjs +9 -3
- package/esm2022/form-field/public-api.mjs +5 -2
- package/esm2022/form-field/reactive-password-hint.mjs +65 -0
- package/esm2022/form-field/stepper.mjs +34 -16
- package/esm2022/form-field/suffix.mjs +8 -3
- package/esm2022/form-field/validate.directive.mjs +16 -19
- package/esm2022/input/input-number.mjs +7 -2
- package/esm2022/input/input.module.mjs +1 -5
- package/esm2022/modal/modal-util.mjs +2 -1
- package/esm2022/navbar/navbar-item.component.mjs +10 -11
- package/esm2022/overflow-items/overflow-items.mjs +27 -10
- package/esm2022/radio/radio.module.mjs +4 -5
- package/esm2022/scrollbar/scrollbar.component.mjs +14 -11
- package/esm2022/scrollbar/scrollbar.directive.mjs +2 -1
- package/esm2022/select/select.component.mjs +11 -8
- package/esm2022/sidepanel/sidepanel.module.mjs +1 -5
- package/esm2022/splitter/splitter.component.mjs +5 -3
- package/esm2022/tabs/paginated-tab-header.mjs +6 -2
- package/esm2022/tabs/tabs.module.mjs +1 -5
- package/esm2022/tags/tag-list.component.mjs +2 -2
- package/esm2022/textarea/textarea.component.mjs +7 -6
- package/esm2022/textarea/textarea.module.mjs +4 -5
- package/esm2022/timezone/timezone-select.component.mjs +6 -4
- package/esm2022/toast/toast-animations.mjs +2 -2
- package/esm2022/toast/toast.component.mjs +3 -3
- package/esm2022/toggle/toggle.component.mjs +3 -3
- package/esm2022/toggle/toggle.module.mjs +4 -5
- package/esm2022/top-bar/top-bar.mjs +2 -2
- package/esm2022/tree/padding.directive.mjs +8 -6
- package/esm2022/tree-select/tree-select.component.mjs +18 -13
- package/fesm2022/koobiq-components-actions-panel.mjs +16 -112
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +21 -24
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +5 -5
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +65 -28
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +68 -35
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +4 -4
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +3 -2
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -0
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +30 -29
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +610 -219
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +7 -5
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +1 -0
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +9 -10
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +26 -9
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +4 -4
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar.mjs +14 -10
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +11 -8
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +1 -4
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +4 -2
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +5 -5
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +2 -2
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +9 -8
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +5 -3
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +3 -3
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +6 -6
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +2 -2
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +18 -13
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +7 -5
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/file-upload/multiple-file-upload.component.d.ts +1 -1
- package/form-field/_fiedset-theme.scss +13 -0
- package/form-field/_form-field-theme.scss +29 -13
- package/form-field/_hint-theme.scss +21 -22
- package/form-field/cleaner.d.ts +5 -1
- package/form-field/cleaner.scss +1 -4
- package/form-field/error.d.ts +8 -0
- package/form-field/fieldset-tokens.scss +5 -0
- package/form-field/fieldset.d.ts +27 -0
- package/form-field/fieldset.scss +93 -0
- package/form-field/form-field-control.d.ts +1 -1
- package/form-field/form-field-tokens.scss +13 -3
- package/form-field/form-field.d.ts +210 -22
- package/form-field/form-field.module.d.ts +14 -12
- package/form-field/form-field.scss +58 -78
- package/form-field/hint.d.ts +5 -1
- package/form-field/hint.scss +3 -5
- package/form-field/label.d.ts +6 -0
- package/form-field/password-hint.d.ts +1 -1
- package/form-field/password-toggle.d.ts +25 -11
- package/form-field/password-toggle.scss +1 -2
- package/form-field/prefix.d.ts +2 -1
- package/form-field/public-api.d.ts +4 -1
- package/form-field/reactive-password-hint.d.ts +19 -0
- package/form-field/stepper.d.ts +20 -8
- package/form-field/stepper.scss +12 -11
- package/form-field/suffix.d.ts +2 -1
- package/form-field/validate.directive.d.ts +10 -12
- package/input/input-tokens.scss +2 -2
- package/input/input.module.d.ts +3 -4
- package/input/input.scss +1 -2
- package/navbar/navbar-item.component.d.ts +3 -1
- package/overflow-items/overflow-items.d.ts +12 -5
- package/package.json +4 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/radio/radio.module.d.ts +1 -2
- package/schematics/ng-add/index.js +2 -2
- package/scrollbar/scrollbar.component.d.ts +1 -0
- package/select/select-tokens.scss +5 -4
- package/select/select.component.d.ts +4 -2
- package/sidepanel/sidepanel.module.d.ts +5 -6
- package/splitter/splitter.component.d.ts +1 -0
- package/tabs/paginated-tab-header.d.ts +1 -0
- package/tabs/tabs.module.d.ts +5 -6
- package/tags/tag-list.scss +8 -4
- package/textarea/textarea.component.d.ts +1 -0
- package/textarea/textarea.module.d.ts +2 -3
- package/timepicker/timepicker.scss +1 -1
- package/toast/toast.component.scss +2 -0
- package/toggle/_toggle-theme.scss +10 -2
- package/toggle/toggle-tokens.scss +7 -1
- package/toggle/toggle.module.d.ts +1 -2
- package/toggle/toggle.scss +6 -6
- package/top-bar/top-bar.scss +48 -32
- package/tree/padding.directive.d.ts +1 -1
- package/tree-select/tree-select.component.d.ts +2 -0
- package/esm2022/form-field/form-field-errors.mjs +0 -7
- package/form-field/form-field-errors.d.ts +0 -2
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { CdkDialogContainer, Dialog, DEFAULT_DIALOG_CONFIG, DIALOG_SCROLL_STRATEGY } from '@angular/cdk/dialog';
|
|
4
|
-
import * as i1$1 from '@angular/cdk/overlay';
|
|
5
|
-
import { OverlayContainer, Overlay } from '@angular/cdk/overlay';
|
|
6
|
-
import * as i3$1 from '@angular/common';
|
|
7
|
-
import { DOCUMENT } from '@angular/common';
|
|
1
|
+
import { CdkDialogContainer, Dialog } from '@angular/cdk/dialog';
|
|
2
|
+
import { Overlay, OverlayContainer } from '@angular/cdk/overlay';
|
|
8
3
|
import * as i0 from '@angular/core';
|
|
9
|
-
import { InjectionToken, EventEmitter, inject, Renderer2, Component, ChangeDetectionStrategy, ViewEncapsulation,
|
|
4
|
+
import { InjectionToken, EventEmitter, inject, Renderer2, Component, ChangeDetectionStrategy, ViewEncapsulation, Injector, Injectable, NgModule } from '@angular/core';
|
|
10
5
|
import { trigger, state, style, transition, group, animate, query, animateChild } from '@angular/animations';
|
|
11
6
|
import { CdkPortalOutlet } from '@angular/cdk/portal';
|
|
12
7
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
@@ -349,109 +344,15 @@ const KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR = 'kbq-actions-panel-overlay';
|
|
|
349
344
|
* @docs-private
|
|
350
345
|
*/
|
|
351
346
|
const KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR = 'kbq-actions-panel-overlay-container';
|
|
352
|
-
/**
|
|
353
|
-
* Actions panel overlay container.
|
|
354
|
-
*
|
|
355
|
-
* @docs-private
|
|
356
|
-
*/
|
|
357
|
-
class KbqActionsPanelOverlayContainer extends OverlayContainer {
|
|
358
|
-
/**
|
|
359
|
-
* Set the overlay container element.
|
|
360
|
-
*
|
|
361
|
-
* @param containerElement The element into which the overlay will be rendered.
|
|
362
|
-
* @returns Current OverlayContainer instance.
|
|
363
|
-
*/
|
|
364
|
-
setContainerElement(containerElement) {
|
|
365
|
-
this._containerElement = containerElement || this._document.body.querySelector('.cdk-overlay-container');
|
|
366
|
-
}
|
|
367
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelOverlayContainer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
368
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelOverlayContainer, providedIn: 'root' }); }
|
|
369
|
-
}
|
|
370
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelOverlayContainer, decorators: [{
|
|
371
|
-
type: Injectable,
|
|
372
|
-
args: [{ providedIn: 'root' }]
|
|
373
|
-
}] });
|
|
374
|
-
/**
|
|
375
|
-
* Actions panel overlay.
|
|
376
|
-
*
|
|
377
|
-
* @docs-private
|
|
378
|
-
*/
|
|
379
|
-
class KbqActionsPanelOverlay extends Overlay {
|
|
380
|
-
constructor(scrollStrategies, overlayContainer, componentFactoryResolver, positionBuilder, keyboardDispatcher, injector, ngZone, document, directionality, location, outsideClickDispatcher, animationsModuleType) {
|
|
381
|
-
super(scrollStrategies, overlayContainer, componentFactoryResolver, positionBuilder, keyboardDispatcher, injector, ngZone, document, directionality, location, outsideClickDispatcher, animationsModuleType);
|
|
382
|
-
this.overlayContainer = overlayContainer;
|
|
383
|
-
}
|
|
384
|
-
/**
|
|
385
|
-
* Set the overlay container element.
|
|
386
|
-
*
|
|
387
|
-
* @param containerElement The element into which the overlay will be rendered.
|
|
388
|
-
* @returns Current Overlay instance.
|
|
389
|
-
*/
|
|
390
|
-
setOverlayContainerElement(containerElement) {
|
|
391
|
-
this.overlayContainer.setContainerElement(containerElement);
|
|
392
|
-
}
|
|
393
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelOverlay, deps: [{ token: i1$1.ScrollStrategyOptions }, { token: KbqActionsPanelOverlayContainer }, { token: i0.ComponentFactoryResolver }, { token: i1$1.OverlayPositionBuilder }, { token: i1$1.OverlayKeyboardDispatcher }, { token: i0.Injector }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i2$1.Directionality }, { token: i3$1.Location }, { token: i1$1.OverlayOutsideClickDispatcher }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
394
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelOverlay, providedIn: 'root' }); }
|
|
395
|
-
}
|
|
396
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelOverlay, decorators: [{
|
|
397
|
-
type: Injectable,
|
|
398
|
-
args: [{ providedIn: 'root' }]
|
|
399
|
-
}], ctorParameters: () => [{ type: i1$1.ScrollStrategyOptions }, { type: KbqActionsPanelOverlayContainer }, { type: i0.ComponentFactoryResolver }, { type: i1$1.OverlayPositionBuilder }, { type: i1$1.OverlayKeyboardDispatcher }, { type: i0.Injector }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
400
|
-
type: Inject,
|
|
401
|
-
args: [DOCUMENT]
|
|
402
|
-
}] }, { type: i2$1.Directionality }, { type: i3$1.Location }, { type: i1$1.OverlayOutsideClickDispatcher }, { type: undefined, decorators: [{
|
|
403
|
-
type: Inject,
|
|
404
|
-
args: [ANIMATION_MODULE_TYPE]
|
|
405
|
-
}, {
|
|
406
|
-
type: Optional
|
|
407
|
-
}] }] });
|
|
408
|
-
/**
|
|
409
|
-
* Actions panel dialog service.
|
|
410
|
-
*
|
|
411
|
-
* @docs-private
|
|
412
|
-
*/
|
|
413
|
-
class KbqActionsPanelDialog extends Dialog {
|
|
414
|
-
constructor(overlay, injector, defaultOptions, parentDialog, overlayContainer, scrollStrategy) {
|
|
415
|
-
super(overlay, injector, defaultOptions, parentDialog, overlayContainer, scrollStrategy);
|
|
416
|
-
this.overlay = overlay;
|
|
417
|
-
}
|
|
418
|
-
/**
|
|
419
|
-
* Set the dialog overlay container element.
|
|
420
|
-
*
|
|
421
|
-
* @param containerElement The element into which the overlay will be rendered.
|
|
422
|
-
* @returns Current dialog instance.
|
|
423
|
-
*/
|
|
424
|
-
setOverlayContainerElement(containerElement) {
|
|
425
|
-
this.overlay.setOverlayContainerElement(containerElement);
|
|
426
|
-
return this;
|
|
427
|
-
}
|
|
428
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelDialog, deps: [{ token: KbqActionsPanelOverlay }, { token: i0.Injector }, { token: DEFAULT_DIALOG_CONFIG, optional: true }, { token: i4$1.Dialog, optional: true, skipSelf: true }, { token: KbqActionsPanelOverlayContainer }, { token: DIALOG_SCROLL_STRATEGY }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
429
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelDialog, providedIn: 'root' }); }
|
|
430
|
-
}
|
|
431
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelDialog, decorators: [{
|
|
432
|
-
type: Injectable,
|
|
433
|
-
args: [{ providedIn: 'root' }]
|
|
434
|
-
}], ctorParameters: () => [{ type: KbqActionsPanelOverlay }, { type: i0.Injector }, { type: i4$1.DialogConfig, decorators: [{
|
|
435
|
-
type: Optional
|
|
436
|
-
}, {
|
|
437
|
-
type: Inject,
|
|
438
|
-
args: [DEFAULT_DIALOG_CONFIG]
|
|
439
|
-
}] }, { type: i4$1.Dialog, decorators: [{
|
|
440
|
-
type: Optional
|
|
441
|
-
}, {
|
|
442
|
-
type: SkipSelf
|
|
443
|
-
}] }, { type: KbqActionsPanelOverlayContainer }, { type: undefined, decorators: [{
|
|
444
|
-
type: Inject,
|
|
445
|
-
args: [DIALOG_SCROLL_STRATEGY]
|
|
446
|
-
}] }] });
|
|
447
347
|
/**
|
|
448
348
|
* Service for opening actions panel.
|
|
449
349
|
*/
|
|
450
350
|
class KbqActionsPanel {
|
|
451
351
|
constructor() {
|
|
452
352
|
this.injector = inject(Injector);
|
|
453
|
-
this.overlay = inject(
|
|
454
|
-
this.
|
|
353
|
+
this.overlay = inject(Overlay);
|
|
354
|
+
this.overlayContainer = inject(OverlayContainer);
|
|
355
|
+
this.dialog = inject(Dialog);
|
|
455
356
|
this.defaultConfig = inject(KBQ_ACTIONS_PANEL_DEFAULT_CONFIG);
|
|
456
357
|
/** The reference to the currently opened actions panel. */
|
|
457
358
|
this.openedActionsPanelRef = null;
|
|
@@ -488,11 +389,14 @@ class KbqActionsPanel {
|
|
|
488
389
|
}
|
|
489
390
|
openDialog(componentOrTemplateRef, config = {}) {
|
|
490
391
|
let actionsPanelRef;
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
.
|
|
495
|
-
|
|
392
|
+
if (config.overlayContainer) {
|
|
393
|
+
// We should override protected `_containerElement` property to set custom container without creating
|
|
394
|
+
// new `OverlayContainer` instance.
|
|
395
|
+
this.overlayContainer['_containerElement'] = config.overlayContainer.nativeElement;
|
|
396
|
+
}
|
|
397
|
+
const overlayContainerElement = this.overlayContainer.getContainerElement();
|
|
398
|
+
overlayContainerElement.classList.add(KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR);
|
|
399
|
+
const dialogRef = this.dialog.open(componentOrTemplateRef, {
|
|
496
400
|
...config,
|
|
497
401
|
container: KbqActionsPanelContainer,
|
|
498
402
|
restoreFocus: false,
|
|
@@ -530,7 +434,7 @@ class KbqActionsPanel {
|
|
|
530
434
|
dialogRef.addPanelClass(config.overlayPanelClass);
|
|
531
435
|
}
|
|
532
436
|
actionsPanelRef?.afterClosed.subscribe(() => {
|
|
533
|
-
overlayContainerElement
|
|
437
|
+
overlayContainerElement.classList.remove(KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR);
|
|
534
438
|
});
|
|
535
439
|
return actionsPanelRef;
|
|
536
440
|
}
|
|
@@ -563,5 +467,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
563
467
|
* Generated bundle index. Do not edit.
|
|
564
468
|
*/
|
|
565
469
|
|
|
566
|
-
export { KBQ_ACTIONS_PANEL_DATA, KBQ_ACTIONS_PANEL_DEFAULT_CONFIG, KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION, KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR, KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR, KbqActionsPanel, KbqActionsPanelConfig, KbqActionsPanelContainer,
|
|
470
|
+
export { KBQ_ACTIONS_PANEL_DATA, KBQ_ACTIONS_PANEL_DEFAULT_CONFIG, KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION, KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR, KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR, KbqActionsPanel, KbqActionsPanelConfig, KbqActionsPanelContainer, KbqActionsPanelModule, KbqActionsPanelRef, kbqActionsPanelDefaultConfigProvider, kbqActionsPanelLocaleConfigurationProvider };
|
|
567
471
|
//# sourceMappingURL=koobiq-components-actions-panel.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-actions-panel.mjs","sources":["../../../packages/components/actions-panel/actions-panel-config.ts","../../../packages/components/actions-panel/actions-panel-container.ts","../../../packages/components/actions-panel/actions-panel-ref.ts","../../../packages/components/actions-panel/actions-panel.ts","../../../packages/components/actions-panel/module.ts","../../../packages/components/actions-panel/koobiq-components-actions-panel.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken, Injector, Provider } from '@angular/core';\n\n/** Injection token that can be used to specify default actions panel config. */\nexport const KBQ_ACTIONS_PANEL_DEFAULT_CONFIG = new InjectionToken<KbqActionsPanelConfig>(\n 'KBQ_ACTIONS_PANEL_DEFAULT_CONFIG',\n { factory: () => new KbqActionsPanelConfig() }\n);\n\n/**\n * Utility for providing default actions panel config.\n *\n * @see `KBQ_ACTIONS_PANEL_DEFAULT_CONFIG`\n */\nexport const kbqActionsPanelDefaultConfigProvider = <D>(config: KbqActionsPanelConfig<D>): Provider => ({\n provide: KBQ_ACTIONS_PANEL_DEFAULT_CONFIG,\n useValue: config\n});\n\n/**\n * Configuration for opened actions panel.\n * Based on cdk `DialogConfig`.\n *\n * @see `DialogConfig`\n *\n */\nexport class KbqActionsPanelConfig<D = unknown> {\n /**\n * Injector used for the instantiation of the component to be attached.\n */\n injector?: Injector;\n\n /**\n * Data being injected into the child component.\n *\n * @see `KBQ_ACTIONS_PANEL_DATA`\n */\n data?: D | null = null;\n\n /** Extra CSS classes to be added to the actions panel container. */\n containerClass?: string | string[];\n\n /**\n * Whether the actions panel should be closed of when the user goes backwards/forwards in history.\n * NOTE! This does not apply to router navigation.\n *\n * @default true\n */\n closeOnNavigation?: boolean = true;\n\n /**\n * Overlay container element in which the actions panel are rendered.\n */\n overlayContainer?: ElementRef<HTMLElement>;\n\n /**\n * Extra CSS classes to be added to the overlay panel.\n */\n overlayPanelClass?: string | string[];\n\n /**\n * Width of the actions panel.\n */\n width?: string;\n\n /**\n * Min-width of the actions panel.\n * If a number is provided, assumes pixel units.\n */\n minWidth?: number | string;\n\n /**\n * Max-width of the actions panel.\n * If a number is provided, assumes pixel units.\n */\n maxWidth?: number | string;\n\n /**\n * Direction of the text in the actions panel.\n *\n * @default 'ltr'\n */\n direction?: Direction = 'ltr';\n\n /**\n * Scroll strategy to be used for the actions panel.\n *\n * @default `RepositionScrollStrategy`\n */\n scrollStrategy?: (overlay: Overlay) => ScrollStrategy = (overlay) => overlay.scrollStrategies.reposition();\n\n /**\n * Whether the user can use ESC or click on close button to close the actions panel.\n *\n * @default false\n */\n disableClose?: boolean = false;\n}\n","import {\n animate,\n animateChild,\n AnimationEvent,\n group,\n query,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\nimport { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n InjectionToken,\n OnDestroy,\n Provider,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport {\n KBQ_LOCALE_SERVICE,\n KbqActionsPanelLocaleConfiguration,\n KbqAnimationCurves,\n KbqAnimationDurations,\n ruRULocaleData\n} from '@koobiq/components/core';\nimport { KbqDividerModule } from '@koobiq/components/divider';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { map, of } from 'rxjs';\nimport { KbqActionsPanel } from './actions-panel';\nimport { KbqActionsPanelConfig } from './actions-panel-config';\n\n/** Localization configuration provider. */\nexport const KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION = new InjectionToken<KbqActionsPanelLocaleConfiguration>(\n 'KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION',\n { factory: () => ruRULocaleData.actionsPanel }\n);\n\n/** Utility provider for `KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION`. */\nexport const kbqActionsPanelLocaleConfigurationProvider = (\n configuration: KbqActionsPanelLocaleConfiguration\n): Provider => ({\n provide: KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION,\n useValue: configuration\n});\n\n/**\n * Animation that shows and hides the actions panel.\n */\nconst KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION = trigger('state', [\n state('void, hidden', style({ transform: 'translateY(100%)' })),\n state('visible', style({ transform: 'translateY(0%)' })),\n transition(\n 'visible => void, visible => hidden',\n group([\n animate(`${KbqAnimationDurations.Entering} ${KbqAnimationCurves.StandardCurve}`),\n query('@*', animateChild(), { optional: true })\n ])\n ),\n transition(\n 'void => visible',\n group([\n animate(`${KbqAnimationDurations.Exiting} ${KbqAnimationCurves.StandardCurve}`),\n query('@*', animateChild(), { optional: true })\n ])\n )\n]);\n\n/**\n * Internal component that wraps user-provided actions panel content.\n *\n * @docs-private\n */\n@Component({\n standalone: true,\n imports: [\n CdkPortalOutlet,\n KbqDividerModule,\n KbqButtonModule,\n KbqIconModule,\n KbqToolTipModule\n ],\n selector: 'kbq-actions-panel-container',\n template: `\n <div class=\"kbq-actions-panel-container__content\">\n <ng-template cdkPortalOutlet />\n </div>\n @if (!config.disableClose) {\n <kbq-divider class=\"kbq-actions-panel-container__vertical-divider\" [vertical]=\"true\" />\n <button\n class=\"kbq-actions-panel-container__close-button\"\n [kbqTooltip]=\"localeConfiguration()!.closeTooltip\"\n [kbqTooltipOffset]=\"16\"\n (click)=\"close()\"\n color=\"contrast\"\n kbq-button\n >\n <i kbq-icon=\"kbq-xmark-circle_16\"></i>\n </button>\n }\n `,\n styleUrls: [\n './actions-panel-tokens.scss',\n './actions-panel-container.scss'\n ],\n animations: [KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION],\n host: {\n class: 'kbq-actions-panel-container',\n '[class.kbq-actions-panel-container_rtl]': 'config.direction === \"rtl\"',\n '[@state]': 'animationState',\n '(@state.start)': 'onAnimationStart($event)',\n '(@state.done)': 'onAnimationDone($event)',\n '(keydown.escape)': 'handleEscape($event)'\n },\n // Uses the `Default` change detection strategy as parent `CdkDialogContainer`:\n // https://github.com/angular/components/blob/18.2.14/src/cdk/dialog/dialog-container.ts#L60\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqActionsPanelContainer extends CdkDialogContainer implements OnDestroy {\n /**\n * The state of the actions panel animations.\n *\n * @docs-private\n */\n protected animationState: 'void' | 'visible' | 'hidden' = 'void';\n\n /**\n * Emits whenever the state of the animation changes.\n *\n * @docs-private\n */\n readonly animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** Whether the actions panel container has been destroyed. */\n private destroyed: boolean;\n\n /**\n * Actions panel configuration.\n *\n * @docs-private\n */\n protected readonly config = inject(KbqActionsPanelConfig);\n\n private readonly actionsPanel = inject(KbqActionsPanel);\n private readonly renderer = inject(Renderer2);\n private readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n /**\n * Actions panel locale configuration.\n *\n * @docs-private\n */\n protected readonly localeConfiguration = toSignal<KbqActionsPanelLocaleConfiguration>(\n this.localeService\n ? this.localeService.changes.pipe(map(() => this.localeService!.getParams('actionsPanel')))\n : of(inject(KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION))\n );\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.destroyed = true;\n }\n\n /**\n * Close the actions panel.\n *\n * @docs-private\n */\n protected close(): void {\n this.actionsPanel.close();\n }\n\n /**\n * Start animation of the actions panel entrance into view.\n *\n * @docs-private\n */\n startOpenAnimation(): void {\n if (!this.destroyed) {\n this.animationState = 'visible';\n // animationState lives in host bindings and `detectChanges` does not refresh host bindings so we have to\n // call `markForCheck` to ensure the host view is refreshed eventually.\n this._changeDetectorRef.markForCheck();\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /**\n * Start animation of the actions panel exiting from view.\n *\n * @docs-private\n */\n startCloseAnimation(): void {\n if (!this.destroyed) {\n this.animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Handles animation done events.\n *\n * @docs-private\n */\n protected onAnimationDone(event: AnimationEvent): void {\n if (event.toState === 'visible') {\n this._trapFocus();\n }\n\n this.animationStateChanged.emit(event);\n }\n\n /**\n * Handles animation start events.\n *\n * @docs-private\n */\n protected onAnimationStart(event: AnimationEvent): void {\n this.animationStateChanged.emit(event);\n }\n\n /**\n * Handles escape key events.\n *\n * @docs-private\n */\n protected handleEscape(event: KeyboardEvent): void {\n if (!this.config.disableClose) {\n event.preventDefault();\n this.close();\n }\n }\n\n /**\n * @docs-private\n */\n protected override _contentAttached(): void {\n this.applyContainerClass();\n }\n\n private applyContainerClass(): void {\n const { containerClass } = this.config;\n\n if (containerClass) {\n if (Array.isArray(containerClass)) {\n containerClass.forEach((cssClass) => this.renderer.addClass(this._elementRef.nativeElement, cssClass));\n } else {\n this.renderer.addClass(this._elementRef.nativeElement, containerClass);\n }\n }\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { filter, Observable, Subject, take } from 'rxjs';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\n\n/**\n * Reference to actions panel opened by `KbqActionsPanel` service.\n */\nexport class KbqActionsPanelRef<I = unknown, R = unknown> {\n /**\n * Instance of the component into which the actions panel content is projected.\n *\n * @docs-private\n */\n containerInstance: KbqActionsPanelContainer;\n\n /** Gets an observable that is notified when the actions panel is finished closing. */\n get afterClosed(): Observable<R | undefined> {\n return this.dialogRef.closed;\n }\n\n /** Gets an observable that emits when keydown events are targeted on the overlay. */\n get keydownEvents(): Observable<KeyboardEvent> {\n return this.dialogRef.keydownEvents;\n }\n\n /** Gets an observable that is notified when the actions panel has opened and appeared. */\n get afterOpened(): Observable<void> {\n return this._afterOpened;\n }\n\n private readonly _afterOpened = new Subject<void>();\n\n /** Result to be passed down to the `afterClosed` stream. */\n private result: R | undefined;\n\n /** Handle to the timeout that's running as a fallback in case the close animation doesn't fire. */\n private closeAnimationFallbackTimeout: ReturnType<typeof setTimeout>;\n\n constructor(\n private readonly dialogRef: DialogRef<R, I>,\n containerInstance: KbqActionsPanelContainer\n ) {\n this.containerInstance = containerInstance;\n this.handleAnimation();\n this.handleOverlayDetachments();\n }\n\n /** Closes the actions panel. */\n close(result?: R): void {\n if (!this.containerInstance) {\n return;\n }\n\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'start'),\n take(1)\n )\n .subscribe(({ totalTime }) => {\n this.closeAnimationFallbackTimeout = setTimeout(\n () => this.dialogRef.close(this.result),\n totalTime + 100\n );\n });\n\n this.result = result;\n this.containerInstance.startCloseAnimation();\n this.containerInstance = null!;\n }\n\n private handleAnimation(): void {\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === 'visible'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === 'hidden'),\n take(1)\n )\n .subscribe(() => {\n clearTimeout(this.closeAnimationFallbackTimeout);\n this.dialogRef.close(this.result);\n });\n }\n\n private handleOverlayDetachments(): void {\n this.dialogRef.overlayRef\n .detachments()\n .pipe(take(1))\n .subscribe(() => {\n this.dialogRef.close(this.result);\n });\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { DEFAULT_DIALOG_CONFIG, Dialog, DIALOG_SCROLL_STRATEGY, DialogConfig } from '@angular/cdk/dialog';\nimport {\n ComponentType,\n Overlay,\n OverlayContainer,\n OverlayKeyboardDispatcher,\n OverlayOutsideClickDispatcher,\n OverlayPositionBuilder,\n ScrollStrategyOptions\n} from '@angular/cdk/overlay';\nimport { DOCUMENT, Location } from '@angular/common';\nimport {\n ANIMATION_MODULE_TYPE,\n ComponentFactoryResolver,\n Inject,\n inject,\n Injectable,\n InjectionToken,\n Injector,\n NgZone,\n OnDestroy,\n Optional,\n SkipSelf,\n TemplateRef\n} from '@angular/core';\nimport { KBQ_ACTIONS_PANEL_DEFAULT_CONFIG, KbqActionsPanelConfig } from './actions-panel-config';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\nimport { KbqActionsPanelRef } from './actions-panel-ref';\n\n/** Injection token that can be used to access the data that was passed in to actions panel. */\nexport const KBQ_ACTIONS_PANEL_DATA = new InjectionToken('KBQ_ACTIONS_PANEL_DATA');\n\n/**\n * Context for actions panel template.\n */\nexport type KbqActionsPanelTemplateContext<T = unknown, D = unknown, R = unknown> = {\n /**\n * Data passed to actions panel.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-data>{{ data.KEY }}</ng-template>\n * ````\n */\n $implicit?: D | null;\n /**\n * Data passed to actions panel.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-data=\"data\">{{ data.KEY }}</ng-template>\n * ````\n */\n data?: D | null;\n /**\n * Opened actions panel reference.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-actionsPanelRef=\"actionsPanelRef\">\n * <button (click)=\"actionsPanelRef.close()\">close</button>\n * </ng-template>\n * ````\n */\n actionsPanelRef: KbqActionsPanelRef<T, R>;\n};\n\n/**\n * Selector for actions panel overlay.\n *\n * @docs-private\n */\nexport const KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR = 'kbq-actions-panel-overlay';\n\n/**\n * Selector for custom actions panel overlay container.\n *\n * @docs-private\n */\nexport const KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR = 'kbq-actions-panel-overlay-container';\n\n/**\n * Actions panel overlay container.\n *\n * @docs-private\n */\n@Injectable({ providedIn: 'root' })\nexport class KbqActionsPanelOverlayContainer extends OverlayContainer {\n /**\n * Set the overlay container element.\n *\n * @param containerElement The element into which the overlay will be rendered.\n * @returns Current OverlayContainer instance.\n */\n setContainerElement(containerElement?: HTMLElement): void {\n this._containerElement = containerElement || this._document.body.querySelector('.cdk-overlay-container')!;\n }\n}\n\n/**\n * Actions panel overlay.\n *\n * @docs-private\n */\n@Injectable({ providedIn: 'root' })\nexport class KbqActionsPanelOverlay extends Overlay {\n constructor(\n scrollStrategies: ScrollStrategyOptions,\n private readonly overlayContainer: KbqActionsPanelOverlayContainer,\n componentFactoryResolver: ComponentFactoryResolver,\n positionBuilder: OverlayPositionBuilder,\n keyboardDispatcher: OverlayKeyboardDispatcher,\n injector: Injector,\n ngZone: NgZone,\n @Inject(DOCUMENT) document: any,\n directionality: Directionality,\n location: Location,\n outsideClickDispatcher: OverlayOutsideClickDispatcher,\n @Inject(ANIMATION_MODULE_TYPE) @Optional() animationsModuleType?: string\n ) {\n super(\n scrollStrategies,\n overlayContainer,\n componentFactoryResolver,\n positionBuilder,\n keyboardDispatcher,\n injector,\n ngZone,\n document,\n directionality,\n location,\n outsideClickDispatcher,\n animationsModuleType\n );\n }\n\n /**\n * Set the overlay container element.\n *\n * @param containerElement The element into which the overlay will be rendered.\n * @returns Current Overlay instance.\n */\n setOverlayContainerElement(containerElement?: HTMLElement): void {\n this.overlayContainer.setContainerElement(containerElement);\n }\n}\n\n/**\n * Actions panel dialog service.\n *\n * @docs-private\n */\n@Injectable({ providedIn: 'root' })\nexport class KbqActionsPanelDialog extends Dialog {\n constructor(\n private readonly overlay: KbqActionsPanelOverlay,\n injector: Injector,\n @Optional() @Inject(DEFAULT_DIALOG_CONFIG) defaultOptions: DialogConfig,\n @Optional() @SkipSelf() parentDialog: Dialog,\n overlayContainer: KbqActionsPanelOverlayContainer,\n @Inject(DIALOG_SCROLL_STRATEGY) scrollStrategy: any\n ) {\n super(overlay, injector, defaultOptions, parentDialog, overlayContainer, scrollStrategy);\n }\n\n /**\n * Set the dialog overlay container element.\n *\n * @param containerElement The element into which the overlay will be rendered.\n * @returns Current dialog instance.\n */\n setOverlayContainerElement(containerElement?: HTMLElement): this {\n this.overlay.setOverlayContainerElement(containerElement);\n\n return this;\n }\n}\n\n/**\n * Service for opening actions panel.\n */\n@Injectable({ providedIn: 'root' })\nexport class KbqActionsPanel implements OnDestroy {\n private readonly injector = inject(Injector);\n private readonly overlay = inject(KbqActionsPanelOverlay);\n private readonly dialog = inject(KbqActionsPanelDialog);\n private readonly defaultConfig = inject(KBQ_ACTIONS_PANEL_DEFAULT_CONFIG);\n\n /** The reference to the currently opened actions panel. */\n private openedActionsPanelRef: KbqActionsPanelRef | null = null;\n\n ngOnDestroy() {\n this.close();\n }\n\n /**\n * Opens actions panel.\n *\n * @param componentOrTemplateRef Component to be opened into the actions panel.\n * @param config Additional configuration options for the actions panel.\n * @returns A reference to the opened actions panel.\n */\n open<T, D = unknown, R = unknown>(\n component: ComponentType<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R>;\n\n /**\n * Opens actions panel.\n *\n * @param template TemplateRef to be used as the content.\n * @param config Additional configuration options for the actions panel.\n * @returns A reference to the opened actions panel.\n */\n open<T, D = unknown, R = unknown>(\n template: TemplateRef<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R>;\n\n open<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R> {\n const _config: KbqActionsPanelConfig<D> = {\n ...(this.defaultConfig as KbqActionsPanelConfig<D>),\n ...config\n };\n const actionsPanelRef = this.openDialog<T, D, R>(componentOrTemplateRef, _config);\n\n actionsPanelRef.afterClosed.subscribe(() => {\n if (this.openedActionsPanelRef === actionsPanelRef) {\n this.openedActionsPanelRef = null;\n }\n });\n\n if (this.openedActionsPanelRef) {\n this.openedActionsPanelRef.afterClosed.subscribe(() => {\n actionsPanelRef.containerInstance?.startOpenAnimation();\n });\n this.openedActionsPanelRef.close();\n } else {\n actionsPanelRef.containerInstance.startOpenAnimation();\n }\n\n this.openedActionsPanelRef = actionsPanelRef as KbqActionsPanelRef;\n\n return actionsPanelRef;\n }\n\n /** Closes the currently opened actions panel. */\n close<R>(result?: R): void {\n this.openedActionsPanelRef?.close(result);\n }\n\n private openDialog<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config: KbqActionsPanelConfig<D> = {}\n ): KbqActionsPanelRef<T, R> {\n let actionsPanelRef!: KbqActionsPanelRef<T, R>;\n const overlayContainerElement = config.overlayContainer?.nativeElement;\n\n overlayContainerElement?.classList.add(KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR);\n const dialogRef = this.dialog\n .setOverlayContainerElement(overlayContainerElement)\n .open<R, D, T>(componentOrTemplateRef, {\n ...config,\n container: KbqActionsPanelContainer,\n restoreFocus: false,\n autoFocus: null!,\n hasBackdrop: false,\n // Disable closing since we need to sync it up to the animation ourselves\n closeOnOverlayDetachments: false,\n // Disable closing since we need to sync it up to the animation ourselves\n closeOnDestroy: false,\n // Disable closing since we need to sync it up to the animation ourselves\n disableClose: true,\n scrollStrategy: config.scrollStrategy && config.scrollStrategy(this.overlay),\n positionStrategy: this.overlay.position().global().centerHorizontally().bottom(),\n templateContext: () => {\n return {\n $implicit: config.data,\n data: config.data,\n actionsPanelRef\n } satisfies KbqActionsPanelTemplateContext<T, D, R>;\n },\n injector: Injector.create({\n parent: config.injector || this.injector,\n providers: [{ provide: KbqActionsPanelConfig, useValue: config }]\n }),\n providers: (dialogRef, _dialogConfig, container) => {\n actionsPanelRef = new KbqActionsPanelRef<T, R>(dialogRef, container as KbqActionsPanelContainer);\n\n return [\n { provide: KbqActionsPanelRef, useValue: actionsPanelRef },\n { provide: KBQ_ACTIONS_PANEL_DATA, useValue: config.data }\n ];\n }\n });\n\n dialogRef.addPanelClass(KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR);\n\n if (config.overlayPanelClass) {\n dialogRef.addPanelClass(config.overlayPanelClass);\n }\n\n actionsPanelRef?.afterClosed.subscribe(() => {\n overlayContainerElement?.classList.remove(KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR);\n });\n\n return actionsPanelRef;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqActionsPanel } from './actions-panel';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\n\nconst COMPONENTS = [\n KbqActionsPanelContainer\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n providers: [KbqActionsPanel]\n})\nexport class KbqActionsPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-actions-panel.mjs","sources":["../../../packages/components/actions-panel/actions-panel-config.ts","../../../packages/components/actions-panel/actions-panel-container.ts","../../../packages/components/actions-panel/actions-panel-ref.ts","../../../packages/components/actions-panel/actions-panel.ts","../../../packages/components/actions-panel/module.ts","../../../packages/components/actions-panel/koobiq-components-actions-panel.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken, Injector, Provider } from '@angular/core';\n\n/** Injection token that can be used to specify default actions panel config. */\nexport const KBQ_ACTIONS_PANEL_DEFAULT_CONFIG = new InjectionToken<KbqActionsPanelConfig>(\n 'KBQ_ACTIONS_PANEL_DEFAULT_CONFIG',\n { factory: () => new KbqActionsPanelConfig() }\n);\n\n/**\n * Utility for providing default actions panel config.\n *\n * @see `KBQ_ACTIONS_PANEL_DEFAULT_CONFIG`\n */\nexport const kbqActionsPanelDefaultConfigProvider = <D>(config: KbqActionsPanelConfig<D>): Provider => ({\n provide: KBQ_ACTIONS_PANEL_DEFAULT_CONFIG,\n useValue: config\n});\n\n/**\n * Configuration for opened actions panel.\n * Based on cdk `DialogConfig`.\n *\n * @see `DialogConfig`\n *\n */\nexport class KbqActionsPanelConfig<D = unknown> {\n /**\n * Injector used for the instantiation of the component to be attached.\n */\n injector?: Injector;\n\n /**\n * Data being injected into the child component.\n *\n * @see `KBQ_ACTIONS_PANEL_DATA`\n */\n data?: D | null = null;\n\n /** Extra CSS classes to be added to the actions panel container. */\n containerClass?: string | string[];\n\n /**\n * Whether the actions panel should be closed of when the user goes backwards/forwards in history.\n * NOTE! This does not apply to router navigation.\n *\n * @default true\n */\n closeOnNavigation?: boolean = true;\n\n /**\n * Overlay container element in which the actions panel are rendered.\n *\n * @default `document.body`\n */\n overlayContainer?: ElementRef<HTMLElement>;\n\n /**\n * Extra CSS classes to be added to the overlay panel.\n */\n overlayPanelClass?: string | string[];\n\n /**\n * Width of the actions panel.\n */\n width?: string;\n\n /**\n * Min-width of the actions panel.\n * If a number is provided, assumes pixel units.\n */\n minWidth?: number | string;\n\n /**\n * Max-width of the actions panel.\n * If a number is provided, assumes pixel units.\n */\n maxWidth?: number | string;\n\n /**\n * Direction of the text in the actions panel.\n *\n * @default 'ltr'\n */\n direction?: Direction = 'ltr';\n\n /**\n * Scroll strategy to be used for the actions panel.\n *\n * @default `RepositionScrollStrategy`\n */\n scrollStrategy?: (overlay: Overlay) => ScrollStrategy = (overlay) => overlay.scrollStrategies.reposition();\n\n /**\n * Whether the user can use ESC or click on close button to close the actions panel.\n *\n * @default false\n */\n disableClose?: boolean = false;\n}\n","import {\n animate,\n animateChild,\n AnimationEvent,\n group,\n query,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\nimport { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n InjectionToken,\n OnDestroy,\n Provider,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport {\n KBQ_LOCALE_SERVICE,\n KbqActionsPanelLocaleConfiguration,\n KbqAnimationCurves,\n KbqAnimationDurations,\n ruRULocaleData\n} from '@koobiq/components/core';\nimport { KbqDividerModule } from '@koobiq/components/divider';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { map, of } from 'rxjs';\nimport { KbqActionsPanel } from './actions-panel';\nimport { KbqActionsPanelConfig } from './actions-panel-config';\n\n/** Localization configuration provider. */\nexport const KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION = new InjectionToken<KbqActionsPanelLocaleConfiguration>(\n 'KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION',\n { factory: () => ruRULocaleData.actionsPanel }\n);\n\n/** Utility provider for `KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION`. */\nexport const kbqActionsPanelLocaleConfigurationProvider = (\n configuration: KbqActionsPanelLocaleConfiguration\n): Provider => ({\n provide: KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION,\n useValue: configuration\n});\n\n/**\n * Animation that shows and hides the actions panel.\n */\nconst KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION = trigger('state', [\n state('void, hidden', style({ transform: 'translateY(100%)' })),\n state('visible', style({ transform: 'translateY(0%)' })),\n transition(\n 'visible => void, visible => hidden',\n group([\n animate(`${KbqAnimationDurations.Entering} ${KbqAnimationCurves.StandardCurve}`),\n query('@*', animateChild(), { optional: true })\n ])\n ),\n transition(\n 'void => visible',\n group([\n animate(`${KbqAnimationDurations.Exiting} ${KbqAnimationCurves.StandardCurve}`),\n query('@*', animateChild(), { optional: true })\n ])\n )\n]);\n\n/**\n * Internal component that wraps user-provided actions panel content.\n *\n * @docs-private\n */\n@Component({\n standalone: true,\n imports: [\n CdkPortalOutlet,\n KbqDividerModule,\n KbqButtonModule,\n KbqIconModule,\n KbqToolTipModule\n ],\n selector: 'kbq-actions-panel-container',\n template: `\n <div class=\"kbq-actions-panel-container__content\">\n <ng-template cdkPortalOutlet />\n </div>\n @if (!config.disableClose) {\n <kbq-divider class=\"kbq-actions-panel-container__vertical-divider\" [vertical]=\"true\" />\n <button\n class=\"kbq-actions-panel-container__close-button\"\n [kbqTooltip]=\"localeConfiguration()!.closeTooltip\"\n [kbqTooltipOffset]=\"16\"\n (click)=\"close()\"\n color=\"contrast\"\n kbq-button\n >\n <i kbq-icon=\"kbq-xmark-circle_16\"></i>\n </button>\n }\n `,\n styleUrls: [\n './actions-panel-tokens.scss',\n './actions-panel-container.scss'\n ],\n animations: [KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION],\n host: {\n class: 'kbq-actions-panel-container',\n '[class.kbq-actions-panel-container_rtl]': 'config.direction === \"rtl\"',\n '[@state]': 'animationState',\n '(@state.start)': 'onAnimationStart($event)',\n '(@state.done)': 'onAnimationDone($event)',\n '(keydown.escape)': 'handleEscape($event)'\n },\n // Uses the `Default` change detection strategy as parent `CdkDialogContainer`:\n // https://github.com/angular/components/blob/18.2.14/src/cdk/dialog/dialog-container.ts#L60\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqActionsPanelContainer extends CdkDialogContainer implements OnDestroy {\n /**\n * The state of the actions panel animations.\n *\n * @docs-private\n */\n protected animationState: 'void' | 'visible' | 'hidden' = 'void';\n\n /**\n * Emits whenever the state of the animation changes.\n *\n * @docs-private\n */\n readonly animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** Whether the actions panel container has been destroyed. */\n private destroyed: boolean;\n\n /**\n * Actions panel configuration.\n *\n * @docs-private\n */\n protected readonly config = inject(KbqActionsPanelConfig);\n\n private readonly actionsPanel = inject(KbqActionsPanel);\n private readonly renderer = inject(Renderer2);\n private readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n /**\n * Actions panel locale configuration.\n *\n * @docs-private\n */\n protected readonly localeConfiguration = toSignal<KbqActionsPanelLocaleConfiguration>(\n this.localeService\n ? this.localeService.changes.pipe(map(() => this.localeService!.getParams('actionsPanel')))\n : of(inject(KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION))\n );\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.destroyed = true;\n }\n\n /**\n * Close the actions panel.\n *\n * @docs-private\n */\n protected close(): void {\n this.actionsPanel.close();\n }\n\n /**\n * Start animation of the actions panel entrance into view.\n *\n * @docs-private\n */\n startOpenAnimation(): void {\n if (!this.destroyed) {\n this.animationState = 'visible';\n // animationState lives in host bindings and `detectChanges` does not refresh host bindings so we have to\n // call `markForCheck` to ensure the host view is refreshed eventually.\n this._changeDetectorRef.markForCheck();\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /**\n * Start animation of the actions panel exiting from view.\n *\n * @docs-private\n */\n startCloseAnimation(): void {\n if (!this.destroyed) {\n this.animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Handles animation done events.\n *\n * @docs-private\n */\n protected onAnimationDone(event: AnimationEvent): void {\n if (event.toState === 'visible') {\n this._trapFocus();\n }\n\n this.animationStateChanged.emit(event);\n }\n\n /**\n * Handles animation start events.\n *\n * @docs-private\n */\n protected onAnimationStart(event: AnimationEvent): void {\n this.animationStateChanged.emit(event);\n }\n\n /**\n * Handles escape key events.\n *\n * @docs-private\n */\n protected handleEscape(event: KeyboardEvent): void {\n if (!this.config.disableClose) {\n event.preventDefault();\n this.close();\n }\n }\n\n /**\n * @docs-private\n */\n protected override _contentAttached(): void {\n this.applyContainerClass();\n }\n\n private applyContainerClass(): void {\n const { containerClass } = this.config;\n\n if (containerClass) {\n if (Array.isArray(containerClass)) {\n containerClass.forEach((cssClass) => this.renderer.addClass(this._elementRef.nativeElement, cssClass));\n } else {\n this.renderer.addClass(this._elementRef.nativeElement, containerClass);\n }\n }\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { filter, Observable, Subject, take } from 'rxjs';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\n\n/**\n * Reference to actions panel opened by `KbqActionsPanel` service.\n */\nexport class KbqActionsPanelRef<I = unknown, R = unknown> {\n /**\n * Instance of the component into which the actions panel content is projected.\n *\n * @docs-private\n */\n containerInstance: KbqActionsPanelContainer;\n\n /** Gets an observable that is notified when the actions panel is finished closing. */\n get afterClosed(): Observable<R | undefined> {\n return this.dialogRef.closed;\n }\n\n /** Gets an observable that emits when keydown events are targeted on the overlay. */\n get keydownEvents(): Observable<KeyboardEvent> {\n return this.dialogRef.keydownEvents;\n }\n\n /** Gets an observable that is notified when the actions panel has opened and appeared. */\n get afterOpened(): Observable<void> {\n return this._afterOpened;\n }\n\n private readonly _afterOpened = new Subject<void>();\n\n /** Result to be passed down to the `afterClosed` stream. */\n private result: R | undefined;\n\n /** Handle to the timeout that's running as a fallback in case the close animation doesn't fire. */\n private closeAnimationFallbackTimeout: ReturnType<typeof setTimeout>;\n\n constructor(\n private readonly dialogRef: DialogRef<R, I>,\n containerInstance: KbqActionsPanelContainer\n ) {\n this.containerInstance = containerInstance;\n this.handleAnimation();\n this.handleOverlayDetachments();\n }\n\n /** Closes the actions panel. */\n close(result?: R): void {\n if (!this.containerInstance) {\n return;\n }\n\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'start'),\n take(1)\n )\n .subscribe(({ totalTime }) => {\n this.closeAnimationFallbackTimeout = setTimeout(\n () => this.dialogRef.close(this.result),\n totalTime + 100\n );\n });\n\n this.result = result;\n this.containerInstance.startCloseAnimation();\n this.containerInstance = null!;\n }\n\n private handleAnimation(): void {\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === 'visible'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === 'hidden'),\n take(1)\n )\n .subscribe(() => {\n clearTimeout(this.closeAnimationFallbackTimeout);\n this.dialogRef.close(this.result);\n });\n }\n\n private handleOverlayDetachments(): void {\n this.dialogRef.overlayRef\n .detachments()\n .pipe(take(1))\n .subscribe(() => {\n this.dialogRef.close(this.result);\n });\n }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { ComponentType, Overlay, OverlayContainer } from '@angular/cdk/overlay';\nimport { inject, Injectable, InjectionToken, Injector, OnDestroy, TemplateRef } from '@angular/core';\nimport { KBQ_ACTIONS_PANEL_DEFAULT_CONFIG, KbqActionsPanelConfig } from './actions-panel-config';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\nimport { KbqActionsPanelRef } from './actions-panel-ref';\n\n/** Injection token that can be used to access the data that was passed in to actions panel. */\nexport const KBQ_ACTIONS_PANEL_DATA = new InjectionToken('KBQ_ACTIONS_PANEL_DATA');\n\n/**\n * Context for actions panel template.\n */\nexport type KbqActionsPanelTemplateContext<T = unknown, D = unknown, R = unknown> = {\n /**\n * Data passed to actions panel.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-data>{{ data.KEY }}</ng-template>\n * ````\n */\n $implicit?: D | null;\n /**\n * Data passed to actions panel.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-data=\"data\">{{ data.KEY }}</ng-template>\n * ````\n */\n data?: D | null;\n /**\n * Opened actions panel reference.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-actionsPanelRef=\"actionsPanelRef\">\n * <button (click)=\"actionsPanelRef.close()\">close</button>\n * </ng-template>\n * ````\n */\n actionsPanelRef: KbqActionsPanelRef<T, R>;\n};\n\n/**\n * Selector for actions panel overlay.\n *\n * @docs-private\n */\nexport const KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR = 'kbq-actions-panel-overlay';\n\n/**\n * Selector for custom actions panel overlay container.\n *\n * @docs-private\n */\nexport const KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR = 'kbq-actions-panel-overlay-container';\n\n/**\n * Service for opening actions panel.\n */\n@Injectable({ providedIn: 'root' })\nexport class KbqActionsPanel implements OnDestroy {\n private readonly injector = inject(Injector);\n private readonly overlay = inject(Overlay);\n private readonly overlayContainer = inject(OverlayContainer);\n private readonly dialog = inject(Dialog);\n private readonly defaultConfig = inject(KBQ_ACTIONS_PANEL_DEFAULT_CONFIG);\n\n /** The reference to the currently opened actions panel. */\n private openedActionsPanelRef: KbqActionsPanelRef | null = null;\n\n ngOnDestroy() {\n this.close();\n }\n\n /**\n * Opens actions panel.\n *\n * @param componentOrTemplateRef Component to be opened into the actions panel.\n * @param config Additional configuration options for the actions panel.\n * @returns A reference to the opened actions panel.\n */\n open<T, D = unknown, R = unknown>(\n component: ComponentType<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R>;\n\n /**\n * Opens actions panel.\n *\n * @param template TemplateRef to be used as the content.\n * @param config Additional configuration options for the actions panel.\n * @returns A reference to the opened actions panel.\n */\n open<T, D = unknown, R = unknown>(\n template: TemplateRef<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R>;\n\n open<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R> {\n const _config: KbqActionsPanelConfig<D> = {\n ...(this.defaultConfig as KbqActionsPanelConfig<D>),\n ...config\n };\n const actionsPanelRef = this.openDialog<T, D, R>(componentOrTemplateRef, _config);\n\n actionsPanelRef.afterClosed.subscribe(() => {\n if (this.openedActionsPanelRef === actionsPanelRef) {\n this.openedActionsPanelRef = null;\n }\n });\n\n if (this.openedActionsPanelRef) {\n this.openedActionsPanelRef.afterClosed.subscribe(() => {\n actionsPanelRef.containerInstance?.startOpenAnimation();\n });\n this.openedActionsPanelRef.close();\n } else {\n actionsPanelRef.containerInstance.startOpenAnimation();\n }\n\n this.openedActionsPanelRef = actionsPanelRef as KbqActionsPanelRef;\n\n return actionsPanelRef;\n }\n\n /** Closes the currently opened actions panel. */\n close<R>(result?: R): void {\n this.openedActionsPanelRef?.close(result);\n }\n\n private openDialog<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config: KbqActionsPanelConfig<D> = {}\n ): KbqActionsPanelRef<T, R> {\n let actionsPanelRef!: KbqActionsPanelRef<T, R>;\n\n if (config.overlayContainer) {\n // We should override protected `_containerElement` property to set custom container without creating\n // new `OverlayContainer` instance.\n this.overlayContainer['_containerElement'] = config.overlayContainer.nativeElement;\n }\n\n const overlayContainerElement = this.overlayContainer.getContainerElement();\n\n overlayContainerElement.classList.add(KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR);\n\n const dialogRef = this.dialog.open<R, D, T>(componentOrTemplateRef, {\n ...config,\n container: KbqActionsPanelContainer,\n restoreFocus: false,\n autoFocus: null!,\n hasBackdrop: false,\n // Disable closing since we need to sync it up to the animation ourselves\n closeOnOverlayDetachments: false,\n // Disable closing since we need to sync it up to the animation ourselves\n closeOnDestroy: false,\n // Disable closing since we need to sync it up to the animation ourselves\n disableClose: true,\n scrollStrategy: config.scrollStrategy && config.scrollStrategy(this.overlay),\n positionStrategy: this.overlay.position().global().centerHorizontally().bottom(),\n templateContext: () => {\n return {\n $implicit: config.data,\n data: config.data,\n actionsPanelRef\n } satisfies KbqActionsPanelTemplateContext<T, D, R>;\n },\n injector: Injector.create({\n parent: config.injector || this.injector,\n providers: [{ provide: KbqActionsPanelConfig, useValue: config }]\n }),\n providers: (dialogRef, _dialogConfig, container) => {\n actionsPanelRef = new KbqActionsPanelRef<T, R>(dialogRef, container as KbqActionsPanelContainer);\n\n return [\n { provide: KbqActionsPanelRef, useValue: actionsPanelRef },\n { provide: KBQ_ACTIONS_PANEL_DATA, useValue: config.data }\n ];\n }\n });\n\n dialogRef.addPanelClass(KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR);\n\n if (config.overlayPanelClass) {\n dialogRef.addPanelClass(config.overlayPanelClass);\n }\n\n actionsPanelRef?.afterClosed.subscribe(() => {\n overlayContainerElement.classList.remove(KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR);\n });\n\n return actionsPanelRef;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqActionsPanel } from './actions-panel';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\n\nconst COMPONENTS = [\n KbqActionsPanelContainer\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n providers: [KbqActionsPanel]\n})\nexport class KbqActionsPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, InjectionToken, EventEmitter, TemplateRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, Host, Optional, ViewChild, ContentChildren, Input, Output, forwardRef,
|
|
2
|
+
import { Directive, InjectionToken, inject, DestroyRef, EventEmitter, TemplateRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, Host, Optional, ViewChild, ContentChildren, Input, Output, forwardRef, NgModule } from '@angular/core';
|
|
3
3
|
import * as i2$1 from '@angular/cdk/bidi';
|
|
4
4
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
5
|
import * as i1$1 from '@angular/cdk/overlay';
|
|
@@ -11,10 +11,11 @@ import * as i2 from '@angular/common';
|
|
|
11
11
|
import { DOCUMENT, NgClass } from '@angular/common';
|
|
12
12
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
13
13
|
import { ESCAPE, ENTER, TAB, DOWN_ARROW, UP_ARROW } from '@koobiq/cdk/keycodes';
|
|
14
|
-
import { KBQ_OPTION_PARENT_COMPONENT, KbqOption, KbqOptgroup, KbqOptionSelectionChange, defaultOffsetY, KbqOptionModule
|
|
14
|
+
import { KBQ_OPTION_PARENT_COMPONENT, KbqOption, KbqOptgroup, KBQ_WINDOW, KbqOptionSelectionChange, defaultOffsetY, KbqOptionModule } from '@koobiq/components/core';
|
|
15
15
|
import * as i1 from '@koobiq/components/form-field';
|
|
16
16
|
import { defer, merge, Subscription, Subject, of, fromEvent } from 'rxjs';
|
|
17
|
-
import { take, switchMap,
|
|
17
|
+
import { delay, filter, take, switchMap, map, tap } from 'rxjs/operators';
|
|
18
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
18
19
|
import { ActiveDescendantKeyManager } from '@koobiq/cdk/a11y';
|
|
19
20
|
|
|
20
21
|
/**
|
|
@@ -95,6 +96,7 @@ class KbqAutocomplete {
|
|
|
95
96
|
this.changeDetectorRef = changeDetectorRef;
|
|
96
97
|
this.elementRef = elementRef;
|
|
97
98
|
this.parentFormField = parentFormField;
|
|
99
|
+
this.destroyRef = inject(DestroyRef);
|
|
98
100
|
/** Unique ID to be used by autocomplete trigger's "aria-owns" property. */
|
|
99
101
|
this.id = `kbq-autocomplete-${uniqueAutocompleteIdCounter++}`;
|
|
100
102
|
/** Whether the autocomplete panel should be visible, depending on option length. */
|
|
@@ -115,6 +117,11 @@ class KbqAutocomplete {
|
|
|
115
117
|
ngAfterContentInit() {
|
|
116
118
|
this.keyManager = new ActiveDescendantKeyManager(this.options);
|
|
117
119
|
this.setVisibility();
|
|
120
|
+
this.parentFormField?.control.ngControl?.valueChanges
|
|
121
|
+
?.pipe(delay(0), filter((value) => value === null || value === undefined || value === ''), takeUntilDestroyed(this.destroyRef))
|
|
122
|
+
.subscribe(() => {
|
|
123
|
+
this.options.filter(({ selected }) => selected).forEach((option) => option.deselect(false));
|
|
124
|
+
});
|
|
118
125
|
}
|
|
119
126
|
setScrollTop(scrollTop) {
|
|
120
127
|
if (this.panel) {
|
|
@@ -219,7 +226,7 @@ const KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER = {
|
|
|
219
226
|
* Provider that allows the autocomplete to register as a ControlValueAccessor.
|
|
220
227
|
* @docs-private
|
|
221
228
|
*/
|
|
222
|
-
const
|
|
229
|
+
const KBQ_AUTOCOMPLETE_VALUE_ACCESSOR = {
|
|
223
230
|
provide: NG_VALUE_ACCESSOR,
|
|
224
231
|
useExisting: forwardRef(() => KbqAutocompleteTrigger),
|
|
225
232
|
multi: true
|
|
@@ -298,6 +305,7 @@ class KbqAutocompleteTrigger {
|
|
|
298
305
|
this.canOpenOnNextFocus = true;
|
|
299
306
|
/** Stream of keyboard events that can close the panel. */
|
|
300
307
|
this.closeKeyEventStream = new Subject();
|
|
308
|
+
this.window = inject(KBQ_WINDOW);
|
|
301
309
|
/** `View -> model callback called when value changes` */
|
|
302
310
|
this.onChange = () => { };
|
|
303
311
|
/** `View -> model callback called when autocomplete has been touched` */
|
|
@@ -312,9 +320,8 @@ class KbqAutocompleteTrigger {
|
|
|
312
320
|
// pane was closed, in order to avoid reopening it unintentionally.
|
|
313
321
|
this.canOpenOnNextFocus = this.document.activeElement !== this.elementRef.nativeElement || this.panelOpen;
|
|
314
322
|
};
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
zone.runOutsideAngular(() => window.addEventListener('blur', this.windowBlurHandler));
|
|
323
|
+
if (this.window) {
|
|
324
|
+
zone.runOutsideAngular(() => this.window.addEventListener('blur', this.windowBlurHandler));
|
|
318
325
|
}
|
|
319
326
|
this.scrollStrategy = scrollStrategy;
|
|
320
327
|
}
|
|
@@ -332,7 +339,7 @@ class KbqAutocompleteTrigger {
|
|
|
332
339
|
}
|
|
333
340
|
}
|
|
334
341
|
ngOnDestroy() {
|
|
335
|
-
this.
|
|
342
|
+
this.window.removeEventListener('blur', this.windowBlurHandler);
|
|
336
343
|
this.viewportSubscription.unsubscribe();
|
|
337
344
|
this.componentDestroyed = true;
|
|
338
345
|
this.destroyPanel();
|
|
@@ -670,12 +677,8 @@ class KbqAutocompleteTrigger {
|
|
|
670
677
|
const element = this.elementRef.nativeElement;
|
|
671
678
|
return !element.readOnly && !element.disabled && !this._autocompleteDisabled;
|
|
672
679
|
}
|
|
673
|
-
/** Use defaultView of injected document if available or fallback to global window reference */
|
|
674
|
-
getWindow() {
|
|
675
|
-
return this.document?.defaultView || window;
|
|
676
|
-
}
|
|
677
680
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqAutocompleteTrigger, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.Overlay }, { token: i0.NgZone }, { token: KBQ_AUTOCOMPLETE_SCROLL_STRATEGY }, { token: i2$1.Directionality, optional: true }, { token: i1.KbqFormField, host: true, optional: true }, { token: i4.ViewportRuler }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
678
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqAutocompleteTrigger, selector: "input[kbqAutocomplete], textarea[kbqAutocomplete]", inputs: { autocomplete: ["kbqAutocomplete", "autocomplete"], connectedTo: ["kbqAutocompleteConnectedTo", "connectedTo"], autocompleteAttribute: ["autocomplete", "autocompleteAttribute"], autocompleteDisabled: ["kbqAutocompleteDisabled", "autocompleteDisabled"], onInputBlur: ["kbqAutocompleteOnBlur", "onInputBlur"] }, host: { listeners: { "focusin": "handleFocus()", "blur": "onTouched()", "input": "handleInput($event)", "keydown": "handleKeydown($event)", "click": "handleClick($event)" }, properties: { "attr.autocomplete": "autocompleteAttribute" }, classAttribute: "kbq-autocomplete-trigger" }, providers: [
|
|
681
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqAutocompleteTrigger, selector: "input[kbqAutocomplete], textarea[kbqAutocomplete]", inputs: { autocomplete: ["kbqAutocomplete", "autocomplete"], connectedTo: ["kbqAutocompleteConnectedTo", "connectedTo"], autocompleteAttribute: ["autocomplete", "autocompleteAttribute"], autocompleteDisabled: ["kbqAutocompleteDisabled", "autocompleteDisabled"], onInputBlur: ["kbqAutocompleteOnBlur", "onInputBlur"] }, host: { listeners: { "focusin": "handleFocus()", "blur": "onTouched()", "input": "handleInput($event)", "keydown": "handleKeydown($event)", "click": "handleClick($event)" }, properties: { "attr.autocomplete": "autocompleteAttribute" }, classAttribute: "kbq-autocomplete-trigger" }, providers: [KBQ_AUTOCOMPLETE_VALUE_ACCESSOR], exportAs: ["kbqAutocompleteTrigger"], ngImport: i0 }); }
|
|
679
682
|
}
|
|
680
683
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqAutocompleteTrigger, decorators: [{
|
|
681
684
|
type: Directive,
|
|
@@ -693,7 +696,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
693
696
|
'(click)': 'handleClick($event)'
|
|
694
697
|
},
|
|
695
698
|
exportAs: 'kbqAutocompleteTrigger',
|
|
696
|
-
providers: [
|
|
699
|
+
providers: [KBQ_AUTOCOMPLETE_VALUE_ACCESSOR]
|
|
697
700
|
}]
|
|
698
701
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.Overlay }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
699
702
|
type: Inject,
|
|
@@ -725,16 +728,12 @@ class KbqAutocompleteModule {
|
|
|
725
728
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
726
729
|
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: KbqAutocompleteModule, declarations: [KbqAutocomplete, KbqAutocompleteTrigger, KbqAutocompleteOrigin], imports: [KbqOptionModule,
|
|
727
730
|
OverlayModule,
|
|
728
|
-
KbqCommonModule,
|
|
729
731
|
NgClass], exports: [KbqAutocomplete,
|
|
730
732
|
KbqOptionModule,
|
|
731
733
|
KbqAutocompleteTrigger,
|
|
732
|
-
KbqAutocompleteOrigin
|
|
733
|
-
KbqCommonModule] }); }
|
|
734
|
+
KbqAutocompleteOrigin] }); }
|
|
734
735
|
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqAutocompleteModule, providers: [KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [KbqOptionModule,
|
|
735
|
-
OverlayModule,
|
|
736
|
-
KbqCommonModule, KbqOptionModule,
|
|
737
|
-
KbqCommonModule] }); }
|
|
736
|
+
OverlayModule, KbqOptionModule] }); }
|
|
738
737
|
}
|
|
739
738
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqAutocompleteModule, decorators: [{
|
|
740
739
|
type: NgModule,
|
|
@@ -742,15 +741,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
742
741
|
imports: [
|
|
743
742
|
KbqOptionModule,
|
|
744
743
|
OverlayModule,
|
|
745
|
-
KbqCommonModule,
|
|
746
744
|
NgClass
|
|
747
745
|
],
|
|
748
746
|
exports: [
|
|
749
747
|
KbqAutocomplete,
|
|
750
748
|
KbqOptionModule,
|
|
751
749
|
KbqAutocompleteTrigger,
|
|
752
|
-
KbqAutocompleteOrigin
|
|
753
|
-
KbqCommonModule
|
|
750
|
+
KbqAutocompleteOrigin
|
|
754
751
|
],
|
|
755
752
|
declarations: [KbqAutocomplete, KbqAutocompleteTrigger, KbqAutocompleteOrigin],
|
|
756
753
|
providers: [KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER]
|
|
@@ -761,5 +758,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
761
758
|
* Generated bundle index. Do not edit.
|
|
762
759
|
*/
|
|
763
760
|
|
|
764
|
-
export { AUTOCOMPLETE_PANEL_HEIGHT, KBQ_AUTOCOMPLETE_DEFAULT_OPTIONS, KBQ_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY, KBQ_AUTOCOMPLETE_SCROLL_STRATEGY, KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY, KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER, KbqAutocomplete, KbqAutocompleteModule, KbqAutocompleteOrigin, KbqAutocompleteSelectedEvent, KbqAutocompleteTrigger,
|
|
761
|
+
export { AUTOCOMPLETE_PANEL_HEIGHT, KBQ_AUTOCOMPLETE_DEFAULT_OPTIONS, KBQ_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY, KBQ_AUTOCOMPLETE_SCROLL_STRATEGY, KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY, KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER, KBQ_AUTOCOMPLETE_VALUE_ACCESSOR, KbqAutocomplete, KbqAutocompleteModule, KbqAutocompleteOrigin, KbqAutocompleteSelectedEvent, KbqAutocompleteTrigger, getKbqAutocompleteMissingPanelError };
|
|
765
762
|
//# sourceMappingURL=koobiq-components-autocomplete.mjs.map
|