primeng 13.1.0 → 13.2.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 (234) hide show
  1. package/button/button.d.ts +2 -1
  2. package/dropdown/dropdown.d.ts +2 -1
  3. package/esm2020/autocomplete/autocomplete.mjs +3 -3
  4. package/esm2020/breadcrumb/breadcrumb.mjs +5 -5
  5. package/esm2020/button/button.mjs +6 -4
  6. package/esm2020/calendar/calendar.mjs +8 -4
  7. package/esm2020/contextmenu/contextmenu.mjs +2 -1
  8. package/esm2020/dropdown/dropdown.mjs +12 -10
  9. package/esm2020/fileupload/fileupload.mjs +1 -1
  10. package/esm2020/image/image.mjs +1 -1
  11. package/esm2020/inputnumber/inputnumber.mjs +3 -3
  12. package/esm2020/inputswitch/inputswitch.mjs +6 -4
  13. package/esm2020/knob/knob.mjs +2 -2
  14. package/esm2020/multiselect/multiselect.mjs +11 -5
  15. package/esm2020/orderlist/orderlist.mjs +6 -4
  16. package/esm2020/paginator/paginator.mjs +1 -1
  17. package/esm2020/panel/panel.mjs +11 -8
  18. package/esm2020/panelmenu/panelmenu.mjs +7 -4
  19. package/esm2020/picklist/picklist.mjs +6 -4
  20. package/esm2020/splitbutton/splitbutton.mjs +2 -2
  21. package/esm2020/table/table.mjs +18 -19
  22. package/esm2020/tabmenu/tabmenu.mjs +124 -60
  23. package/esm2020/tabview/tabview.mjs +2 -2
  24. package/fesm2015/primeng-autocomplete.mjs +2 -2
  25. package/fesm2015/primeng-autocomplete.mjs.map +1 -1
  26. package/fesm2015/primeng-breadcrumb.mjs +4 -4
  27. package/fesm2015/primeng-breadcrumb.mjs.map +1 -1
  28. package/fesm2015/primeng-button.mjs +5 -3
  29. package/fesm2015/primeng-button.mjs.map +1 -1
  30. package/fesm2015/primeng-calendar.mjs +7 -3
  31. package/fesm2015/primeng-calendar.mjs.map +1 -1
  32. package/fesm2015/primeng-contextmenu.mjs +1 -0
  33. package/fesm2015/primeng-contextmenu.mjs.map +1 -1
  34. package/fesm2015/primeng-dropdown.mjs +11 -9
  35. package/fesm2015/primeng-dropdown.mjs.map +1 -1
  36. package/fesm2015/primeng-fileupload.mjs +1 -1
  37. package/fesm2015/primeng-image.mjs.map +1 -1
  38. package/fesm2015/primeng-inputnumber.mjs +2 -2
  39. package/fesm2015/primeng-inputnumber.mjs.map +1 -1
  40. package/fesm2015/primeng-inputswitch.mjs +5 -3
  41. package/fesm2015/primeng-inputswitch.mjs.map +1 -1
  42. package/fesm2015/primeng-knob.mjs +1 -1
  43. package/fesm2015/primeng-knob.mjs.map +1 -1
  44. package/fesm2015/primeng-multiselect.mjs +10 -4
  45. package/fesm2015/primeng-multiselect.mjs.map +1 -1
  46. package/fesm2015/primeng-orderlist.mjs +5 -3
  47. package/fesm2015/primeng-orderlist.mjs.map +1 -1
  48. package/fesm2015/primeng-paginator.mjs +1 -1
  49. package/fesm2015/primeng-panel.mjs +10 -7
  50. package/fesm2015/primeng-panel.mjs.map +1 -1
  51. package/fesm2015/primeng-panelmenu.mjs +6 -3
  52. package/fesm2015/primeng-panelmenu.mjs.map +1 -1
  53. package/fesm2015/primeng-picklist.mjs +5 -3
  54. package/fesm2015/primeng-picklist.mjs.map +1 -1
  55. package/fesm2015/primeng-splitbutton.mjs +2 -2
  56. package/fesm2015/primeng-table.mjs +17 -18
  57. package/fesm2015/primeng-table.mjs.map +1 -1
  58. package/fesm2015/primeng-tabmenu.mjs +124 -59
  59. package/fesm2015/primeng-tabmenu.mjs.map +1 -1
  60. package/fesm2015/primeng-tabview.mjs +1 -1
  61. package/fesm2015/primeng-tabview.mjs.map +1 -1
  62. package/fesm2020/primeng-autocomplete.mjs +2 -2
  63. package/fesm2020/primeng-autocomplete.mjs.map +1 -1
  64. package/fesm2020/primeng-breadcrumb.mjs +4 -4
  65. package/fesm2020/primeng-breadcrumb.mjs.map +1 -1
  66. package/fesm2020/primeng-button.mjs +5 -3
  67. package/fesm2020/primeng-button.mjs.map +1 -1
  68. package/fesm2020/primeng-calendar.mjs +7 -3
  69. package/fesm2020/primeng-calendar.mjs.map +1 -1
  70. package/fesm2020/primeng-contextmenu.mjs +1 -0
  71. package/fesm2020/primeng-contextmenu.mjs.map +1 -1
  72. package/fesm2020/primeng-dropdown.mjs +11 -9
  73. package/fesm2020/primeng-dropdown.mjs.map +1 -1
  74. package/fesm2020/primeng-fileupload.mjs +1 -1
  75. package/fesm2020/primeng-image.mjs.map +1 -1
  76. package/fesm2020/primeng-inputnumber.mjs +2 -2
  77. package/fesm2020/primeng-inputnumber.mjs.map +1 -1
  78. package/fesm2020/primeng-inputswitch.mjs +5 -3
  79. package/fesm2020/primeng-inputswitch.mjs.map +1 -1
  80. package/fesm2020/primeng-knob.mjs +1 -1
  81. package/fesm2020/primeng-knob.mjs.map +1 -1
  82. package/fesm2020/primeng-multiselect.mjs +10 -4
  83. package/fesm2020/primeng-multiselect.mjs.map +1 -1
  84. package/fesm2020/primeng-orderlist.mjs +5 -3
  85. package/fesm2020/primeng-orderlist.mjs.map +1 -1
  86. package/fesm2020/primeng-paginator.mjs +1 -1
  87. package/fesm2020/primeng-panel.mjs +10 -7
  88. package/fesm2020/primeng-panel.mjs.map +1 -1
  89. package/fesm2020/primeng-panelmenu.mjs +6 -3
  90. package/fesm2020/primeng-panelmenu.mjs.map +1 -1
  91. package/fesm2020/primeng-picklist.mjs +5 -3
  92. package/fesm2020/primeng-picklist.mjs.map +1 -1
  93. package/fesm2020/primeng-splitbutton.mjs +2 -2
  94. package/fesm2020/primeng-table.mjs +17 -18
  95. package/fesm2020/primeng-table.mjs.map +1 -1
  96. package/fesm2020/primeng-tabmenu.mjs +123 -59
  97. package/fesm2020/primeng-tabmenu.mjs.map +1 -1
  98. package/fesm2020/primeng-tabview.mjs +1 -1
  99. package/fesm2020/primeng-tabview.mjs.map +1 -1
  100. package/image/image.d.ts +2 -1
  101. package/inputswitch/inputswitch.d.ts +2 -1
  102. package/multiselect/multiselect.d.ts +2 -1
  103. package/orderlist/orderlist.d.ts +2 -1
  104. package/package.json +1 -1
  105. package/panel/panel.d.ts +2 -1
  106. package/panelmenu/panelmenu.d.ts +1 -0
  107. package/picklist/picklist.d.ts +2 -1
  108. package/resources/components/panel/panel.css +1 -1
  109. package/resources/components/splitbutton/splitbutton.css +7 -3
  110. package/resources/components/tabmenu/tabmenu.css +37 -2
  111. package/resources/themes/arya-blue/theme.css +321 -42
  112. package/resources/themes/arya-green/theme.css +321 -42
  113. package/resources/themes/arya-orange/theme.css +321 -42
  114. package/resources/themes/arya-purple/theme.css +321 -42
  115. package/resources/themes/bootstrap4-dark-blue/theme.css +325 -42
  116. package/resources/themes/bootstrap4-dark-purple/theme.css +325 -42
  117. package/resources/themes/bootstrap4-light-blue/theme.css +324 -41
  118. package/resources/themes/bootstrap4-light-purple/theme.css +324 -41
  119. package/resources/themes/fluent-light/theme.css +320 -41
  120. package/resources/themes/lara-dark-blue/theme.css +328 -84
  121. package/resources/themes/lara-dark-indigo/theme.css +328 -84
  122. package/resources/themes/lara-dark-purple/theme.css +328 -84
  123. package/resources/themes/lara-dark-teal/theme.css +328 -84
  124. package/resources/themes/lara-light-blue/theme.css +426 -182
  125. package/resources/themes/lara-light-indigo/theme.css +327 -83
  126. package/resources/themes/lara-light-purple/theme.css +327 -83
  127. package/resources/themes/lara-light-teal/theme.css +327 -83
  128. package/resources/themes/luna-amber/theme.css +320 -41
  129. package/resources/themes/luna-blue/theme.css +320 -41
  130. package/resources/themes/luna-green/theme.css +320 -41
  131. package/resources/themes/luna-pink/theme.css +320 -41
  132. package/resources/themes/md-dark-deeppurple/theme.css +401 -45
  133. package/resources/themes/md-dark-indigo/theme.css +401 -45
  134. package/resources/themes/md-light-deeppurple/theme.css +398 -42
  135. package/resources/themes/md-light-indigo/theme.css +398 -42
  136. package/resources/themes/mdc-dark-deeppurple/theme.css +401 -45
  137. package/resources/themes/mdc-dark-indigo/theme.css +401 -45
  138. package/resources/themes/mdc-light-deeppurple/theme.css +398 -42
  139. package/resources/themes/mdc-light-indigo/theme.css +398 -42
  140. package/resources/themes/nova/theme.css +320 -41
  141. package/resources/themes/nova-accent/theme.css +320 -41
  142. package/resources/themes/nova-alt/theme.css +320 -41
  143. package/resources/themes/rhea/theme.css +320 -41
  144. package/resources/themes/saga-blue/theme.css +320 -41
  145. package/resources/themes/saga-green/theme.css +320 -41
  146. package/resources/themes/saga-orange/theme.css +320 -41
  147. package/resources/themes/saga-purple/theme.css +320 -41
  148. package/resources/themes/tailwind-light/theme.css +319 -40
  149. package/resources/themes/vela-blue/theme.css +321 -42
  150. package/resources/themes/vela-green/theme.css +321 -42
  151. package/resources/themes/vela-orange/theme.css +321 -42
  152. package/resources/themes/vela-purple/theme.css +321 -42
  153. package/table/table.d.ts +3 -3
  154. package/tabmenu/tabmenu.d.ts +13 -1
  155. package/resources/themes/lara-dark-blue/fonts/Inter-Bold.woff +0 -0
  156. package/resources/themes/lara-dark-blue/fonts/Inter-Bold.woff2 +0 -0
  157. package/resources/themes/lara-dark-blue/fonts/Inter-Light.woff +0 -0
  158. package/resources/themes/lara-dark-blue/fonts/Inter-Light.woff2 +0 -0
  159. package/resources/themes/lara-dark-blue/fonts/Inter-Medium.woff +0 -0
  160. package/resources/themes/lara-dark-blue/fonts/Inter-Medium.woff2 +0 -0
  161. package/resources/themes/lara-dark-blue/fonts/Inter-Regular.woff +0 -0
  162. package/resources/themes/lara-dark-blue/fonts/Inter-Regular.woff2 +0 -0
  163. package/resources/themes/lara-dark-blue/fonts/Inter-SemiBold.woff +0 -0
  164. package/resources/themes/lara-dark-blue/fonts/Inter-SemiBold.woff2 +0 -0
  165. package/resources/themes/lara-dark-indigo/fonts/Inter-Bold.woff +0 -0
  166. package/resources/themes/lara-dark-indigo/fonts/Inter-Bold.woff2 +0 -0
  167. package/resources/themes/lara-dark-indigo/fonts/Inter-Light.woff +0 -0
  168. package/resources/themes/lara-dark-indigo/fonts/Inter-Light.woff2 +0 -0
  169. package/resources/themes/lara-dark-indigo/fonts/Inter-Medium.woff +0 -0
  170. package/resources/themes/lara-dark-indigo/fonts/Inter-Medium.woff2 +0 -0
  171. package/resources/themes/lara-dark-indigo/fonts/Inter-Regular.woff +0 -0
  172. package/resources/themes/lara-dark-indigo/fonts/Inter-Regular.woff2 +0 -0
  173. package/resources/themes/lara-dark-indigo/fonts/Inter-SemiBold.woff +0 -0
  174. package/resources/themes/lara-dark-indigo/fonts/Inter-SemiBold.woff2 +0 -0
  175. package/resources/themes/lara-dark-purple/fonts/Inter-Bold.woff +0 -0
  176. package/resources/themes/lara-dark-purple/fonts/Inter-Bold.woff2 +0 -0
  177. package/resources/themes/lara-dark-purple/fonts/Inter-Light.woff +0 -0
  178. package/resources/themes/lara-dark-purple/fonts/Inter-Light.woff2 +0 -0
  179. package/resources/themes/lara-dark-purple/fonts/Inter-Medium.woff +0 -0
  180. package/resources/themes/lara-dark-purple/fonts/Inter-Medium.woff2 +0 -0
  181. package/resources/themes/lara-dark-purple/fonts/Inter-Regular.woff +0 -0
  182. package/resources/themes/lara-dark-purple/fonts/Inter-Regular.woff2 +0 -0
  183. package/resources/themes/lara-dark-purple/fonts/Inter-SemiBold.woff +0 -0
  184. package/resources/themes/lara-dark-purple/fonts/Inter-SemiBold.woff2 +0 -0
  185. package/resources/themes/lara-dark-teal/fonts/Inter-Bold.woff +0 -0
  186. package/resources/themes/lara-dark-teal/fonts/Inter-Bold.woff2 +0 -0
  187. package/resources/themes/lara-dark-teal/fonts/Inter-Light.woff +0 -0
  188. package/resources/themes/lara-dark-teal/fonts/Inter-Light.woff2 +0 -0
  189. package/resources/themes/lara-dark-teal/fonts/Inter-Medium.woff +0 -0
  190. package/resources/themes/lara-dark-teal/fonts/Inter-Medium.woff2 +0 -0
  191. package/resources/themes/lara-dark-teal/fonts/Inter-Regular.woff +0 -0
  192. package/resources/themes/lara-dark-teal/fonts/Inter-Regular.woff2 +0 -0
  193. package/resources/themes/lara-dark-teal/fonts/Inter-SemiBold.woff +0 -0
  194. package/resources/themes/lara-dark-teal/fonts/Inter-SemiBold.woff2 +0 -0
  195. package/resources/themes/lara-light-blue/fonts/Inter-Bold.woff +0 -0
  196. package/resources/themes/lara-light-blue/fonts/Inter-Bold.woff2 +0 -0
  197. package/resources/themes/lara-light-blue/fonts/Inter-Light.woff +0 -0
  198. package/resources/themes/lara-light-blue/fonts/Inter-Light.woff2 +0 -0
  199. package/resources/themes/lara-light-blue/fonts/Inter-Medium.woff +0 -0
  200. package/resources/themes/lara-light-blue/fonts/Inter-Medium.woff2 +0 -0
  201. package/resources/themes/lara-light-blue/fonts/Inter-Regular.woff +0 -0
  202. package/resources/themes/lara-light-blue/fonts/Inter-Regular.woff2 +0 -0
  203. package/resources/themes/lara-light-blue/fonts/Inter-SemiBold.woff +0 -0
  204. package/resources/themes/lara-light-blue/fonts/Inter-SemiBold.woff2 +0 -0
  205. package/resources/themes/lara-light-indigo/fonts/Inter-Bold.woff +0 -0
  206. package/resources/themes/lara-light-indigo/fonts/Inter-Bold.woff2 +0 -0
  207. package/resources/themes/lara-light-indigo/fonts/Inter-Light.woff +0 -0
  208. package/resources/themes/lara-light-indigo/fonts/Inter-Light.woff2 +0 -0
  209. package/resources/themes/lara-light-indigo/fonts/Inter-Medium.woff +0 -0
  210. package/resources/themes/lara-light-indigo/fonts/Inter-Medium.woff2 +0 -0
  211. package/resources/themes/lara-light-indigo/fonts/Inter-Regular.woff +0 -0
  212. package/resources/themes/lara-light-indigo/fonts/Inter-Regular.woff2 +0 -0
  213. package/resources/themes/lara-light-indigo/fonts/Inter-SemiBold.woff +0 -0
  214. package/resources/themes/lara-light-indigo/fonts/Inter-SemiBold.woff2 +0 -0
  215. package/resources/themes/lara-light-purple/fonts/Inter-Bold.woff +0 -0
  216. package/resources/themes/lara-light-purple/fonts/Inter-Bold.woff2 +0 -0
  217. package/resources/themes/lara-light-purple/fonts/Inter-Light.woff +0 -0
  218. package/resources/themes/lara-light-purple/fonts/Inter-Light.woff2 +0 -0
  219. package/resources/themes/lara-light-purple/fonts/Inter-Medium.woff +0 -0
  220. package/resources/themes/lara-light-purple/fonts/Inter-Medium.woff2 +0 -0
  221. package/resources/themes/lara-light-purple/fonts/Inter-Regular.woff +0 -0
  222. package/resources/themes/lara-light-purple/fonts/Inter-Regular.woff2 +0 -0
  223. package/resources/themes/lara-light-purple/fonts/Inter-SemiBold.woff +0 -0
  224. package/resources/themes/lara-light-purple/fonts/Inter-SemiBold.woff2 +0 -0
  225. package/resources/themes/lara-light-teal/fonts/Inter-Bold.woff +0 -0
  226. package/resources/themes/lara-light-teal/fonts/Inter-Bold.woff2 +0 -0
  227. package/resources/themes/lara-light-teal/fonts/Inter-Light.woff +0 -0
  228. package/resources/themes/lara-light-teal/fonts/Inter-Light.woff2 +0 -0
  229. package/resources/themes/lara-light-teal/fonts/Inter-Medium.woff +0 -0
  230. package/resources/themes/lara-light-teal/fonts/Inter-Medium.woff2 +0 -0
  231. package/resources/themes/lara-light-teal/fonts/Inter-Regular.woff +0 -0
  232. package/resources/themes/lara-light-teal/fonts/Inter-Regular.woff2 +0 -0
  233. package/resources/themes/lara-light-teal/fonts/Inter-SemiBold.woff +0 -0
  234. package/resources/themes/lara-light-teal/fonts/Inter-SemiBold.woff2 +0 -0
@@ -2,13 +2,13 @@ import * as i0 from '@angular/core';
2
2
  import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, ContentChildren, NgModule } from '@angular/core';
3
3
  import * as i2 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import * as i4 from 'primeng/ripple';
5
+ import * as i3 from 'primeng/ripple';
6
6
  import { RippleModule } from 'primeng/ripple';
7
7
  import { PrimeTemplate, SharedModule } from 'primeng/api';
8
8
  import * as i1 from '@angular/router';
9
9
  import { RouterModule } from '@angular/router';
10
10
  import { DomHandler } from 'primeng/dom';
11
- import * as i3 from 'primeng/tooltip';
11
+ import * as i4 from 'primeng/tooltip';
12
12
  import { TooltipModule } from 'primeng/tooltip';
13
13
 
14
14
  class TabMenu {
@@ -16,6 +16,8 @@ class TabMenu {
16
16
  this.router = router;
17
17
  this.route = route;
18
18
  this.cd = cd;
19
+ this.backwardIsDisabled = true;
20
+ this.forwardIsDisabled = false;
19
21
  }
20
22
  ngAfterContentInit() {
21
23
  this.templates.forEach((item) => {
@@ -69,88 +71,150 @@ class TabMenu {
69
71
  this.inkbar.nativeElement.style.left = DomHandler.getOffset(tabHeader).left - DomHandler.getOffset(this.navbar.nativeElement).left + 'px';
70
72
  }
71
73
  }
74
+ getVisibleButtonWidths() {
75
+ return [this.prevBtn?.nativeElement, this.nextBtn?.nativeElement].reduce((acc, el) => el ? acc + DomHandler.getWidth(el) : acc, 0);
76
+ }
77
+ updateButtonState() {
78
+ const content = this.content.nativeElement;
79
+ const { scrollLeft, scrollWidth } = content;
80
+ const width = DomHandler.getWidth(content);
81
+ this.backwardIsDisabled = scrollLeft === 0;
82
+ this.forwardIsDisabled = parseInt(scrollLeft) === scrollWidth - width;
83
+ }
84
+ updateScrollBar(index) {
85
+ let tabHeader = this.navbar.nativeElement.children[index];
86
+ tabHeader.scrollIntoView({ block: 'nearest' });
87
+ }
88
+ onScroll(event) {
89
+ this.scrollable && this.updateButtonState();
90
+ event.preventDefault();
91
+ }
92
+ navBackward() {
93
+ const content = this.content.nativeElement;
94
+ const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();
95
+ const pos = content.scrollLeft - width;
96
+ content.scrollLeft = pos <= 0 ? 0 : pos;
97
+ }
98
+ navForward() {
99
+ const content = this.content.nativeElement;
100
+ const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();
101
+ const pos = content.scrollLeft + width;
102
+ const lastPos = content.scrollWidth - width;
103
+ content.scrollLeft = pos >= lastPos ? lastPos : pos;
104
+ }
72
105
  }
73
106
  TabMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TabMenu, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
74
- TabMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TabMenu, selector: "p-tabMenu", inputs: { model: "model", activeItem: "activeItem", popup: "popup", style: "style", styleClass: "styleClass" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true }, { propertyName: "inkbar", first: true, predicate: ["inkbar"], descendants: true }], ngImport: i0, template: `
75
- <div [ngClass]="'p-tabmenu p-component'" [ngStyle]="style" [class]="styleClass">
76
- <ul #navbar class="p-tabmenu-nav p-reset" role="tablist">
77
- <li *ngFor="let item of model; let i = index" role="tab" [ngStyle]="item.style" [class]="item.styleClass" [attr.aria-selected]="isActive(item)" [attr.aria-expanded]="isActive(item)"
78
- [ngClass]="{'p-tabmenuitem':true,'p-disabled':item.disabled,'p-highlight':isActive(item),'p-hidden': item.visible === false}" pTooltip [tooltipOptions]="item.tooltipOptions">
79
- <a *ngIf="!item.routerLink" [attr.href]="item.url" class="p-menuitem-link" role="presentation" (click)="itemClick($event,item)" (keydown.enter)="itemClick($event,item)" [attr.tabindex]="item.disabled ? null : '0'"
80
- [attr.target]="item.target" [attr.title]="item.title" [attr.id]="item.id" pRipple>
81
- <ng-container *ngIf="!itemTemplate">
82
- <span class="p-menuitem-icon" [ngClass]="item.icon" *ngIf="item.icon"></span>
83
- <span class="p-menuitem-text" *ngIf="item.escape !== false; else htmlLabel">{{item.label}}</span>
84
- <ng-template #htmlLabel><span class="p-menuitem-text" [innerHTML]="item.label"></span></ng-template>
85
- </ng-container>
86
- <ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, index: i}"></ng-container>
87
- </a>
88
- <a *ngIf="item.routerLink" [routerLink]="item.routerLink" [queryParams]="item.queryParams" [routerLinkActive]="'p-menuitem-link-active'" [routerLinkActiveOptions]="item.routerLinkActiveOptions||{exact:false}"
89
- role="presentation" class="p-menuitem-link" (click)="itemClick($event,item)" (keydown.enter)="itemClick($event,item)" [attr.tabindex]="item.disabled ? null : '0'"
90
- [attr.target]="item.target" [attr.title]="item.title" [attr.id]="item.id"
91
- [fragment]="item.fragment" [queryParamsHandling]="item.queryParamsHandling" [preserveFragment]="item.preserveFragment" [skipLocationChange]="item.skipLocationChange" [replaceUrl]="item.replaceUrl" [state]="item.state" pRipple>
92
- <ng-container *ngIf="!itemTemplate">
93
- <span class="p-menuitem-icon" [ngClass]="item.icon" *ngIf="item.icon"></span>
94
- <span class="p-menuitem-text" *ngIf="item.escape !== false; else htmlRouteLabel">{{item.label}}</span>
95
- <ng-template #htmlRouteLabel><span class="p-menuitem-text" [innerHTML]="item.label"></span></ng-template>
96
- </ng-container>
97
- <ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, index: i}"></ng-container>
98
- </a>
99
- </li>
100
- <li #inkbar class="p-tabmenu-ink-bar"></li>
101
- </ul>
107
+ TabMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TabMenu, selector: "p-tabMenu", inputs: { model: "model", activeItem: "activeItem", scrollable: "scrollable", popup: "popup", style: "style", styleClass: "styleClass" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }, { propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true }, { propertyName: "inkbar", first: true, predicate: ["inkbar"], descendants: true }, { propertyName: "prevBtn", first: true, predicate: ["prevBtn"], descendants: true }, { propertyName: "nextBtn", first: true, predicate: ["nextBtn"], descendants: true }], ngImport: i0, template: `
108
+ <div [ngClass]="{'p-tabmenu p-component': true, 'p-tabmenu-scrollable': scrollable}" [ngStyle]="style" [class]="styleClass">
109
+ <div class="p-tabmenu-nav-container">
110
+ <button *ngIf="scrollable && !backwardIsDisabled" #prevBtn class="p-tabmenu-nav-prev p-tabmenu-nav-btn p-link" (click)="navBackward()" type="button" pRipple>
111
+ <span class="pi pi-chevron-left"></span>
112
+ </button>
113
+ <div #content class="p-tabmenu-nav-content" (scroll)="onScroll($event)">
114
+ <ul #navbar class="p-tabmenu-nav p-reset" role="tablist">
115
+ <li *ngFor="let item of model; let i = index" role="tab" [ngStyle]="item.style" [class]="item.styleClass" [attr.aria-selected]="isActive(item)" [attr.aria-expanded]="isActive(item)"
116
+ [ngClass]="{'p-tabmenuitem':true,'p-disabled':item.disabled,'p-highlight':isActive(item),'p-hidden': item.visible === false}" pTooltip [tooltipOptions]="item.tooltipOptions">
117
+ <a *ngIf="!item.routerLink" [attr.href]="item.url" class="p-menuitem-link" role="presentation" (click)="itemClick($event,item)" (keydown.enter)="itemClick($event,item)" [attr.tabindex]="item.disabled ? null : '0'"
118
+ [attr.target]="item.target" [attr.title]="item.title" [attr.id]="item.id" pRipple>
119
+ <ng-container *ngIf="!itemTemplate">
120
+ <span class="p-menuitem-icon" [ngClass]="item.icon" *ngIf="item.icon"></span>
121
+ <span class="p-menuitem-text" *ngIf="item.escape !== false; else htmlLabel">{{item.label}}</span>
122
+ <ng-template #htmlLabel><span class="p-menuitem-text" [innerHTML]="item.label"></span></ng-template>
123
+ </ng-container>
124
+ <ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, index: i}"></ng-container>
125
+ </a>
126
+ <a *ngIf="item.routerLink" [routerLink]="item.routerLink" [queryParams]="item.queryParams" [routerLinkActive]="'p-menuitem-link-active'" [routerLinkActiveOptions]="item.routerLinkActiveOptions||{exact:false}"
127
+ role="presentation" class="p-menuitem-link" (click)="itemClick($event,item)" (keydown.enter)="itemClick($event,item)" [attr.tabindex]="item.disabled ? null : '0'"
128
+ [attr.target]="item.target" [attr.title]="item.title" [attr.id]="item.id"
129
+ [fragment]="item.fragment" [queryParamsHandling]="item.queryParamsHandling" [preserveFragment]="item.preserveFragment" [skipLocationChange]="item.skipLocationChange" [replaceUrl]="item.replaceUrl" [state]="item.state" pRipple>
130
+ <ng-container *ngIf="!itemTemplate">
131
+ <span class="p-menuitem-icon" [ngClass]="item.icon" *ngIf="item.icon"></span>
132
+ <span class="p-menuitem-text" *ngIf="item.escape !== false; else htmlRouteLabel">{{item.label}}</span>
133
+ <ng-template #htmlRouteLabel><span class="p-menuitem-text" [innerHTML]="item.label"></span></ng-template>
134
+ </ng-container>
135
+ <ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, index: i}"></ng-container>
136
+ </a>
137
+ </li>
138
+ <li #inkbar class="p-tabmenu-ink-bar"></li>
139
+ </ul>
140
+ </div>
141
+ <button *ngIf="scrollable && !forwardIsDisabled" #nextBtn class="p-tabmenu-nav-next p-tabmenu-nav-btn p-link" (click)="navForward()" type="button" pRipple>
142
+ <span class="pi pi-chevron-right"></span>
143
+ </button>
144
+ </div>
102
145
  </div>
103
- `, isInline: true, styles: [".p-tabmenu{overflow-x:auto}.p-tabmenu-nav{display:flex;margin:0;padding:0;list-style-type:none;flex-wrap:nowrap}.p-tabmenu-nav a{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;position:relative;text-decoration:none;overflow:hidden}.p-tabmenu-nav a:focus{z-index:1}.p-tabmenu-nav .p-menuitem-text{line-height:1}.p-tabmenu-ink-bar{display:none;z-index:1}.p-tabmenu::-webkit-scrollbar{display:none}\n"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.Ripple, selector: "[pRipple]" }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
146
+ `, isInline: true, styles: [".p-tabmenu-nav-container{position:relative}.p-tabmenu-scrollable .p-tabmenu-nav-container{overflow:hidden}.p-tabmenu-nav-content{overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior:contain auto}.p-tabmenu-nav-btn{position:absolute;top:0;z-index:2;height:100%;display:flex;align-items:center;justify-content:center}.p-tabmenu-nav-prev{left:0}.p-tabmenu-nav-next{right:0}.p-tabview-nav-content::-webkit-scrollbar{display:none}.p-tabmenu-nav{display:flex;margin:0;padding:0;list-style-type:none;flex-wrap:nowrap}.p-tabmenu-nav a{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;position:relative;text-decoration:none;overflow:hidden}.p-tabmenu-nav a:focus{z-index:1}.p-tabmenu-nav .p-menuitem-text{line-height:1;white-space:nowrap}.p-tabmenu-ink-bar{display:none;z-index:1}.p-tabmenu-nav-content::-webkit-scrollbar{display:none}\n"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.Ripple, selector: "[pRipple]" }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
104
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TabMenu, decorators: [{
105
148
  type: Component,
106
149
  args: [{ selector: 'p-tabMenu', template: `
107
- <div [ngClass]="'p-tabmenu p-component'" [ngStyle]="style" [class]="styleClass">
108
- <ul #navbar class="p-tabmenu-nav p-reset" role="tablist">
109
- <li *ngFor="let item of model; let i = index" role="tab" [ngStyle]="item.style" [class]="item.styleClass" [attr.aria-selected]="isActive(item)" [attr.aria-expanded]="isActive(item)"
110
- [ngClass]="{'p-tabmenuitem':true,'p-disabled':item.disabled,'p-highlight':isActive(item),'p-hidden': item.visible === false}" pTooltip [tooltipOptions]="item.tooltipOptions">
111
- <a *ngIf="!item.routerLink" [attr.href]="item.url" class="p-menuitem-link" role="presentation" (click)="itemClick($event,item)" (keydown.enter)="itemClick($event,item)" [attr.tabindex]="item.disabled ? null : '0'"
112
- [attr.target]="item.target" [attr.title]="item.title" [attr.id]="item.id" pRipple>
113
- <ng-container *ngIf="!itemTemplate">
114
- <span class="p-menuitem-icon" [ngClass]="item.icon" *ngIf="item.icon"></span>
115
- <span class="p-menuitem-text" *ngIf="item.escape !== false; else htmlLabel">{{item.label}}</span>
116
- <ng-template #htmlLabel><span class="p-menuitem-text" [innerHTML]="item.label"></span></ng-template>
117
- </ng-container>
118
- <ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, index: i}"></ng-container>
119
- </a>
120
- <a *ngIf="item.routerLink" [routerLink]="item.routerLink" [queryParams]="item.queryParams" [routerLinkActive]="'p-menuitem-link-active'" [routerLinkActiveOptions]="item.routerLinkActiveOptions||{exact:false}"
121
- role="presentation" class="p-menuitem-link" (click)="itemClick($event,item)" (keydown.enter)="itemClick($event,item)" [attr.tabindex]="item.disabled ? null : '0'"
122
- [attr.target]="item.target" [attr.title]="item.title" [attr.id]="item.id"
123
- [fragment]="item.fragment" [queryParamsHandling]="item.queryParamsHandling" [preserveFragment]="item.preserveFragment" [skipLocationChange]="item.skipLocationChange" [replaceUrl]="item.replaceUrl" [state]="item.state" pRipple>
124
- <ng-container *ngIf="!itemTemplate">
125
- <span class="p-menuitem-icon" [ngClass]="item.icon" *ngIf="item.icon"></span>
126
- <span class="p-menuitem-text" *ngIf="item.escape !== false; else htmlRouteLabel">{{item.label}}</span>
127
- <ng-template #htmlRouteLabel><span class="p-menuitem-text" [innerHTML]="item.label"></span></ng-template>
128
- </ng-container>
129
- <ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, index: i}"></ng-container>
130
- </a>
131
- </li>
132
- <li #inkbar class="p-tabmenu-ink-bar"></li>
133
- </ul>
150
+ <div [ngClass]="{'p-tabmenu p-component': true, 'p-tabmenu-scrollable': scrollable}" [ngStyle]="style" [class]="styleClass">
151
+ <div class="p-tabmenu-nav-container">
152
+ <button *ngIf="scrollable && !backwardIsDisabled" #prevBtn class="p-tabmenu-nav-prev p-tabmenu-nav-btn p-link" (click)="navBackward()" type="button" pRipple>
153
+ <span class="pi pi-chevron-left"></span>
154
+ </button>
155
+ <div #content class="p-tabmenu-nav-content" (scroll)="onScroll($event)">
156
+ <ul #navbar class="p-tabmenu-nav p-reset" role="tablist">
157
+ <li *ngFor="let item of model; let i = index" role="tab" [ngStyle]="item.style" [class]="item.styleClass" [attr.aria-selected]="isActive(item)" [attr.aria-expanded]="isActive(item)"
158
+ [ngClass]="{'p-tabmenuitem':true,'p-disabled':item.disabled,'p-highlight':isActive(item),'p-hidden': item.visible === false}" pTooltip [tooltipOptions]="item.tooltipOptions">
159
+ <a *ngIf="!item.routerLink" [attr.href]="item.url" class="p-menuitem-link" role="presentation" (click)="itemClick($event,item)" (keydown.enter)="itemClick($event,item)" [attr.tabindex]="item.disabled ? null : '0'"
160
+ [attr.target]="item.target" [attr.title]="item.title" [attr.id]="item.id" pRipple>
161
+ <ng-container *ngIf="!itemTemplate">
162
+ <span class="p-menuitem-icon" [ngClass]="item.icon" *ngIf="item.icon"></span>
163
+ <span class="p-menuitem-text" *ngIf="item.escape !== false; else htmlLabel">{{item.label}}</span>
164
+ <ng-template #htmlLabel><span class="p-menuitem-text" [innerHTML]="item.label"></span></ng-template>
165
+ </ng-container>
166
+ <ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, index: i}"></ng-container>
167
+ </a>
168
+ <a *ngIf="item.routerLink" [routerLink]="item.routerLink" [queryParams]="item.queryParams" [routerLinkActive]="'p-menuitem-link-active'" [routerLinkActiveOptions]="item.routerLinkActiveOptions||{exact:false}"
169
+ role="presentation" class="p-menuitem-link" (click)="itemClick($event,item)" (keydown.enter)="itemClick($event,item)" [attr.tabindex]="item.disabled ? null : '0'"
170
+ [attr.target]="item.target" [attr.title]="item.title" [attr.id]="item.id"
171
+ [fragment]="item.fragment" [queryParamsHandling]="item.queryParamsHandling" [preserveFragment]="item.preserveFragment" [skipLocationChange]="item.skipLocationChange" [replaceUrl]="item.replaceUrl" [state]="item.state" pRipple>
172
+ <ng-container *ngIf="!itemTemplate">
173
+ <span class="p-menuitem-icon" [ngClass]="item.icon" *ngIf="item.icon"></span>
174
+ <span class="p-menuitem-text" *ngIf="item.escape !== false; else htmlRouteLabel">{{item.label}}</span>
175
+ <ng-template #htmlRouteLabel><span class="p-menuitem-text" [innerHTML]="item.label"></span></ng-template>
176
+ </ng-container>
177
+ <ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: item, index: i}"></ng-container>
178
+ </a>
179
+ </li>
180
+ <li #inkbar class="p-tabmenu-ink-bar"></li>
181
+ </ul>
182
+ </div>
183
+ <button *ngIf="scrollable && !forwardIsDisabled" #nextBtn class="p-tabmenu-nav-next p-tabmenu-nav-btn p-link" (click)="navForward()" type="button" pRipple>
184
+ <span class="pi pi-chevron-right"></span>
185
+ </button>
186
+ </div>
134
187
  </div>
135
188
  `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
136
189
  'class': 'p-element'
137
- }, styles: [".p-tabmenu{overflow-x:auto}.p-tabmenu-nav{display:flex;margin:0;padding:0;list-style-type:none;flex-wrap:nowrap}.p-tabmenu-nav a{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;position:relative;text-decoration:none;overflow:hidden}.p-tabmenu-nav a:focus{z-index:1}.p-tabmenu-nav .p-menuitem-text{line-height:1}.p-tabmenu-ink-bar{display:none;z-index:1}.p-tabmenu::-webkit-scrollbar{display:none}\n"] }]
190
+ }, styles: [".p-tabmenu-nav-container{position:relative}.p-tabmenu-scrollable .p-tabmenu-nav-container{overflow:hidden}.p-tabmenu-nav-content{overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior:contain auto}.p-tabmenu-nav-btn{position:absolute;top:0;z-index:2;height:100%;display:flex;align-items:center;justify-content:center}.p-tabmenu-nav-prev{left:0}.p-tabmenu-nav-next{right:0}.p-tabview-nav-content::-webkit-scrollbar{display:none}.p-tabmenu-nav{display:flex;margin:0;padding:0;list-style-type:none;flex-wrap:nowrap}.p-tabmenu-nav a{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;position:relative;text-decoration:none;overflow:hidden}.p-tabmenu-nav a:focus{z-index:1}.p-tabmenu-nav .p-menuitem-text{line-height:1;white-space:nowrap}.p-tabmenu-ink-bar{display:none;z-index:1}.p-tabmenu-nav-content::-webkit-scrollbar{display:none}\n"] }]
138
191
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { model: [{
139
192
  type: Input
140
193
  }], activeItem: [{
141
194
  type: Input
195
+ }], scrollable: [{
196
+ type: Input
142
197
  }], popup: [{
143
198
  type: Input
144
199
  }], style: [{
145
200
  type: Input
146
201
  }], styleClass: [{
147
202
  type: Input
203
+ }], content: [{
204
+ type: ViewChild,
205
+ args: ['content']
148
206
  }], navbar: [{
149
207
  type: ViewChild,
150
208
  args: ['navbar']
151
209
  }], inkbar: [{
152
210
  type: ViewChild,
153
211
  args: ['inkbar']
212
+ }], prevBtn: [{
213
+ type: ViewChild,
214
+ args: ['prevBtn']
215
+ }], nextBtn: [{
216
+ type: ViewChild,
217
+ args: ['nextBtn']
154
218
  }], templates: [{
155
219
  type: ContentChildren,
156
220
  args: [PrimeTemplate]
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-tabmenu.mjs","sources":["../../src/app/components/tabmenu/tabmenu.ts","../../src/app/components/tabmenu/primeng-tabmenu.ts"],"sourcesContent":["import {NgModule,Component,Input,ContentChildren,QueryList,AfterContentInit,AfterViewInit,AfterViewChecked,TemplateRef,ChangeDetectionStrategy, ViewEncapsulation, ViewChild, ElementRef, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MenuItem} from 'primeng/api';\nimport {RippleModule} from 'primeng/ripple';\nimport {PrimeTemplate, SharedModule} from 'primeng/api';\nimport {ActivatedRoute, Router, RouterModule} from '@angular/router';\nimport {DomHandler} from 'primeng/dom';\nimport {TooltipModule} from 'primeng/tooltip';\n\n@Component({\n selector: 'p-tabMenu',\n template: `\n <div [ngClass]=\"'p-tabmenu p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <ul #navbar class=\"p-tabmenu-nav p-reset\" role=\"tablist\">\n <li *ngFor=\"let item of model; let i = index\" role=\"tab\" [ngStyle]=\"item.style\" [class]=\"item.styleClass\" [attr.aria-selected]=\"isActive(item)\" [attr.aria-expanded]=\"isActive(item)\"\n [ngClass]=\"{'p-tabmenuitem':true,'p-disabled':item.disabled,'p-highlight':isActive(item),'p-hidden': item.visible === false}\" pTooltip [tooltipOptions]=\"item.tooltipOptions\">\n <a *ngIf=\"!item.routerLink\" [attr.href]=\"item.url\" class=\"p-menuitem-link\" role=\"presentation\" (click)=\"itemClick($event,item)\" (keydown.enter)=\"itemClick($event,item)\" [attr.tabindex]=\"item.disabled ? null : '0'\"\n [attr.target]=\"item.target\" [attr.title]=\"item.title\" [attr.id]=\"item.id\" pRipple>\n <ng-container *ngIf=\"!itemTemplate\">\n <span class=\"p-menuitem-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon\"></span>\n <span class=\"p-menuitem-text\" *ngIf=\"item.escape !== false; else htmlLabel\">{{item.label}}</span>\n <ng-template #htmlLabel><span class=\"p-menuitem-text\" [innerHTML]=\"item.label\"></span></ng-template>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, index: i}\"></ng-container>\n </a>\n <a *ngIf=\"item.routerLink\" [routerLink]=\"item.routerLink\" [queryParams]=\"item.queryParams\" [routerLinkActive]=\"'p-menuitem-link-active'\" [routerLinkActiveOptions]=\"item.routerLinkActiveOptions||{exact:false}\"\n role=\"presentation\" class=\"p-menuitem-link\" (click)=\"itemClick($event,item)\" (keydown.enter)=\"itemClick($event,item)\" [attr.tabindex]=\"item.disabled ? null : '0'\"\n [attr.target]=\"item.target\" [attr.title]=\"item.title\" [attr.id]=\"item.id\"\n [fragment]=\"item.fragment\" [queryParamsHandling]=\"item.queryParamsHandling\" [preserveFragment]=\"item.preserveFragment\" [skipLocationChange]=\"item.skipLocationChange\" [replaceUrl]=\"item.replaceUrl\" [state]=\"item.state\" pRipple>\n <ng-container *ngIf=\"!itemTemplate\">\n <span class=\"p-menuitem-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon\"></span>\n <span class=\"p-menuitem-text\" *ngIf=\"item.escape !== false; else htmlRouteLabel\">{{item.label}}</span>\n <ng-template #htmlRouteLabel><span class=\"p-menuitem-text\" [innerHTML]=\"item.label\"></span></ng-template>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, index: i}\"></ng-container>\n </a>\n </li>\n <li #inkbar class=\"p-tabmenu-ink-bar\"></li>\n </ul>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tabmenu.css'],\n host: {\n 'class': 'p-element'\n }\n})\nexport class TabMenu implements AfterContentInit,AfterViewInit,AfterViewChecked {\n\n @Input() model: MenuItem[];\n\n @Input() activeItem: MenuItem;\n\n @Input() popup: boolean;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @ViewChild('navbar') navbar: ElementRef;\n\n @ViewChild('inkbar') inkbar: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n itemTemplate: TemplateRef<any>;\n\n tabChanged: boolean;\n\n constructor(private router: Router, private route:ActivatedRoute, private cd: ChangeDetectorRef) { }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n this.updateInkBar();\n }\n\n ngAfterViewChecked() {\n if (this.tabChanged) {\n this.updateInkBar();\n this.tabChanged = false;\n }\n }\n\n isActive(item: MenuItem) {\n if (item.routerLink){\n let routerLink = Array.isArray(item.routerLink) ? item.routerLink : [item.routerLink];\n\n return this.router.isActive(this.router.createUrlTree(routerLink, {relativeTo: this.route}).toString(), false);\n }\n \n return item === this.activeItem;\n }\n\n itemClick(event: Event, item: MenuItem) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url && !item.routerLink) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n this.activeItem = item;\n this.tabChanged = true;\n }\n\n updateInkBar() {\n let tabHeader = DomHandler.findSingle(this.navbar.nativeElement, 'li.p-highlight');\n if (tabHeader) {\n this.inkbar.nativeElement.style.width = DomHandler.getWidth(tabHeader) + 'px';\n this.inkbar.nativeElement.style.left = DomHandler.getOffset(tabHeader).left - DomHandler.getOffset(this.navbar.nativeElement).left + 'px';\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule,RouterModule,SharedModule,RippleModule,TooltipModule],\n exports: [TabMenu,RouterModule,SharedModule,TooltipModule],\n declarations: [TabMenu]\n})\nexport class TabMenuModule { }\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":"primeng-tabmenu.mjs","sources":["../../src/app/components/tabmenu/tabmenu.ts","../../src/app/components/tabmenu/primeng-tabmenu.ts"],"sourcesContent":["import {NgModule,Component,Input,ContentChildren,QueryList,AfterContentInit,AfterViewInit,AfterViewChecked,TemplateRef,ChangeDetectionStrategy, ViewEncapsulation, ViewChild, ElementRef, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MenuItem} from 'primeng/api';\nimport {RippleModule} from 'primeng/ripple';\nimport {PrimeTemplate, SharedModule} from 'primeng/api';\nimport {ActivatedRoute, Router, RouterModule} from '@angular/router';\nimport {DomHandler} from 'primeng/dom';\nimport {TooltipModule} from 'primeng/tooltip';\n\n@Component({\n selector: 'p-tabMenu',\n template: `\n <div [ngClass]=\"{'p-tabmenu p-component': true, 'p-tabmenu-scrollable': scrollable}\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <div class=\"p-tabmenu-nav-container\">\n <button *ngIf=\"scrollable && !backwardIsDisabled\" #prevBtn class=\"p-tabmenu-nav-prev p-tabmenu-nav-btn p-link\" (click)=\"navBackward()\" type=\"button\" pRipple>\n <span class=\"pi pi-chevron-left\"></span>\n </button>\n <div #content class=\"p-tabmenu-nav-content\" (scroll)=\"onScroll($event)\">\n <ul #navbar class=\"p-tabmenu-nav p-reset\" role=\"tablist\">\n <li *ngFor=\"let item of model; let i = index\" role=\"tab\" [ngStyle]=\"item.style\" [class]=\"item.styleClass\" [attr.aria-selected]=\"isActive(item)\" [attr.aria-expanded]=\"isActive(item)\"\n [ngClass]=\"{'p-tabmenuitem':true,'p-disabled':item.disabled,'p-highlight':isActive(item),'p-hidden': item.visible === false}\" pTooltip [tooltipOptions]=\"item.tooltipOptions\">\n <a *ngIf=\"!item.routerLink\" [attr.href]=\"item.url\" class=\"p-menuitem-link\" role=\"presentation\" (click)=\"itemClick($event,item)\" (keydown.enter)=\"itemClick($event,item)\" [attr.tabindex]=\"item.disabled ? null : '0'\"\n [attr.target]=\"item.target\" [attr.title]=\"item.title\" [attr.id]=\"item.id\" pRipple>\n <ng-container *ngIf=\"!itemTemplate\">\n <span class=\"p-menuitem-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon\"></span>\n <span class=\"p-menuitem-text\" *ngIf=\"item.escape !== false; else htmlLabel\">{{item.label}}</span>\n <ng-template #htmlLabel><span class=\"p-menuitem-text\" [innerHTML]=\"item.label\"></span></ng-template>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, index: i}\"></ng-container>\n </a>\n <a *ngIf=\"item.routerLink\" [routerLink]=\"item.routerLink\" [queryParams]=\"item.queryParams\" [routerLinkActive]=\"'p-menuitem-link-active'\" [routerLinkActiveOptions]=\"item.routerLinkActiveOptions||{exact:false}\"\n role=\"presentation\" class=\"p-menuitem-link\" (click)=\"itemClick($event,item)\" (keydown.enter)=\"itemClick($event,item)\" [attr.tabindex]=\"item.disabled ? null : '0'\"\n [attr.target]=\"item.target\" [attr.title]=\"item.title\" [attr.id]=\"item.id\"\n [fragment]=\"item.fragment\" [queryParamsHandling]=\"item.queryParamsHandling\" [preserveFragment]=\"item.preserveFragment\" [skipLocationChange]=\"item.skipLocationChange\" [replaceUrl]=\"item.replaceUrl\" [state]=\"item.state\" pRipple>\n <ng-container *ngIf=\"!itemTemplate\">\n <span class=\"p-menuitem-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon\"></span>\n <span class=\"p-menuitem-text\" *ngIf=\"item.escape !== false; else htmlRouteLabel\">{{item.label}}</span>\n <ng-template #htmlRouteLabel><span class=\"p-menuitem-text\" [innerHTML]=\"item.label\"></span></ng-template>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item, index: i}\"></ng-container>\n </a>\n </li>\n <li #inkbar class=\"p-tabmenu-ink-bar\"></li>\n </ul>\n </div>\n <button *ngIf=\"scrollable && !forwardIsDisabled\" #nextBtn class=\"p-tabmenu-nav-next p-tabmenu-nav-btn p-link\" (click)=\"navForward()\" type=\"button\" pRipple>\n <span class=\"pi pi-chevron-right\"></span>\n </button>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tabmenu.css'],\n host: {\n 'class': 'p-element'\n }\n})\nexport class TabMenu implements AfterContentInit,AfterViewInit,AfterViewChecked {\n\n @Input() model: MenuItem[];\n\n @Input() activeItem: MenuItem;\n\n @Input() scrollable: boolean;\n\n @Input() popup: boolean;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @ViewChild('content') content: ElementRef;\n\n @ViewChild('navbar') navbar: ElementRef;\n\n @ViewChild('inkbar') inkbar: ElementRef;\n\n @ViewChild('prevBtn') prevBtn: ElementRef;\n\n @ViewChild('nextBtn') nextBtn: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n itemTemplate: TemplateRef<any>;\n\n tabChanged: boolean;\n\n backwardIsDisabled: boolean = true;\n\n forwardIsDisabled: boolean = false;\n\n constructor(private router: Router, private route:ActivatedRoute, private cd: ChangeDetectorRef) { }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'item':\n this.itemTemplate = item.template;\n break;\n\n default:\n this.itemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n this.updateInkBar();\n }\n\n ngAfterViewChecked() {\n if (this.tabChanged) {\n this.updateInkBar();\n this.tabChanged = false;\n }\n }\n\n isActive(item: MenuItem) {\n if (item.routerLink){\n let routerLink = Array.isArray(item.routerLink) ? item.routerLink : [item.routerLink];\n\n return this.router.isActive(this.router.createUrlTree(routerLink, {relativeTo: this.route}).toString(), false);\n }\n \n return item === this.activeItem;\n }\n\n itemClick(event: Event, item: MenuItem) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url && !item.routerLink) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n this.activeItem = item;\n this.tabChanged = true;\n }\n\n updateInkBar() {\n let tabHeader = DomHandler.findSingle(this.navbar.nativeElement, 'li.p-highlight');\n if (tabHeader) {\n this.inkbar.nativeElement.style.width = DomHandler.getWidth(tabHeader) + 'px';\n this.inkbar.nativeElement.style.left = DomHandler.getOffset(tabHeader).left - DomHandler.getOffset(this.navbar.nativeElement).left + 'px';\n }\n }\n\n getVisibleButtonWidths() {\n return [this.prevBtn?.nativeElement, this.nextBtn?.nativeElement].reduce((acc, el) => el ? acc + DomHandler.getWidth(el) : acc, 0);\n }\n\n updateButtonState() {\n const content = this.content.nativeElement;\n const { scrollLeft, scrollWidth } = content;\n const width = DomHandler.getWidth(content);\n\n this.backwardIsDisabled = scrollLeft === 0;\n this.forwardIsDisabled = parseInt(scrollLeft) === scrollWidth - width;\n }\n\n\n updateScrollBar(index) {\n let tabHeader = this.navbar.nativeElement.children[index];\n tabHeader.scrollIntoView({ block: 'nearest' })\n }\n\n onScroll(event) {\n this.scrollable && this.updateButtonState();\n\n event.preventDefault();\n }\n\n navBackward() {\n const content = this.content.nativeElement;\n const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n }\n\n navForward() {\n const content = this.content.nativeElement;\n const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft + width;\n const lastPos = content.scrollWidth - width;\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n }\n}\n\n@NgModule({\n imports: [CommonModule,RouterModule,SharedModule,RippleModule,TooltipModule],\n exports: [TabMenu,RouterModule,SharedModule,TooltipModule],\n declarations: [TabMenu]\n})\nexport class TabMenuModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -288,7 +288,7 @@ class TabView {
288
288
  const { scrollLeft, scrollWidth } = content;
289
289
  const width = DomHandler.getWidth(content);
290
290
  this.backwardIsDisabled = scrollLeft === 0;
291
- this.forwardIsDisabled = scrollLeft === scrollWidth - width;
291
+ this.forwardIsDisabled = parseInt(scrollLeft) === scrollWidth - width;
292
292
  }
293
293
  onScroll(event) {
294
294
  this.scrollable && this.updateButtonState();
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-tabview.mjs","sources":["../../src/app/components/tabview/tabview.ts","../../src/app/components/tabview/primeng-tabview.ts"],"sourcesContent":["import {NgModule,Component,ElementRef,OnDestroy,Input,Output,EventEmitter,AfterContentInit,\n ContentChildren,QueryList,TemplateRef,EmbeddedViewRef,ViewContainerRef,ChangeDetectorRef,ChangeDetectionStrategy, ViewEncapsulation, ViewChild, AfterViewChecked, forwardRef, Inject} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TooltipModule} from 'primeng/tooltip';\nimport {RippleModule} from 'primeng/ripple';\nimport {SharedModule,PrimeTemplate} from 'primeng/api';\nimport {BlockableUI} from 'primeng/api';\nimport {DomHandler} from 'primeng/dom';\n\nlet idx: number = 0;\n\n@Component({\n selector: 'p-tabPanel',\n template: `\n <div [attr.id]=\"id\" class=\"p-tabview-panel\" [hidden]=\"!selected\"\n role=\"tabpanel\" [attr.aria-hidden]=\"!selected\" [attr.aria-labelledby]=\"id + '-label'\" *ngIf=\"!closed\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"contentTemplate && (cache ? loaded : selected)\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n </div>\n `,\n host: {\n 'class': 'p-element'\n }\n})\nexport class TabPanel implements AfterContentInit,OnDestroy {\n\n @Input() closable: boolean;\n\n @Input() headerStyle: any;\n\n @Input() headerStyleClass: string;\n\n @Input() cache: boolean = true;\n\n @Input() tooltip: any;\n\n @Input() tooltipPosition: string = 'top';\n\n @Input() tooltipPositionStyle: string = 'absolute';\n\n @Input() tooltipStyleClass: string;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n closed: boolean;\n\n view: EmbeddedViewRef<any>;\n\n _selected: boolean;\n\n _disabled: boolean;\n\n _header: string;\n\n _leftIcon: string;\n\n _rightIcon: string;\n\n loaded: boolean;\n\n id: string = `p-tabpanel-${idx++}`;\n\n contentTemplate: TemplateRef<any>;\n\n headerTemplate: TemplateRef<any>;\n\n tabView: TabView;\n\n constructor(@Inject(forwardRef(() => TabView)) tabView, public viewContainer: ViewContainerRef, public cd: ChangeDetectorRef) {\n this.tabView = tabView as TabView;\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n @Input() get selected(): boolean {\n return this._selected;\n }\n\n set selected(val: boolean) {\n this._selected = val;\n\n if (!this.loaded) {\n this.cd.detectChanges();\n }\n\n if (val)\n this.loaded = true;\n }\n\n @Input() get disabled(): boolean {\n return this._disabled;\n };\n\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n this.tabView.cd.markForCheck();\n }\n\n @Input() get header(): string {\n return this._header;\n }\n\n set header(header: string) {\n this._header = header;\n this.tabView.updateInkBar();\n this.tabView.cd.markForCheck();\n }\n\n @Input() get leftIcon(): string {\n return this._leftIcon;\n }\n\n set leftIcon(leftIcon :string) {\n this._leftIcon = leftIcon;\n this.tabView.cd.markForCheck();\n }\n\n @Input() get rightIcon(): string {\n return this._rightIcon;\n }\n\n set rightIcon(rightIcon :string) {\n this._rightIcon = rightIcon;\n this.tabView.cd.markForCheck();\n }\n\n ngOnDestroy() {\n this.view = null;\n }\n}\n\n@Component({\n selector: 'p-tabView',\n template: `\n <div [ngClass]=\"{'p-tabview p-component': true, 'p-tabview-scrollable': scrollable}\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <div class=\"p-tabview-nav-container\">\n <button *ngIf=\"scrollable && !backwardIsDisabled\" #prevBtn class=\"p-tabview-nav-prev p-tabview-nav-btn p-link\" (click)=\"navBackward()\" type=\"button\" pRipple>\n <span class=\"pi pi-chevron-left\"></span>\n </button>\n <div #content class=\"p-tabview-nav-content\" (scroll)=\"onScroll($event)\">\n <ul #navbar class=\"p-tabview-nav\" role=\"tablist\">\n <ng-template ngFor let-tab [ngForOf]=\"tabs\">\n <li role=\"presentation\" [ngClass]=\"{'p-highlight': tab.selected, 'p-disabled': tab.disabled}\" [ngStyle]=\"tab.headerStyle\" [class]=\"tab.headerStyleClass\" *ngIf=\"!tab.closed\">\n <a role=\"tab\" class=\"p-tabview-nav-link\" [attr.id]=\"tab.id + '-label'\" [attr.aria-selected]=\"tab.selected\" [attr.aria-controls]=\"tab.id\" [pTooltip]=\"tab.tooltip\" [tooltipPosition]=\"tab.tooltipPosition\"\n [attr.aria-selected]=\"tab.selected\" [positionStyle]=\"tab.tooltipPositionStyle\" [tooltipStyleClass]=\"tab.tooltipStyleClass\"\n (click)=\"open($event,tab)\" (keydown.enter)=\"open($event,tab)\" pRipple [attr.tabindex]=\"tab.disabled ? null : '0'\">\n <ng-container *ngIf=\"!tab.headerTemplate\">\n <span class=\"p-tabview-left-icon\" [ngClass]=\"tab.leftIcon\" *ngIf=\"tab.leftIcon\"></span>\n <span class=\"p-tabview-title\">{{tab.header}}</span>\n <span class=\"p-tabview-right-icon\" [ngClass]=\"tab.rightIcon\" *ngIf=\"tab.rightIcon\"></span>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"tab.headerTemplate\"></ng-container>\n <span *ngIf=\"tab.closable\" class=\"p-tabview-close pi pi-times\" (click)=\"close($event,tab)\"></span>\n </a>\n </li>\n </ng-template>\n <li #inkbar class=\"p-tabview-ink-bar\"></li>\n </ul>\n </div>\n <button *ngIf=\"scrollable && !forwardIsDisabled\" #nextBtn class=\"p-tabview-nav-next p-tabview-nav-btn p-link\" (click)=\"navForward()\" type=\"button\" pRipple>\n <span class=\"pi pi-chevron-right\"></span>\n </button>\n </div>\n <div class=\"p-tabview-panels\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tabview.css'],\n host: {\n 'class': 'p-element'\n}\n})\nexport class TabView implements AfterContentInit,AfterViewChecked,BlockableUI {\n\n @Input() orientation: string = 'top';\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() controlClose: boolean;\n\n @Input() scrollable: boolean;\n\n @ViewChild('content') content: ElementRef;\n\n @ViewChild('navbar') navbar: ElementRef;\n\n @ViewChild('prevBtn') prevBtn: ElementRef;\n\n @ViewChild('nextBtn') nextBtn: ElementRef;\n\n @ViewChild('inkbar') inkbar: ElementRef;\n\n @ContentChildren(TabPanel) tabPanels: QueryList<TabPanel>;\n\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onClose: EventEmitter<any> = new EventEmitter();\n\n @Output() activeIndexChange: EventEmitter<number> = new EventEmitter();\n\n initialized: boolean;\n\n tabs: TabPanel[];\n\n _activeIndex: number;\n\n preventActiveIndexPropagation: boolean;\n\n tabChanged: boolean;\n\n backwardIsDisabled: boolean = true;\n\n forwardIsDisabled: boolean = false;\n\n constructor(public el: ElementRef, public cd: ChangeDetectorRef) {}\n\n ngAfterContentInit() {\n this.initTabs();\n\n this.tabPanels.changes.subscribe(_ => {\n this.initTabs();\n });\n }\n\n ngAfterViewChecked() {\n if (this.tabChanged) {\n this.updateInkBar();\n this.tabChanged = false;\n }\n }\n\n initTabs(): void {\n this.tabs = this.tabPanels.toArray();\n let selectedTab: TabPanel = this.findSelectedTab();\n if (!selectedTab && this.tabs.length) {\n if (this.activeIndex != null && this.tabs.length > this.activeIndex)\n this.tabs[this.activeIndex].selected = true;\n else\n this.tabs[0].selected = true;\n\n this.tabChanged = true;\n }\n\n this.cd.markForCheck();\n }\n\n open(event: Event, tab: TabPanel) {\n if (tab.disabled) {\n if (event) {\n event.preventDefault();\n }\n return;\n }\n\n if (!tab.selected) {\n let selectedTab: TabPanel = this.findSelectedTab();\n if (selectedTab) {\n selectedTab.selected = false\n }\n\n this.tabChanged = true;\n tab.selected = true;\n let selectedTabIndex = this.findTabIndex(tab);\n this.preventActiveIndexPropagation = true;\n this.activeIndexChange.emit(selectedTabIndex);\n this.onChange.emit({originalEvent: event, index: selectedTabIndex});\n\n this.updateScrollBar(selectedTabIndex);\n }\n\n if (event) {\n event.preventDefault();\n }\n }\n\n close(event: Event, tab: TabPanel) {\n if (this.controlClose) {\n this.onClose.emit({\n originalEvent: event,\n index: this.findTabIndex(tab),\n close: () => {\n this.closeTab(tab);\n }}\n );\n }\n else {\n this.closeTab(tab);\n this.onClose.emit({\n originalEvent: event,\n index: this.findTabIndex(tab)\n });\n }\n\n event.stopPropagation();\n }\n\n closeTab(tab: TabPanel) {\n if (tab.disabled) {\n return;\n }\n if (tab.selected) {\n this.tabChanged = true;\n tab.selected = false;\n for(let i = 0; i < this.tabs.length; i++) {\n let tabPanel = this.tabs[i];\n if (!tabPanel.closed&&!tab.disabled) {\n tabPanel.selected = true;\n break;\n }\n }\n }\n\n tab.closed = true;\n }\n\n findSelectedTab() {\n for(let i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i].selected) {\n return this.tabs[i];\n }\n }\n return null;\n }\n\n findTabIndex(tab: TabPanel) {\n let index = -1;\n for(let i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i] == tab) {\n index = i;\n break;\n }\n }\n return index;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n @Input() get activeIndex(): number {\n return this._activeIndex;\n }\n\n set activeIndex(val:number) {\n this._activeIndex = val;\n if (this.preventActiveIndexPropagation) {\n this.preventActiveIndexPropagation = false;\n return;\n }\n\n if (this.tabs && this.tabs.length && this._activeIndex != null && this.tabs.length > this._activeIndex) {\n this.findSelectedTab().selected = false;\n this.tabs[this._activeIndex].selected = true;\n this.tabChanged = true;\n\n this.updateScrollBar(val);\n }\n }\n\n updateInkBar() {\n if (this.navbar) {\n let tabHeader = DomHandler.findSingle(this.navbar.nativeElement, 'li.p-highlight');\n this.inkbar.nativeElement.style.width = DomHandler.getWidth(tabHeader) + 'px';\n this.inkbar.nativeElement.style.left = DomHandler.getOffset(tabHeader).left - DomHandler.getOffset(this.navbar.nativeElement).left + 'px';\n }\n }\n\n updateScrollBar(index) {\n let tabHeader = this.navbar.nativeElement.children[index];\n tabHeader.scrollIntoView({ block: 'nearest' })\n }\n\n updateButtonState() {\n const content = this.content.nativeElement;\n const { scrollLeft, scrollWidth } = content;\n const width = DomHandler.getWidth(content);\n\n this.backwardIsDisabled = scrollLeft === 0;\n this.forwardIsDisabled = scrollLeft === scrollWidth - width;\n }\n\n onScroll(event) {\n this.scrollable && this.updateButtonState();\n\n event.preventDefault();\n }\n\n getVisibleButtonWidths() {\n return [this.prevBtn?.nativeElement, this.nextBtn?.nativeElement].reduce((acc, el) => el ? acc + DomHandler.getWidth(el) : acc, 0);\n }\n\n navBackward() {\n const content = this.content.nativeElement;\n const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n }\n\n navForward() {\n const content = this.content.nativeElement;\n const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft + width;\n const lastPos = content.scrollWidth - width;\n\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n }\n}\n\n\n@NgModule({\n imports: [CommonModule,SharedModule,TooltipModule,RippleModule],\n exports: [TabView,TabPanel,SharedModule],\n declarations: [TabView,TabPanel]\n})\nexport class TabViewModule { }\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":"primeng-tabview.mjs","sources":["../../src/app/components/tabview/tabview.ts","../../src/app/components/tabview/primeng-tabview.ts"],"sourcesContent":["import {NgModule,Component,ElementRef,OnDestroy,Input,Output,EventEmitter,AfterContentInit,\n ContentChildren,QueryList,TemplateRef,EmbeddedViewRef,ViewContainerRef,ChangeDetectorRef,ChangeDetectionStrategy, ViewEncapsulation, ViewChild, AfterViewChecked, forwardRef, Inject} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TooltipModule} from 'primeng/tooltip';\nimport {RippleModule} from 'primeng/ripple';\nimport {SharedModule,PrimeTemplate} from 'primeng/api';\nimport {BlockableUI} from 'primeng/api';\nimport {DomHandler} from 'primeng/dom';\n\nlet idx: number = 0;\n\n@Component({\n selector: 'p-tabPanel',\n template: `\n <div [attr.id]=\"id\" class=\"p-tabview-panel\" [hidden]=\"!selected\"\n role=\"tabpanel\" [attr.aria-hidden]=\"!selected\" [attr.aria-labelledby]=\"id + '-label'\" *ngIf=\"!closed\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"contentTemplate && (cache ? loaded : selected)\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n </div>\n `,\n host: {\n 'class': 'p-element'\n }\n})\nexport class TabPanel implements AfterContentInit,OnDestroy {\n\n @Input() closable: boolean;\n\n @Input() headerStyle: any;\n\n @Input() headerStyleClass: string;\n\n @Input() cache: boolean = true;\n\n @Input() tooltip: any;\n\n @Input() tooltipPosition: string = 'top';\n\n @Input() tooltipPositionStyle: string = 'absolute';\n\n @Input() tooltipStyleClass: string;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n closed: boolean;\n\n view: EmbeddedViewRef<any>;\n\n _selected: boolean;\n\n _disabled: boolean;\n\n _header: string;\n\n _leftIcon: string;\n\n _rightIcon: string;\n\n loaded: boolean;\n\n id: string = `p-tabpanel-${idx++}`;\n\n contentTemplate: TemplateRef<any>;\n\n headerTemplate: TemplateRef<any>;\n\n tabView: TabView;\n\n constructor(@Inject(forwardRef(() => TabView)) tabView, public viewContainer: ViewContainerRef, public cd: ChangeDetectorRef) {\n this.tabView = tabView as TabView;\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n @Input() get selected(): boolean {\n return this._selected;\n }\n\n set selected(val: boolean) {\n this._selected = val;\n\n if (!this.loaded) {\n this.cd.detectChanges();\n }\n\n if (val)\n this.loaded = true;\n }\n\n @Input() get disabled(): boolean {\n return this._disabled;\n };\n\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n this.tabView.cd.markForCheck();\n }\n\n @Input() get header(): string {\n return this._header;\n }\n\n set header(header: string) {\n this._header = header;\n this.tabView.updateInkBar();\n this.tabView.cd.markForCheck();\n }\n\n @Input() get leftIcon(): string {\n return this._leftIcon;\n }\n\n set leftIcon(leftIcon :string) {\n this._leftIcon = leftIcon;\n this.tabView.cd.markForCheck();\n }\n\n @Input() get rightIcon(): string {\n return this._rightIcon;\n }\n\n set rightIcon(rightIcon :string) {\n this._rightIcon = rightIcon;\n this.tabView.cd.markForCheck();\n }\n\n ngOnDestroy() {\n this.view = null;\n }\n}\n\n@Component({\n selector: 'p-tabView',\n template: `\n <div [ngClass]=\"{'p-tabview p-component': true, 'p-tabview-scrollable': scrollable}\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <div class=\"p-tabview-nav-container\">\n <button *ngIf=\"scrollable && !backwardIsDisabled\" #prevBtn class=\"p-tabview-nav-prev p-tabview-nav-btn p-link\" (click)=\"navBackward()\" type=\"button\" pRipple>\n <span class=\"pi pi-chevron-left\"></span>\n </button>\n <div #content class=\"p-tabview-nav-content\" (scroll)=\"onScroll($event)\">\n <ul #navbar class=\"p-tabview-nav\" role=\"tablist\">\n <ng-template ngFor let-tab [ngForOf]=\"tabs\">\n <li role=\"presentation\" [ngClass]=\"{'p-highlight': tab.selected, 'p-disabled': tab.disabled}\" [ngStyle]=\"tab.headerStyle\" [class]=\"tab.headerStyleClass\" *ngIf=\"!tab.closed\">\n <a role=\"tab\" class=\"p-tabview-nav-link\" [attr.id]=\"tab.id + '-label'\" [attr.aria-selected]=\"tab.selected\" [attr.aria-controls]=\"tab.id\" [pTooltip]=\"tab.tooltip\" [tooltipPosition]=\"tab.tooltipPosition\"\n [attr.aria-selected]=\"tab.selected\" [positionStyle]=\"tab.tooltipPositionStyle\" [tooltipStyleClass]=\"tab.tooltipStyleClass\"\n (click)=\"open($event,tab)\" (keydown.enter)=\"open($event,tab)\" pRipple [attr.tabindex]=\"tab.disabled ? null : '0'\">\n <ng-container *ngIf=\"!tab.headerTemplate\">\n <span class=\"p-tabview-left-icon\" [ngClass]=\"tab.leftIcon\" *ngIf=\"tab.leftIcon\"></span>\n <span class=\"p-tabview-title\">{{tab.header}}</span>\n <span class=\"p-tabview-right-icon\" [ngClass]=\"tab.rightIcon\" *ngIf=\"tab.rightIcon\"></span>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"tab.headerTemplate\"></ng-container>\n <span *ngIf=\"tab.closable\" class=\"p-tabview-close pi pi-times\" (click)=\"close($event,tab)\"></span>\n </a>\n </li>\n </ng-template>\n <li #inkbar class=\"p-tabview-ink-bar\"></li>\n </ul>\n </div>\n <button *ngIf=\"scrollable && !forwardIsDisabled\" #nextBtn class=\"p-tabview-nav-next p-tabview-nav-btn p-link\" (click)=\"navForward()\" type=\"button\" pRipple>\n <span class=\"pi pi-chevron-right\"></span>\n </button>\n </div>\n <div class=\"p-tabview-panels\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tabview.css'],\n host: {\n 'class': 'p-element'\n}\n})\nexport class TabView implements AfterContentInit,AfterViewChecked,BlockableUI {\n\n @Input() orientation: string = 'top';\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() controlClose: boolean;\n\n @Input() scrollable: boolean;\n\n @ViewChild('content') content: ElementRef;\n\n @ViewChild('navbar') navbar: ElementRef;\n\n @ViewChild('prevBtn') prevBtn: ElementRef;\n\n @ViewChild('nextBtn') nextBtn: ElementRef;\n\n @ViewChild('inkbar') inkbar: ElementRef;\n\n @ContentChildren(TabPanel) tabPanels: QueryList<TabPanel>;\n\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @Output() onClose: EventEmitter<any> = new EventEmitter();\n\n @Output() activeIndexChange: EventEmitter<number> = new EventEmitter();\n\n initialized: boolean;\n\n tabs: TabPanel[];\n\n _activeIndex: number;\n\n preventActiveIndexPropagation: boolean;\n\n tabChanged: boolean;\n\n backwardIsDisabled: boolean = true;\n\n forwardIsDisabled: boolean = false;\n\n constructor(public el: ElementRef, public cd: ChangeDetectorRef) {}\n\n ngAfterContentInit() {\n this.initTabs();\n\n this.tabPanels.changes.subscribe(_ => {\n this.initTabs();\n });\n }\n\n ngAfterViewChecked() {\n if (this.tabChanged) {\n this.updateInkBar();\n this.tabChanged = false;\n }\n }\n\n initTabs(): void {\n this.tabs = this.tabPanels.toArray();\n let selectedTab: TabPanel = this.findSelectedTab();\n if (!selectedTab && this.tabs.length) {\n if (this.activeIndex != null && this.tabs.length > this.activeIndex)\n this.tabs[this.activeIndex].selected = true;\n else\n this.tabs[0].selected = true;\n\n this.tabChanged = true;\n }\n\n this.cd.markForCheck();\n }\n\n open(event: Event, tab: TabPanel) {\n if (tab.disabled) {\n if (event) {\n event.preventDefault();\n }\n return;\n }\n\n if (!tab.selected) {\n let selectedTab: TabPanel = this.findSelectedTab();\n if (selectedTab) {\n selectedTab.selected = false\n }\n\n this.tabChanged = true;\n tab.selected = true;\n let selectedTabIndex = this.findTabIndex(tab);\n this.preventActiveIndexPropagation = true;\n this.activeIndexChange.emit(selectedTabIndex);\n this.onChange.emit({originalEvent: event, index: selectedTabIndex});\n\n this.updateScrollBar(selectedTabIndex);\n }\n\n if (event) {\n event.preventDefault();\n }\n }\n\n close(event: Event, tab: TabPanel) {\n if (this.controlClose) {\n this.onClose.emit({\n originalEvent: event,\n index: this.findTabIndex(tab),\n close: () => {\n this.closeTab(tab);\n }}\n );\n }\n else {\n this.closeTab(tab);\n this.onClose.emit({\n originalEvent: event,\n index: this.findTabIndex(tab)\n });\n }\n\n event.stopPropagation();\n }\n\n closeTab(tab: TabPanel) {\n if (tab.disabled) {\n return;\n }\n if (tab.selected) {\n this.tabChanged = true;\n tab.selected = false;\n for(let i = 0; i < this.tabs.length; i++) {\n let tabPanel = this.tabs[i];\n if (!tabPanel.closed&&!tab.disabled) {\n tabPanel.selected = true;\n break;\n }\n }\n }\n\n tab.closed = true;\n }\n\n findSelectedTab() {\n for(let i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i].selected) {\n return this.tabs[i];\n }\n }\n return null;\n }\n\n findTabIndex(tab: TabPanel) {\n let index = -1;\n for(let i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i] == tab) {\n index = i;\n break;\n }\n }\n return index;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n @Input() get activeIndex(): number {\n return this._activeIndex;\n }\n\n set activeIndex(val:number) {\n this._activeIndex = val;\n if (this.preventActiveIndexPropagation) {\n this.preventActiveIndexPropagation = false;\n return;\n }\n\n if (this.tabs && this.tabs.length && this._activeIndex != null && this.tabs.length > this._activeIndex) {\n this.findSelectedTab().selected = false;\n this.tabs[this._activeIndex].selected = true;\n this.tabChanged = true;\n\n this.updateScrollBar(val);\n }\n }\n\n updateInkBar() {\n if (this.navbar) {\n let tabHeader = DomHandler.findSingle(this.navbar.nativeElement, 'li.p-highlight');\n this.inkbar.nativeElement.style.width = DomHandler.getWidth(tabHeader) + 'px';\n this.inkbar.nativeElement.style.left = DomHandler.getOffset(tabHeader).left - DomHandler.getOffset(this.navbar.nativeElement).left + 'px';\n }\n }\n\n updateScrollBar(index) {\n let tabHeader = this.navbar.nativeElement.children[index];\n tabHeader.scrollIntoView({ block: 'nearest' })\n }\n\n updateButtonState() {\n const content = this.content.nativeElement;\n const { scrollLeft, scrollWidth } = content;\n const width = DomHandler.getWidth(content);\n\n this.backwardIsDisabled = scrollLeft === 0;\n this.forwardIsDisabled = parseInt(scrollLeft) === scrollWidth - width;\n }\n\n onScroll(event) {\n this.scrollable && this.updateButtonState();\n\n event.preventDefault();\n }\n\n getVisibleButtonWidths() {\n return [this.prevBtn?.nativeElement, this.nextBtn?.nativeElement].reduce((acc, el) => el ? acc + DomHandler.getWidth(el) : acc, 0);\n }\n\n navBackward() {\n const content = this.content.nativeElement;\n const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n }\n\n navForward() {\n const content = this.content.nativeElement;\n const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft + width;\n const lastPos = content.scrollWidth - width;\n\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n }\n}\n\n\n@NgModule({\n imports: [CommonModule,SharedModule,TooltipModule,RippleModule],\n exports: [TabView,TabPanel,SharedModule],\n declarations: [TabView,TabPanel]\n})\nexport class TabViewModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/image/image.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { ElementRef, TemplateRef, AfterContentInit, QueryList, EventEmitter, ChangeDetectorRef } from '@angular/core';
2
2
  import { PrimeNGConfig } from 'primeng/api';
3
3
  import { AnimationEvent } from '@angular/animations';
4
+ import { SafeUrl } from '@angular/platform-browser';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/common";
6
7
  import * as i2 from "primeng/api";
@@ -11,7 +12,7 @@ export declare class Image implements AfterContentInit {
11
12
  imageStyle: any;
12
13
  styleClass: string;
13
14
  style: any;
14
- src: string;
15
+ src: string | SafeUrl;
15
16
  alt: string;
16
17
  width: string;
17
18
  height: string;
@@ -14,6 +14,7 @@ export declare class InputSwitch implements ControlValueAccessor {
14
14
  readonly: boolean;
15
15
  trueValue: any;
16
16
  falseValue: any;
17
+ ariaLabel: string;
17
18
  ariaLabelledBy: string;
18
19
  onChange: EventEmitter<any>;
19
20
  modelValue: any;
@@ -33,7 +34,7 @@ export declare class InputSwitch implements ControlValueAccessor {
33
34
  setDisabledState(val: boolean): void;
34
35
  checked(): boolean;
35
36
  static ɵfac: i0.ɵɵFactoryDeclaration<InputSwitch, never>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<InputSwitch, "p-inputSwitch", never, { "style": "style"; "styleClass": "styleClass"; "tabindex": "tabindex"; "inputId": "inputId"; "name": "name"; "disabled": "disabled"; "readonly": "readonly"; "trueValue": "trueValue"; "falseValue": "falseValue"; "ariaLabelledBy": "ariaLabelledBy"; }, { "onChange": "onChange"; }, never, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputSwitch, "p-inputSwitch", never, { "style": "style"; "styleClass": "styleClass"; "tabindex": "tabindex"; "inputId": "inputId"; "name": "name"; "disabled": "disabled"; "readonly": "readonly"; "trueValue": "trueValue"; "falseValue": "falseValue"; "ariaLabel": "ariaLabel"; "ariaLabelledBy": "ariaLabelledBy"; }, { "onChange": "onChange"; }, never, never>;
37
38
  }
38
39
  export declare class InputSwitchModule {
39
40
  static ɵfac: i0.ɵɵFactoryDeclaration<InputSwitchModule, never>;
@@ -77,6 +77,7 @@ export declare class MultiSelect implements OnInit, AfterViewInit, AfterContentI
77
77
  tooltipStyleClass: string;
78
78
  autofocusFilter: boolean;
79
79
  display: string;
80
+ autocomplete: string;
80
81
  containerViewChild: ElementRef;
81
82
  filterInputChild: ElementRef;
82
83
  accessibleViewChild: ElementRef;
@@ -191,7 +192,7 @@ export declare class MultiSelect implements OnInit, AfterViewInit, AfterContentI
191
192
  onOverlayHide(): void;
192
193
  ngOnDestroy(): void;
193
194
  static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelect, never>;
194
- static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelect, "p-multiSelect", never, { "style": "style"; "styleClass": "styleClass"; "panelStyle": "panelStyle"; "panelStyleClass": "panelStyleClass"; "inputId": "inputId"; "disabled": "disabled"; "readonly": "readonly"; "group": "group"; "filter": "filter"; "filterPlaceHolder": "filterPlaceHolder"; "filterLocale": "filterLocale"; "overlayVisible": "overlayVisible"; "tabindex": "tabindex"; "appendTo": "appendTo"; "dataKey": "dataKey"; "name": "name"; "ariaLabelledBy": "ariaLabelledBy"; "displaySelectedLabel": "displaySelectedLabel"; "maxSelectedLabels": "maxSelectedLabels"; "selectionLimit": "selectionLimit"; "selectedItemsLabel": "selectedItemsLabel"; "showToggleAll": "showToggleAll"; "emptyFilterMessage": "emptyFilterMessage"; "emptyMessage": "emptyMessage"; "resetFilterOnHide": "resetFilterOnHide"; "dropdownIcon": "dropdownIcon"; "optionLabel": "optionLabel"; "optionValue": "optionValue"; "optionDisabled": "optionDisabled"; "optionGroupLabel": "optionGroupLabel"; "optionGroupChildren": "optionGroupChildren"; "showHeader": "showHeader"; "autoZIndex": "autoZIndex"; "baseZIndex": "baseZIndex"; "filterBy": "filterBy"; "virtualScroll": "virtualScroll"; "itemSize": "itemSize"; "showTransitionOptions": "showTransitionOptions"; "hideTransitionOptions": "hideTransitionOptions"; "ariaFilterLabel": "ariaFilterLabel"; "filterMatchMode": "filterMatchMode"; "tooltip": "tooltip"; "tooltipPosition": "tooltipPosition"; "tooltipPositionStyle": "tooltipPositionStyle"; "tooltipStyleClass": "tooltipStyleClass"; "autofocusFilter": "autofocusFilter"; "display": "display"; "scrollHeight": "scrollHeight"; "defaultLabel": "defaultLabel"; "placeholder": "placeholder"; "options": "options"; "filterValue": "filterValue"; }, { "onChange": "onChange"; "onFilter": "onFilter"; "onFocus": "onFocus"; "onBlur": "onBlur"; "onClick": "onClick"; "onPanelShow": "onPanelShow"; "onPanelHide": "onPanelHide"; }, ["footerFacet", "headerFacet", "templates"], ["p-header", "p-footer"]>;
195
+ static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelect, "p-multiSelect", never, { "style": "style"; "styleClass": "styleClass"; "panelStyle": "panelStyle"; "panelStyleClass": "panelStyleClass"; "inputId": "inputId"; "disabled": "disabled"; "readonly": "readonly"; "group": "group"; "filter": "filter"; "filterPlaceHolder": "filterPlaceHolder"; "filterLocale": "filterLocale"; "overlayVisible": "overlayVisible"; "tabindex": "tabindex"; "appendTo": "appendTo"; "dataKey": "dataKey"; "name": "name"; "ariaLabelledBy": "ariaLabelledBy"; "displaySelectedLabel": "displaySelectedLabel"; "maxSelectedLabels": "maxSelectedLabels"; "selectionLimit": "selectionLimit"; "selectedItemsLabel": "selectedItemsLabel"; "showToggleAll": "showToggleAll"; "emptyFilterMessage": "emptyFilterMessage"; "emptyMessage": "emptyMessage"; "resetFilterOnHide": "resetFilterOnHide"; "dropdownIcon": "dropdownIcon"; "optionLabel": "optionLabel"; "optionValue": "optionValue"; "optionDisabled": "optionDisabled"; "optionGroupLabel": "optionGroupLabel"; "optionGroupChildren": "optionGroupChildren"; "showHeader": "showHeader"; "autoZIndex": "autoZIndex"; "baseZIndex": "baseZIndex"; "filterBy": "filterBy"; "virtualScroll": "virtualScroll"; "itemSize": "itemSize"; "showTransitionOptions": "showTransitionOptions"; "hideTransitionOptions": "hideTransitionOptions"; "ariaFilterLabel": "ariaFilterLabel"; "filterMatchMode": "filterMatchMode"; "tooltip": "tooltip"; "tooltipPosition": "tooltipPosition"; "tooltipPositionStyle": "tooltipPositionStyle"; "tooltipStyleClass": "tooltipStyleClass"; "autofocusFilter": "autofocusFilter"; "display": "display"; "autocomplete": "autocomplete"; "scrollHeight": "scrollHeight"; "defaultLabel": "defaultLabel"; "placeholder": "placeholder"; "options": "options"; "filterValue": "filterValue"; }, { "onChange": "onChange"; "onFilter": "onFilter"; "onFocus": "onFocus"; "onBlur": "onBlur"; "onClick": "onClick"; "onPanelShow": "onPanelShow"; "onPanelHide": "onPanelHide"; }, ["footerFacet", "headerFacet", "templates"], ["p-header", "p-footer"]>;
195
196
  }
196
197
  export declare class MultiSelectModule {
197
198
  static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectModule, never>;
@@ -25,6 +25,7 @@ export declare class OrderList implements AfterViewChecked, AfterContentInit {
25
25
  ariaFilterLabel: string;
26
26
  filterMatchMode: string;
27
27
  breakpoint: string;
28
+ stripedRows: boolean;
28
29
  selectionChange: EventEmitter<any>;
29
30
  trackBy: Function;
30
31
  onReorder: EventEmitter<any>;
@@ -72,7 +73,7 @@ export declare class OrderList implements AfterViewChecked, AfterContentInit {
72
73
  destroyStyle(): void;
73
74
  ngOnDestroy(): void;
74
75
  static ɵfac: i0.ɵɵFactoryDeclaration<OrderList, never>;
75
- static ɵcmp: i0.ɵɵComponentDeclaration<OrderList, "p-orderList", never, { "header": "header"; "style": "style"; "styleClass": "styleClass"; "listStyle": "listStyle"; "responsive": "responsive"; "filterBy": "filterBy"; "filterPlaceholder": "filterPlaceholder"; "filterLocale": "filterLocale"; "metaKeySelection": "metaKeySelection"; "dragdrop": "dragdrop"; "controlsPosition": "controlsPosition"; "ariaFilterLabel": "ariaFilterLabel"; "filterMatchMode": "filterMatchMode"; "breakpoint": "breakpoint"; "trackBy": "trackBy"; "selection": "selection"; "value": "value"; }, { "selectionChange": "selectionChange"; "onReorder": "onReorder"; "onSelectionChange": "onSelectionChange"; "onFilterEvent": "onFilterEvent"; }, ["templates"], never>;
76
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderList, "p-orderList", never, { "header": "header"; "style": "style"; "styleClass": "styleClass"; "listStyle": "listStyle"; "responsive": "responsive"; "filterBy": "filterBy"; "filterPlaceholder": "filterPlaceholder"; "filterLocale": "filterLocale"; "metaKeySelection": "metaKeySelection"; "dragdrop": "dragdrop"; "controlsPosition": "controlsPosition"; "ariaFilterLabel": "ariaFilterLabel"; "filterMatchMode": "filterMatchMode"; "breakpoint": "breakpoint"; "stripedRows": "stripedRows"; "trackBy": "trackBy"; "selection": "selection"; "value": "value"; }, { "selectionChange": "selectionChange"; "onReorder": "onReorder"; "onSelectionChange": "onSelectionChange"; "onFilterEvent": "onFilterEvent"; }, ["templates"], never>;
76
77
  }
77
78
  export declare class OrderListModule {
78
79
  static ɵfac: i0.ɵɵFactoryDeclaration<OrderListModule, never>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "primeng",
3
- "version": "13.1.0",
3
+ "version": "13.2.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/primefaces/primeng"
package/panel/panel.d.ts CHANGED
@@ -11,6 +11,7 @@ export declare class Panel implements AfterContentInit, BlockableUI {
11
11
  collapsed: boolean;
12
12
  style: any;
13
13
  styleClass: string;
14
+ iconPos: string;
14
15
  expandIcon: string;
15
16
  collapseIcon: string;
16
17
  showHeader: boolean;
@@ -37,7 +38,7 @@ export declare class Panel implements AfterContentInit, BlockableUI {
37
38
  getBlockableElement(): HTMLElement;
38
39
  onToggleDone(event: Event): void;
39
40
  static ɵfac: i0.ɵɵFactoryDeclaration<Panel, never>;
40
- static ɵcmp: i0.ɵɵComponentDeclaration<Panel, "p-panel", never, { "toggleable": "toggleable"; "header": "header"; "collapsed": "collapsed"; "style": "style"; "styleClass": "styleClass"; "expandIcon": "expandIcon"; "collapseIcon": "collapseIcon"; "showHeader": "showHeader"; "toggler": "toggler"; "transitionOptions": "transitionOptions"; }, { "collapsedChange": "collapsedChange"; "onBeforeToggle": "onBeforeToggle"; "onAfterToggle": "onAfterToggle"; }, ["footerFacet", "templates"], ["p-header", "*", "p-footer"]>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<Panel, "p-panel", never, { "toggleable": "toggleable"; "header": "header"; "collapsed": "collapsed"; "style": "style"; "styleClass": "styleClass"; "iconPos": "iconPos"; "expandIcon": "expandIcon"; "collapseIcon": "collapseIcon"; "showHeader": "showHeader"; "toggler": "toggler"; "transitionOptions": "transitionOptions"; }, { "collapsedChange": "collapsedChange"; "onBeforeToggle": "onBeforeToggle"; "onAfterToggle": "onAfterToggle"; }, ["footerFacet", "templates"], ["p-header", "*", "p-footer"]>;
41
42
  }
42
43
  export declare class PanelModule {
43
44
  static ɵfac: i0.ɵɵFactoryDeclaration<PanelModule, never>;
@@ -32,6 +32,7 @@ export declare class PanelMenu extends BasePanelMenuItem {
32
32
  handleClick(event: any, item: any): void;
33
33
  onToggleDone(): void;
34
34
  onItemKeyDown(event: any): void;
35
+ visible(item: any): boolean;
35
36
  static ɵfac: i0.ɵɵFactoryDeclaration<PanelMenu, never>;
36
37
  static ɵcmp: i0.ɵɵComponentDeclaration<PanelMenu, "p-panelMenu", never, { "model": "model"; "style": "style"; "styleClass": "styleClass"; "multiple": "multiple"; "transitionOptions": "transitionOptions"; }, {}, never, never>;
37
38
  }