ngx-semantic 2.0.7-beta.0 → 2.0.7-beta.2

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 (116) hide show
  1. package/fesm2022/ngx-semantic-collections-breadcrumb.mjs +13 -10
  2. package/fesm2022/ngx-semantic-collections-breadcrumb.mjs.map +1 -1
  3. package/fesm2022/ngx-semantic-collections-form.mjs +987 -16
  4. package/fesm2022/ngx-semantic-collections-form.mjs.map +1 -1
  5. package/fesm2022/ngx-semantic-collections-grid.mjs +13 -10
  6. package/fesm2022/ngx-semantic-collections-grid.mjs.map +1 -1
  7. package/fesm2022/ngx-semantic-collections-menu.mjs +25 -13
  8. package/fesm2022/ngx-semantic-collections-menu.mjs.map +1 -1
  9. package/fesm2022/ngx-semantic-collections-message.mjs +20 -20
  10. package/fesm2022/ngx-semantic-collections-message.mjs.map +1 -1
  11. package/fesm2022/ngx-semantic-collections-table.mjs +17 -13
  12. package/fesm2022/ngx-semantic-collections-table.mjs.map +1 -1
  13. package/fesm2022/ngx-semantic-core-base.mjs +1 -0
  14. package/fesm2022/ngx-semantic-core-base.mjs.map +1 -1
  15. package/fesm2022/ngx-semantic-core-util.mjs.map +1 -1
  16. package/fesm2022/ngx-semantic-elements-button.mjs +9 -7
  17. package/fesm2022/ngx-semantic-elements-button.mjs.map +1 -1
  18. package/fesm2022/ngx-semantic-elements-container.mjs.map +1 -1
  19. package/fesm2022/ngx-semantic-elements-divider.mjs.map +1 -1
  20. package/fesm2022/ngx-semantic-elements-flag.mjs +5 -4
  21. package/fesm2022/ngx-semantic-elements-flag.mjs.map +1 -1
  22. package/fesm2022/ngx-semantic-elements-header.mjs.map +1 -1
  23. package/fesm2022/ngx-semantic-elements-icon.mjs +5 -4
  24. package/fesm2022/ngx-semantic-elements-icon.mjs.map +1 -1
  25. package/fesm2022/ngx-semantic-elements-image.mjs +5 -4
  26. package/fesm2022/ngx-semantic-elements-image.mjs.map +1 -1
  27. package/fesm2022/ngx-semantic-elements-input.mjs +5 -4
  28. package/fesm2022/ngx-semantic-elements-input.mjs.map +1 -1
  29. package/fesm2022/ngx-semantic-elements-label.mjs +5 -4
  30. package/fesm2022/ngx-semantic-elements-label.mjs.map +1 -1
  31. package/fesm2022/ngx-semantic-elements-list.mjs.map +1 -1
  32. package/fesm2022/ngx-semantic-elements-loader.mjs.map +1 -1
  33. package/fesm2022/ngx-semantic-elements-placeholder.mjs.map +1 -1
  34. package/fesm2022/ngx-semantic-elements-rail.mjs.map +1 -1
  35. package/fesm2022/ngx-semantic-elements-reveal.mjs.map +1 -1
  36. package/fesm2022/ngx-semantic-elements-segment.mjs +5 -4
  37. package/fesm2022/ngx-semantic-elements-segment.mjs.map +1 -1
  38. package/fesm2022/ngx-semantic-elements-steps.mjs +5 -4
  39. package/fesm2022/ngx-semantic-elements-steps.mjs.map +1 -1
  40. package/fesm2022/ngx-semantic-modules-accordion.mjs.map +1 -1
  41. package/fesm2022/ngx-semantic-modules-checkbox.mjs +19 -19
  42. package/fesm2022/ngx-semantic-modules-checkbox.mjs.map +1 -1
  43. package/fesm2022/ngx-semantic-modules-dimmer.mjs +42 -33
  44. package/fesm2022/ngx-semantic-modules-dimmer.mjs.map +1 -1
  45. package/fesm2022/ngx-semantic-modules-dropdown.mjs.map +1 -1
  46. package/fesm2022/ngx-semantic-modules-embed.mjs +22 -22
  47. package/fesm2022/ngx-semantic-modules-embed.mjs.map +1 -1
  48. package/fesm2022/ngx-semantic-modules-modal.mjs +31 -32
  49. package/fesm2022/ngx-semantic-modules-modal.mjs.map +1 -1
  50. package/fesm2022/ngx-semantic-modules-popup.mjs +22 -23
  51. package/fesm2022/ngx-semantic-modules-popup.mjs.map +1 -1
  52. package/fesm2022/ngx-semantic-modules-progress.mjs +6 -6
  53. package/fesm2022/ngx-semantic-modules-progress.mjs.map +1 -1
  54. package/fesm2022/ngx-semantic-modules-rating.mjs +15 -17
  55. package/fesm2022/ngx-semantic-modules-rating.mjs.map +1 -1
  56. package/fesm2022/ngx-semantic-modules-search.mjs +34 -34
  57. package/fesm2022/ngx-semantic-modules-search.mjs.map +1 -1
  58. package/fesm2022/ngx-semantic-modules-select.mjs +87 -88
  59. package/fesm2022/ngx-semantic-modules-select.mjs.map +1 -1
  60. package/fesm2022/ngx-semantic-modules-shape.mjs +6 -6
  61. package/fesm2022/ngx-semantic-modules-shape.mjs.map +1 -1
  62. package/fesm2022/ngx-semantic-modules-sidebar.mjs +13 -12
  63. package/fesm2022/ngx-semantic-modules-sidebar.mjs.map +1 -1
  64. package/fesm2022/ngx-semantic-modules-sticky.mjs +9 -12
  65. package/fesm2022/ngx-semantic-modules-sticky.mjs.map +1 -1
  66. package/fesm2022/ngx-semantic-modules-tabs.mjs +30 -30
  67. package/fesm2022/ngx-semantic-modules-tabs.mjs.map +1 -1
  68. package/fesm2022/ngx-semantic-modules-transition.mjs +721 -0
  69. package/fesm2022/ngx-semantic-modules-transition.mjs.map +1 -0
  70. package/fesm2022/ngx-semantic-views-advertisement.mjs +5 -4
  71. package/fesm2022/ngx-semantic-views-advertisement.mjs.map +1 -1
  72. package/fesm2022/ngx-semantic-views-card.mjs +6 -9
  73. package/fesm2022/ngx-semantic-views-card.mjs.map +1 -1
  74. package/fesm2022/ngx-semantic-views-comment.mjs.map +1 -1
  75. package/fesm2022/ngx-semantic-views-feed.mjs +26 -26
  76. package/fesm2022/ngx-semantic-views-feed.mjs.map +1 -1
  77. package/fesm2022/ngx-semantic-views-items.mjs +13 -10
  78. package/fesm2022/ngx-semantic-views-items.mjs.map +1 -1
  79. package/fesm2022/ngx-semantic-views-statistics.mjs +16 -16
  80. package/fesm2022/ngx-semantic-views-statistics.mjs.map +1 -1
  81. package/fesm2022/ngx-semantic.mjs +11 -5
  82. package/fesm2022/ngx-semantic.mjs.map +1 -1
  83. package/modules/transition/package.json +4 -0
  84. package/package.json +5 -1
  85. package/types/ngx-semantic-collections-breadcrumb.d.ts +4 -17
  86. package/types/ngx-semantic-collections-form.d.ts +150 -20
  87. package/types/ngx-semantic-collections-grid.d.ts +4 -17
  88. package/types/ngx-semantic-collections-menu.d.ts +4 -17
  89. package/types/ngx-semantic-collections-message.d.ts +1 -3
  90. package/types/ngx-semantic-collections-table.d.ts +5 -22
  91. package/types/ngx-semantic-core-base.d.ts +1 -1
  92. package/types/ngx-semantic-elements-button.d.ts +3 -8
  93. package/types/ngx-semantic-elements-flag.d.ts +2 -3
  94. package/types/ngx-semantic-elements-icon.d.ts +1 -2
  95. package/types/ngx-semantic-elements-image.d.ts +2 -7
  96. package/types/ngx-semantic-elements-input.d.ts +2 -7
  97. package/types/ngx-semantic-elements-label.d.ts +2 -7
  98. package/types/ngx-semantic-elements-segment.d.ts +1 -6
  99. package/types/ngx-semantic-elements-steps.d.ts +1 -6
  100. package/types/ngx-semantic-modules-checkbox.d.ts +3 -4
  101. package/types/ngx-semantic-modules-dimmer.d.ts +2 -3
  102. package/types/ngx-semantic-modules-embed.d.ts +2 -5
  103. package/types/ngx-semantic-modules-modal.d.ts +2 -2
  104. package/types/ngx-semantic-modules-popup.d.ts +2 -4
  105. package/types/ngx-semantic-modules-rating.d.ts +4 -4
  106. package/types/ngx-semantic-modules-select.d.ts +1 -2
  107. package/types/ngx-semantic-modules-shape.d.ts +1 -2
  108. package/types/ngx-semantic-modules-sidebar.d.ts +1 -15
  109. package/types/ngx-semantic-modules-sticky.d.ts +1 -2
  110. package/types/ngx-semantic-modules-transition.d.ts +107 -0
  111. package/types/ngx-semantic-views-advertisement.d.ts +2 -7
  112. package/types/ngx-semantic-views-card.d.ts +2 -2
  113. package/types/ngx-semantic-views-feed.d.ts +2 -11
  114. package/types/ngx-semantic-views-items.d.ts +4 -9
  115. package/types/ngx-semantic-views-statistics.d.ts +13 -26
  116. package/types/ngx-semantic.d.ts +2 -1
@@ -1,9 +1,8 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { HostBinding, Input, Directive, EventEmitter, forwardRef, HostListener, Output, ViewChild, ViewEncapsulation, Component, NgModule } from '@angular/core';
4
- import * as i1 from '@angular/common';
3
+ import { HostBinding, Input, Directive, inject, ChangeDetectorRef, EventEmitter, forwardRef, HostListener, Output, ViewChild, ViewEncapsulation, Component, NgModule } from '@angular/core';
5
4
  import { CommonModule } from '@angular/common';
6
- import * as i2 from '@angular/forms';
5
+ import * as i1 from '@angular/forms';
7
6
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
8
7
  import { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';
9
8
 
@@ -103,6 +102,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImpor
103
102
  }] } });
104
103
 
105
104
  class SuiSelectComponent {
105
+ constructor() {
106
+ this.changeDetectorRef = inject(ChangeDetectorRef);
107
+ this.suiSelectionChanged = new EventEmitter();
108
+ this.suiPlaceholder = null;
109
+ this.suiSearch = false;
110
+ this.suiFluid = false;
111
+ this.suiInline = false;
112
+ this.suiLoading = false;
113
+ this.suiError = false;
114
+ this.disabled = false;
115
+ this.suiScrolling = false;
116
+ this.suiCompact = false;
117
+ this.name = null;
118
+ this.suiMultiple = false;
119
+ this.isOpen = false;
120
+ this.isSearching = false;
121
+ this.selectedValues = [];
122
+ this.searchTerm = '';
123
+ this.allOptions = [];
124
+ this.filteredOptions = [];
125
+ this.selectedOption = undefined;
126
+ this.selectedOptions = [];
127
+ this.controlValueChangeFn = () => {
128
+ };
129
+ }
106
130
  set suiOptions(options) {
107
131
  this.allOptions = this.filteredOptions = options;
108
132
  }
@@ -130,31 +154,6 @@ class SuiSelectComponent {
130
154
  ClassUtils.getPropClass(this.suiError, 'error')
131
155
  ]);
132
156
  }
133
- constructor(changeDetectorRef) {
134
- this.changeDetectorRef = changeDetectorRef;
135
- this.suiSelectionChanged = new EventEmitter();
136
- this.suiPlaceholder = null;
137
- this.suiSearch = false;
138
- this.suiFluid = false;
139
- this.suiInline = false;
140
- this.suiLoading = false;
141
- this.suiError = false;
142
- this.disabled = false;
143
- this.suiScrolling = false;
144
- this.suiCompact = false;
145
- this.name = null;
146
- this.suiMultiple = false;
147
- this.isOpen = false;
148
- this.isSearching = false;
149
- this.selectedValues = [];
150
- this.searchTerm = '';
151
- this.allOptions = [];
152
- this.filteredOptions = [];
153
- this.selectedOption = undefined;
154
- this.selectedOptions = [];
155
- this.controlValueChangeFn = () => {
156
- };
157
- }
158
157
  get multiple() {
159
158
  return this.suiMultiple ? '' : undefined;
160
159
  }
@@ -271,8 +270,8 @@ class SuiSelectComponent {
271
270
  setDisabledState(isDisabled) {
272
271
  this.disabled = isDisabled;
273
272
  }
274
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
275
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: SuiSelectComponent, isStandalone: true, selector: "sui-select", inputs: { suiPlaceholder: "suiPlaceholder", suiSearch: "suiSearch", suiFluid: "suiFluid", suiInline: "suiInline", suiLoading: "suiLoading", suiError: "suiError", disabled: "disabled", suiScrolling: "suiScrolling", suiCompact: "suiCompact", name: "name", suiMultiple: "suiMultiple", suiOptions: "suiOptions" }, outputs: { suiSelectionChanged: "suiSelectionChanged" }, host: { listeners: { "click": "onClick()" }, properties: { "tabindex": "this.tabIndex", "class": "this.classes" } }, providers: [{
273
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
274
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: SuiSelectComponent, isStandalone: true, selector: "sui-select", inputs: { suiPlaceholder: "suiPlaceholder", suiSearch: "suiSearch", suiFluid: "suiFluid", suiInline: "suiInline", suiLoading: "suiLoading", suiError: "suiError", disabled: "disabled", suiScrolling: "suiScrolling", suiCompact: "suiCompact", name: "name", suiMultiple: "suiMultiple", suiOptions: "suiOptions" }, outputs: { suiSelectionChanged: "suiSelectionChanged" }, host: { listeners: { "click": "onClick()" }, properties: { "tabindex": "this.tabIndex", "class": "this.classes" } }, providers: [{
276
275
  provide: NG_VALUE_ACCESSOR,
277
276
  useExisting: forwardRef(() => SuiSelectComponent),
278
277
  multi: true
@@ -280,94 +279,94 @@ class SuiSelectComponent {
280
279
  <i class="dropdown icon"></i>
281
280
 
282
281
  <!-- Multiple Select Display -->
283
- <ng-container *ngIf="suiMultiple">
284
- <ng-container *ngFor="let option of selectedOptions">
282
+ @if (suiMultiple) {
283
+ @for (option of selectedOptions; track option) {
285
284
  <a class="ui label transition visible"
286
285
  style="display: inline-block !important;">
287
- <ng-container *ngIf="option.image">
286
+ @if (option.image) {
288
287
  <img class="ui mini image"
289
288
  alt="Dropdown option image"
290
289
  [class.avatar]="option.image.avatar"
291
290
  [src]="option.image.src"/>
292
- </ng-container>
293
- <ng-container *ngIf="option.flag">
291
+ }
292
+ @if (option.flag) {
294
293
  <i [className]="'flag ' + option.flag"></i>
295
- </ng-container>
294
+ }
296
295
 
297
296
  {{ option.text }}
298
297
 
299
298
  <i class="delete icon"
300
299
  (click)="removeSelection(option, $event)"></i>
301
300
  </a>
302
- </ng-container>
301
+ }
303
302
 
304
303
  <div class="default text">{{ suiPlaceholder }}</div>
305
- </ng-container>
304
+ }
306
305
 
307
306
  <!-- Search Section -->
308
- <ng-container *ngIf="suiSearch">
307
+ @if (suiSearch) {
309
308
  <input class="search"
310
309
  autocomplete="off"
311
310
  tabindex="0"
312
311
  [(ngModel)]="searchTerm"
313
312
  (focus)="onClick()"
314
313
  (keyup)="onSearch()">
315
- </ng-container>
314
+ }
316
315
 
317
316
  <!-- Display Section -->
318
- <ng-container *ngIf="!suiMultiple">
317
+ @if (!suiMultiple) {
319
318
  <div
320
319
  [class.default]="isDefaultText"
321
320
  [class.filtered]="isFilteredText"
322
321
  [class.text]="true">
323
- <ng-container *ngIf="selectedOption">
324
- <ng-container *ngIf="selectedOption.image">
322
+ @if (selectedOption) {
323
+ @if (selectedOption.image) {
325
324
  <img class="ui mini image"
326
325
  alt="Dropdown option image"
327
326
  [class.avatar]="selectedOption.image.avatar"
328
327
  [src]="selectedOption.image.src"/>
329
- </ng-container>
330
- <ng-container *ngIf="selectedOption.flag">
328
+ }
329
+ @if (selectedOption.flag) {
331
330
  <i [className]="'flag ' + selectedOption.flag"></i>
332
- </ng-container>
331
+ }
333
332
 
334
333
  {{ selectedOption.text }}
335
- </ng-container>
334
+ }
336
335
 
337
- <ng-container *ngIf="!selectedOption">
336
+ @if (!selectedOption) {
338
337
  {{ suiPlaceholder }}
339
- </ng-container>
338
+ }
340
339
  </div>
341
- </ng-container>
340
+ }
342
341
 
343
342
  <!-- Drop Down Menu Section -->
344
343
  <div suiSelectMenu>
345
- <ng-container *ngFor="let option of filteredOptions">
344
+ @for (option of filteredOptions; track option) {
346
345
  <div suiSelectMenuItem
347
346
  [suiValue]="option.value"
348
347
  [suiSelected]="isActive(option)"
349
348
  [suiMultiple]="suiMultiple"
350
349
  (click)="onItemClick(option, $event)">
351
- <ng-container *ngIf="option.image">
350
+ @if (option.image) {
352
351
  <img class="ui mini image"
353
352
  alt="Dropdown option image"
354
353
  [class.avatar]="option.image.avatar"
355
354
  [src]="option.image.src"/>
356
- </ng-container>
357
- <ng-container *ngIf="option.flag">
355
+ }
356
+ @if (option.flag) {
358
357
  <i [className]="'flag ' + option.flag"></i>
359
- </ng-container>
358
+ }
360
359
  {{ option.text }}
361
360
  </div>
362
- </ng-container>
363
- <ng-container *ngIf="hasNoSearchResults()">
361
+ }
362
+ @if (hasNoSearchResults()) {
364
363
  <div class="message"
365
364
  (click)="$event.stopPropagation()">
366
365
  No results found.
367
366
  </div>
368
- </ng-container>
367
+ }
369
368
  </div>
370
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: SuiSelectMenuDirective, selector: "[suiSelectMenu]", inputs: ["suiDirection", "suiScrolling", "suiIsOpen"] }, { kind: "directive", type: SuiSelectMenuItemDirective, selector: "[suiSelectMenuItem]", inputs: ["suiValue", "suiSelected", "suiMultiple"] }], encapsulation: i0.ViewEncapsulation.None }); }
369
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: SuiSelectMenuDirective, selector: "[suiSelectMenu]", inputs: ["suiDirection", "suiScrolling", "suiIsOpen"] }, { kind: "directive", type: SuiSelectMenuItemDirective, selector: "[suiSelectMenuItem]", inputs: ["suiValue", "suiSelected", "suiMultiple"] }], encapsulation: i0.ViewEncapsulation.None }); }
371
370
  }
372
371
  __decorate([
373
372
  InputBoolean()
@@ -410,92 +409,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImpor
410
409
  <i class="dropdown icon"></i>
411
410
 
412
411
  <!-- Multiple Select Display -->
413
- <ng-container *ngIf="suiMultiple">
414
- <ng-container *ngFor="let option of selectedOptions">
412
+ @if (suiMultiple) {
413
+ @for (option of selectedOptions; track option) {
415
414
  <a class="ui label transition visible"
416
415
  style="display: inline-block !important;">
417
- <ng-container *ngIf="option.image">
416
+ @if (option.image) {
418
417
  <img class="ui mini image"
419
418
  alt="Dropdown option image"
420
419
  [class.avatar]="option.image.avatar"
421
420
  [src]="option.image.src"/>
422
- </ng-container>
423
- <ng-container *ngIf="option.flag">
421
+ }
422
+ @if (option.flag) {
424
423
  <i [className]="'flag ' + option.flag"></i>
425
- </ng-container>
424
+ }
426
425
 
427
426
  {{ option.text }}
428
427
 
429
428
  <i class="delete icon"
430
429
  (click)="removeSelection(option, $event)"></i>
431
430
  </a>
432
- </ng-container>
431
+ }
433
432
 
434
433
  <div class="default text">{{ suiPlaceholder }}</div>
435
- </ng-container>
434
+ }
436
435
 
437
436
  <!-- Search Section -->
438
- <ng-container *ngIf="suiSearch">
437
+ @if (suiSearch) {
439
438
  <input class="search"
440
439
  autocomplete="off"
441
440
  tabindex="0"
442
441
  [(ngModel)]="searchTerm"
443
442
  (focus)="onClick()"
444
443
  (keyup)="onSearch()">
445
- </ng-container>
444
+ }
446
445
 
447
446
  <!-- Display Section -->
448
- <ng-container *ngIf="!suiMultiple">
447
+ @if (!suiMultiple) {
449
448
  <div
450
449
  [class.default]="isDefaultText"
451
450
  [class.filtered]="isFilteredText"
452
451
  [class.text]="true">
453
- <ng-container *ngIf="selectedOption">
454
- <ng-container *ngIf="selectedOption.image">
452
+ @if (selectedOption) {
453
+ @if (selectedOption.image) {
455
454
  <img class="ui mini image"
456
455
  alt="Dropdown option image"
457
456
  [class.avatar]="selectedOption.image.avatar"
458
457
  [src]="selectedOption.image.src"/>
459
- </ng-container>
460
- <ng-container *ngIf="selectedOption.flag">
458
+ }
459
+ @if (selectedOption.flag) {
461
460
  <i [className]="'flag ' + selectedOption.flag"></i>
462
- </ng-container>
461
+ }
463
462
 
464
463
  {{ selectedOption.text }}
465
- </ng-container>
464
+ }
466
465
 
467
- <ng-container *ngIf="!selectedOption">
466
+ @if (!selectedOption) {
468
467
  {{ suiPlaceholder }}
469
- </ng-container>
468
+ }
470
469
  </div>
471
- </ng-container>
470
+ }
472
471
 
473
472
  <!-- Drop Down Menu Section -->
474
473
  <div suiSelectMenu>
475
- <ng-container *ngFor="let option of filteredOptions">
474
+ @for (option of filteredOptions; track option) {
476
475
  <div suiSelectMenuItem
477
476
  [suiValue]="option.value"
478
477
  [suiSelected]="isActive(option)"
479
478
  [suiMultiple]="suiMultiple"
480
479
  (click)="onItemClick(option, $event)">
481
- <ng-container *ngIf="option.image">
480
+ @if (option.image) {
482
481
  <img class="ui mini image"
483
482
  alt="Dropdown option image"
484
483
  [class.avatar]="option.image.avatar"
485
484
  [src]="option.image.src"/>
486
- </ng-container>
487
- <ng-container *ngIf="option.flag">
485
+ }
486
+ @if (option.flag) {
488
487
  <i [className]="'flag ' + option.flag"></i>
489
- </ng-container>
488
+ }
490
489
  {{ option.text }}
491
490
  </div>
492
- </ng-container>
493
- <ng-container *ngIf="hasNoSearchResults()">
491
+ }
492
+ @if (hasNoSearchResults()) {
494
493
  <div class="message"
495
494
  (click)="$event.stopPropagation()">
496
495
  No results found.
497
496
  </div>
498
- </ng-container>
497
+ }
499
498
  </div>
500
499
  `,
501
500
  providers: [{
@@ -504,7 +503,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImpor
504
503
  multi: true
505
504
  }]
506
505
  }]
507
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { optionsMenu: [{
506
+ }], propDecorators: { optionsMenu: [{
508
507
  type: ViewChild,
509
508
  args: [SuiSelectMenuDirective]
510
509
  }], suiSelectionChanged: [{
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-semantic-modules-select.mjs","sources":["../../src/modules/select/interfaces/ISelectOption.ts","../../src/modules/select/select-menu.directive.ts","../../src/modules/select/select-menu-item.directive.ts","../../src/modules/select/select.component.ts","../../src/modules/select/select.module.ts","../../src/modules/select/ngx-semantic-modules-select.ts"],"sourcesContent":["/**\n * Created by bolor on 11/2/2020\n */\n\nimport {ISelectOptionImage} from './ISelectOptionImage';\n\nexport interface ISelectOption {\n text: string;\n value: any;\n image?: ISelectOptionImage;\n flag?: string;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\n\nexport type SuiSelectMenuDirection = 'left' | 'right' | null;\n\n@Directive({\n standalone: true,\n selector: '[suiSelectMenu]'\n})\nexport class SuiSelectMenuDirective {\n @Input() public suiDirection: SuiSelectMenuDirection = null;\n @Input() @InputBoolean() public suiScrolling = false;\n\n private isOpen = false;\n\n @Input()\n set suiIsOpen(isOpen: boolean) {\n this.isOpen = isOpen;\n }\n\n get suiIsOpen(): boolean {\n return this.isOpen;\n }\n\n @HostBinding('tabindex')\n get tabIndex(): number {\n return -1;\n }\n\n @HostBinding('class')\n get classes(): string {\n return [\n ClassUtils.getPropClass(this.suiScrolling, 'scrolling'),\n this.suiDirection,\n 'menu',\n 'transition',\n ClassUtils.getPropClass(!this.isOpen, 'hidden'),\n ClassUtils.getPropClass(this.isOpen, 'visible')\n ].join(' ');\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\n\n@Directive({\n standalone: true,\n selector: '[suiSelectMenuItem]'\n})\nexport class SuiSelectMenuItemDirective {\n @Input() public suiValue: any = null;\n @Input() @InputBoolean() public suiSelected = false;\n @Input() @InputBoolean() public suiMultiple = false;\n\n @HostBinding('class')\n get classes(): string {\n return [\n 'item',\n ClassUtils.getPropClass(this.suiSelected, 'active'),\n ClassUtils.getPropClass(!this.suiMultiple && this.suiSelected, 'selected'),\n ClassUtils.getPropClass(this.suiMultiple && this.suiSelected, 'filtered')\n ].join(' ');\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { SuiSelectMenuDirective } from './select-menu.directive';\nimport { SuiSelectMenuItemDirective } from './select-menu-item.directive';\nimport { ISelectOption } from './interfaces/ISelectOption';\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule, SuiSelectMenuDirective, SuiSelectMenuItemDirective],\n selector: 'sui-select',\n encapsulation: ViewEncapsulation.None,\n template: `\n <i class=\"dropdown icon\"></i>\n\n <!-- Multiple Select Display -->\n <ng-container *ngIf=\"suiMultiple\">\n <ng-container *ngFor=\"let option of selectedOptions\">\n <a class=\"ui label transition visible\"\n style=\"display: inline-block !important;\">\n <ng-container *ngIf=\"option.image\">\n <img class=\"ui mini image\"\n alt=\"Dropdown option image\"\n [class.avatar]=\"option.image.avatar\"\n [src]=\"option.image.src\"/>\n </ng-container>\n <ng-container *ngIf=\"option.flag\">\n <i [className]=\"'flag ' + option.flag\"></i>\n </ng-container>\n\n {{ option.text }}\n\n <i class=\"delete icon\"\n (click)=\"removeSelection(option, $event)\"></i>\n </a>\n </ng-container>\n\n <div class=\"default text\">{{ suiPlaceholder }}</div>\n </ng-container>\n\n <!-- Search Section -->\n <ng-container *ngIf=\"suiSearch\">\n <input class=\"search\"\n autocomplete=\"off\"\n tabindex=\"0\"\n [(ngModel)]=\"searchTerm\"\n (focus)=\"onClick()\"\n (keyup)=\"onSearch()\">\n </ng-container>\n\n <!-- Display Section -->\n <ng-container *ngIf=\"!suiMultiple\">\n <div\n [class.default]=\"isDefaultText\"\n [class.filtered]=\"isFilteredText\"\n [class.text]=\"true\">\n <ng-container *ngIf=\"selectedOption\">\n <ng-container *ngIf=\"selectedOption.image\">\n <img class=\"ui mini image\"\n alt=\"Dropdown option image\"\n [class.avatar]=\"selectedOption.image.avatar\"\n [src]=\"selectedOption.image.src\"/>\n </ng-container>\n <ng-container *ngIf=\"selectedOption.flag\">\n <i [className]=\"'flag ' + selectedOption.flag\"></i>\n </ng-container>\n\n {{ selectedOption.text }}\n </ng-container>\n\n <ng-container *ngIf=\"!selectedOption\">\n {{ suiPlaceholder }}\n </ng-container>\n </div>\n </ng-container>\n\n <!-- Drop Down Menu Section -->\n <div suiSelectMenu>\n <ng-container *ngFor=\"let option of filteredOptions\">\n <div suiSelectMenuItem\n [suiValue]=\"option.value\"\n [suiSelected]=\"isActive(option)\"\n [suiMultiple]=\"suiMultiple\"\n (click)=\"onItemClick(option, $event)\">\n <ng-container *ngIf=\"option.image\">\n <img class=\"ui mini image\"\n alt=\"Dropdown option image\"\n [class.avatar]=\"option.image.avatar\"\n [src]=\"option.image.src\"/>\n </ng-container>\n <ng-container *ngIf=\"option.flag\">\n <i [className]=\"'flag ' + option.flag\"></i>\n </ng-container>\n {{ option.text }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"hasNoSearchResults()\">\n <div class=\"message\"\n (click)=\"$event.stopPropagation()\">\n No results found.\n </div>\n </ng-container>\n </div>\n `,\n providers: [ {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SuiSelectComponent),\n multi: true\n } ]\n})\nexport class SuiSelectComponent implements AfterViewInit, ControlValueAccessor {\n @ViewChild(SuiSelectMenuDirective) public optionsMenu!: SuiSelectMenuDirective;\n\n @Output() public suiSelectionChanged = new EventEmitter<any | any[]>();\n @Input() public suiPlaceholder: string | null = null;\n @Input() @InputBoolean() public suiSearch = false;\n @Input() @InputBoolean() public suiFluid = false;\n @Input() @InputBoolean() public suiInline = false;\n @Input() @InputBoolean() public suiLoading = false;\n @Input() @InputBoolean() public suiError = false;\n @Input() @InputBoolean() public disabled = false;\n @Input() @InputBoolean() public suiScrolling = false;\n @Input() @InputBoolean() public suiCompact = false;\n @Input() @InputBoolean() public name: string | null = null;\n @Input() @InputBoolean() public suiMultiple = false;\n\n private isOpen = false;\n private isSearching = false;\n private selectedValues: any[] = [];\n public searchTerm = '';\n private allOptions: ISelectOption[] = [];\n public filteredOptions: ISelectOption[] = [];\n public selectedOption: ISelectOption | undefined = undefined;\n public selectedOptions: ISelectOption[] = [];\n\n private controlValueChangeFn: (value: any | any[]) => void = () => {\n }\n\n @Input()\n set suiOptions(options: ISelectOption[]) {\n this.allOptions = this.filteredOptions = options;\n }\n\n get suiOptions(): ISelectOption[] {\n return this.allOptions;\n }\n\n @HostBinding('tabindex')\n get tabIndex(): number {\n return 0;\n }\n\n @HostBinding('class')\n get classes(): string {\n return ClassUtils.combineToClass([\n 'ui',\n ClassUtils.getPropClass(this.suiFluid, 'fluid'),\n ClassUtils.getPropClass(this.suiCompact, 'compact'),\n ClassUtils.getPropClass(this.suiSearch, 'search'),\n ClassUtils.getPropClass(this.suiLoading, 'loading'),\n 'selection',\n ClassUtils.getPropClass(this.suiInline, 'inline'),\n ClassUtils.getPropClass(this.disabled, 'disabled'),\n ClassUtils.getPropClass(this.suiScrolling, 'scrolling'),\n 'dropdown',\n ClassUtils.getPropClass(this.suiMultiple, 'multiple'),\n ClassUtils.getPropClass(this.isOpen, 'active'),\n ClassUtils.getPropClass(this.isOpen, 'visible'),\n ClassUtils.getPropClass(this.suiError, 'error')\n ]);\n }\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n }\n\n public get multiple(): string | undefined {\n return this.suiMultiple ? '' : undefined;\n }\n\n public get isDefaultText(): boolean {\n if (!this.selectedOption) {\n return true;\n }\n\n if (this.suiSearch) {\n return false;\n }\n\n return !this.selectedOption;\n }\n\n public get isFilteredText(): boolean {\n if (!this.suiSearch) {\n return false;\n }\n\n return this.isSearching;\n }\n\n @HostListener('click')\n public onClick(): void {\n if (this.disabled) {\n return;\n }\n\n this.isOpen = !this.isOpen;\n\n // handle selection dropdown\n if (this.optionsMenu) {\n this.optionsMenu.suiIsOpen = this.isOpen;\n }\n }\n\n public ngAfterViewInit(): void {\n if (!this.optionsMenu) {\n throw new Error('An error occurred rendering the options.');\n }\n }\n\n public onSearch(): void {\n this.isSearching = !!this.searchTerm;\n\n // if the user is searching, then keep the dropdown open\n if (this.optionsMenu) {\n this.isOpen = true;\n this.optionsMenu.suiIsOpen = true;\n }\n\n // limit the options displayed\n this.filteredOptions = this.allOptions\n .filter((x) => x.text.toLocaleLowerCase()\n .includes(this.searchTerm.toLocaleLowerCase()));\n }\n\n public isActive(option: ISelectOption): boolean {\n if (this.suiMultiple) {\n return this.selectedValues.includes(option.value);\n } else {\n return this.selectedOption === option;\n }\n }\n\n public hasNoSearchResults(): boolean {\n if (!this.suiSearch) {\n return false;\n }\n\n return this.filteredOptions.length === 0;\n }\n\n public onItemClick(option: ISelectOption, event: Event): void {\n // handle single select\n if (!this.suiMultiple) {\n const valueChanged = this.selectedOption?.value !== option.value;\n this.selectedOption = option;\n\n if (valueChanged) {\n this.controlValueChangeFn(option.value);\n this.suiSelectionChanged.emit(option.value);\n }\n }\n\n // handle multiple select\n if (this.suiMultiple) {\n const valueChanged = !this.selectedValues.includes(option.value);\n\n if (valueChanged) {\n this.selectedValues.push(option.value);\n this.selectedOptions.push(option);\n\n this.controlValueChangeFn(this.selectedValues);\n this.suiSelectionChanged.emit(this.selectedValues);\n }\n\n event.stopPropagation();\n }\n\n // clear search\n this.isSearching = false;\n this.searchTerm = '';\n }\n\n public removeSelection(option: ISelectOption, event: Event): void {\n if (!this.suiMultiple) {\n return;\n }\n\n if (!this.selectedValues.includes(option.value)) {\n return;\n }\n\n this.selectedValues = this.selectedValues.filter((x) => x !== option.value);\n this.selectedOptions = this.selectedOptions.filter((x) => x !== option);\n\n this.controlValueChangeFn(this.selectedValues);\n this.suiSelectionChanged.emit(this.selectedValues);\n\n event.stopPropagation();\n }\n\n public writeValue(value: any | any[]): void {\n const valueChanged = value !== this.selectedOption?.value;\n\n if (valueChanged) {\n this.suiSelectionChanged.emit(value);\n }\n\n const matchedOptions = this.allOptions\n .filter((x) => x.value === value);\n this.selectedOption = matchedOptions[0];\n this.changeDetectorRef.markForCheck();\n }\n\n public registerOnChange(fn: any): void {\n this.controlValueChangeFn = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.controlValueChangeFn = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {SuiSelectComponent} from './select.component';\n\n@NgModule({\n exports: [\n SuiSelectComponent,\n ],\n imports: [\n SuiSelectComponent\n ]\n})\nexport class SuiSelectModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-semantic-modules-select.mjs","sources":["../../src/modules/select/interfaces/ISelectOption.ts","../../src/modules/select/select-menu.directive.ts","../../src/modules/select/select-menu-item.directive.ts","../../src/modules/select/select.component.ts","../../src/modules/select/select.module.ts","../../src/modules/select/ngx-semantic-modules-select.ts"],"sourcesContent":["/**\n * Created by bolor on 11/2/2020\n */\n\nimport { ISelectOptionImage } from './ISelectOptionImage';\n\nexport interface ISelectOption {\n text: string;\n value: any;\n image?: ISelectOptionImage;\n flag?: string;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\n\nexport type SuiSelectMenuDirection = 'left' | 'right' | null;\n\n@Directive({\n standalone: true,\n selector: '[suiSelectMenu]'\n})\nexport class SuiSelectMenuDirective {\n @Input() public suiDirection: SuiSelectMenuDirection = null;\n @Input() @InputBoolean() public suiScrolling = false;\n\n private isOpen = false;\n\n @Input()\n set suiIsOpen(isOpen: boolean) {\n this.isOpen = isOpen;\n }\n\n get suiIsOpen(): boolean {\n return this.isOpen;\n }\n\n @HostBinding('tabindex')\n get tabIndex(): number {\n return -1;\n }\n\n @HostBinding('class')\n get classes(): string {\n return [\n ClassUtils.getPropClass(this.suiScrolling, 'scrolling'),\n this.suiDirection,\n 'menu',\n 'transition',\n ClassUtils.getPropClass(!this.isOpen, 'hidden'),\n ClassUtils.getPropClass(this.isOpen, 'visible')\n ].join(' ');\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\n\n@Directive({\n standalone: true,\n selector: '[suiSelectMenuItem]'\n})\nexport class SuiSelectMenuItemDirective {\n @Input() public suiValue: any = null;\n @Input() @InputBoolean() public suiSelected = false;\n @Input() @InputBoolean() public suiMultiple = false;\n\n @HostBinding('class')\n get classes(): string {\n return [\n 'item',\n ClassUtils.getPropClass(this.suiSelected, 'active'),\n ClassUtils.getPropClass(!this.suiMultiple && this.suiSelected, 'selected'),\n ClassUtils.getPropClass(this.suiMultiple && this.suiSelected, 'filtered')\n ].join(' ');\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, forwardRef, HostBinding, HostListener, Input, Output, ViewChild, ViewEncapsulation, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { SuiSelectMenuDirective } from './select-menu.directive';\nimport { SuiSelectMenuItemDirective } from './select-menu-item.directive';\nimport { ISelectOption } from './interfaces/ISelectOption';\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule, SuiSelectMenuDirective, SuiSelectMenuItemDirective],\n selector: 'sui-select',\n encapsulation: ViewEncapsulation.None,\n template: `\n <i class=\"dropdown icon\"></i>\n\n <!-- Multiple Select Display -->\n @if (suiMultiple) {\n @for (option of selectedOptions; track option) {\n <a class=\"ui label transition visible\"\n style=\"display: inline-block !important;\">\n @if (option.image) {\n <img class=\"ui mini image\"\n alt=\"Dropdown option image\"\n [class.avatar]=\"option.image.avatar\"\n [src]=\"option.image.src\"/>\n }\n @if (option.flag) {\n <i [className]=\"'flag ' + option.flag\"></i>\n }\n\n {{ option.text }}\n\n <i class=\"delete icon\"\n (click)=\"removeSelection(option, $event)\"></i>\n </a>\n }\n\n <div class=\"default text\">{{ suiPlaceholder }}</div>\n }\n\n <!-- Search Section -->\n @if (suiSearch) {\n <input class=\"search\"\n autocomplete=\"off\"\n tabindex=\"0\"\n [(ngModel)]=\"searchTerm\"\n (focus)=\"onClick()\"\n (keyup)=\"onSearch()\">\n }\n\n <!-- Display Section -->\n @if (!suiMultiple) {\n <div\n [class.default]=\"isDefaultText\"\n [class.filtered]=\"isFilteredText\"\n [class.text]=\"true\">\n @if (selectedOption) {\n @if (selectedOption.image) {\n <img class=\"ui mini image\"\n alt=\"Dropdown option image\"\n [class.avatar]=\"selectedOption.image.avatar\"\n [src]=\"selectedOption.image.src\"/>\n }\n @if (selectedOption.flag) {\n <i [className]=\"'flag ' + selectedOption.flag\"></i>\n }\n\n {{ selectedOption.text }}\n }\n\n @if (!selectedOption) {\n {{ suiPlaceholder }}\n }\n </div>\n }\n\n <!-- Drop Down Menu Section -->\n <div suiSelectMenu>\n @for (option of filteredOptions; track option) {\n <div suiSelectMenuItem\n [suiValue]=\"option.value\"\n [suiSelected]=\"isActive(option)\"\n [suiMultiple]=\"suiMultiple\"\n (click)=\"onItemClick(option, $event)\">\n @if (option.image) {\n <img class=\"ui mini image\"\n alt=\"Dropdown option image\"\n [class.avatar]=\"option.image.avatar\"\n [src]=\"option.image.src\"/>\n }\n @if (option.flag) {\n <i [className]=\"'flag ' + option.flag\"></i>\n }\n {{ option.text }}\n </div>\n }\n @if (hasNoSearchResults()) {\n <div class=\"message\"\n (click)=\"$event.stopPropagation()\">\n No results found.\n </div>\n }\n </div>\n `,\n providers: [ {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SuiSelectComponent),\n multi: true\n } ]\n})\nexport class SuiSelectComponent implements AfterViewInit, ControlValueAccessor {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n @ViewChild(SuiSelectMenuDirective) public optionsMenu!: SuiSelectMenuDirective;\n\n @Output() public suiSelectionChanged = new EventEmitter<any | any[]>();\n @Input() public suiPlaceholder: string | null = null;\n @Input() @InputBoolean() public suiSearch = false;\n @Input() @InputBoolean() public suiFluid = false;\n @Input() @InputBoolean() public suiInline = false;\n @Input() @InputBoolean() public suiLoading = false;\n @Input() @InputBoolean() public suiError = false;\n @Input() @InputBoolean() public disabled = false;\n @Input() @InputBoolean() public suiScrolling = false;\n @Input() @InputBoolean() public suiCompact = false;\n @Input() @InputBoolean() public name: string | null = null;\n @Input() @InputBoolean() public suiMultiple = false;\n\n private isOpen = false;\n private isSearching = false;\n private selectedValues: any[] = [];\n public searchTerm = '';\n private allOptions: ISelectOption[] = [];\n public filteredOptions: ISelectOption[] = [];\n public selectedOption: ISelectOption | undefined = undefined;\n public selectedOptions: ISelectOption[] = [];\n\n private controlValueChangeFn: (value: any | any[]) => void = () => {\n }\n\n @Input()\n set suiOptions(options: ISelectOption[]) {\n this.allOptions = this.filteredOptions = options;\n }\n\n get suiOptions(): ISelectOption[] {\n return this.allOptions;\n }\n\n @HostBinding('tabindex')\n get tabIndex(): number {\n return 0;\n }\n\n @HostBinding('class')\n get classes(): string {\n return ClassUtils.combineToClass([\n 'ui',\n ClassUtils.getPropClass(this.suiFluid, 'fluid'),\n ClassUtils.getPropClass(this.suiCompact, 'compact'),\n ClassUtils.getPropClass(this.suiSearch, 'search'),\n ClassUtils.getPropClass(this.suiLoading, 'loading'),\n 'selection',\n ClassUtils.getPropClass(this.suiInline, 'inline'),\n ClassUtils.getPropClass(this.disabled, 'disabled'),\n ClassUtils.getPropClass(this.suiScrolling, 'scrolling'),\n 'dropdown',\n ClassUtils.getPropClass(this.suiMultiple, 'multiple'),\n ClassUtils.getPropClass(this.isOpen, 'active'),\n ClassUtils.getPropClass(this.isOpen, 'visible'),\n ClassUtils.getPropClass(this.suiError, 'error')\n ]);\n }\n\n public get multiple(): string | undefined {\n return this.suiMultiple ? '' : undefined;\n }\n\n public get isDefaultText(): boolean {\n if (!this.selectedOption) {\n return true;\n }\n\n if (this.suiSearch) {\n return false;\n }\n\n return !this.selectedOption;\n }\n\n public get isFilteredText(): boolean {\n if (!this.suiSearch) {\n return false;\n }\n\n return this.isSearching;\n }\n\n @HostListener('click')\n public onClick(): void {\n if (this.disabled) {\n return;\n }\n\n this.isOpen = !this.isOpen;\n\n // handle selection dropdown\n if (this.optionsMenu) {\n this.optionsMenu.suiIsOpen = this.isOpen;\n }\n }\n\n public ngAfterViewInit(): void {\n if (!this.optionsMenu) {\n throw new Error('An error occurred rendering the options.');\n }\n }\n\n public onSearch(): void {\n this.isSearching = !!this.searchTerm;\n\n // if the user is searching, then keep the dropdown open\n if (this.optionsMenu) {\n this.isOpen = true;\n this.optionsMenu.suiIsOpen = true;\n }\n\n // limit the options displayed\n this.filteredOptions = this.allOptions\n .filter((x) => x.text.toLocaleLowerCase()\n .includes(this.searchTerm.toLocaleLowerCase()));\n }\n\n public isActive(option: ISelectOption): boolean {\n if (this.suiMultiple) {\n return this.selectedValues.includes(option.value);\n } else {\n return this.selectedOption === option;\n }\n }\n\n public hasNoSearchResults(): boolean {\n if (!this.suiSearch) {\n return false;\n }\n\n return this.filteredOptions.length === 0;\n }\n\n public onItemClick(option: ISelectOption, event: Event): void {\n // handle single select\n if (!this.suiMultiple) {\n const valueChanged = this.selectedOption?.value !== option.value;\n this.selectedOption = option;\n\n if (valueChanged) {\n this.controlValueChangeFn(option.value);\n this.suiSelectionChanged.emit(option.value);\n }\n }\n\n // handle multiple select\n if (this.suiMultiple) {\n const valueChanged = !this.selectedValues.includes(option.value);\n\n if (valueChanged) {\n this.selectedValues.push(option.value);\n this.selectedOptions.push(option);\n\n this.controlValueChangeFn(this.selectedValues);\n this.suiSelectionChanged.emit(this.selectedValues);\n }\n\n event.stopPropagation();\n }\n\n // clear search\n this.isSearching = false;\n this.searchTerm = '';\n }\n\n public removeSelection(option: ISelectOption, event: Event): void {\n if (!this.suiMultiple) {\n return;\n }\n\n if (!this.selectedValues.includes(option.value)) {\n return;\n }\n\n this.selectedValues = this.selectedValues.filter((x) => x !== option.value);\n this.selectedOptions = this.selectedOptions.filter((x) => x !== option);\n\n this.controlValueChangeFn(this.selectedValues);\n this.suiSelectionChanged.emit(this.selectedValues);\n\n event.stopPropagation();\n }\n\n public writeValue(value: any | any[]): void {\n const valueChanged = value !== this.selectedOption?.value;\n\n if (valueChanged) {\n this.suiSelectionChanged.emit(value);\n }\n\n const matchedOptions = this.allOptions\n .filter((x) => x.value === value);\n this.selectedOption = matchedOptions[0];\n this.changeDetectorRef.markForCheck();\n }\n\n public registerOnChange(fn: any): void {\n this.controlValueChangeFn = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.controlValueChangeFn = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SuiSelectComponent } from './select.component';\n\n@NgModule({\n exports: [\n SuiSelectComponent,\n ],\n imports: [\n SuiSelectComponent\n ]\n})\nexport class SuiSelectModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i1 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { ViewChild, ViewEncapsulation, Component, EventEmitter, Output, Input, ContentChildren, NgModule } from '@angular/core';
4
+ import { ViewChild, ViewEncapsulation, Component, inject, ChangeDetectorRef, NgZone, EventEmitter, Output, Input, ContentChildren, NgModule } from '@angular/core';
5
5
  import { __decorate } from 'tslib';
6
6
  import { InputBoolean } from 'ngx-semantic/core/util';
7
7
 
@@ -88,9 +88,9 @@ function getTransitionEventName() {
88
88
  return 'transitionend';
89
89
  }
90
90
  class SuiShapeComponent {
91
- constructor(cdr, zone) {
92
- this.cdr = cdr;
93
- this.zone = zone;
91
+ constructor() {
92
+ this.cdr = inject(ChangeDetectorRef);
93
+ this.zone = inject(NgZone);
94
94
  /** Animation length in ms. `null` skips inline `transition-duration` (Semantic UI CSS defaults). */
95
95
  this.suiDuration = null;
96
96
  /** Width during animation: initial size, next side’s size, or a fixed pixel width. */
@@ -549,7 +549,7 @@ class SuiShapeComponent {
549
549
  transform: 'rotateY(-180deg)'
550
550
  };
551
551
  }
552
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiShapeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
552
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiShapeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
553
553
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: SuiShapeComponent, isStandalone: true, selector: "sui-shape", inputs: { suiDuration: "suiDuration", suiWidth: "suiWidth", suiHeight: "suiHeight", suiJitter: "suiJitter", suiAllowRepeats: "suiAllowRepeats", suiCube: "suiCube", suiText: "suiText" }, outputs: { suiBeforeChange: "suiBeforeChange", suiOnChange: "suiOnChange" }, queries: [{ propertyName: "sideList", predicate: SuiShapeSideComponent }], viewQueries: [{ propertyName: "shapeEl", first: true, predicate: ["shapeEl"], descendants: true, static: true }, { propertyName: "sidesEl", first: true, predicate: ["sidesEl"], descendants: true, static: true }], exportAs: ["suiShape"], ngImport: i0, template: `
554
554
  <div
555
555
  #shapeEl
@@ -595,7 +595,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImpor
595
595
  </div>
596
596
  `
597
597
  }]
598
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { sideList: [{
598
+ }], propDecorators: { sideList: [{
599
599
  type: ContentChildren,
600
600
  args: [SuiShapeSideComponent]
601
601
  }], shapeEl: [{