@norwegian/core-components 7.16.6 → 7.17.1

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 (26) hide show
  1. package/assets/documentation/select-new/select-new.md +0 -0
  2. package/assets/icons/flags/eu.svg +88 -0
  3. package/esm2022/lib/components/datepicker/calendar/calendar.component.mjs +2 -2
  4. package/esm2022/lib/components/icon/icon.component.mjs +2 -2
  5. package/esm2022/lib/components/index.mjs +2 -1
  6. package/esm2022/lib/components/page-header/page-header.component.mjs +2 -2
  7. package/esm2022/lib/components/select/select.component.mjs +2 -2
  8. package/esm2022/lib/components/select-new/index.mjs +5 -0
  9. package/esm2022/lib/components/select-new/models/select-option.model.mjs +2 -0
  10. package/esm2022/lib/components/select-new/optgroup/optgroup-new.component.mjs +23 -0
  11. package/esm2022/lib/components/select-new/option/option-new.component.mjs +41 -0
  12. package/esm2022/lib/components/select-new/select-new.component.mjs +271 -0
  13. package/esm2022/lib/components/select-new/select-new.module.mjs +26 -0
  14. package/esm2022/lib/components/select-new/services/select-new.service.mjs +40 -0
  15. package/fesm2022/norwegian-core-components.mjs +771 -407
  16. package/fesm2022/norwegian-core-components.mjs.map +1 -1
  17. package/lib/components/index.d.ts +1 -0
  18. package/lib/components/select/select.component.d.ts +1 -1
  19. package/lib/components/select-new/index.d.ts +4 -0
  20. package/lib/components/select-new/models/select-option.model.d.ts +6 -0
  21. package/lib/components/select-new/optgroup/optgroup-new.component.d.ts +8 -0
  22. package/lib/components/select-new/option/option-new.component.d.ts +16 -0
  23. package/lib/components/select-new/select-new.component.d.ts +173 -0
  24. package/lib/components/select-new/select-new.module.d.ts +14 -0
  25. package/lib/components/select-new/services/select-new.service.d.ts +10 -0
  26. package/package.json +1 -1
@@ -0,0 +1,271 @@
1
+ /**
2
+ * @license
3
+ * Copyright Norwegian Air Shuttle. All Rights Reserved.
4
+ */
5
+ import { Component, ContentChildren, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
6
+ import { NasComponentBase } from '../../core/base/nas-component.base';
7
+ import { OptionNewComponent } from './option/option-new.component';
8
+ import { SelectNewService } from './services/select-new.service';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "./services/select-new.service";
11
+ import * as i2 from "@angular/common";
12
+ import * as i3 from "../../core/directives/nas-class/nas-class.directive";
13
+ import * as i4 from "../icon/icon.component";
14
+ import * as i5 from "../tooltip/tooltip.component";
15
+ import * as i6 from "./option/option-new.component";
16
+ let nextId = 0;
17
+ /**
18
+ * @description
19
+ * Norwegian Select Component | Form Controls | New design
20
+ */
21
+ export class SelectNewComponent extends NasComponentBase {
22
+ /**
23
+ * @property Input
24
+ *
25
+ * @description
26
+ * Add options to the selector.
27
+ */
28
+ get options() {
29
+ return this.optionsValue;
30
+ }
31
+ set options(value) {
32
+ if (!value) {
33
+ return;
34
+ }
35
+ this.optionsValue = value;
36
+ if (this.options && this.options.length > 0 && this.selected == null) {
37
+ this.selected = this.options[0];
38
+ }
39
+ }
40
+ /**
41
+ * @property Input
42
+ *
43
+ * @description
44
+ * Set selected value from option.
45
+ */
46
+ get selected() {
47
+ return this.selectedValue;
48
+ }
49
+ set selected(option) {
50
+ if (!option) {
51
+ return;
52
+ }
53
+ if (this.selectedValue == option) {
54
+ return;
55
+ }
56
+ this.selectedValue = option;
57
+ this.selectedChange.emit(option);
58
+ }
59
+ get modifiers() {
60
+ return [
61
+ this.open && 'active',
62
+ this.selected?.value && 'valid',
63
+ this.selected?.displayValue && 'extended',
64
+ this.exists(this.disabled) && 'disabled',
65
+ this.exists(this.error) && 'error',
66
+ this.exists(this.stretched) && 'stretched',
67
+ this.exists(this.autogrow) && 'autogrow',
68
+ this.exists(this.compact) && 'compact',
69
+ this.exists(this.simple) && 'simple',
70
+ this.exists(this.inline) && 'inline',
71
+ this.exists(this.spaceless) && 'spaceless',
72
+ ];
73
+ }
74
+ get selectControl() {
75
+ return this.nasFormGroup?.get(this.nasFormControlName);
76
+ }
77
+ get selectId() {
78
+ return this.id ? this.id : `nas-select-new-${this.componentId}`;
79
+ }
80
+ get selectedLabel() {
81
+ return !this.exists(this.presentValue) ? this.selected?.label : this.selected?.value;
82
+ }
83
+ constructor(selectService) {
84
+ super('nas-select-new');
85
+ this.selectService = selectService;
86
+ /**
87
+ * @property Output
88
+ *
89
+ * @description
90
+ * An event that is fired every time a selection is done.
91
+ */
92
+ this.selectedChange = new EventEmitter();
93
+ this.open = false;
94
+ this.hasContent = false;
95
+ this.activeIndex = -1;
96
+ this.NAS_OPTION_TAG = "nas-option-new";
97
+ this.componentId = nextId++;
98
+ }
99
+ clickOutside(event) {
100
+ if (this.selectBoxElement) {
101
+ const clickedInside = this.selectBoxElement.nativeElement.contains(event.target);
102
+ if (!clickedInside) {
103
+ this.open = false;
104
+ }
105
+ }
106
+ }
107
+ onKeydown(event) {
108
+ this.selectKeyDown(event);
109
+ }
110
+ ngOnInit() {
111
+ if (!this.selected && this.options && this.options.length > 0) {
112
+ const option = this.options[0];
113
+ this.selected = option;
114
+ }
115
+ this.selectService.selected$.subscribe((value) => {
116
+ this.setSelected(value);
117
+ });
118
+ if (this.nasFormGroup && this.nasFormControlName) {
119
+ if (this.selectControl) {
120
+ this.setSelected(this.selectControl.value);
121
+ }
122
+ }
123
+ }
124
+ ngAfterViewInit() {
125
+ if (this.optionsComponent && this.optionsComponent?.length > 0) {
126
+ this.hasContent = true;
127
+ if (!this.options) {
128
+ this.options = new Array;
129
+ this.optionsComponent.forEach((option) => {
130
+ this.setOptionsFromContent(option);
131
+ });
132
+ setTimeout(() => {
133
+ this.selected = this.options[0];
134
+ });
135
+ }
136
+ }
137
+ }
138
+ onOpen() {
139
+ this.activeIndex = -1;
140
+ this.open = !this.open;
141
+ }
142
+ getIconName(value) {
143
+ return this.selectService.getIconName(value);
144
+ }
145
+ getIconType(value) {
146
+ return this.selectService.getIconType(value);
147
+ }
148
+ setSelected(value) {
149
+ this.open = false;
150
+ const selected = this.options?.find(option => option.value == value);
151
+ if (!selected) {
152
+ return;
153
+ }
154
+ if (this.nasFormGroup && this.nasFormControlName) {
155
+ this.selectControl.patchValue(selected.value);
156
+ }
157
+ this.selected = selected;
158
+ this.activeIndex = -1;
159
+ }
160
+ setOptionsFromContent(option) {
161
+ if (!option) {
162
+ return;
163
+ }
164
+ this.options.push({
165
+ label: option.label,
166
+ value: option.value,
167
+ icon: option.icon,
168
+ displayValue: option.displayValue
169
+ });
170
+ }
171
+ selectKeyDown(event) {
172
+ if (!this.open || this.options?.length <= 0) {
173
+ return;
174
+ }
175
+ switch (event.key) {
176
+ case 'Tab':
177
+ this.open = false;
178
+ break;
179
+ case 'ArrowDown':
180
+ event.preventDefault();
181
+ this.activeIndex = this.activeIndex < this.options.length - 1 ? this.activeIndex + 1 : 0;
182
+ this.updateActiveOption();
183
+ break;
184
+ case 'ArrowUp':
185
+ event.preventDefault();
186
+ this.activeIndex = this.activeIndex > 0 ? this.activeIndex - 1 : this.options.length - 1;
187
+ this.updateActiveOption();
188
+ break;
189
+ case 'Enter':
190
+ event.preventDefault();
191
+ const activeOption = this.options[this.activeIndex];
192
+ if (activeOption) {
193
+ this.setSelected(activeOption.value);
194
+ }
195
+ break;
196
+ }
197
+ }
198
+ updateActiveOption() {
199
+ if (!this.selectBoxElement) {
200
+ return;
201
+ }
202
+ const optionElements = Array.from(this.selectBoxElement.nativeElement.querySelectorAll(this.NAS_OPTION_TAG));
203
+ if (!optionElements && optionElements.length <= 0) {
204
+ return;
205
+ }
206
+ optionElements.forEach((option, i) => {
207
+ if (i === this.activeIndex) {
208
+ option.classList.add('active');
209
+ option.scrollIntoView({ block: 'nearest' });
210
+ }
211
+ else {
212
+ option.classList.remove('active');
213
+ }
214
+ });
215
+ }
216
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectNewComponent, deps: [{ token: i1.SelectNewService }], target: i0.ɵɵFactoryTarget.Component }); }
217
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SelectNewComponent, selector: "nas-select-new", inputs: { autogrow: "autogrow", compact: "compact", disabled: "disabled", error: "error", errorMessage: "errorMessage", id: "id", infoText: "infoText", inline: "inline", label: "label", nasFormControlName: "nasFormControlName", nasFormGroup: "nasFormGroup", options: "options", presentValue: "presentValue", selected: "selected", simple: "simple", spaceless: "spaceless", stretched: "stretched" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "document:click": "clickOutside($event)", "document:keydown": "onKeydown($event)" } }, providers: [SelectNewService], queries: [{ propertyName: "optionsComponent", predicate: OptionNewComponent, descendants: true }], viewQueries: [{ propertyName: "selectBoxElement", first: true, predicate: ["selectBox"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [nasClass]=\"getClass()\">\n <label *ngIf=\"label\" [nasClass]=\"getClass('label')\">\n {{ label }}\n <nas-tooltip *ngIf=\"infoText\" [text]=\"infoText\">\n <nas-icon [nasClass]=\"getClass('tooltip')\" [icon]=\"'info'\" [type]=\"'small'\"></nas-icon>\n </nas-tooltip>\n </label>\n <div #selectBox [nasClass]=\"getClass('select-box', modifiers)\">\n <button [nasClass]=\"getClass('select')\" [id]=\"selectId\"\n (click)=\"onOpen()\">\n <nas-icon *ngIf=\"selected?.icon\" [nasClass]=\"getClass('icon')\" [icon]=\"getIconName(selected.icon)\"\n [type]=\"getIconType(selected.icon)\"></nas-icon>\n <div *ngIf=\"selected?.label\" [nasClass]=\"getClass('title')\">\n {{selectedLabel}}\n </div>\n <div [nasClass]=\"getClass('arrow', [open && 'open'])\">\n <nas-icon [icon]=\"'angle-down'\" [type]=\"'small'\"></nas-icon>\n </div>\n </button>\n <div *ngIf=\"open\" [nasClass]=\"getClass('options')\">\n <ng-container *ngIf=\"!hasContent; else contentOptions\">\n <div *ngFor=\"let option of options; let isLast = last\">\n <nas-option-new [value]=\"option?.value\" [label]=\"option?.label\" [icon]=\"option?.icon\" [displayValue]=\"option?.displayValue\"></nas-option-new>\n </div>\n </ng-container>\n <ng-template #contentOptions>\n <ng-content></ng-content>\n </ng-template>\n </div>\n <div *ngIf=\"exists(error) && errorMessage\" [nasClass]=\"getClass('error')\">\n <nas-icon [nasClass]=\"getClass('error--icon')\" type=\"negative\"></nas-icon>\n {{errorMessage}}\n </div>\n </div>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}:host{display:block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}:host:has(.nas-select-new__select-box--stretched){width:100%}:host:has(.nas-select-new__select-box--inline){display:inline-block}.nas-select-new ::ng-deep .nas-select-new__tooltip .nas-icon-small--info{transform:scale(.75)}.nas-select-new__label{font-size:16px;font-weight:700;display:flex;gap:4px}.nas-select-new__select-box{position:relative;min-width:225px;max-width:300px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin-bottom:16px}.nas-select-new__select-box--active .nas-select-new__select{background-color:#ebf4ff;border-color:#15273f}.nas-select-new__select-box--valid .nas-select-new__select{border-color:#15273f}.nas-select-new__select-box--error .nas-select-new__select{border:2px solid #E5212D;background-color:#fff5f3}.nas-select-new__select-box--disabled .nas-select-new__select{pointer-events:none;color:#6f6f6f;background-color:#e9e7e4;border-color:#e9e7e4}.nas-select-new__select-box--stretched{width:100%;max-width:none}.nas-select-new__select-box--autogrow{min-width:auto;max-width:none}.nas-select-new__select-box--autogrow .nas-select-new__options{top:50px;min-width:175px;border-top:2px solid #15273F}.nas-select-new__select-box--compact .nas-select-new__select{padding:9px}.nas-select-new__select-box--compact ::ng-deep .nas-select-new__arrow .nas-icon-small{transform:scale(.85)}.nas-select-new__select-box--compact ::ng-deep .nas-option-new__option{padding:9px}.nas-select-new__select-box--spaceless{margin-bottom:0}.nas-select-new__select{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;border:2px solid #6F6F6F;padding:12px 16px;background-color:#fff;max-height:52px}.nas-select-new__select:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-select-new__icon ::ng-deep span{background-size:contain;height:24px;width:24px}.nas-select-new__title{margin-right:8px;white-space:nowrap;overflow:hidden}.nas-select-new__arrow{transition:transform .3s ease;margin-left:auto}.nas-select-new__arrow--open{transform:rotate(180deg)}.nas-select-new__options{position:absolute;z-index:5;width:100%;border-left:2px solid #15273F;border-right:2px solid #15273F;border-bottom:2px solid #15273F;max-height:500px;overflow:auto}.nas-select-new__options::-webkit-scrollbar{height:4px;width:4px}.nas-select-new__options::-webkit-scrollbar-thumb{background:#6f6f6f;border-radius:2px}.nas-select-new__options::-webkit-scrollbar-track-piece:end{margin-right:75px;background:#fff}.nas-select-new__options::-webkit-scrollbar-track-piece:start{margin-left:75px;background:#fff}.nas-select-new__options::-moz-scrollbar{height:4px;width:4px}.nas-select-new__error{display:flex;align-items:center;gap:4px;color:#b12a0b;margin-top:4px}.nas-select-new__error--icon{transform:scale(.85)}.nas-select-new__simple,.nas-select-new__select-box--simple,.nas-select-new__select-box--inline{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-width:auto;border-bottom:2px solid #6F6F6F;max-width:none}.nas-select-new__simple.nas-select-new__select-box--valid,.nas-select-new__select-box--valid.nas-select-new__select-box--simple,.nas-select-new__select-box--valid.nas-select-new__select-box--inline{border-bottom:2px solid #15273F}.nas-select-new__simple.nas-select-new__select-box--error,.nas-select-new__select-box--error.nas-select-new__select-box--simple,.nas-select-new__select-box--error.nas-select-new__select-box--inline{border-bottom:2px solid #E5212D}.nas-select-new__simple .nas-select-new__select,.nas-select-new__select-box--simple .nas-select-new__select,.nas-select-new__select-box--inline .nas-select-new__select{width:auto;justify-content:unset;gap:0;border:0;padding:0;background-color:transparent}.nas-select-new__simple .nas-select-new__title,.nas-select-new__select-box--simple .nas-select-new__title,.nas-select-new__select-box--inline .nas-select-new__title{margin-right:4px}.nas-select-new__simple .nas-select-new__options,.nas-select-new__select-box--simple .nas-select-new__options,.nas-select-new__select-box--inline .nas-select-new__options{min-width:175px;border-top:2px solid #15273F}.nas-select-new__simple ::ng-deep .nas-select-new__arrow,.nas-select-new__select-box--simple ::ng-deep .nas-select-new__arrow,.nas-select-new__select-box--inline ::ng-deep .nas-select-new__arrow{margin-left:0}.nas-select-new__simple ::ng-deep .nas-select-new__arrow .nas-icon-small,.nas-select-new__select-box--simple ::ng-deep .nas-select-new__arrow .nas-icon-small,.nas-select-new__select-box--inline ::ng-deep .nas-select-new__arrow .nas-icon-small{transform:scale(.75);margin-right:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i4.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "component", type: i5.TooltipComponent, selector: "nas-tooltip", inputs: ["text", "enabled", "left", "right"] }, { kind: "component", type: i6.OptionNewComponent, selector: "nas-option-new", inputs: ["displayValue", "icon", "label", "value"] }] }); }
218
+ }
219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectNewComponent, decorators: [{
220
+ type: Component,
221
+ args: [{ selector: 'nas-select-new', providers: [SelectNewService], template: "<div [nasClass]=\"getClass()\">\n <label *ngIf=\"label\" [nasClass]=\"getClass('label')\">\n {{ label }}\n <nas-tooltip *ngIf=\"infoText\" [text]=\"infoText\">\n <nas-icon [nasClass]=\"getClass('tooltip')\" [icon]=\"'info'\" [type]=\"'small'\"></nas-icon>\n </nas-tooltip>\n </label>\n <div #selectBox [nasClass]=\"getClass('select-box', modifiers)\">\n <button [nasClass]=\"getClass('select')\" [id]=\"selectId\"\n (click)=\"onOpen()\">\n <nas-icon *ngIf=\"selected?.icon\" [nasClass]=\"getClass('icon')\" [icon]=\"getIconName(selected.icon)\"\n [type]=\"getIconType(selected.icon)\"></nas-icon>\n <div *ngIf=\"selected?.label\" [nasClass]=\"getClass('title')\">\n {{selectedLabel}}\n </div>\n <div [nasClass]=\"getClass('arrow', [open && 'open'])\">\n <nas-icon [icon]=\"'angle-down'\" [type]=\"'small'\"></nas-icon>\n </div>\n </button>\n <div *ngIf=\"open\" [nasClass]=\"getClass('options')\">\n <ng-container *ngIf=\"!hasContent; else contentOptions\">\n <div *ngFor=\"let option of options; let isLast = last\">\n <nas-option-new [value]=\"option?.value\" [label]=\"option?.label\" [icon]=\"option?.icon\" [displayValue]=\"option?.displayValue\"></nas-option-new>\n </div>\n </ng-container>\n <ng-template #contentOptions>\n <ng-content></ng-content>\n </ng-template>\n </div>\n <div *ngIf=\"exists(error) && errorMessage\" [nasClass]=\"getClass('error')\">\n <nas-icon [nasClass]=\"getClass('error--icon')\" type=\"negative\"></nas-icon>\n {{errorMessage}}\n </div>\n </div>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}:host{display:block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}:host:has(.nas-select-new__select-box--stretched){width:100%}:host:has(.nas-select-new__select-box--inline){display:inline-block}.nas-select-new ::ng-deep .nas-select-new__tooltip .nas-icon-small--info{transform:scale(.75)}.nas-select-new__label{font-size:16px;font-weight:700;display:flex;gap:4px}.nas-select-new__select-box{position:relative;min-width:225px;max-width:300px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin-bottom:16px}.nas-select-new__select-box--active .nas-select-new__select{background-color:#ebf4ff;border-color:#15273f}.nas-select-new__select-box--valid .nas-select-new__select{border-color:#15273f}.nas-select-new__select-box--error .nas-select-new__select{border:2px solid #E5212D;background-color:#fff5f3}.nas-select-new__select-box--disabled .nas-select-new__select{pointer-events:none;color:#6f6f6f;background-color:#e9e7e4;border-color:#e9e7e4}.nas-select-new__select-box--stretched{width:100%;max-width:none}.nas-select-new__select-box--autogrow{min-width:auto;max-width:none}.nas-select-new__select-box--autogrow .nas-select-new__options{top:50px;min-width:175px;border-top:2px solid #15273F}.nas-select-new__select-box--compact .nas-select-new__select{padding:9px}.nas-select-new__select-box--compact ::ng-deep .nas-select-new__arrow .nas-icon-small{transform:scale(.85)}.nas-select-new__select-box--compact ::ng-deep .nas-option-new__option{padding:9px}.nas-select-new__select-box--spaceless{margin-bottom:0}.nas-select-new__select{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;border:2px solid #6F6F6F;padding:12px 16px;background-color:#fff;max-height:52px}.nas-select-new__select:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-select-new__icon ::ng-deep span{background-size:contain;height:24px;width:24px}.nas-select-new__title{margin-right:8px;white-space:nowrap;overflow:hidden}.nas-select-new__arrow{transition:transform .3s ease;margin-left:auto}.nas-select-new__arrow--open{transform:rotate(180deg)}.nas-select-new__options{position:absolute;z-index:5;width:100%;border-left:2px solid #15273F;border-right:2px solid #15273F;border-bottom:2px solid #15273F;max-height:500px;overflow:auto}.nas-select-new__options::-webkit-scrollbar{height:4px;width:4px}.nas-select-new__options::-webkit-scrollbar-thumb{background:#6f6f6f;border-radius:2px}.nas-select-new__options::-webkit-scrollbar-track-piece:end{margin-right:75px;background:#fff}.nas-select-new__options::-webkit-scrollbar-track-piece:start{margin-left:75px;background:#fff}.nas-select-new__options::-moz-scrollbar{height:4px;width:4px}.nas-select-new__error{display:flex;align-items:center;gap:4px;color:#b12a0b;margin-top:4px}.nas-select-new__error--icon{transform:scale(.85)}.nas-select-new__simple,.nas-select-new__select-box--simple,.nas-select-new__select-box--inline{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-width:auto;border-bottom:2px solid #6F6F6F;max-width:none}.nas-select-new__simple.nas-select-new__select-box--valid,.nas-select-new__select-box--valid.nas-select-new__select-box--simple,.nas-select-new__select-box--valid.nas-select-new__select-box--inline{border-bottom:2px solid #15273F}.nas-select-new__simple.nas-select-new__select-box--error,.nas-select-new__select-box--error.nas-select-new__select-box--simple,.nas-select-new__select-box--error.nas-select-new__select-box--inline{border-bottom:2px solid #E5212D}.nas-select-new__simple .nas-select-new__select,.nas-select-new__select-box--simple .nas-select-new__select,.nas-select-new__select-box--inline .nas-select-new__select{width:auto;justify-content:unset;gap:0;border:0;padding:0;background-color:transparent}.nas-select-new__simple .nas-select-new__title,.nas-select-new__select-box--simple .nas-select-new__title,.nas-select-new__select-box--inline .nas-select-new__title{margin-right:4px}.nas-select-new__simple .nas-select-new__options,.nas-select-new__select-box--simple .nas-select-new__options,.nas-select-new__select-box--inline .nas-select-new__options{min-width:175px;border-top:2px solid #15273F}.nas-select-new__simple ::ng-deep .nas-select-new__arrow,.nas-select-new__select-box--simple ::ng-deep .nas-select-new__arrow,.nas-select-new__select-box--inline ::ng-deep .nas-select-new__arrow{margin-left:0}.nas-select-new__simple ::ng-deep .nas-select-new__arrow .nas-icon-small,.nas-select-new__select-box--simple ::ng-deep .nas-select-new__arrow .nas-icon-small,.nas-select-new__select-box--inline ::ng-deep .nas-select-new__arrow .nas-icon-small{transform:scale(.75);margin-right:0}\n"] }]
222
+ }], ctorParameters: function () { return [{ type: i1.SelectNewService }]; }, propDecorators: { selectBoxElement: [{
223
+ type: ViewChild,
224
+ args: ['selectBox']
225
+ }], optionsComponent: [{
226
+ type: ContentChildren,
227
+ args: [OptionNewComponent, { descendants: true }]
228
+ }], autogrow: [{
229
+ type: Input
230
+ }], compact: [{
231
+ type: Input
232
+ }], disabled: [{
233
+ type: Input
234
+ }], error: [{
235
+ type: Input
236
+ }], errorMessage: [{
237
+ type: Input
238
+ }], id: [{
239
+ type: Input
240
+ }], infoText: [{
241
+ type: Input
242
+ }], inline: [{
243
+ type: Input
244
+ }], label: [{
245
+ type: Input
246
+ }], nasFormControlName: [{
247
+ type: Input
248
+ }], nasFormGroup: [{
249
+ type: Input
250
+ }], options: [{
251
+ type: Input
252
+ }], presentValue: [{
253
+ type: Input
254
+ }], selected: [{
255
+ type: Input
256
+ }], simple: [{
257
+ type: Input
258
+ }], spaceless: [{
259
+ type: Input
260
+ }], stretched: [{
261
+ type: Input
262
+ }], selectedChange: [{
263
+ type: Output
264
+ }], clickOutside: [{
265
+ type: HostListener,
266
+ args: ['document:click', ['$event']]
267
+ }], onKeydown: [{
268
+ type: HostListener,
269
+ args: ['document:keydown', ['$event']]
270
+ }] } });
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW5ldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1uZXcvc2VsZWN0LW5ldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1uZXcvc2VsZWN0LW5ldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7QUFHakUsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztFQUdFO0FBT0YsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQTRGdEQ7Ozs7O01BS0U7SUFDRixJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQWtDO1FBQzVDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUUxQixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxF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TTs7NEZEVk8sa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGdCQUFnQixhQUdmLENBQUMsZ0JBQWdCLENBQUM7dUdBR0wsZ0JBQWdCO3NCQUF2QyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ3NDLGdCQUFnQjtzQkFBM0UsZUFBZTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBUWpELFFBQVE7c0JBQWhCLEtBQUs7Z0JBUUcsT0FBTztzQkFBZixLQUFLO2dCQVFHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBUUcsS0FBSztzQkFBYixLQUFLO2dCQVFHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUUcsRUFBRTtzQkFBVixLQUFLO2dCQVFHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBUUcsTUFBTTtzQkFBZCxLQUFLO2dCQVFHLEtBQUs7c0JBQWIsS0FBSztnQkFRRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBUUcsWUFBWTtzQkFBcEIsS0FBSztnQkFTRixPQUFPO3NCQURWLEtBQUs7Z0JBc0JHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBU0YsUUFBUTtzQkFEWCxLQUFLO2dCQXVCRyxNQUFNO3NCQUFkLEtBQUs7Z0JBUUcsU0FBUztzQkFBakIsS0FBSztnQkFRRyxTQUFTO3NCQUFqQixLQUFLO2dCQVFJLGNBQWM7c0JBQXZCLE1BQU07Z0JBNkNQLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZMUMsU0FBUztzQkFEUixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IE5vcndlZ2lhbiBBaXIgU2h1dHRsZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqL1xuXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvbmFzLWNvbXBvbmVudC5iYXNlJztcbmltcG9ydCB7IFNlbGVjdE9wdGlvbk5ld01vZGVsIH0gZnJvbSAnLi9tb2RlbHMvc2VsZWN0LW9wdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBPcHRpb25OZXdDb21wb25lbnQgfSBmcm9tICcuL29wdGlvbi9vcHRpb24tbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3ROZXdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zZWxlY3QtbmV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIFNlbGVjdCBDb21wb25lbnQgfCBGb3JtIENvbnRyb2xzIHwgTmV3IGRlc2lnblxuKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1zZWxlY3QtbmV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1uZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtbmV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1NlbGVjdE5ld1NlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdE5ld0NvbXBvbmVudCBleHRlbmRzIE5hc0NvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCdzZWxlY3RCb3gnKSBzZWxlY3RCb3hFbGVtZW50OiBFbGVtZW50UmVmO1xuICBAQ29udGVudENoaWxkcmVuKE9wdGlvbk5ld0NvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBvcHRpb25zQ29tcG9uZW50ITogUXVlcnlMaXN0PE9wdGlvbk5ld0NvbXBvbmVudD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTWFrZXMgdGhlIHNlbGVjdCBjb21wb25lbnQgYXV0b2dyb3cuXG4gICovXG4gIEBJbnB1dCgpIGF1dG9ncm93PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGNvbXBhY3Qgc3R5bGluZy4gU2xpZ2h0eSBzbWFsbGVyIHRoZW4gcmVndWxhciBzZWxlY3QgYm94LlxuICAqL1xuICBASW5wdXQoKSBjb21wYWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBkaXNhYmxlZCBzdHlsaW5nLlxuICAqL1xuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBlcnJvciBzdHlsaW5nLlxuICAqL1xuICBASW5wdXQoKSBlcnJvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiBlcnJvciBvY2N1ci4gRXJyb3IgYXR0cmlidXRlIG5lZWQgdG8gYmUgdHJ1ZS5cbiAgKi9cbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgSUQgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICovXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBpbmZvcm1hdGlvbiB0ZXh0IHRvIHRoZSB0b29sdGlwLiBJbmZvIGljb24gd2lsbCBiZSBkaXNwbGF5ZWQgYmV0d2VlbiBsYWJlbCB0ZXh0LlxuICAqL1xuICBASW5wdXQoKSBpbmZvVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGlubGluZSBzdHlsaW5nLiBQb3NzaWJsZSB0byBiZSB1c2VkIGluIHNlbnRlbmNlcy5cbiAgKi9cbiAgQElucHV0KCkgaW5saW5lPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBsYWJlbCB0byB0aGUgc2VsZWN0IGJveC5cbiAgKi9cbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBzZWxlY3QuXG4gICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAqL1xuICBASW5wdXQoKSBuYXNGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkIG9wdGlvbnMgdG8gdGhlIHNlbGVjdG9yLlxuICAqL1xuICBASW5wdXQoKVxuICBnZXQgb3B0aW9ucygpOiBBcnJheTxTZWxlY3RPcHRpb25OZXdNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnNWYWx1ZTtcbiAgfVxuICBzZXQgb3B0aW9ucyh2YWx1ZTogQXJyYXk8U2VsZWN0T3B0aW9uTmV3TW9kZWw+KSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub3B0aW9uc1ZhbHVlID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5sZW5ndGggPiAwICYmIHRoaXMuc2VsZWN0ZWQgPT0gbnVsbCkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMub3B0aW9uc1swXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUHJlc2VudGluZyB2YWx1ZSBpbnN0ZWFkIG9mIHRpdGxlIGluIHRoZSBzZWxlY3QgYm94LlxuICAqL1xuICBASW5wdXQoKSBwcmVzZW50VmFsdWU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXQgc2VsZWN0ZWQgdmFsdWUgZnJvbSBvcHRpb24uXG4gICovXG4gIEBJbnB1dCgpXG4gIGdldCBzZWxlY3RlZCgpOiBTZWxlY3RPcHRpb25OZXdNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRWYWx1ZTtcbiAgfVxuICBzZXQgc2VsZWN0ZWQob3B0aW9uOiBTZWxlY3RPcHRpb25OZXdNb2RlbCkge1xuICAgIGlmICghb3B0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZSA9PSBvcHRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBvcHRpb247XG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KG9wdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHNpbXBsZSBzdHlsaW5nLiBCb3JkZXIgYW5kIGJhY2tncm91bmQgY29sb3Igc3R5bGluZ3MgYXJlIHJlbW92ZWQuXG4gICovXG4gIEBJbnB1dCgpIHNpbXBsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBzcGFjZWxlc3Mgc3R5bGluZy4gUmVtb3ZlcyBtYXJnaW5zIGZvciB0aGUgc2VsZWN0IGJveC4gXG4gICovXG4gIEBJbnB1dCgpIHNwYWNlbGVzcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBzdHJldGNoZWQgc3R5bGluZy5cbiAgKi9cbiAgQElucHV0KCkgc3RyZXRjaGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSBhIHNlbGVjdGlvbiBpcyBkb25lLlxuICAqL1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdE9wdGlvbk5ld01vZGVsPigpO1xuXG4gIGdldCBtb2RpZmllcnMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMub3BlbiAmJiAnYWN0aXZlJyxcbiAgICAgIHRoaXMuc2VsZWN0ZWQ/LnZhbHVlICYmICd2YWxpZCcsXG4gICAgICB0aGlzLnNlbGVjdGVkPy5kaXNwbGF5VmFsdWUgJiYgJ2V4dGVuZGVkJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuZGlzYWJsZWQpICYmICdkaXNhYmxlZCcsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmVycm9yKSAmJiAnZXJyb3InLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zdHJldGNoZWQpICYmICdzdHJldGNoZWQnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5hdXRvZ3JvdykgJiYgJ2F1dG9ncm93JyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuY29tcGFjdCkgJiYgJ2NvbXBhY3QnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zaW1wbGUpICYmICdzaW1wbGUnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5pbmxpbmUpICYmICdpbmxpbmUnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zcGFjZWxlc3MpICYmICdzcGFjZWxlc3MnLFxuICAgIF07XG4gIH1cblxuICBnZXQgc2VsZWN0Q29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLm5hc0Zvcm1Hcm91cD8uZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcbiAgfVxuXG4gIGdldCBzZWxlY3RJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkID8gdGhpcy5pZCA6IGBuYXMtc2VsZWN0LW5ldy0ke3RoaXMuY29tcG9uZW50SWR9YDtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZExhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICF0aGlzLmV4aXN0cyh0aGlzLnByZXNlbnRWYWx1ZSkgPyB0aGlzLnNlbGVjdGVkPy5sYWJlbCA6IHRoaXMuc2VsZWN0ZWQ/LnZhbHVlO1xuICB9XG5cbiAgb3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBoYXNDb250ZW50OiBib29sZWFuID0gZmFsc2U7XG4gIG9wdGlvbnNWYWx1ZTogQXJyYXk8U2VsZWN0T3B0aW9uTmV3TW9kZWw+O1xuICBzZWxlY3RlZFZhbHVlOiBTZWxlY3RPcHRpb25OZXdNb2RlbDtcblxuICBwcml2YXRlIGNvbXBvbmVudElkOiBudW1iZXI7XG4gIHByaXZhdGUgYWN0aXZlSW5kZXg6IG51bWJlciA9IC0xO1xuICBwcml2YXRlIE5BU19PUFRJT05fVEFHID0gXCJuYXMtb3B0aW9uLW5ld1wiXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZWxlY3RTZXJ2aWNlOiBTZWxlY3ROZXdTZXJ2aWNlKSB7XG4gICAgc3VwZXIoJ25hcy1zZWxlY3QtbmV3Jyk7XG4gICAgdGhpcy5jb21wb25lbnRJZCA9IG5leHRJZCsrO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBjbGlja091dHNpZGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RCb3hFbGVtZW50KSB7XG4gICAgICBjb25zdCBjbGlja2VkSW5zaWRlID0gdGhpcy5zZWxlY3RCb3hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcblxuICAgICAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLnNlbGVjdEtleURvd24oZXZlbnQpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkICYmIHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5vcHRpb25zWzBdO1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IG9wdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdFNlcnZpY2Uuc2VsZWN0ZWQkLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZCh2YWx1ZSlcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLm5hc0Zvcm1Hcm91cCAmJiB0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0Q29udHJvbCkge1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkKHRoaXMuc2VsZWN0Q29udHJvbC52YWx1ZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3B0aW9uc0NvbXBvbmVudCAmJiB0aGlzLm9wdGlvbnNDb21wb25lbnQ/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuaGFzQ29udGVudCA9IHRydWU7XG5cbiAgICAgIGlmICghdGhpcy5vcHRpb25zKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG5ldyBBcnJheTxPcHRpb25OZXdDb21wb25lbnQ+O1xuICAgICAgICB0aGlzLm9wdGlvbnNDb21wb25lbnQuZm9yRWFjaCgob3B0aW9uOiBPcHRpb25OZXdDb21wb25lbnQpID0+IHtcbiAgICAgICAgICB0aGlzLnNldE9wdGlvbnNGcm9tQ29udGVudChvcHRpb24pO1xuICAgICAgICB9KTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5vcHRpb25zWzBdO1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uT3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUluZGV4ID0gLTE7XG4gICAgdGhpcy5vcGVuID0gIXRoaXMub3BlblxuICB9XG5cbiAgZ2V0SWNvbk5hbWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0U2VydmljZS5nZXRJY29uTmFtZSh2YWx1ZSk7XG4gIH1cblxuICBnZXRJY29uVHlwZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RTZXJ2aWNlLmdldEljb25UeXBlKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U2VsZWN0ZWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5vcHRpb25zPy5maW5kKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT0gdmFsdWUpO1xuXG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm5hc0Zvcm1Hcm91cCAmJiB0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgdGhpcy5zZWxlY3RDb250cm9sLnBhdGNoVmFsdWUoc2VsZWN0ZWQudmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICB0aGlzLmFjdGl2ZUluZGV4ID0gLTE7XG4gIH1cblxuICBwcml2YXRlIHNldE9wdGlvbnNGcm9tQ29udGVudChvcHRpb246IE9wdGlvbk5ld0NvbXBvbmVudCk6IHZvaWQge1xuICAgIGlmICghb3B0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucy5wdXNoKFxuICAgICAge1xuICAgICAgICBsYWJlbDogb3B0aW9uLmxhYmVsLFxuICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICBpY29uOiBvcHRpb24uaWNvbixcbiAgICAgICAgZGlzcGxheVZhbHVlOiBvcHRpb24uZGlzcGxheVZhbHVlXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wZW4gfHwgdGhpcy5vcHRpb25zPy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdUYWInOlxuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gdGhpcy5hY3RpdmVJbmRleCA8IHRoaXMub3B0aW9ucy5sZW5ndGggLSAxID8gdGhpcy5hY3RpdmVJbmRleCArIDEgOiAwO1xuICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZU9wdGlvbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gdGhpcy5hY3RpdmVJbmRleCA+IDAgPyB0aGlzLmFjdGl2ZUluZGV4IC0gMSA6IHRoaXMub3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZU9wdGlvbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgYWN0aXZlT3B0aW9uID0gdGhpcy5vcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdO1xuICAgICAgICBpZiAoYWN0aXZlT3B0aW9uKSB7XG4gICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZChhY3RpdmVPcHRpb24udmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQWN0aXZlT3B0aW9uKCk6IHZvaWQge1xuICAgIGlmKCF0aGlzLnNlbGVjdEJveEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgY29uc3Qgb3B0aW9uRWxlbWVudHMgPSBBcnJheS5mcm9tKHRoaXMuc2VsZWN0Qm94RWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5OQVNfT1BUSU9OX1RBRykpIGFzIEhUTUxFbGVtZW50W107XG5cbiAgICBpZiAoIW9wdGlvbkVsZW1lbnRzICYmIG9wdGlvbkVsZW1lbnRzLmxlbmd0aCA8PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgb3B0aW9uRWxlbWVudHMuZm9yRWFjaCgob3B0aW9uLCBpKSA9PiB7XG4gICAgICBpZiAoaSA9PT0gdGhpcy5hY3RpdmVJbmRleCkge1xuICAgICAgICBvcHRpb24uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG4gICAgICAgIG9wdGlvbi5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvcHRpb24uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxufSIsIjxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKClcIj5cbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIj5cbiAgICB7eyBsYWJlbCB9fVxuICAgIDxuYXMtdG9vbHRpcCAqbmdJZj1cImluZm9UZXh0XCIgW3RleHRdPVwiaW5mb1RleHRcIj5cbiAgICAgIDxuYXMtaWNvbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3Rvb2x0aXAnKVwiIFtpY29uXT1cIidpbmZvJ1wiIFt0eXBlXT1cIidzbWFsbCdcIj48L25hcy1pY29uPlxuICAgIDwvbmFzLXRvb2x0aXA+XG4gIDwvbGFiZWw+XG4gIDxkaXYgI3NlbGVjdEJveCBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3NlbGVjdC1ib3gnLCBtb2RpZmllcnMpXCI+XG4gICAgPGJ1dHRvbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3NlbGVjdCcpXCIgW2lkXT1cInNlbGVjdElkXCJcbiAgICAgIChjbGljayk9XCJvbk9wZW4oKVwiPlxuICAgICAgPG5hcy1pY29uICpuZ0lmPVwic2VsZWN0ZWQ/Lmljb25cIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2ljb24nKVwiIFtpY29uXT1cImdldEljb25OYW1lKHNlbGVjdGVkLmljb24pXCJcbiAgICAgICAgW3R5cGVdPVwiZ2V0SWNvblR5cGUoc2VsZWN0ZWQuaWNvbilcIj48L25hcy1pY29uPlxuICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkPy5sYWJlbFwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygndGl0bGUnKVwiPlxuICAgICAgICB7e3NlbGVjdGVkTGFiZWx9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnYXJyb3cnLCBbb3BlbiAmJiAnb3BlbiddKVwiPlxuICAgICAgICA8bmFzLWljb24gW2ljb25dPVwiJ2FuZ2xlLWRvd24nXCIgW3R5cGVdPVwiJ3NtYWxsJ1wiPjwvbmFzLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2ICpuZ0lmPVwib3BlblwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnb3B0aW9ucycpXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0NvbnRlbnQ7IGVsc2UgY29udGVudE9wdGlvbnNcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnM7IGxldCBpc0xhc3QgPSBsYXN0XCI+XG4gICAgICAgICAgPG5hcy1vcHRpb24tbmV3IFt2YWx1ZV09XCJvcHRpb24/LnZhbHVlXCIgW2xhYmVsXT1cIm9wdGlvbj8ubGFiZWxcIiBbaWNvbl09XCJvcHRpb24/Lmljb25cIiBbZGlzcGxheVZhbHVlXT1cIm9wdGlvbj8uZGlzcGxheVZhbHVlXCI+PC9uYXMtb3B0aW9uLW5ldz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudE9wdGlvbnM+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImV4aXN0cyhlcnJvcikgJiYgZXJyb3JNZXNzYWdlXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdlcnJvcicpXCI+XG4gICAgICA8bmFzLWljb24gW25hc0NsYXNzXT1cImdldENsYXNzKCdlcnJvci0taWNvbicpXCIgdHlwZT1cIm5lZ2F0aXZlXCI+PC9uYXMtaWNvbj5cbiAgICAgIHt7ZXJyb3JNZXNzYWdlfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -0,0 +1,26 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ReactiveFormsModule } from '@angular/forms';
4
+ import { SelectNewComponent } from './select-new.component';
5
+ import { NasClassModule } from '../../core/directives/nas-class/nas-class.module';
6
+ import { IconModule } from '../icon/icon.module';
7
+ import { TooltipModule } from '../tooltip/tooltip.module';
8
+ import { OptionNewComponent } from './option/option-new.component';
9
+ import { SelectNewService } from './services/select-new.service';
10
+ import { OptGroupNewComponent } from './optgroup/optgroup-new.component';
11
+ import * as i0 from "@angular/core";
12
+ export class SelectNewModule {
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectNewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SelectNewModule, declarations: [SelectNewComponent, OptionNewComponent, OptGroupNewComponent], imports: [CommonModule, ReactiveFormsModule, NasClassModule, IconModule, TooltipModule], exports: [SelectNewComponent, OptionNewComponent, OptGroupNewComponent] }); }
15
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectNewModule, providers: [SelectNewService], imports: [CommonModule, ReactiveFormsModule, NasClassModule, IconModule, TooltipModule] }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectNewModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ imports: [CommonModule, ReactiveFormsModule, NasClassModule, IconModule, TooltipModule],
21
+ declarations: [SelectNewComponent, OptionNewComponent, OptGroupNewComponent],
22
+ exports: [SelectNewComponent, OptionNewComponent, OptGroupNewComponent],
23
+ providers: [SelectNewService]
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW5ldy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1uZXcvc2VsZWN0LW5ldy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRWxGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBU3pFLE1BQU0sT0FBTyxlQUFlOytHQUFmLGVBQWU7Z0hBQWYsZUFBZSxpQkFKWCxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsYUFEakUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsYUFBYSxhQUU1RSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0I7Z0hBRzNELGVBQWUsYUFGZixDQUFDLGdCQUFnQixDQUFDLFlBSG5CLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLGFBQWE7OzRGQUszRSxlQUFlO2tCQU4zQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQztvQkFDdkYsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLENBQUM7b0JBQzVFLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDO29CQUN2RSxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFNlbGVjdE5ld0NvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LW5ldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmFzQ2xhc3NNb2R1bGUgfSBmcm9tICcuLi8uLi9jb3JlL2RpcmVjdGl2ZXMvbmFzLWNsYXNzL25hcy1jbGFzcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbi9pY29uLm1vZHVsZSc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5pbXBvcnQgeyBPcHRpb25OZXdDb21wb25lbnQgfSBmcm9tICcuL29wdGlvbi9vcHRpb24tbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3ROZXdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zZWxlY3QtbmV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgT3B0R3JvdXBOZXdDb21wb25lbnQgfSBmcm9tICcuL29wdGdyb3VwL29wdGdyb3VwLW5ldy5jb21wb25lbnQnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE5hc0NsYXNzTW9kdWxlLCBJY29uTW9kdWxlLCBUb29sdGlwTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbU2VsZWN0TmV3Q29tcG9uZW50LCBPcHRpb25OZXdDb21wb25lbnQsIE9wdEdyb3VwTmV3Q29tcG9uZW50XSxcbiAgZXhwb3J0czogW1NlbGVjdE5ld0NvbXBvbmVudCwgT3B0aW9uTmV3Q29tcG9uZW50LCBPcHRHcm91cE5ld0NvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1NlbGVjdE5ld1NlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdE5ld01vZHVsZSB7fVxuIl19
@@ -0,0 +1,40 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class SelectNewService {
5
+ constructor() {
6
+ this._selected$ = new Subject();
7
+ this.selected$ = this._selected$.asObservable();
8
+ }
9
+ select(value) {
10
+ this._selected$.next(value);
11
+ }
12
+ getIconName(value) {
13
+ if (!value) {
14
+ return "";
15
+ }
16
+ const iconList = value.split('|');
17
+ let iconName = "";
18
+ if (iconList?.length > 0) {
19
+ iconName = iconList[0];
20
+ }
21
+ return iconName;
22
+ }
23
+ getIconType(value) {
24
+ if (!value) {
25
+ return "";
26
+ }
27
+ const iconList = value.split('|');
28
+ let iconType = "small";
29
+ if (iconList?.length > 1) {
30
+ iconType = iconList[1];
31
+ }
32
+ return iconType;
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectNewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectNewService }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectNewService, decorators: [{
38
+ type: Injectable
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW5ldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QtbmV3L3NlcnZpY2VzL3NlbGVjdC1uZXcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRy9CLE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFVSxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUMzQyxjQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQW9DNUM7SUFsQ0MsTUFBTSxDQUFDLEtBQWE7UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxRQUFRLEdBQWEsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFFbEIsSUFBSSxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN4QixRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hCO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxRQUFRLEdBQWEsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFFdkIsSUFBSSxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN4QixRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hCO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzsrR0FwQ1UsZ0JBQWdCO21IQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWxlY3ROZXdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWQkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBzZWxlY3RlZCQgPSB0aGlzLl9zZWxlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgc2VsZWN0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zZWxlY3RlZCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXRJY29uTmFtZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG5cbiAgICBjb25zdCBpY29uTGlzdDogc3RyaW5nW10gPSB2YWx1ZS5zcGxpdCgnfCcpO1xuICAgIGxldCBpY29uTmFtZSA9IFwiXCI7XG5cbiAgICBpZiAoaWNvbkxpc3Q/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGljb25OYW1lID0gaWNvbkxpc3RbMF07XG4gICAgfVxuXG4gICAgcmV0dXJuIGljb25OYW1lO1xuICB9XG5cbiAgZ2V0SWNvblR5cGUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuXG4gICAgY29uc3QgaWNvbkxpc3Q6IHN0cmluZ1tdID0gdmFsdWUuc3BsaXQoJ3wnKTtcbiAgICBsZXQgaWNvblR5cGUgPSBcInNtYWxsXCI7XG5cbiAgICBpZiAoaWNvbkxpc3Q/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGljb25UeXBlID0gaWNvbkxpc3RbMV07XG4gICAgfVxuXG4gICAgcmV0dXJuIGljb25UeXBlO1xuICB9XG5cbn0iXX0=