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
@@ -154,27 +154,27 @@ class SuiTabsComponent {
154
154
  this.currentTab = tabs[this.selectedTabIndex];
155
155
  }
156
156
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
157
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: SuiTabsComponent, isStandalone: true, selector: "sui-tabs", inputs: { suiTabMenuPosition: "suiTabMenuPosition", suiTabType: "suiTabType", suiColour: "suiColour", suiInverted: "suiInverted" }, outputs: { suiSelectedIndexChanged: "suiSelectedIndexChanged" }, queries: [{ propertyName: "tabs", predicate: SuiTabComponent }], ngImport: i0, template: `
158
- <ng-container *ngIf="hasTabs">
159
- <ng-container *ngIf="isTop">
157
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: SuiTabsComponent, isStandalone: true, selector: "sui-tabs", inputs: { suiTabMenuPosition: "suiTabMenuPosition", suiTabType: "suiTabType", suiColour: "suiColour", suiInverted: "suiInverted" }, outputs: { suiSelectedIndexChanged: "suiSelectedIndexChanged" }, queries: [{ propertyName: "tabs", predicate: SuiTabComponent }], ngImport: i0, template: `
158
+ @if (hasTabs) {
159
+ @if (isTop) {
160
160
  <ng-container *ngTemplateOutlet="tabMenu"></ng-container>
161
- </ng-container>
161
+ }
162
162
 
163
163
  <div class="active tab"
164
164
  sui-segment
165
165
  [class.loading]="currentTab?.suiLoading"
166
166
  [suiAttached]="segmentAttachment">
167
- <ng-container *ngIf="currentTab">
167
+ @if (currentTab) {
168
168
  <ng-container
169
169
  *ngTemplateOutlet="currentTab.contentTemplate">
170
170
  </ng-container>
171
- </ng-container>
171
+ }
172
172
  </div>
173
173
 
174
- <ng-container *ngIf="!isTop">
174
+ @if (!isTop) {
175
175
  <ng-container *ngTemplateOutlet="tabMenu"></ng-container>
176
- </ng-container>
177
- </ng-container>
176
+ }
177
+ }
178
178
 
179
179
  <ng-template #tabMenu>
180
180
  <div sui-menu
@@ -186,30 +186,30 @@ class SuiTabsComponent {
186
186
  [suiPointing]="isPointing"
187
187
  [suiText]="isText"
188
188
  [suiBorderless]="isBorderless">
189
- <ng-container *ngFor="let tab of tabs; let i = index;">
189
+ @for (tab of tabs; track tab; let i = $index) {
190
190
  <div suiMenuItem
191
191
  [disabled]="tab.disabled"
192
192
  [suiActive]="isTabSelected(i)"
193
193
  (click)="changeTab(tab, i)">
194
- <ng-container *ngIf="tab.suiIcon">
194
+ @if (tab.suiIcon) {
195
195
  <i sui-icon
196
196
  [suiIconType]="tab.suiIcon"></i>
197
- </ng-container>
197
+ }
198
198
 
199
199
  {{tab.suiTitle}}
200
200
 
201
- <ng-container *ngIf="tab.suiLabel">
201
+ @if (tab.suiLabel) {
202
202
  <div sui-label
203
203
  [suiColour]="tab.suiLabelColour"
204
204
  [suiCircular]="tab.suiLabelCircular">
205
205
  {{tab.suiLabel}}
206
206
  </div>
207
- </ng-container>
207
+ }
208
208
  </div>
209
- </ng-container>
209
+ }
210
210
  </div>
211
211
  </ng-template>
212
- `, 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: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SuiSegmentDirective, selector: "[sui-segment]", inputs: ["suiColour", "suiAttached", "suiStacked", "suiPadding", "suiTextAlignment", "suiFloated", "suiPlaceholder", "suiRaised", "suiPiled", "suiVertical", "suiInverted", "disabled", "suiLoading", "suiCompact", "suiCircular", "suiBasic", "suiClearing", "suiSecondary", "suiTertiary"], exportAs: ["suiSegment"] }, { kind: "directive", type: SuiMenuDirective, selector: "[sui-menu]", inputs: ["suiWidth", "suiAttached", "suiFixed", "suiColour", "suiIcon", "suiSize", "suiText", "suiSecondary", "suiPointing", "suiTabular", "suiVertical", "suiFluid", "suiRight", "suiPagination", "suiCompact", "suiStackable", "suiInverted", "suiBorderless"], exportAs: ["suiMenu"] }, { kind: "directive", type: SuiMenuItemDirective, selector: "[suiMenuItem]", inputs: ["suiLink", "suiActive", "suiBrowser", "disabled"], exportAs: ["suiMenuItem"] }, { kind: "directive", type: SuiIconDirective, selector: "i[sui-icon]", inputs: ["suiSize", "suiFlip", "suiRotation", "suiColour", "suiCorner", "suiIconType", "disabled", "suiLoading", "suiFitted", "suiLink", "suiCircular", "suiBordered", "suiInverted", "suiOutline"], exportAs: ["suiIcon"] }, { kind: "directive", type: SuiLabelDirective, selector: "[sui-label]", inputs: ["suiColour", "suiPointing", "suiCorner", "suiRibbon", "suiAttached", "suiSize", "suiImage", "suiBasic", "suiTag", "suiHorizontal", "suiFloating", "suiCircular", "suiEmpty"], exportAs: ["suiLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
212
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SuiSegmentDirective, selector: "[sui-segment]", inputs: ["suiColour", "suiAttached", "suiStacked", "suiPadding", "suiTextAlignment", "suiFloated", "suiPlaceholder", "suiRaised", "suiPiled", "suiVertical", "suiInverted", "disabled", "suiLoading", "suiCompact", "suiCircular", "suiBasic", "suiClearing", "suiSecondary", "suiTertiary"], exportAs: ["suiSegment"] }, { kind: "directive", type: SuiMenuDirective, selector: "[sui-menu]", inputs: ["suiWidth", "suiAttached", "suiFixed", "suiColour", "suiIcon", "suiSize", "suiText", "suiSecondary", "suiPointing", "suiTabular", "suiVertical", "suiFluid", "suiRight", "suiPagination", "suiCompact", "suiStackable", "suiInverted", "suiBorderless"], exportAs: ["suiMenu"] }, { kind: "directive", type: SuiMenuItemDirective, selector: "[suiMenuItem]", inputs: ["suiLink", "suiActive", "suiBrowser", "disabled"], exportAs: ["suiMenuItem"] }, { kind: "directive", type: SuiIconDirective, selector: "i[sui-icon]", inputs: ["suiSize", "suiFlip", "suiRotation", "suiColour", "suiCorner", "suiIconType", "disabled", "suiLoading", "suiFitted", "suiLink", "suiCircular", "suiBordered", "suiInverted", "suiOutline"], exportAs: ["suiIcon"] }, { kind: "directive", type: SuiLabelDirective, selector: "[sui-label]", inputs: ["suiColour", "suiPointing", "suiCorner", "suiRibbon", "suiAttached", "suiSize", "suiImage", "suiBasic", "suiTag", "suiHorizontal", "suiFloating", "suiCircular", "suiEmpty"], exportAs: ["suiLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
213
213
  }
214
214
  __decorate([
215
215
  InputBoolean()
@@ -231,26 +231,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImpor
231
231
  encapsulation: ViewEncapsulation.None,
232
232
  changeDetection: ChangeDetectionStrategy.OnPush,
233
233
  template: `
234
- <ng-container *ngIf="hasTabs">
235
- <ng-container *ngIf="isTop">
234
+ @if (hasTabs) {
235
+ @if (isTop) {
236
236
  <ng-container *ngTemplateOutlet="tabMenu"></ng-container>
237
- </ng-container>
237
+ }
238
238
 
239
239
  <div class="active tab"
240
240
  sui-segment
241
241
  [class.loading]="currentTab?.suiLoading"
242
242
  [suiAttached]="segmentAttachment">
243
- <ng-container *ngIf="currentTab">
243
+ @if (currentTab) {
244
244
  <ng-container
245
245
  *ngTemplateOutlet="currentTab.contentTemplate">
246
246
  </ng-container>
247
- </ng-container>
247
+ }
248
248
  </div>
249
249
 
250
- <ng-container *ngIf="!isTop">
250
+ @if (!isTop) {
251
251
  <ng-container *ngTemplateOutlet="tabMenu"></ng-container>
252
- </ng-container>
253
- </ng-container>
252
+ }
253
+ }
254
254
 
255
255
  <ng-template #tabMenu>
256
256
  <div sui-menu
@@ -262,27 +262,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImpor
262
262
  [suiPointing]="isPointing"
263
263
  [suiText]="isText"
264
264
  [suiBorderless]="isBorderless">
265
- <ng-container *ngFor="let tab of tabs; let i = index;">
265
+ @for (tab of tabs; track tab; let i = $index) {
266
266
  <div suiMenuItem
267
267
  [disabled]="tab.disabled"
268
268
  [suiActive]="isTabSelected(i)"
269
269
  (click)="changeTab(tab, i)">
270
- <ng-container *ngIf="tab.suiIcon">
270
+ @if (tab.suiIcon) {
271
271
  <i sui-icon
272
272
  [suiIconType]="tab.suiIcon"></i>
273
- </ng-container>
273
+ }
274
274
 
275
275
  {{tab.suiTitle}}
276
276
 
277
- <ng-container *ngIf="tab.suiLabel">
277
+ @if (tab.suiLabel) {
278
278
  <div sui-label
279
279
  [suiColour]="tab.suiLabelColour"
280
280
  [suiCircular]="tab.suiLabelCircular">
281
281
  {{tab.suiLabel}}
282
282
  </div>
283
- </ng-container>
283
+ }
284
284
  </div>
285
- </ng-container>
285
+ }
286
286
  </div>
287
287
  </ng-template>
288
288
  `
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-semantic-modules-tabs.mjs","sources":["../../src/modules/tabs/tab.component.ts","../../src/modules/tabs/tabs.component.ts","../../src/modules/tabs/tabs.module.ts","../../src/modules/tabs/public-api.ts","../../src/modules/tabs/ngx-semantic-modules-tabs.ts"],"sourcesContent":["/**\n * Created by bolorundurowb on 12/22/2020\n */\n\nimport {Component, HostBinding, Input, TemplateRef, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {ClassUtils, InputBoolean} from 'ngx-semantic/core/util';\nimport {SuiColour} from 'ngx-semantic/core/enums';\n\n@Component({\n standalone: true,\n selector: 'sui-tab',\n exportAs: 'suiTab',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n `\n})\nexport class SuiTabComponent {\n @Input() public suiContent!: TemplateRef<any>;\n @Input() public suiTitle: string | null = null;\n @Input() public suiIcon: string | null = null;\n @Input() public suiLabel: string | number | null = null;\n @Input() @InputBoolean() public suiLoading = false;\n @Input() @InputBoolean() public disabled = false;\n @Input() public suiLabelColour: SuiColour = null;\n @Input() @InputBoolean() public suiLabelCircular = false;\n\n @ViewChild('contentTemplate', { static: true }) public contentTemplate!: TemplateRef<any>;\n\n @HostBinding('class')\n get classes(): string {\n return [\n ClassUtils.getPropClass(this.suiLoading, 'loading'),\n ClassUtils.getPropClass(this.disabled, 'disabled')\n ].join(' ');\n }\n}\n","/**\n * Created by bolorundurowb on 12/22/2020\n */\n\nimport {\n AfterContentChecked,\n ChangeDetectionStrategy,\n Component,\n ContentChildren, EventEmitter,\n Input, Output,\n QueryList, ViewEncapsulation\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {InputBoolean} from 'ngx-semantic/core/util';\nimport {SuiTabComponent} from './tab.component';\nimport {SuiColour} from 'ngx-semantic/core/enums';\nimport {SuiMenuAttachment, SuiMenuDirective, SuiMenuItemDirective} from 'ngx-semantic/collections/menu';\nimport {SuiSegmentAttachment, SuiSegmentDirective} from 'ngx-semantic/elements/segment';\nimport {SuiIconDirective} from 'ngx-semantic/elements/icon';\nimport {SuiLabelDirective} from 'ngx-semantic/elements/label';\n\nexport type SuiTabType = 'basic' | 'pointing' | 'secondary' | 'text' | 'bordered' | 'borderless';\nexport type SuiTabMenuPosition = 'top' | 'bottom';\n\n@Component({\n standalone: true,\n imports: [\n CommonModule,\n SuiSegmentDirective,\n SuiMenuDirective,\n SuiMenuItemDirective,\n SuiIconDirective,\n SuiLabelDirective\n ],\n selector: 'sui-tabs',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-container *ngIf=\"hasTabs\">\n <ng-container *ngIf=\"isTop\">\n <ng-container *ngTemplateOutlet=\"tabMenu\"></ng-container>\n </ng-container>\n\n <div class=\"active tab\"\n sui-segment\n [class.loading]=\"currentTab?.suiLoading\"\n [suiAttached]=\"segmentAttachment\">\n <ng-container *ngIf=\"currentTab\">\n <ng-container\n *ngTemplateOutlet=\"currentTab.contentTemplate\">\n </ng-container>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"!isTop\">\n <ng-container *ngTemplateOutlet=\"tabMenu\"></ng-container>\n </ng-container>\n </ng-container>\n\n <ng-template #tabMenu>\n <div sui-menu\n [suiInverted]=\"suiInverted\"\n [suiColour]=\"suiColour\"\n [suiAttached]=\"menuAttachment\"\n [suiTabular]=\"isBasic\"\n [suiSecondary]=\"isSecondary\"\n [suiPointing]=\"isPointing\"\n [suiText]=\"isText\"\n [suiBorderless]=\"isBorderless\">\n <ng-container *ngFor=\"let tab of tabs; let i = index;\">\n <div suiMenuItem\n [disabled]=\"tab.disabled\"\n [suiActive]=\"isTabSelected(i)\"\n (click)=\"changeTab(tab, i)\">\n <ng-container *ngIf=\"tab.suiIcon\">\n <i sui-icon\n [suiIconType]=\"tab.suiIcon\"></i>\n </ng-container>\n\n {{tab.suiTitle}}\n\n <ng-container *ngIf=\"tab.suiLabel\">\n <div sui-label\n [suiColour]=\"tab.suiLabelColour\"\n [suiCircular]=\"tab.suiLabelCircular\">\n {{tab.suiLabel}}\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-template>\n `\n})\nexport class SuiTabsComponent implements AfterContentChecked {\n @ContentChildren(SuiTabComponent) public tabs: QueryList<SuiTabComponent> = new QueryList<SuiTabComponent>();\n\n @Input() public suiTabMenuPosition: SuiTabMenuPosition = 'top';\n @Input() public suiTabType: SuiTabType = 'basic';\n @Input() public suiColour: SuiColour = null;\n @Input() @InputBoolean() public suiInverted = false;\n\n @Output() public readonly suiSelectedIndexChanged = new EventEmitter<number>();\n\n private selectedTabIndex = 0;\n public hasTabs = false;\n public currentTab: SuiTabComponent | null = null;\n\n get isSecondary(): boolean {\n return this.suiTabType === 'secondary';\n }\n\n get isBasic(): boolean {\n return this.suiTabType === 'basic';\n }\n\n get isPointing(): boolean {\n return this.suiTabType === 'pointing';\n }\n\n get isText(): boolean {\n return this.suiTabType === 'text';\n }\n\n get isBorderless(): boolean {\n return this.suiTabType === 'borderless';\n }\n\n get isTop(): boolean {\n return this.suiTabMenuPosition === 'top';\n }\n\n get menuAttachment(): SuiMenuAttachment {\n if (this.suiTabType === 'basic') {\n if (this.isTop) {\n return 'top';\n } else {\n return 'bottom';\n }\n }\n\n return null;\n }\n\n get segmentAttachment(): SuiSegmentAttachment {\n if (this.suiTabType === 'basic') {\n if (this.isTop) {\n return 'bottom attached';\n } else {\n return 'top attached';\n }\n }\n\n return null;\n }\n\n public changeTab(tab: SuiTabComponent, index: number): void {\n if (tab.disabled) {\n return;\n }\n\n const tabChanged = this.selectedTabIndex !== index;\n\n this.selectedTabIndex = index;\n this.setCurrentTab();\n\n if (tabChanged) {\n this.suiSelectedIndexChanged.emit(this.selectedTabIndex);\n }\n }\n\n public isTabSelected(index: number): boolean {\n return this.selectedTabIndex === index;\n }\n\n public ngAfterContentChecked(): void {\n this.setCurrentTab();\n }\n\n private setCurrentTab(): void {\n const tabs = this.tabs.toArray();\n this.hasTabs = tabs.length > 0;\n this.currentTab = tabs[this.selectedTabIndex];\n }\n}\n","/**\n * Created by bolorundurowb on 12/22/2020\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\nimport {SuiTabComponent} from './tab.component';\nimport {SuiTabsComponent} from './tabs.component';\n\n@NgModule({\n imports: [\n CommonModule,\n SuiTabComponent,\n SuiTabsComponent\n ],\n exports: [\n SuiTabComponent,\n SuiTabsComponent\n ]\n})\nexport class SuiTabsModule {\n}\n","/**\n * Created by bolorundurowb on 12/22/2020\n */\n\nexport * from './tabs.component';\nexport * from './tab.component';\nexport * from './tabs.module';\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-tabs.mjs","sources":["../../src/modules/tabs/tab.component.ts","../../src/modules/tabs/tabs.component.ts","../../src/modules/tabs/tabs.module.ts","../../src/modules/tabs/public-api.ts","../../src/modules/tabs/ngx-semantic-modules-tabs.ts"],"sourcesContent":["/**\n * Created by bolorundurowb on 12/22/2020\n */\n\nimport { Component, HostBinding, Input, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { SuiColour } from 'ngx-semantic/core/enums';\n\n@Component({\n standalone: true,\n selector: 'sui-tab',\n exportAs: 'suiTab',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n `\n})\nexport class SuiTabComponent {\n @Input() public suiContent!: TemplateRef<any>;\n @Input() public suiTitle: string | null = null;\n @Input() public suiIcon: string | null = null;\n @Input() public suiLabel: string | number | null = null;\n @Input() @InputBoolean() public suiLoading = false;\n @Input() @InputBoolean() public disabled = false;\n @Input() public suiLabelColour: SuiColour = null;\n @Input() @InputBoolean() public suiLabelCircular = false;\n\n @ViewChild('contentTemplate', { static: true }) public contentTemplate!: TemplateRef<any>;\n\n @HostBinding('class')\n get classes(): string {\n return [\n ClassUtils.getPropClass(this.suiLoading, 'loading'),\n ClassUtils.getPropClass(this.disabled, 'disabled')\n ].join(' ');\n }\n}\n","/**\n * Created by bolorundurowb on 12/22/2020\n */\n\nimport {\n AfterContentChecked,\n ChangeDetectionStrategy,\n Component,\n ContentChildren, EventEmitter,\n Input, Output,\n QueryList, ViewEncapsulation\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputBoolean } from 'ngx-semantic/core/util';\nimport { SuiTabComponent } from './tab.component';\nimport { SuiColour } from 'ngx-semantic/core/enums';\nimport { SuiMenuAttachment, SuiMenuDirective, SuiMenuItemDirective } from 'ngx-semantic/collections/menu';\nimport { SuiSegmentAttachment, SuiSegmentDirective } from 'ngx-semantic/elements/segment';\nimport { SuiIconDirective } from 'ngx-semantic/elements/icon';\nimport { SuiLabelDirective } from 'ngx-semantic/elements/label';\n\nexport type SuiTabType = 'basic' | 'pointing' | 'secondary' | 'text' | 'bordered' | 'borderless';\nexport type SuiTabMenuPosition = 'top' | 'bottom';\n\n@Component({\n standalone: true,\n imports: [\n CommonModule,\n SuiSegmentDirective,\n SuiMenuDirective,\n SuiMenuItemDirective,\n SuiIconDirective,\n SuiLabelDirective\n ],\n selector: 'sui-tabs',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (hasTabs) {\n @if (isTop) {\n <ng-container *ngTemplateOutlet=\"tabMenu\"></ng-container>\n }\n\n <div class=\"active tab\"\n sui-segment\n [class.loading]=\"currentTab?.suiLoading\"\n [suiAttached]=\"segmentAttachment\">\n @if (currentTab) {\n <ng-container\n *ngTemplateOutlet=\"currentTab.contentTemplate\">\n </ng-container>\n }\n </div>\n\n @if (!isTop) {\n <ng-container *ngTemplateOutlet=\"tabMenu\"></ng-container>\n }\n }\n\n <ng-template #tabMenu>\n <div sui-menu\n [suiInverted]=\"suiInverted\"\n [suiColour]=\"suiColour\"\n [suiAttached]=\"menuAttachment\"\n [suiTabular]=\"isBasic\"\n [suiSecondary]=\"isSecondary\"\n [suiPointing]=\"isPointing\"\n [suiText]=\"isText\"\n [suiBorderless]=\"isBorderless\">\n @for (tab of tabs; track tab; let i = $index) {\n <div suiMenuItem\n [disabled]=\"tab.disabled\"\n [suiActive]=\"isTabSelected(i)\"\n (click)=\"changeTab(tab, i)\">\n @if (tab.suiIcon) {\n <i sui-icon\n [suiIconType]=\"tab.suiIcon\"></i>\n }\n\n {{tab.suiTitle}}\n\n @if (tab.suiLabel) {\n <div sui-label\n [suiColour]=\"tab.suiLabelColour\"\n [suiCircular]=\"tab.suiLabelCircular\">\n {{tab.suiLabel}}\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n `\n})\nexport class SuiTabsComponent implements AfterContentChecked {\n @ContentChildren(SuiTabComponent) public tabs: QueryList<SuiTabComponent> = new QueryList<SuiTabComponent>();\n\n @Input() public suiTabMenuPosition: SuiTabMenuPosition = 'top';\n @Input() public suiTabType: SuiTabType = 'basic';\n @Input() public suiColour: SuiColour = null;\n @Input() @InputBoolean() public suiInverted = false;\n\n @Output() public readonly suiSelectedIndexChanged = new EventEmitter<number>();\n\n private selectedTabIndex = 0;\n public hasTabs = false;\n public currentTab: SuiTabComponent | null = null;\n\n get isSecondary(): boolean {\n return this.suiTabType === 'secondary';\n }\n\n get isBasic(): boolean {\n return this.suiTabType === 'basic';\n }\n\n get isPointing(): boolean {\n return this.suiTabType === 'pointing';\n }\n\n get isText(): boolean {\n return this.suiTabType === 'text';\n }\n\n get isBorderless(): boolean {\n return this.suiTabType === 'borderless';\n }\n\n get isTop(): boolean {\n return this.suiTabMenuPosition === 'top';\n }\n\n get menuAttachment(): SuiMenuAttachment {\n if (this.suiTabType === 'basic') {\n if (this.isTop) {\n return 'top';\n } else {\n return 'bottom';\n }\n }\n\n return null;\n }\n\n get segmentAttachment(): SuiSegmentAttachment {\n if (this.suiTabType === 'basic') {\n if (this.isTop) {\n return 'bottom attached';\n } else {\n return 'top attached';\n }\n }\n\n return null;\n }\n\n public changeTab(tab: SuiTabComponent, index: number): void {\n if (tab.disabled) {\n return;\n }\n\n const tabChanged = this.selectedTabIndex !== index;\n\n this.selectedTabIndex = index;\n this.setCurrentTab();\n\n if (tabChanged) {\n this.suiSelectedIndexChanged.emit(this.selectedTabIndex);\n }\n }\n\n public isTabSelected(index: number): boolean {\n return this.selectedTabIndex === index;\n }\n\n public ngAfterContentChecked(): void {\n this.setCurrentTab();\n }\n\n private setCurrentTab(): void {\n const tabs = this.tabs.toArray();\n this.hasTabs = tabs.length > 0;\n this.currentTab = tabs[this.selectedTabIndex];\n }\n}\n","/**\n * Created by bolorundurowb on 12/22/2020\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SuiTabComponent } from './tab.component';\nimport { SuiTabsComponent } from './tabs.component';\n\n@NgModule({\n imports: [\n CommonModule,\n SuiTabComponent,\n SuiTabsComponent\n ],\n exports: [\n SuiTabComponent,\n SuiTabsComponent\n ]\n})\nexport class SuiTabsModule {\n}\n","/**\n * Created by bolorundurowb on 12/22/2020\n */\n\nexport * from './tabs.component';\nexport * from './tab.component';\nexport * from './tabs.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}