@coreui/angular-pro 4.0.0-alpha.3 → 4.0.0-alpha.4

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.
Files changed (31) hide show
  1. package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +1 -1
  2. package/esm2020/lib/multi-select/index.mjs +2 -0
  3. package/esm2020/lib/multi-select/multi-select/multi-select.component.mjs +424 -0
  4. package/esm2020/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +28 -0
  5. package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +20 -0
  6. package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +25 -0
  7. package/esm2020/lib/multi-select/multi-select-option/multi-select-option.component.mjs +133 -0
  8. package/esm2020/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +56 -0
  9. package/esm2020/lib/multi-select/multi-select.module.mjs +50 -0
  10. package/esm2020/lib/multi-select/multi-select.service.mjs +23 -0
  11. package/esm2020/lib/multi-select/multi-select.type.mjs +2 -0
  12. package/esm2020/lib/multi-select/public_api.mjs +7 -0
  13. package/esm2020/lib/popover/popover.directive.mjs +1 -1
  14. package/esm2020/public-api.mjs +2 -1
  15. package/fesm2015/coreui-angular-pro.mjs +733 -16
  16. package/fesm2015/coreui-angular-pro.mjs.map +1 -1
  17. package/fesm2020/coreui-angular-pro.mjs +726 -16
  18. package/fesm2020/coreui-angular-pro.mjs.map +1 -1
  19. package/lib/multi-select/index.d.ts +1 -0
  20. package/lib/multi-select/multi-select/multi-select.component.d.ts +101 -0
  21. package/lib/multi-select/multi-select-native-select/multi-select-native-select.component.d.ts +13 -0
  22. package/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.d.ts +9 -0
  23. package/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.d.ts +10 -0
  24. package/lib/multi-select/multi-select-option/multi-select-option.component.d.ts +45 -0
  25. package/lib/multi-select/multi-select-tag/multi-select-tag.component.d.ts +21 -0
  26. package/lib/multi-select/multi-select.module.d.ts +16 -0
  27. package/lib/multi-select/multi-select.service.d.ts +12 -0
  28. package/lib/multi-select/multi-select.type.d.ts +34 -0
  29. package/lib/multi-select/public_api.d.ts +6 -0
  30. package/package.json +1 -1
  31. package/public-api.d.ts +1 -0
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Input, NgModule, HostBinding, Injectable, Component, EventEmitter, Output, ContentChildren, HostListener, Inject, ViewChild, Optional, ContentChild, ElementRef, PLATFORM_ID, TemplateRef, ViewContainerRef, Pipe, ChangeDetectionStrategy, VERSION } from '@angular/core';
2
+ import { Directive, Input, NgModule, HostBinding, Injectable, Component, EventEmitter, Output, ContentChildren, HostListener, Inject, ViewChild, Optional, ContentChild, ChangeDetectionStrategy, forwardRef, ElementRef, PLATFORM_ID, TemplateRef, ViewContainerRef, Pipe, VERSION } from '@angular/core';
3
3
  import * as i2 from '@angular/common';
4
4
  import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';
5
5
  import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
@@ -10,10 +10,12 @@ import { NavigationEnd, RouterModule } from '@angular/router';
10
10
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
11
11
  import { filter } from 'rxjs/operators';
12
12
  import { createPopper } from '@popperjs/core';
13
- import * as i1$1 from '@angular/cdk/layout';
14
- import * as i1$2 from '@angular/cdk/a11y';
15
- import { A11yModule } from '@angular/cdk/a11y';
16
- import * as i5 from '@coreui/icons-angular';
13
+ import * as i1$1 from '@angular/cdk/a11y';
14
+ import { FocusKeyManager, A11yModule } from '@angular/cdk/a11y';
15
+ import * as i5 from '@angular/forms';
16
+ import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
17
+ import * as i1$2 from '@angular/cdk/layout';
18
+ import * as i5$1 from '@coreui/icons-angular';
17
19
  import { IconModule } from '@coreui/icons-angular';
18
20
 
19
21
  var BreakpointInfix;
@@ -4329,6 +4331,714 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
4329
4331
  }]
4330
4332
  }] });
4331
4333
 
4334
+ class MultiSelectOptgroupLabelComponent {
4335
+ constructor() { }
4336
+ get hostClasses() {
4337
+ return {
4338
+ 'form-multi-select-optgroup-label': true
4339
+ };
4340
+ }
4341
+ }
4342
+ MultiSelectOptgroupLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectOptgroupLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4343
+ MultiSelectOptgroupLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectOptgroupLabelComponent, selector: "c-multi-select-optgroup-label", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] });
4344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectOptgroupLabelComponent, decorators: [{
4345
+ type: Component,
4346
+ args: [{ selector: 'c-multi-select-optgroup-label', template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
4347
+ }], ctorParameters: function () { return []; }, propDecorators: { hostClasses: [{
4348
+ type: HostBinding,
4349
+ args: ['class']
4350
+ }] } });
4351
+
4352
+ class MultiSelectOptgroupComponent {
4353
+ get hostClasses() {
4354
+ return {
4355
+ 'form-multi-select-options': true
4356
+ };
4357
+ }
4358
+ }
4359
+ MultiSelectOptgroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectOptgroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4360
+ MultiSelectOptgroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectOptgroupComponent, selector: "c-multi-select-optgroup", inputs: { label: "label", disabled: "disabled" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<c-multi-select-optgroup-label *ngIf=\"label\">{{label}}</c-multi-select-optgroup-label>\n<ng-content></ng-content>\n", styles: [":host{display:block}\n"], components: [{ type: MultiSelectOptgroupLabelComponent, selector: "c-multi-select-optgroup-label" }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4361
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectOptgroupComponent, decorators: [{
4362
+ type: Component,
4363
+ args: [{ selector: 'c-multi-select-optgroup', template: "<c-multi-select-optgroup-label *ngIf=\"label\">{{label}}</c-multi-select-optgroup-label>\n<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
4364
+ }], propDecorators: { label: [{
4365
+ type: Input
4366
+ }], disabled: [{
4367
+ type: Input
4368
+ }], hostClasses: [{
4369
+ type: HostBinding,
4370
+ args: ['class']
4371
+ }] } });
4372
+
4373
+ class MultiSelectService {
4374
+ constructor() {
4375
+ this.multiSelectState = new BehaviorSubject({});
4376
+ this.multiSelectState$ = this.multiSelectState.asObservable();
4377
+ this.multiSelectVisible = new BehaviorSubject(false);
4378
+ this.multiSelectVisible$ = this.multiSelectVisible.asObservable();
4379
+ }
4380
+ toggleOption(option) {
4381
+ this.multiSelectState.next(option);
4382
+ }
4383
+ toggleVisible(visible) {
4384
+ this.multiSelectVisible.next(visible);
4385
+ }
4386
+ }
4387
+ MultiSelectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4388
+ MultiSelectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectService });
4389
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectService, decorators: [{
4390
+ type: Injectable
4391
+ }], ctorParameters: function () { return []; } });
4392
+
4393
+ class MultiSelectOptionComponent {
4394
+ constructor(elementRef, renderer, focusMonitor, multiSelectService) {
4395
+ this.elementRef = elementRef;
4396
+ this.renderer = renderer;
4397
+ this.focusMonitor = focusMonitor;
4398
+ this.multiSelectService = multiSelectService;
4399
+ this._disabled = false;
4400
+ this._selected = false;
4401
+ this.optionsStyle = 'checkbox';
4402
+ this.visible = true;
4403
+ this.selectedChange = new EventEmitter();
4404
+ this.hasContent = true;
4405
+ }
4406
+ set disabled(value) {
4407
+ this._disabled = coerceBooleanProperty(value);
4408
+ }
4409
+ get disabled() {
4410
+ return this._disabled;
4411
+ }
4412
+ set selected(value) {
4413
+ const newValue = coerceBooleanProperty(value);
4414
+ if (this._selected !== newValue) {
4415
+ this._selected = newValue;
4416
+ this.selectedChange.emit(newValue);
4417
+ this.multiSelectService.toggleOption(this);
4418
+ if (newValue) {
4419
+ this.focus();
4420
+ }
4421
+ }
4422
+ }
4423
+ get selected() {
4424
+ return this._selected;
4425
+ }
4426
+ get hostClasses() {
4427
+ return {
4428
+ 'form-multi-select-option': true,
4429
+ 'form-multi-selected': this.selected,
4430
+ [`form-multi-select-option-with-${this.optionsStyle}`]: !!this.optionsStyle,
4431
+ disabled: this.disabled,
4432
+ 'd-none': !this.visible
4433
+ };
4434
+ }
4435
+ get tabIndex() {
4436
+ return this.disabled ? '-1' : '0';
4437
+ }
4438
+ get ariaDisabled() {
4439
+ return this.disabled || null;
4440
+ }
4441
+ get ariaSelected() {
4442
+ return this.selected;
4443
+ }
4444
+ onKeyUp($event) {
4445
+ if ($event.key === 'Enter' || $event.code === 'Space') {
4446
+ $event.preventDefault();
4447
+ this.selected = this.disabled ? this.selected : !this.selected;
4448
+ }
4449
+ }
4450
+ onClick() {
4451
+ this.selected = this.disabled ? this.selected : !this.selected;
4452
+ }
4453
+ ngAfterContentInit() {
4454
+ setTimeout(() => {
4455
+ this.hasContent = !!this.content?.nativeElement.childNodes.length;
4456
+ });
4457
+ if (!this.label) {
4458
+ this.label = this.elementRef.nativeElement.innerText || this.value;
4459
+ }
4460
+ if (this.value === undefined) {
4461
+ this.value = this.elementRef.nativeElement.innerText || this.label;
4462
+ }
4463
+ }
4464
+ setActiveStyles() {
4465
+ }
4466
+ setInactiveStyles() {
4467
+ }
4468
+ getLabel() {
4469
+ return (this.label ?? this.value);
4470
+ }
4471
+ focus(origin) {
4472
+ this.focusMonitor.focusVia(this.elementRef, 'program');
4473
+ }
4474
+ }
4475
+ MultiSelectOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectOptionComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1$1.FocusMonitor }, { token: MultiSelectService }], target: i0.ɵɵFactoryTarget.Component });
4476
+ MultiSelectOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectOptionComponent, selector: "c-multi-select-option", inputs: { disabled: "disabled", selected: "selected", optionsStyle: "optionsStyle", label: "label", value: "value", visible: "visible" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "keydown": "onKeyUp($event)", "click": "onClick($event)" }, properties: { "class": "this.hostClasses", "attr.tabindex": "this.tabIndex", "attr.disabled": "this.ariaDisabled", "attr.aria-disabled": "this.ariaDisabled", "attr.aria-selected": "this.ariaSelected" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["contentDiv"], descendants: true }], ngImport: i0, template: "<div #contentDiv><ng-content></ng-content></div>\n<div *ngIf=\"!hasContent\">\n {{label ?? value}}\n</div>\n\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}:host.form-multi-select-option.disabled,:host.form-multi-select-option:disabled{pointer-events:all;cursor:default}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4477
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectOptionComponent, decorators: [{
4478
+ type: Component,
4479
+ args: [{ selector: 'c-multi-select-option', template: "<div #contentDiv><ng-content></ng-content></div>\n<div *ngIf=\"!hasContent\">\n {{label ?? value}}\n</div>\n\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}:host.form-multi-select-option.disabled,:host.form-multi-select-option:disabled{pointer-events:all;cursor:default}\n"] }]
4480
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1$1.FocusMonitor }, { type: MultiSelectService }]; }, propDecorators: { disabled: [{
4481
+ type: Input
4482
+ }], selected: [{
4483
+ type: Input
4484
+ }], optionsStyle: [{
4485
+ type: Input
4486
+ }], label: [{
4487
+ type: Input
4488
+ }], value: [{
4489
+ type: Input
4490
+ }], visible: [{
4491
+ type: Input
4492
+ }], selectedChange: [{
4493
+ type: Output
4494
+ }], content: [{
4495
+ type: ViewChild,
4496
+ args: ['contentDiv']
4497
+ }], hostClasses: [{
4498
+ type: HostBinding,
4499
+ args: ['class']
4500
+ }], tabIndex: [{
4501
+ type: HostBinding,
4502
+ args: ['attr.tabindex']
4503
+ }], ariaDisabled: [{
4504
+ type: HostBinding,
4505
+ args: ['attr.disabled']
4506
+ }, {
4507
+ type: HostBinding,
4508
+ args: ['attr.aria-disabled']
4509
+ }], ariaSelected: [{
4510
+ type: HostBinding,
4511
+ args: ['attr.aria-selected']
4512
+ }], onKeyUp: [{
4513
+ type: HostListener,
4514
+ args: ['keydown', ['$event']]
4515
+ }], onClick: [{
4516
+ type: HostListener,
4517
+ args: ['click', ['$event']]
4518
+ }] } });
4519
+
4520
+ class MultiSelectTagComponent {
4521
+ constructor(multiSelectService) {
4522
+ this.multiSelectService = multiSelectService;
4523
+ this.multiselectVisible = false;
4524
+ this.remove = new EventEmitter();
4525
+ }
4526
+ get hostClasses() {
4527
+ return {
4528
+ 'form-multi-select-tag': true
4529
+ };
4530
+ }
4531
+ ngOnInit() {
4532
+ this.multiselectSubscribe();
4533
+ }
4534
+ ngOnDestroy() {
4535
+ this.multiselectSubscribe(false);
4536
+ }
4537
+ handleRemove($event) {
4538
+ if (this.option) {
4539
+ this.option.selected = false;
4540
+ this.remove.emit(this.option);
4541
+ }
4542
+ }
4543
+ multiselectSubscribe(subscribe = true) {
4544
+ if (subscribe) {
4545
+ this.multiselectVisibleSubscription =
4546
+ this.multiSelectService.multiSelectVisible$.subscribe((visible) => {
4547
+ setTimeout(() => {
4548
+ this.multiselectVisible = visible;
4549
+ });
4550
+ });
4551
+ }
4552
+ else {
4553
+ this.multiselectVisibleSubscription.unsubscribe();
4554
+ }
4555
+ }
4556
+ }
4557
+ MultiSelectTagComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectTagComponent, deps: [{ token: MultiSelectService }], target: i0.ɵɵFactoryTarget.Component });
4558
+ MultiSelectTagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectTagComponent, selector: "c-multi-select-tag", inputs: { option: "option" }, outputs: { remove: "remove" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-template [ngIfElse]=\"elseContent\"\n [ngIf]=\"!!option\">{{option.label ?? option.value ?? 'undefined'}}</ng-template>\n<ng-template #elseContent>\n <ng-content></ng-content>\n</ng-template>\n<button (click)=\"handleRemove($event)\" *ngIf=\"!option?.disabled\" [disabled]=\"!multiselectVisible\" aria-label=\"Clear\"\n cButtonClose class=\"form-multi-select-tag-delete close btn btn-xs\" type=\"button\">\n <span aria-hidden=\"true\" class=\"visually-hidden\">x</span>\n</button>\n", styles: [":host .btn-xs{padding-left:.125rem;padding-right:.125rem;font-size:.575rem;border-radius:.2rem}:host.form-multi-select-tag{-webkit-user-select:none;user-select:none;pointer-events:all}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ButtonCloseDirective, selector: "[cButtonClose]", inputs: ["white"] }] });
4559
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectTagComponent, decorators: [{
4560
+ type: Component,
4561
+ args: [{ selector: 'c-multi-select-tag', template: "<ng-template [ngIfElse]=\"elseContent\"\n [ngIf]=\"!!option\">{{option.label ?? option.value ?? 'undefined'}}</ng-template>\n<ng-template #elseContent>\n <ng-content></ng-content>\n</ng-template>\n<button (click)=\"handleRemove($event)\" *ngIf=\"!option?.disabled\" [disabled]=\"!multiselectVisible\" aria-label=\"Clear\"\n cButtonClose class=\"form-multi-select-tag-delete close btn btn-xs\" type=\"button\">\n <span aria-hidden=\"true\" class=\"visually-hidden\">x</span>\n</button>\n", styles: [":host .btn-xs{padding-left:.125rem;padding-right:.125rem;font-size:.575rem;border-radius:.2rem}:host.form-multi-select-tag{-webkit-user-select:none;user-select:none;pointer-events:all}\n"] }]
4562
+ }], ctorParameters: function () { return [{ type: MultiSelectService }]; }, propDecorators: { option: [{
4563
+ type: Input
4564
+ }], remove: [{
4565
+ type: Output
4566
+ }], hostClasses: [{
4567
+ type: HostBinding,
4568
+ args: ['class']
4569
+ }] } });
4570
+
4571
+ class MultiSelectNativeSelectComponent {
4572
+ constructor(changeDetectorRef) {
4573
+ this.changeDetectorRef = changeDetectorRef;
4574
+ this.form = '';
4575
+ this.id = '';
4576
+ }
4577
+ }
4578
+ MultiSelectNativeSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectNativeSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4579
+ MultiSelectNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectNativeSelectComponent, selector: "c-multi-select-native-select", inputs: { form: "form", id: "id", multiple: "multiple", name: "name", options: "options" }, ngImport: i0, template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\">\n <option\n *ngFor=\"let option of options\"\n [label]=\"option.label\"\n [selected]=\"option.selected\"\n [value]=\"option.value\"\n tabindex=\"-1\"\n ></option>\n</select>\n\n", styles: [":host{display:none}\n"], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4580
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectNativeSelectComponent, decorators: [{
4581
+ type: Component,
4582
+ args: [{ selector: 'c-multi-select-native-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\">\n <option\n *ngFor=\"let option of options\"\n [label]=\"option.label\"\n [selected]=\"option.selected\"\n [value]=\"option.value\"\n tabindex=\"-1\"\n ></option>\n</select>\n\n", styles: [":host{display:none}\n"] }]
4583
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { form: [{
4584
+ type: Input
4585
+ }], id: [{
4586
+ type: Input
4587
+ }], multiple: [{
4588
+ type: Input
4589
+ }], name: [{
4590
+ type: Input
4591
+ }], options: [{
4592
+ type: Input
4593
+ }] } });
4594
+
4595
+ // const flattenArray = (options: IOption[]): IOption[] => {
4596
+ // return options.reduce((acc: IOption[], val: IOption) => {
4597
+ // return acc.concat(Array.isArray(val.options) ? flattenArray(val.options) : val);
4598
+ // }, []);
4599
+ // };
4600
+ //
4601
+ // const getSelectedOptions = (options: IOption[]) => {
4602
+ // return flattenArray(options).filter((option: IOption) => {
4603
+ // if (option.selected) {
4604
+ // return option;
4605
+ // }
4606
+ // return;
4607
+ // });
4608
+ // };
4609
+ class MultiSelectComponent {
4610
+ constructor(elementRef, renderer, ngZone, changeDetectorRef, viewContainerRef, focusMonitor, multiSelectService) {
4611
+ this.elementRef = elementRef;
4612
+ this.renderer = renderer;
4613
+ this.ngZone = ngZone;
4614
+ this.changeDetectorRef = changeDetectorRef;
4615
+ this.viewContainerRef = viewContainerRef;
4616
+ this.focusMonitor = focusMonitor;
4617
+ this.multiSelectService = multiSelectService;
4618
+ this.onChange = (value) => { };
4619
+ this.cleaner = true;
4620
+ this._disabled = false;
4621
+ this._multiple = false;
4622
+ this.nativeName = '';
4623
+ this.nativeId = '';
4624
+ this.options = [];
4625
+ this.optionsMaxHeight = 'auto';
4626
+ this.optionsStyle = 'checkbox';
4627
+ this.placeholder = 'Select...';
4628
+ this.search = true;
4629
+ this.searchNoResultsLabel = 'no items';
4630
+ this.selectAll = true;
4631
+ this.selectAllLabel = 'Select all options';
4632
+ this.selectionType = 'tags';
4633
+ this.selectionTypeCounterText = 'item(s) selected';
4634
+ this._value = [''];
4635
+ this.valueChange = new EventEmitter();
4636
+ this._visible = false;
4637
+ this.visibleChange = new EventEmitter();
4638
+ this.isDropdownVisible = false;
4639
+ this._selectedOptions = [];
4640
+ this._tabIndex = '-1';
4641
+ this.visibleOptions = 0;
4642
+ this._inputValue = '';
4643
+ this._subtreeFocused = this.focusOrigin(null);
4644
+ }
4645
+ writeValue(value) {
4646
+ this.onChange(this.value);
4647
+ }
4648
+ registerOnChange(fn) {
4649
+ this.onChange = fn;
4650
+ }
4651
+ registerOnTouched(fn) {
4652
+ }
4653
+ setDisabledState(isDisabled) {
4654
+ this.disabled = isDisabled;
4655
+ }
4656
+ set disabled(value) {
4657
+ this._disabled = coerceBooleanProperty(value);
4658
+ }
4659
+ get disabled() {
4660
+ return this._disabled;
4661
+ }
4662
+ set multiple(value) {
4663
+ this._multiple = coerceBooleanProperty(value);
4664
+ }
4665
+ get multiple() {
4666
+ return this._multiple;
4667
+ }
4668
+ set value(value) {
4669
+ const newValue = Array.isArray(value) ? [...value] : [value ?? ''];
4670
+ if (this._value.toString() !== newValue.toString()) {
4671
+ this._value = newValue;
4672
+ this.writeValue(this.value);
4673
+ this.updateNativeSelect();
4674
+ this.valueChange.emit(this.value);
4675
+ }
4676
+ }
4677
+ get value() {
4678
+ return this.multiple ? [...this._value] : this._value[0]?.toString() ?? '';
4679
+ }
4680
+ set visible(value) {
4681
+ const newValue = coerceBooleanProperty(value);
4682
+ if (newValue !== this._visible) {
4683
+ this._visible = newValue;
4684
+ this.multiSelectService.toggleVisible(newValue);
4685
+ }
4686
+ }
4687
+ get visible() {
4688
+ return this._visible;
4689
+ }
4690
+ get selectedOptions() {
4691
+ return this._selectedOptions;
4692
+ }
4693
+ get selectedOptionsText() {
4694
+ return this.selectedOptions.map((option) => option.label).join(', ');
4695
+ }
4696
+ get counterText() {
4697
+ return `${this.selectedOptions.length} ${this.selectionTypeCounterText}`;
4698
+ }
4699
+ get hostClasses() {
4700
+ return {
4701
+ 'form-multi-select': true,
4702
+ 'form-multi-select-selection-tags': this.selectionType === 'tags',
4703
+ show: this.visible
4704
+ };
4705
+ }
4706
+ get tabIndex() {
4707
+ return this._tabIndex;
4708
+ }
4709
+ set tabIndex(value) {
4710
+ setTimeout(() => {
4711
+ this._tabIndex = this._disabled || this.search ? '-1' : value === null ? null : '0';
4712
+ });
4713
+ }
4714
+ onKeyUp($event) {
4715
+ console.log('keyup', $event.key);
4716
+ if ($event.key === 'Escape') {
4717
+ this.visible = false;
4718
+ this.inputValue = '';
4719
+ this.setFocus();
4720
+ // this.focusMonitor.focusVia(this.inputElement ?? this.elementRef, 'keyboard');
4721
+ }
4722
+ else if ($event.key === 'Enter') {
4723
+ // } else {
4724
+ this.visible = true;
4725
+ if (!this.search) {
4726
+ this.setFocus();
4727
+ }
4728
+ }
4729
+ }
4730
+ manage($event) {
4731
+ console.log('keydown', $event.key);
4732
+ if ($event.key === 'Enter' && $event.target === this.inputElement.nativeElement) {
4733
+ $event.preventDefault();
4734
+ }
4735
+ this.listKeyManager.onKeydown($event);
4736
+ }
4737
+ onClick($event) {
4738
+ if (!this.visible) {
4739
+ this.visible = !this.visible;
4740
+ }
4741
+ this.setFocus();
4742
+ }
4743
+ set inputValue(value) {
4744
+ console.log('inputValue', value);
4745
+ this._inputValue = value;
4746
+ // this.visible = !!value ?? this.visible;
4747
+ this.filterOptions(value);
4748
+ }
4749
+ get inputValue() {
4750
+ return this._inputValue;
4751
+ }
4752
+ get subtreeFocused() {
4753
+ return this._subtreeFocused;
4754
+ }
4755
+ set subtreeFocused(value) {
4756
+ this._subtreeFocused = value;
4757
+ this.visible = value === false ? false : this.visible;
4758
+ }
4759
+ focusOrigin(origin) {
4760
+ const focused = !!origin;
4761
+ this.inputValue = focused ? this.inputValue : '';
4762
+ return focused;
4763
+ }
4764
+ ngOnInit() {
4765
+ this.tabIndex = '0';
4766
+ }
4767
+ ngOnDestroy() {
4768
+ this.multiselectSubscribe(false);
4769
+ // this.clearListeners();
4770
+ this.focusMonitor.stopMonitoring(this.elementRef);
4771
+ this.focusMonitorSubscription?.unsubscribe();
4772
+ }
4773
+ ngAfterContentInit() {
4774
+ this.visibleOptions = this.multiSelectOptions.length;
4775
+ this.multiSelectOptions.forEach((option, index) => {
4776
+ option.optionsStyle = this.optionsStyle;
4777
+ });
4778
+ this._selectedOptions = this.multiSelectOptions.filter((option) => option.selected);
4779
+ setTimeout(() => {
4780
+ this.value = this._selectedOptions.map(item => item.value);
4781
+ });
4782
+ this.value = this._selectedOptions.map(item => item.value);
4783
+ this.listKeyManager = new FocusKeyManager(this.multiSelectOptions).withHomeAndEnd();
4784
+ this.listKeyManager.skipPredicate(item => !item.visible);
4785
+ this.multiselectSubscribe();
4786
+ this.createNativeSelect();
4787
+ }
4788
+ ngAfterViewInit() {
4789
+ // this.setListeners();
4790
+ this.focusMonitorSubscription = this.focusMonitor.monitor(this.elementRef, true).subscribe((origin) => this.ngZone.run(() => {
4791
+ this.subtreeFocused = this.focusOrigin(origin);
4792
+ this.changeDetectorRef.markForCheck();
4793
+ }));
4794
+ }
4795
+ handleInputClick($event) {
4796
+ console.log('handleInputClick', $event);
4797
+ // this.visible = !this.visible;
4798
+ }
4799
+ multiselectSubscribe(subscribe = true) {
4800
+ if (subscribe) {
4801
+ this.multiselectVisibleSubscription = this.multiSelectService.multiSelectVisible$.subscribe((visible) => {
4802
+ this.isDropdownVisible = visible;
4803
+ this.visibleChange.emit(visible);
4804
+ });
4805
+ this.multiselectStateSubscription = this.multiSelectService.multiSelectState$.subscribe((option) => {
4806
+ if (option.selected === true && !this.multiple) {
4807
+ const selectedOptions = this.multiSelectOptions
4808
+ .toArray()
4809
+ .filter((item) => item.selected);
4810
+ selectedOptions.reverse().forEach((item) => {
4811
+ if (item !== option) {
4812
+ item.selected = false;
4813
+ }
4814
+ });
4815
+ }
4816
+ this._selectedOptions = this.multiSelectOptions.filter((option) => option.selected);
4817
+ this.value = this._selectedOptions.map(item => item.value);
4818
+ });
4819
+ }
4820
+ else {
4821
+ this.multiselectVisibleSubscription?.unsubscribe();
4822
+ this.multiSelectOptionsSubscription?.unsubscribe();
4823
+ this.multiselectStateSubscription?.unsubscribe();
4824
+ }
4825
+ }
4826
+ clearAllOptions($event) {
4827
+ this._selectedOptions.forEach((option) => {
4828
+ if (!option._disabled)
4829
+ option.selected = false;
4830
+ });
4831
+ this.setFocus();
4832
+ }
4833
+ selectAllOptions() {
4834
+ this.multiSelectOptions.forEach((option, index) => {
4835
+ if (!option.disabled)
4836
+ option.selected = true;
4837
+ });
4838
+ }
4839
+ // private setListeners() {
4840
+ // if (this.search) {
4841
+ // const configForInput: IListenersConfig = {
4842
+ // hostElement: this.inputElement ?? this.elementRef,
4843
+ // trigger: ['focus', 'click'],
4844
+ // callbackOn: () => {
4845
+ // console.log('focus input');
4846
+ // this.tabIndex = null;
4847
+ // // this.visible = true;
4848
+ // }
4849
+ // };
4850
+ // this.listenersService.setListeners(configForInput);
4851
+ // }
4852
+ //
4853
+ // const configForHost: IListenersConfig = {
4854
+ // hostElement: this.elementRef,
4855
+ // trigger: ['focus'],
4856
+ // callbackOn: () => {
4857
+ // console.log('focus');
4858
+ // if (this.inputElement) {
4859
+ // this.setFocus()
4860
+ // }
4861
+ // // this.inputElement?.nativeElement.focus();
4862
+ // },
4863
+ // callbackOff: () => {
4864
+ // console.log('blur');
4865
+ // }
4866
+ // };
4867
+ // this.listenersService.setListeners(configForHost);
4868
+ // }
4869
+ clearListeners() {
4870
+ // this.listenersService.clearListeners();
4871
+ }
4872
+ handleTagRemove($event) {
4873
+ this.setFocus();
4874
+ }
4875
+ setFocus() {
4876
+ const firstSelectedOption = this.selectedOptions.find((item) => item.selected) ??
4877
+ this.multiSelectOptions.find((item, index) => index === 0);
4878
+ if (firstSelectedOption && this.isDropdownVisible) {
4879
+ this.listKeyManager.setActiveItem(firstSelectedOption);
4880
+ this.changeDetectorRef.markForCheck();
4881
+ if (!this.search) {
4882
+ return;
4883
+ }
4884
+ }
4885
+ this.focusMonitor.focusVia(this.inputElement ?? this.elementRef, 'program');
4886
+ }
4887
+ filterOptions(value) {
4888
+ const searchString = value.toLowerCase() ?? '';
4889
+ this.multiSelectOptions?.forEach((item, index) => {
4890
+ if (!!searchString) {
4891
+ item.visible = item.label?.toLowerCase().includes(searchString) ?? true;
4892
+ }
4893
+ else {
4894
+ item.visible = true;
4895
+ }
4896
+ });
4897
+ this.visibleOptions = this.multiSelectOptions?.filter((item) => item.visible).length;
4898
+ }
4899
+ createNativeSelect() {
4900
+ this.viewContainerRef.clear();
4901
+ const nativeSelectRef = this.viewContainerRef.createComponent(MultiSelectNativeSelectComponent);
4902
+ this.nativeSelectRef = nativeSelectRef;
4903
+ this.updateNativeSelect();
4904
+ }
4905
+ updateNativeSelect() {
4906
+ if (!this.nativeSelectRef)
4907
+ return;
4908
+ const options = this.selectedOptions.map(item => {
4909
+ const { selected, value, label } = item;
4910
+ return { selected, value, label };
4911
+ });
4912
+ // const nativeSelectRef = this.nativeSelectRef;
4913
+ this.nativeSelectRef.instance.multiple = this.multiple;
4914
+ this.nativeSelectRef.instance.name = this.nativeName;
4915
+ this.nativeSelectRef.instance.form = this.nativeId;
4916
+ this.nativeSelectRef.instance.options = options;
4917
+ this.nativeSelectRef.instance.changeDetectorRef.detectChanges();
4918
+ }
4919
+ }
4920
+ MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i1$1.FocusMonitor }, { token: MultiSelectService }], target: i0.ɵɵFactoryTarget.Component });
4921
+ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MultiSelectComponent, selector: "c-multi-select", inputs: { cleaner: "cleaner", disabled: "disabled", multiple: "multiple", nativeName: "nativeName", nativeId: "nativeId", options: "options", optionsMaxHeight: "optionsMaxHeight", optionsStyle: "optionsStyle", placeholder: "placeholder", search: "search", searchNoResultsLabel: "searchNoResultsLabel", selectAll: "selectAll", selectAllLabel: "selectAllLabel", selectionType: "selectionType", selectionTypeCounterText: "selectionTypeCounterText", value: "value", visible: "visible" }, outputs: { valueChange: "valueChange", visibleChange: "visibleChange" }, host: { listeners: { "keyup": "onKeyUp($event)", "keydown": "manage($event)", "click": "onClick($event)" }, properties: { "class": "this.hostClasses", "attr.tabindex": "this.tabIndex" } }, providers: [
4922
+ MultiSelectService,
4923
+ // ListenersService,
4924
+ {
4925
+ provide: NG_VALUE_ACCESSOR,
4926
+ useExisting: forwardRef(() => MultiSelectComponent),
4927
+ multi: true
4928
+ }
4929
+ ], queries: [{ propertyName: "multiSelectOptions", predicate: MultiSelectOptionComponent, descendants: true }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "dropdownElement", first: true, predicate: ["dropdownElement"], descendants: true }], exportAs: ["cMultiSelect"], ngImport: i0, template: "<div class=\"form-multi-select-selection\">\n <ng-template [ngIf]=\"selectionType==='tags'\">\n <c-multi-select-tag (remove)=\"handleTagRemove($event)\" *ngFor=\"let option of selectedOptions; index as i\"\n [option]=\"option\" tabindex=\"-1\"></c-multi-select-tag>\n </ng-template>\n <ng-template [ngIf]=\"selectionType==='text'\">\n <span class=\"bg-light\">{{selectedOptionsText}}</span>\n </ng-template>\n <ng-template [ngIf]=\"selectionType==='counter'\">\n <span>{{counterText}}</span>\n </ng-template>\n</div>\n\n<input #inputElement\n [(ngModel)]=\"inputValue\"\n [disabled]=\"!search\"\n [placeholder]=\"(selectedOptions.length === 0 && selectionType!=='counter') ? placeholder : ''\"\n autocomplete=\"off\"\n class=\"form-multi-select-search ms-1\" tabindex=\"0\"\n type=\"text\">\n\n<button (click)=\"clearAllOptions($event)\"\n *ngIf=\"cleaner && selectedOptions.length > 0\"\n [disabled]=\"!isDropdownVisible\"\n aria-label=\"Clear all\"\n cButtonClose\n class=\"form-multi-select-selection-cleaner\"\n size=\"sm\">\n</button>\n\n<div #dropdownElement class=\"form-multi-select-dropdown\">\n <ng-template [ngIf]=\"visibleOptions>0\" [ngIfElse]=\"optionsEmpty\">\n <button (click)=\"selectAllOptions()\"\n *ngIf=\"selectAll && multiple\"\n class=\"form-multi-select-all\">\n {{selectAllLabel}}\n </button>\n <div #multiselectOptionsDiv\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, 'overflow': 'scroll'} : {}\"\n class=\"form-multi-select-options\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n <ng-template #optionsEmpty>\n <div class=\"form-multi-select-options-empty\">{{searchNoResultsLabel}}</div>\n </ng-template>\n</div>\n\n", styles: [":host{display:block}:host.cdk-focused{color:var(--cui-form-multi-select-focus-color, rgba(44, 56, 74, .95));background-color:var(--cui-form-multi-select-focus-bg, #fff);border-color:var(--cui-form-multi-select-focus-border-color, #6557e4);box-shadow:0 0 0 .25rem #321fdb40}:host.form-multi-select-selection-tags{padding-top:.0625rem}\n"], components: [{ type: MultiSelectTagComponent, selector: "c-multi-select-tag", inputs: ["option"], outputs: ["remove"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: ButtonCloseDirective, selector: "[cButtonClose]", inputs: ["white"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
4930
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectComponent, decorators: [{
4931
+ type: Component,
4932
+ args: [{ selector: 'c-multi-select', exportAs: 'cMultiSelect', providers: [
4933
+ MultiSelectService,
4934
+ // ListenersService,
4935
+ {
4936
+ provide: NG_VALUE_ACCESSOR,
4937
+ useExisting: forwardRef(() => MultiSelectComponent),
4938
+ multi: true
4939
+ }
4940
+ ], template: "<div class=\"form-multi-select-selection\">\n <ng-template [ngIf]=\"selectionType==='tags'\">\n <c-multi-select-tag (remove)=\"handleTagRemove($event)\" *ngFor=\"let option of selectedOptions; index as i\"\n [option]=\"option\" tabindex=\"-1\"></c-multi-select-tag>\n </ng-template>\n <ng-template [ngIf]=\"selectionType==='text'\">\n <span class=\"bg-light\">{{selectedOptionsText}}</span>\n </ng-template>\n <ng-template [ngIf]=\"selectionType==='counter'\">\n <span>{{counterText}}</span>\n </ng-template>\n</div>\n\n<input #inputElement\n [(ngModel)]=\"inputValue\"\n [disabled]=\"!search\"\n [placeholder]=\"(selectedOptions.length === 0 && selectionType!=='counter') ? placeholder : ''\"\n autocomplete=\"off\"\n class=\"form-multi-select-search ms-1\" tabindex=\"0\"\n type=\"text\">\n\n<button (click)=\"clearAllOptions($event)\"\n *ngIf=\"cleaner && selectedOptions.length > 0\"\n [disabled]=\"!isDropdownVisible\"\n aria-label=\"Clear all\"\n cButtonClose\n class=\"form-multi-select-selection-cleaner\"\n size=\"sm\">\n</button>\n\n<div #dropdownElement class=\"form-multi-select-dropdown\">\n <ng-template [ngIf]=\"visibleOptions>0\" [ngIfElse]=\"optionsEmpty\">\n <button (click)=\"selectAllOptions()\"\n *ngIf=\"selectAll && multiple\"\n class=\"form-multi-select-all\">\n {{selectAllLabel}}\n </button>\n <div #multiselectOptionsDiv\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, 'overflow': 'scroll'} : {}\"\n class=\"form-multi-select-options\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n <ng-template #optionsEmpty>\n <div class=\"form-multi-select-options-empty\">{{searchNoResultsLabel}}</div>\n </ng-template>\n</div>\n\n", styles: [":host{display:block}:host.cdk-focused{color:var(--cui-form-multi-select-focus-color, rgba(44, 56, 74, .95));background-color:var(--cui-form-multi-select-focus-bg, #fff);border-color:var(--cui-form-multi-select-focus-border-color, #6557e4);box-shadow:0 0 0 .25rem #321fdb40}:host.form-multi-select-selection-tags{padding-top:.0625rem}\n"] }]
4941
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1$1.FocusMonitor }, { type: MultiSelectService }]; }, propDecorators: { cleaner: [{
4942
+ type: Input
4943
+ }], disabled: [{
4944
+ type: Input
4945
+ }], multiple: [{
4946
+ type: Input
4947
+ }], nativeName: [{
4948
+ type: Input
4949
+ }], nativeId: [{
4950
+ type: Input
4951
+ }], options: [{
4952
+ type: Input
4953
+ }], optionsMaxHeight: [{
4954
+ type: Input
4955
+ }], optionsStyle: [{
4956
+ type: Input
4957
+ }], placeholder: [{
4958
+ type: Input
4959
+ }], search: [{
4960
+ type: Input
4961
+ }], searchNoResultsLabel: [{
4962
+ type: Input
4963
+ }], selectAll: [{
4964
+ type: Input
4965
+ }], selectAllLabel: [{
4966
+ type: Input
4967
+ }], selectionType: [{
4968
+ type: Input
4969
+ }], selectionTypeCounterText: [{
4970
+ type: Input
4971
+ }], value: [{
4972
+ type: Input
4973
+ }], valueChange: [{
4974
+ type: Output
4975
+ }], visible: [{
4976
+ type: Input
4977
+ }], visibleChange: [{
4978
+ type: Output
4979
+ }], multiSelectOptions: [{
4980
+ type: ContentChildren,
4981
+ args: [MultiSelectOptionComponent, { descendants: true }]
4982
+ }], inputElement: [{
4983
+ type: ViewChild,
4984
+ args: ['inputElement']
4985
+ }], dropdownElement: [{
4986
+ type: ViewChild,
4987
+ args: ['dropdownElement']
4988
+ }], hostClasses: [{
4989
+ type: HostBinding,
4990
+ args: ['class']
4991
+ }], tabIndex: [{
4992
+ type: HostBinding,
4993
+ args: ['attr.tabindex']
4994
+ }], onKeyUp: [{
4995
+ type: HostListener,
4996
+ args: ['keyup', ['$event']]
4997
+ }], manage: [{
4998
+ type: HostListener,
4999
+ args: ['keydown', ['$event']]
5000
+ }], onClick: [{
5001
+ type: HostListener,
5002
+ args: ['click', ['$event']]
5003
+ }] } });
5004
+
5005
+ class MultiSelectModule {
5006
+ }
5007
+ MultiSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5008
+ MultiSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectModule, declarations: [MultiSelectComponent,
5009
+ MultiSelectOptionComponent,
5010
+ MultiSelectOptgroupComponent,
5011
+ MultiSelectOptgroupLabelComponent,
5012
+ MultiSelectTagComponent,
5013
+ MultiSelectNativeSelectComponent], imports: [CommonModule, A11yModule, ButtonModule, FormsModule], exports: [MultiSelectComponent,
5014
+ MultiSelectOptionComponent,
5015
+ MultiSelectOptgroupComponent,
5016
+ MultiSelectOptgroupLabelComponent,
5017
+ MultiSelectTagComponent] });
5018
+ MultiSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectModule, providers: [MultiSelectService], imports: [[CommonModule, A11yModule, ButtonModule, FormsModule]] });
5019
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectModule, decorators: [{
5020
+ type: NgModule,
5021
+ args: [{
5022
+ declarations: [
5023
+ MultiSelectComponent,
5024
+ MultiSelectOptionComponent,
5025
+ MultiSelectOptgroupComponent,
5026
+ MultiSelectOptgroupLabelComponent,
5027
+ MultiSelectTagComponent,
5028
+ MultiSelectNativeSelectComponent
5029
+ ],
5030
+ imports: [CommonModule, A11yModule, ButtonModule, FormsModule],
5031
+ exports: [
5032
+ MultiSelectComponent,
5033
+ MultiSelectOptionComponent,
5034
+ MultiSelectOptgroupComponent,
5035
+ MultiSelectOptgroupLabelComponent,
5036
+ MultiSelectTagComponent
5037
+ ],
5038
+ providers: [MultiSelectService]
5039
+ }]
5040
+ }] });
5041
+
4332
5042
  class NavLinkDirective {
4333
5043
  constructor() {
4334
5044
  this._cNavLink = true;
@@ -4524,12 +5234,12 @@ class NavbarComponent {
4524
5234
  }
4525
5235
  }
4526
5236
  }
4527
- NavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NavbarComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
5237
+ NavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NavbarComponent, deps: [{ token: i0.ElementRef }, { token: i1$2.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
4528
5238
  NavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: NavbarComponent, selector: "c-navbar", inputs: { color: "color", colorScheme: "colorScheme", container: "container", expand: "expand", placement: "placement", role: "role" }, host: { properties: { "attr.role": "this.role", "class": "this.hostClasses" } }, queries: [{ propertyName: "collapse", first: true, predicate: CollapseDirective, descendants: true }], ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"container ? withContainerTemplate : noContainerTemplate\"></ng-container>\r\n\r\n<ng-template #withContainerTemplate>\r\n <div [ngClass]=\"containerClass\">\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #noContainerTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n", styles: [""], directives: [{ type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
4529
5239
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NavbarComponent, decorators: [{
4530
5240
  type: Component,
4531
5241
  args: [{ selector: 'c-navbar', template: "<ng-container *ngTemplateOutlet=\"container ? withContainerTemplate : noContainerTemplate\"></ng-container>\r\n\r\n<ng-template #withContainerTemplate>\r\n <div [ngClass]=\"containerClass\">\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #noContainerTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n", styles: [""] }]
4532
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.BreakpointObserver }]; }, propDecorators: { color: [{
5242
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$2.BreakpointObserver }]; }, propDecorators: { color: [{
4533
5243
  type: Input
4534
5244
  }], colorScheme: [{
4535
5245
  type: Input
@@ -4764,7 +5474,7 @@ class ModalContentComponent {
4764
5474
  this.interactivityChecker.isFocusable(targetElement);
4765
5475
  }
4766
5476
  }
4767
- ModalContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ModalContentComponent, deps: [{ token: i0.ElementRef }, { token: i1$2.InteractivityChecker }], target: i0.ɵɵFactoryTarget.Component });
5477
+ ModalContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ModalContentComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.InteractivityChecker }], target: i0.ɵɵFactoryTarget.Component });
4768
5478
  ModalContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ModalContentComponent, selector: "c-modal-content", host: { listeners: { "click": "onClickHandler($event)" }, properties: { "class": "this.hostClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
4769
5479
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ModalContentComponent, decorators: [{
4770
5480
  type: Component,
@@ -4772,7 +5482,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
4772
5482
  selector: 'c-modal-content',
4773
5483
  template: '<ng-content></ng-content>'
4774
5484
  }]
4775
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$2.InteractivityChecker }]; }, propDecorators: { hostClasses: [{
5485
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.InteractivityChecker }]; }, propDecorators: { hostClasses: [{
4776
5486
  type: HostBinding,
4777
5487
  args: ['class']
4778
5488
  }], onClickHandler: [{
@@ -5175,7 +5885,7 @@ class ModalComponent {
5175
5885
  }
5176
5886
  }
5177
5887
  ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ModalComponent, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: ModalService }, { token: BackdropService }], target: i0.ɵɵFactoryTarget.Component });
5178
- ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ModalComponent, selector: "c-modal", inputs: { alignment: "alignment", backdrop: "backdrop", fullscreen: "fullscreen", keyboard: "keyboard", id: "id", size: "size", transition: "transition", role: "role", ariaModal: "ariaModal", scrollable: "scrollable", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "@showHide.start": "animateStart($event)", "@showHide.done": "animateDone($event)", "document:keydown": "onKeyDownHandler($event)", "mousedown": "onMouseDownHandler($event)", "click": "onClickHandler($event)" }, properties: { "attr.role": "this.role", "attr.aria-modal": "this.ariaModal", "class": "this.hostClasses", "attr.aria-hidden": "this.ariaHidden", "attr.tabindex": "this.tabIndex", "@showHide": "this.animateTrigger" } }, viewQueries: [{ propertyName: "modalContent", first: true, predicate: ModalContentComponent, descendants: true, read: ElementRef }], exportAs: ["cModal"], ngImport: i0, template: "<c-modal-dialog\r\n [alignment]=\"alignment\"\r\n [fullscreen]=\"fullscreen\"\r\n [scrollable]=\"scrollable\"\r\n [size]=\"size\">\r\n <c-modal-content>\r\n <div [cdkTrapFocus]=\"visible\" [cdkTrapFocusAutoCapture]=\"visible\" style=\"display: contents;\">\r\n <ng-content></ng-content>\r\n </div>\r\n </c-modal-content>\r\n</c-modal-dialog>\r\n", styles: [""], components: [{ type: ModalDialogComponent, selector: "c-modal-dialog", inputs: ["alignment", "fullscreen", "scrollable", "size"] }, { type: ModalContentComponent, selector: "c-modal-content" }], directives: [{ type: i1$2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [
5888
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ModalComponent, selector: "c-modal", inputs: { alignment: "alignment", backdrop: "backdrop", fullscreen: "fullscreen", keyboard: "keyboard", id: "id", size: "size", transition: "transition", role: "role", ariaModal: "ariaModal", scrollable: "scrollable", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "@showHide.start": "animateStart($event)", "@showHide.done": "animateDone($event)", "document:keydown": "onKeyDownHandler($event)", "mousedown": "onMouseDownHandler($event)", "click": "onClickHandler($event)" }, properties: { "attr.role": "this.role", "attr.aria-modal": "this.ariaModal", "class": "this.hostClasses", "attr.aria-hidden": "this.ariaHidden", "attr.tabindex": "this.tabIndex", "@showHide": "this.animateTrigger" } }, viewQueries: [{ propertyName: "modalContent", first: true, predicate: ModalContentComponent, descendants: true, read: ElementRef }], exportAs: ["cModal"], ngImport: i0, template: "<c-modal-dialog\r\n [alignment]=\"alignment\"\r\n [fullscreen]=\"fullscreen\"\r\n [scrollable]=\"scrollable\"\r\n [size]=\"size\">\r\n <c-modal-content>\r\n <div [cdkTrapFocus]=\"visible\" [cdkTrapFocusAutoCapture]=\"visible\" style=\"display: contents;\">\r\n <ng-content></ng-content>\r\n </div>\r\n </c-modal-content>\r\n</c-modal-dialog>\r\n", styles: [""], components: [{ type: ModalDialogComponent, selector: "c-modal-dialog", inputs: ["alignment", "fullscreen", "scrollable", "size"] }, { type: ModalContentComponent, selector: "c-modal-content" }], directives: [{ type: i1$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [
5179
5889
  trigger('showHide', [
5180
5890
  state('visible', style({
5181
5891
  display: 'block'
@@ -5505,7 +6215,7 @@ class OffcanvasComponent {
5505
6215
  }
5506
6216
  }
5507
6217
  OffcanvasComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: OffcanvasComponent, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: OffcanvasService }, { token: BackdropService }], target: i0.ɵɵFactoryTarget.Component });
5508
- OffcanvasComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: OffcanvasComponent, selector: "c-offcanvas", inputs: { backdrop: "backdrop", keyboard: "keyboard", placement: "placement", scroll: "scroll", id: "id", role: "role", ariaModal: "ariaModal", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "document:keydown": "onKeyDownHandler($event)" }, properties: { "attr.role": "this.role", "attr.aria-modal": "this.ariaModal", "class": "this.hostClasses", "attr.aria-hidden": "this.ariaHidden", "attr.tabindex": "this.tabIndex", "@showHide": "this.animateType" } }, exportAs: ["cOffcanvas"], usesOnChanges: true, ngImport: i0, template: "<div cdkTrapFocus cdkTrapFocusAutoCapture>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n", styles: [""], directives: [{ type: i1$2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [
6218
+ OffcanvasComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: OffcanvasComponent, selector: "c-offcanvas", inputs: { backdrop: "backdrop", keyboard: "keyboard", placement: "placement", scroll: "scroll", id: "id", role: "role", ariaModal: "ariaModal", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "document:keydown": "onKeyDownHandler($event)" }, properties: { "attr.role": "this.role", "attr.aria-modal": "this.ariaModal", "class": "this.hostClasses", "attr.aria-hidden": "this.ariaHidden", "attr.tabindex": "this.tabIndex", "@showHide": "this.animateType" } }, exportAs: ["cOffcanvas"], usesOnChanges: true, ngImport: i0, template: "<div cdkTrapFocus cdkTrapFocusAutoCapture>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n", styles: [""], directives: [{ type: i1$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [
5509
6219
  trigger('showHide', [
5510
6220
  state('true', style({
5511
6221
  visibility: 'visible',
@@ -6680,7 +7390,7 @@ class SidebarComponent {
6680
7390
  }
6681
7391
  }
6682
7392
  }
6683
- SidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SidebarComponent, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i1$1.BreakpointObserver }, { token: SidebarService }, { token: SidebarBackdropService }], target: i0.ɵɵFactoryTarget.Component });
7393
+ SidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SidebarComponent, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i1$2.BreakpointObserver }, { token: SidebarService }, { token: SidebarBackdropService }], target: i0.ɵɵFactoryTarget.Component });
6684
7394
  SidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: SidebarComponent, selector: "c-sidebar", inputs: { colorScheme: "colorScheme", id: "id", narrow: "narrow", overlaid: "overlaid", placement: "placement", position: "position", size: "size", unfoldable: "unfoldable", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class": "this.getClasses" } }, exportAs: ["cSidebar"], usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
6685
7395
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SidebarComponent, decorators: [{
6686
7396
  type: Component,
@@ -6692,7 +7402,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
6692
7402
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
6693
7403
  type: Inject,
6694
7404
  args: [DOCUMENT]
6695
- }] }, { type: i0.Renderer2 }, { type: i1$1.BreakpointObserver }, { type: SidebarService }, { type: SidebarBackdropService }]; }, propDecorators: { colorScheme: [{
7405
+ }] }, { type: i0.Renderer2 }, { type: i1$2.BreakpointObserver }, { type: SidebarService }, { type: SidebarBackdropService }]; }, propDecorators: { colorScheme: [{
6696
7406
  type: Input
6697
7407
  }], id: [{
6698
7408
  type: Input
@@ -7143,7 +7853,7 @@ class SidebarNavLinkComponent {
7143
7853
  }
7144
7854
  }
7145
7855
  SidebarNavLinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SidebarNavLinkComponent, deps: [{ token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
7146
- SidebarNavLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: SidebarNavLinkComponent, selector: "c-sidebar-nav-link", inputs: { item: "item" }, outputs: { linkClick: "linkClick" }, providers: [SidebarNavHelper], ngImport: i0, template: "<ng-container [ngSwitch]=\"linkType\">\r\n <a *ngSwitchCase=\"'disabled'\"\r\n [ngClass]=\"item | cSidebarNavLink\"\r\n [cHtmlAttr]=\"item.attributes ?? {}\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: {$implicit: item}\"></ng-container>\r\n <c-sidebar-nav-link-content [item]=\"item\"></c-sidebar-nav-link-content>\r\n <span *ngIf=\"item.badge\" [ngClass]=\"item | cSidebarNavBadge\">{{ item.badge?.text }}</span>\r\n </a>\r\n <a *ngSwitchCase=\"'external'\"\r\n [ngClass]=\"item | cSidebarNavLink\"\r\n [href]=\"href\"\r\n [cHtmlAttr]=\"item.attributes ?? {}\"\r\n (click)=\"linkClicked()\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: {$implicit: item}\"></ng-container>\r\n <c-sidebar-nav-link-content [item]=\"item\"></c-sidebar-nav-link-content>\r\n <span *ngIf=\"item.badge\" [ngClass]=\"item | cSidebarNavBadge\">{{ item.badge?.text }}</span>\r\n </a>\r\n <a *ngSwitchDefault\r\n [ngClass]=\"item | cSidebarNavLink\"\r\n [cHtmlAttr]=\"item.attributes ?? {}\"\r\n [target]=\"item.attributes?.['target']\"\r\n [queryParams]=\"item.linkProps?.queryParams ?? null\"\r\n [fragment]=\"item.linkProps?.fragment\"\r\n [queryParamsHandling]=\"item.linkProps?.queryParamsHandling\"\r\n [preserveFragment]=\"item.linkProps?.preserveFragment ?? false\"\r\n [skipLocationChange]=\"item.linkProps?.skipLocationChange ?? false\"\r\n [replaceUrl]=\"item.linkProps?.replaceUrl ?? false\"\r\n [state]=\"item.linkProps?.state ?? {}\"\r\n [routerLink]=\"item.url\"\r\n routerLinkActive=\"active\"\r\n (click)=\"linkClicked()\"\r\n >\r\n<!-- [class.active]=\"linkActive\"-->\r\n <ng-container *ngTemplateOutlet=\"iconTemplate ; context: {$implicit: item}\"></ng-container>\r\n <c-sidebar-nav-link-content [item]=\"item\"></c-sidebar-nav-link-content>\r\n <span *ngIf=\"item.badge\" [ngClass]=\"item | cSidebarNavBadge\">{{ item.badge?.text }}</span>\r\n </a>\r\n</ng-container>\r\n\r\n<ng-template #iconTemplate let-item>\r\n <i *ngIf=\"item?.icon\" [ngClass]=\"item | cSidebarNavIcon\"></i>\r\n <ng-template [ngIf]=\"item?.iconComponent\">\r\n <svg\r\n [cIcon]=\"item.iconComponent?.content\"\r\n [name]=\"item.iconComponent?.name\"\r\n [customClasses]=\"item | cSidebarNavIcon\"\r\n ></svg>\r\n </ng-template>\r\n <span *ngIf=\"!item?.icon && !item?.iconComponent\" [ngClass]=\"item | cSidebarNavIcon\"></span>\r\n</ng-template>\r\n", components: [{ type: SidebarNavLinkContentComponent, selector: "c-sidebar-nav-link-content", inputs: ["item"] }], directives: [{ type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i5.IconDirective, selector: "svg[cIcon]", inputs: ["cIcon", "size", "title", "customClasses", "width", "height", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }], pipes: { "cSidebarNavLink": SidebarNavLinkPipe, "cSidebarNavBadge": SidebarNavBadgePipe, "cSidebarNavIcon": SidebarNavIconPipe } });
7856
+ SidebarNavLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: SidebarNavLinkComponent, selector: "c-sidebar-nav-link", inputs: { item: "item" }, outputs: { linkClick: "linkClick" }, providers: [SidebarNavHelper], ngImport: i0, template: "<ng-container [ngSwitch]=\"linkType\">\r\n <a *ngSwitchCase=\"'disabled'\"\r\n [ngClass]=\"item | cSidebarNavLink\"\r\n [cHtmlAttr]=\"item.attributes ?? {}\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: {$implicit: item}\"></ng-container>\r\n <c-sidebar-nav-link-content [item]=\"item\"></c-sidebar-nav-link-content>\r\n <span *ngIf=\"item.badge\" [ngClass]=\"item | cSidebarNavBadge\">{{ item.badge?.text }}</span>\r\n </a>\r\n <a *ngSwitchCase=\"'external'\"\r\n [ngClass]=\"item | cSidebarNavLink\"\r\n [href]=\"href\"\r\n [cHtmlAttr]=\"item.attributes ?? {}\"\r\n (click)=\"linkClicked()\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: {$implicit: item}\"></ng-container>\r\n <c-sidebar-nav-link-content [item]=\"item\"></c-sidebar-nav-link-content>\r\n <span *ngIf=\"item.badge\" [ngClass]=\"item | cSidebarNavBadge\">{{ item.badge?.text }}</span>\r\n </a>\r\n <a *ngSwitchDefault\r\n [ngClass]=\"item | cSidebarNavLink\"\r\n [cHtmlAttr]=\"item.attributes ?? {}\"\r\n [target]=\"item.attributes?.['target']\"\r\n [queryParams]=\"item.linkProps?.queryParams ?? null\"\r\n [fragment]=\"item.linkProps?.fragment\"\r\n [queryParamsHandling]=\"item.linkProps?.queryParamsHandling\"\r\n [preserveFragment]=\"item.linkProps?.preserveFragment ?? false\"\r\n [skipLocationChange]=\"item.linkProps?.skipLocationChange ?? false\"\r\n [replaceUrl]=\"item.linkProps?.replaceUrl ?? false\"\r\n [state]=\"item.linkProps?.state ?? {}\"\r\n [routerLink]=\"item.url\"\r\n routerLinkActive=\"active\"\r\n (click)=\"linkClicked()\"\r\n >\r\n<!-- [class.active]=\"linkActive\"-->\r\n <ng-container *ngTemplateOutlet=\"iconTemplate ; context: {$implicit: item}\"></ng-container>\r\n <c-sidebar-nav-link-content [item]=\"item\"></c-sidebar-nav-link-content>\r\n <span *ngIf=\"item.badge\" [ngClass]=\"item | cSidebarNavBadge\">{{ item.badge?.text }}</span>\r\n </a>\r\n</ng-container>\r\n\r\n<ng-template #iconTemplate let-item>\r\n <i *ngIf=\"item?.icon\" [ngClass]=\"item | cSidebarNavIcon\"></i>\r\n <ng-template [ngIf]=\"item?.iconComponent\">\r\n <svg\r\n [cIcon]=\"item.iconComponent?.content\"\r\n [name]=\"item.iconComponent?.name\"\r\n [customClasses]=\"item | cSidebarNavIcon\"\r\n ></svg>\r\n </ng-template>\r\n <span *ngIf=\"!item?.icon && !item?.iconComponent\" [ngClass]=\"item | cSidebarNavIcon\"></span>\r\n</ng-template>\r\n", components: [{ type: SidebarNavLinkContentComponent, selector: "c-sidebar-nav-link-content", inputs: ["item"] }], directives: [{ type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i5$1.IconDirective, selector: "svg[cIcon]", inputs: ["cIcon", "size", "title", "customClasses", "width", "height", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }], pipes: { "cSidebarNavLink": SidebarNavLinkPipe, "cSidebarNavBadge": SidebarNavBadgePipe, "cSidebarNavIcon": SidebarNavIconPipe } });
7147
7857
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SidebarNavLinkComponent, decorators: [{
7148
7858
  type: Component,
7149
7859
  args: [{ selector: 'c-sidebar-nav-link', providers: [SidebarNavHelper], template: "<ng-container [ngSwitch]=\"linkType\">\r\n <a *ngSwitchCase=\"'disabled'\"\r\n [ngClass]=\"item | cSidebarNavLink\"\r\n [cHtmlAttr]=\"item.attributes ?? {}\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: {$implicit: item}\"></ng-container>\r\n <c-sidebar-nav-link-content [item]=\"item\"></c-sidebar-nav-link-content>\r\n <span *ngIf=\"item.badge\" [ngClass]=\"item | cSidebarNavBadge\">{{ item.badge?.text }}</span>\r\n </a>\r\n <a *ngSwitchCase=\"'external'\"\r\n [ngClass]=\"item | cSidebarNavLink\"\r\n [href]=\"href\"\r\n [cHtmlAttr]=\"item.attributes ?? {}\"\r\n (click)=\"linkClicked()\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: {$implicit: item}\"></ng-container>\r\n <c-sidebar-nav-link-content [item]=\"item\"></c-sidebar-nav-link-content>\r\n <span *ngIf=\"item.badge\" [ngClass]=\"item | cSidebarNavBadge\">{{ item.badge?.text }}</span>\r\n </a>\r\n <a *ngSwitchDefault\r\n [ngClass]=\"item | cSidebarNavLink\"\r\n [cHtmlAttr]=\"item.attributes ?? {}\"\r\n [target]=\"item.attributes?.['target']\"\r\n [queryParams]=\"item.linkProps?.queryParams ?? null\"\r\n [fragment]=\"item.linkProps?.fragment\"\r\n [queryParamsHandling]=\"item.linkProps?.queryParamsHandling\"\r\n [preserveFragment]=\"item.linkProps?.preserveFragment ?? false\"\r\n [skipLocationChange]=\"item.linkProps?.skipLocationChange ?? false\"\r\n [replaceUrl]=\"item.linkProps?.replaceUrl ?? false\"\r\n [state]=\"item.linkProps?.state ?? {}\"\r\n [routerLink]=\"item.url\"\r\n routerLinkActive=\"active\"\r\n (click)=\"linkClicked()\"\r\n >\r\n<!-- [class.active]=\"linkActive\"-->\r\n <ng-container *ngTemplateOutlet=\"iconTemplate ; context: {$implicit: item}\"></ng-container>\r\n <c-sidebar-nav-link-content [item]=\"item\"></c-sidebar-nav-link-content>\r\n <span *ngIf=\"item.badge\" [ngClass]=\"item | cSidebarNavBadge\">{{ item.badge?.text }}</span>\r\n </a>\r\n</ng-container>\r\n\r\n<ng-template #iconTemplate let-item>\r\n <i *ngIf=\"item?.icon\" [ngClass]=\"item | cSidebarNavIcon\"></i>\r\n <ng-template [ngIf]=\"item?.iconComponent\">\r\n <svg\r\n [cIcon]=\"item.iconComponent?.content\"\r\n [name]=\"item.iconComponent?.name\"\r\n [customClasses]=\"item | cSidebarNavIcon\"\r\n ></svg>\r\n </ng-template>\r\n <span *ngIf=\"!item?.icon && !item?.iconComponent\" [ngClass]=\"item | cSidebarNavIcon\"></span>\r\n</ng-template>\r\n" }]
@@ -7286,7 +7996,7 @@ class SidebarNavGroupComponent {
7286
7996
  }
7287
7997
  }
7288
7998
  SidebarNavGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SidebarNavGroupComponent, deps: [{ token: i3.Router }, { token: SidebarNavHelper }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
7289
- SidebarNavGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: SidebarNavGroupComponent, selector: "c-sidebar-nav-group", inputs: { item: "item", dropdownMode: "dropdownMode", show: "show" }, host: { properties: { "class": "this.hostClasses" } }, providers: [SidebarNavHelper], ngImport: i0, template: "<a class=\"nav-link nav-group-toggle\"\r\n (click)=\"toggleGroup($event)\"\r\n [cHtmlAttr]=\"item.attributes\">\r\n <ng-container *ngTemplateOutlet=\"iconTemplate ; context: {$implicit: item}\"></ng-container>\r\n <ng-container>{{ item.name }}</ng-container>\r\n <span *ngIf=\"helper.hasBadge(item)\" [ngClass]=\"item | cSidebarNavBadge\">{{ item.badge.text }}</span>\r\n</a>\r\n<c-sidebar-nav\r\n [groupItems]=\"true\"\r\n [navItems]=\"navItems\">\r\n</c-sidebar-nav>\r\n\r\n<ng-template #iconTemplate let-item>\r\n <i *ngIf=\"item?.icon\" [ngClass]=\"item | cSidebarNavIcon\"></i>\r\n <ng-template [ngIf]=\"item?.iconComponent\">\r\n <svg\r\n [cIcon]=\"item.iconComponent?.content\"\r\n [name]=\"item.iconComponent?.name\"\r\n [customClasses]=\"item | cSidebarNavIcon\"\r\n ></svg>\r\n </ng-template>\r\n <span *ngIf=\"!item?.icon && !item?.iconComponent\" [ngClass]=\"item | cSidebarNavIcon\"></span>\r\n</ng-template>\r\n", styles: [".nav-group-toggle{cursor:pointer}.nav-group-items{display:block}\n"], components: [{ type: SidebarNavComponent, selector: "c-sidebar-nav", inputs: ["navItems", "dropdownMode", "groupItems", "compact"] }], directives: [{ type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.IconDirective, selector: "svg[cIcon]", inputs: ["cIcon", "size", "title", "customClasses", "width", "height", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }], pipes: { "cSidebarNavBadge": SidebarNavBadgePipe, "cSidebarNavIcon": SidebarNavIconPipe } });
7999
+ SidebarNavGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: SidebarNavGroupComponent, selector: "c-sidebar-nav-group", inputs: { item: "item", dropdownMode: "dropdownMode", show: "show" }, host: { properties: { "class": "this.hostClasses" } }, providers: [SidebarNavHelper], ngImport: i0, template: "<a class=\"nav-link nav-group-toggle\"\r\n (click)=\"toggleGroup($event)\"\r\n [cHtmlAttr]=\"item.attributes\">\r\n <ng-container *ngTemplateOutlet=\"iconTemplate ; context: {$implicit: item}\"></ng-container>\r\n <ng-container>{{ item.name }}</ng-container>\r\n <span *ngIf=\"helper.hasBadge(item)\" [ngClass]=\"item | cSidebarNavBadge\">{{ item.badge.text }}</span>\r\n</a>\r\n<c-sidebar-nav\r\n [groupItems]=\"true\"\r\n [navItems]=\"navItems\">\r\n</c-sidebar-nav>\r\n\r\n<ng-template #iconTemplate let-item>\r\n <i *ngIf=\"item?.icon\" [ngClass]=\"item | cSidebarNavIcon\"></i>\r\n <ng-template [ngIf]=\"item?.iconComponent\">\r\n <svg\r\n [cIcon]=\"item.iconComponent?.content\"\r\n [name]=\"item.iconComponent?.name\"\r\n [customClasses]=\"item | cSidebarNavIcon\"\r\n ></svg>\r\n </ng-template>\r\n <span *ngIf=\"!item?.icon && !item?.iconComponent\" [ngClass]=\"item | cSidebarNavIcon\"></span>\r\n</ng-template>\r\n", styles: [".nav-group-toggle{cursor:pointer}.nav-group-items{display:block}\n"], components: [{ type: SidebarNavComponent, selector: "c-sidebar-nav", inputs: ["navItems", "dropdownMode", "groupItems", "compact"] }], directives: [{ type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5$1.IconDirective, selector: "svg[cIcon]", inputs: ["cIcon", "size", "title", "customClasses", "width", "height", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }], pipes: { "cSidebarNavBadge": SidebarNavBadgePipe, "cSidebarNavIcon": SidebarNavIconPipe } });
7290
8000
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SidebarNavGroupComponent, decorators: [{
7291
8001
  type: Component,
7292
8002
  args: [{ selector: 'c-sidebar-nav-group', providers: [SidebarNavHelper], template: "<a class=\"nav-link nav-group-toggle\"\r\n (click)=\"toggleGroup($event)\"\r\n [cHtmlAttr]=\"item.attributes\">\r\n <ng-container *ngTemplateOutlet=\"iconTemplate ; context: {$implicit: item}\"></ng-container>\r\n <ng-container>{{ item.name }}</ng-container>\r\n <span *ngIf=\"helper.hasBadge(item)\" [ngClass]=\"item | cSidebarNavBadge\">{{ item.badge.text }}</span>\r\n</a>\r\n<c-sidebar-nav\r\n [groupItems]=\"true\"\r\n [navItems]=\"navItems\">\r\n</c-sidebar-nav>\r\n\r\n<ng-template #iconTemplate let-item>\r\n <i *ngIf=\"item?.icon\" [ngClass]=\"item | cSidebarNavIcon\"></i>\r\n <ng-template [ngIf]=\"item?.iconComponent\">\r\n <svg\r\n [cIcon]=\"item.iconComponent?.content\"\r\n [name]=\"item.iconComponent?.name\"\r\n [customClasses]=\"item | cSidebarNavIcon\"\r\n ></svg>\r\n </ng-template>\r\n <span *ngIf=\"!item?.icon && !item?.iconComponent\" [ngClass]=\"item | cSidebarNavIcon\"></span>\r\n</ng-template>\r\n", styles: [".nav-group-toggle{cursor:pointer}.nav-group-items{display:block}\n"] }]
@@ -9329,5 +10039,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
9329
10039
  * Generated bundle index. Do not edit.
9330
10040
  */
9331
10041
 
9332
- export { AccordionButtonDirective, AccordionComponent, AccordionItemComponent, AccordionModule, AlertComponent, AlertHeadingDirective, AlertLinkDirective, AlertModule, AlignDirective, AvatarComponent, AvatarModule, BadgeComponent, BadgeModule, BgColorDirective, BorderDirective, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbModule, BreadcrumbRouterComponent, BreakpointInfix, ButtonCloseDirective, ButtonDirective, ButtonGroupComponent, ButtonGroupModule, ButtonModule, ButtonToolbarComponent, CalloutComponent, CalloutModule, CardBodyComponent, CardComponent, CardFooterComponent, CardGroupComponent, CardHeaderActionsComponent, CardHeaderComponent, CardImgDirective, CardImgOverlayComponent, CardLinkDirective, CardModule, CardSubtitleDirective, CardTextDirective, CardTitleDirective, CarouselCaptionComponent, CarouselComponent, CarouselConfig, CarouselControlComponent, CarouselIndicatorsComponent, CarouselInnerComponent, CarouselItemComponent, CarouselModule, ClassToggleService, ColComponent, ColDirective, CollapseDirective, CollapseModule, ContainerComponent, DropdownComponent, DropdownDividerDirective, DropdownHeaderDirective, DropdownItemDirective, DropdownItemPlainDirective, DropdownMenuDirective, DropdownModule, DropdownService, DropdownToggleDirective, FooterComponent, FooterModule, FormCheckComponent, FormCheckInputDirective, FormCheckLabelDirective, FormControlDirective, FormDirective, FormFeedbackComponent, FormFloatingDirective, FormLabelDirective, FormModule, FormSelectDirective, FormTextDirective, GridModule, GutterDirective, HeaderBrandComponent, HeaderComponent, HeaderDividerComponent, HeaderModule, HeaderNavComponent, HeaderTextComponent, HeaderTogglerDirective, HtmlAttributesDirective, ImgDirective, ImgModule, InputGroupComponent, InputGroupTextDirective, ListGroupDirective, ListGroupItemDirective, ListGroupModule, LoadingButtonComponent, LoadingButtonModule, ModalBodyComponent, ModalComponent, ModalContentComponent, ModalDialogComponent, ModalFooterComponent, ModalHeaderComponent, ModalModule, ModalService, ModalTitleDirective, ModalToggleDirective, NavComponent, NavItemComponent, NavLinkDirective, NavModule, NavbarBrandDirective, NavbarComponent, NavbarModule, NavbarNavComponent, NavbarTextComponent, NavbarTogglerDirective, OffcanvasBodyComponent, OffcanvasComponent, OffcanvasHeaderComponent, OffcanvasModule, OffcanvasService, OffcanvasTitleDirective, OffcanvasToggleDirective, PageItemComponent, PageItemDirective, PageLinkDirective, PaginationComponent, PaginationModule, PopoverComponent, PopoverDirective, PopoverModule, ProgressBarComponent, ProgressComponent, ProgressModule, RoundedDirective, RowComponent, RowDirective, SharedModule, SidebarBrandComponent, SidebarComponent, SidebarFooterComponent, SidebarHeaderComponent, SidebarModule, SidebarNavComponent, SidebarService, SidebarToggleDirective, SidebarTogglerComponent, SpinnerComponent, SpinnerModule, TabContentComponent, TabContentRefDirective, TabPaneComponent, TabService, TableActiveDirective, TableColorDirective, TableDirective, TableModule, TabsModule, TemplateIdDirective, TextColorDirective, ToastBodyComponent, ToastCloseDirective, ToastComponent, ToastHeaderComponent, ToastModule, ToasterComponent, ToasterHostDirective, ToasterPlacement, ToasterService, TooltipComponent, TooltipDirective, TooltipModule, UtilitiesModule, WidgetModule, WidgetStatAComponent, WidgetStatBComponent, WidgetStatCComponent, WidgetStatDComponent, WidgetStatEComponent, WidgetStatFComponent };
10042
+ export { AccordionButtonDirective, AccordionComponent, AccordionItemComponent, AccordionModule, AlertComponent, AlertHeadingDirective, AlertLinkDirective, AlertModule, AlignDirective, AvatarComponent, AvatarModule, BadgeComponent, BadgeModule, BgColorDirective, BorderDirective, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbModule, BreadcrumbRouterComponent, BreakpointInfix, ButtonCloseDirective, ButtonDirective, ButtonGroupComponent, ButtonGroupModule, ButtonModule, ButtonToolbarComponent, CalloutComponent, CalloutModule, CardBodyComponent, CardComponent, CardFooterComponent, CardGroupComponent, CardHeaderActionsComponent, CardHeaderComponent, CardImgDirective, CardImgOverlayComponent, CardLinkDirective, CardModule, CardSubtitleDirective, CardTextDirective, CardTitleDirective, CarouselCaptionComponent, CarouselComponent, CarouselConfig, CarouselControlComponent, CarouselIndicatorsComponent, CarouselInnerComponent, CarouselItemComponent, CarouselModule, ClassToggleService, ColComponent, ColDirective, CollapseDirective, CollapseModule, ContainerComponent, DropdownComponent, DropdownDividerDirective, DropdownHeaderDirective, DropdownItemDirective, DropdownItemPlainDirective, DropdownMenuDirective, DropdownModule, DropdownService, DropdownToggleDirective, FooterComponent, FooterModule, FormCheckComponent, FormCheckInputDirective, FormCheckLabelDirective, FormControlDirective, FormDirective, FormFeedbackComponent, FormFloatingDirective, FormLabelDirective, FormModule, FormSelectDirective, FormTextDirective, GridModule, GutterDirective, HeaderBrandComponent, HeaderComponent, HeaderDividerComponent, HeaderModule, HeaderNavComponent, HeaderTextComponent, HeaderTogglerDirective, HtmlAttributesDirective, ImgDirective, ImgModule, InputGroupComponent, InputGroupTextDirective, ListGroupDirective, ListGroupItemDirective, ListGroupModule, LoadingButtonComponent, LoadingButtonModule, ModalBodyComponent, ModalComponent, ModalContentComponent, ModalDialogComponent, ModalFooterComponent, ModalHeaderComponent, ModalModule, ModalService, ModalTitleDirective, ModalToggleDirective, MultiSelectComponent, MultiSelectModule, MultiSelectOptgroupComponent, MultiSelectOptgroupLabelComponent, MultiSelectOptionComponent, MultiSelectTagComponent, NavComponent, NavItemComponent, NavLinkDirective, NavModule, NavbarBrandDirective, NavbarComponent, NavbarModule, NavbarNavComponent, NavbarTextComponent, NavbarTogglerDirective, OffcanvasBodyComponent, OffcanvasComponent, OffcanvasHeaderComponent, OffcanvasModule, OffcanvasService, OffcanvasTitleDirective, OffcanvasToggleDirective, PageItemComponent, PageItemDirective, PageLinkDirective, PaginationComponent, PaginationModule, PopoverComponent, PopoverDirective, PopoverModule, ProgressBarComponent, ProgressComponent, ProgressModule, RoundedDirective, RowComponent, RowDirective, SharedModule, SidebarBrandComponent, SidebarComponent, SidebarFooterComponent, SidebarHeaderComponent, SidebarModule, SidebarNavComponent, SidebarService, SidebarToggleDirective, SidebarTogglerComponent, SpinnerComponent, SpinnerModule, TabContentComponent, TabContentRefDirective, TabPaneComponent, TabService, TableActiveDirective, TableColorDirective, TableDirective, TableModule, TabsModule, TemplateIdDirective, TextColorDirective, ToastBodyComponent, ToastCloseDirective, ToastComponent, ToastHeaderComponent, ToastModule, ToasterComponent, ToasterHostDirective, ToasterPlacement, ToasterService, TooltipComponent, TooltipDirective, TooltipModule, UtilitiesModule, WidgetModule, WidgetStatAComponent, WidgetStatBComponent, WidgetStatCComponent, WidgetStatDComponent, WidgetStatEComponent, WidgetStatFComponent };
9333
10043
  //# sourceMappingURL=coreui-angular-pro.mjs.map