primeng 11.1.0 → 11.2.3

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/README.md +1 -0
  2. package/api/confirmaeventtype.d.ts +5 -0
  3. package/api/filtermatchmode.d.ts +4 -0
  4. package/api/filterservice.d.ts +4 -0
  5. package/api/primeng-api.metadata.json +1 -1
  6. package/api/public_api.d.ts +1 -0
  7. package/api/translation.d.ts +4 -0
  8. package/autocomplete/autocomplete.d.ts +8 -1
  9. package/autocomplete/primeng-autocomplete.metadata.json +1 -1
  10. package/avatar/primeng-avatar.metadata.json +1 -1
  11. package/bundles/primeng-api.umd.js +56 -6
  12. package/bundles/primeng-api.umd.js.map +1 -1
  13. package/bundles/primeng-api.umd.min.js +1 -1
  14. package/bundles/primeng-api.umd.min.js.map +1 -1
  15. package/bundles/primeng-autocomplete.umd.js +86 -17
  16. package/bundles/primeng-autocomplete.umd.js.map +1 -1
  17. package/bundles/primeng-autocomplete.umd.min.js +1 -1
  18. package/bundles/primeng-autocomplete.umd.min.js.map +1 -1
  19. package/bundles/primeng-avatar.umd.js +1 -1
  20. package/bundles/primeng-avatar.umd.min.js +1 -1
  21. package/bundles/primeng-avatar.umd.min.js.map +1 -1
  22. package/bundles/primeng-calendar.umd.js +6 -0
  23. package/bundles/primeng-calendar.umd.js.map +1 -1
  24. package/bundles/primeng-calendar.umd.min.js +1 -1
  25. package/bundles/primeng-calendar.umd.min.js.map +1 -1
  26. package/bundles/primeng-cascadeselect.umd.js +8 -5
  27. package/bundles/primeng-cascadeselect.umd.js.map +1 -1
  28. package/bundles/primeng-cascadeselect.umd.min.js +2 -2
  29. package/bundles/primeng-cascadeselect.umd.min.js.map +1 -1
  30. package/bundles/primeng-colorpicker.umd.js.map +1 -1
  31. package/bundles/primeng-colorpicker.umd.min.js.map +1 -1
  32. package/bundles/primeng-confirmdialog.umd.js +11 -8
  33. package/bundles/primeng-confirmdialog.umd.js.map +1 -1
  34. package/bundles/primeng-confirmdialog.umd.min.js +1 -1
  35. package/bundles/primeng-confirmdialog.umd.min.js.map +1 -1
  36. package/bundles/primeng-contextmenu.umd.js +2 -2
  37. package/bundles/primeng-contextmenu.umd.js.map +1 -1
  38. package/bundles/primeng-contextmenu.umd.min.js +1 -1
  39. package/bundles/primeng-contextmenu.umd.min.js.map +1 -1
  40. package/bundles/primeng-dialog.umd.js +1 -1
  41. package/bundles/primeng-dialog.umd.min.js +1 -1
  42. package/bundles/primeng-dialog.umd.min.js.map +1 -1
  43. package/bundles/primeng-dom.umd.js +3 -0
  44. package/bundles/primeng-dom.umd.js.map +1 -1
  45. package/bundles/primeng-dom.umd.min.js +1 -1
  46. package/bundles/primeng-dom.umd.min.js.map +1 -1
  47. package/bundles/primeng-dropdown.umd.js +1 -1
  48. package/bundles/primeng-dropdown.umd.js.map +1 -1
  49. package/bundles/primeng-dropdown.umd.min.js +1 -1
  50. package/bundles/primeng-dropdown.umd.min.js.map +1 -1
  51. package/bundles/primeng-dynamicdialog.umd.js +1 -1
  52. package/bundles/primeng-dynamicdialog.umd.min.js +1 -1
  53. package/bundles/primeng-dynamicdialog.umd.min.js.map +1 -1
  54. package/bundles/primeng-inputmask.umd.js +5 -2
  55. package/bundles/primeng-inputmask.umd.js.map +1 -1
  56. package/bundles/primeng-inputmask.umd.min.js +1 -1
  57. package/bundles/primeng-inputmask.umd.min.js.map +1 -1
  58. package/bundles/primeng-inputnumber.umd.js +16 -2
  59. package/bundles/primeng-inputnumber.umd.js.map +1 -1
  60. package/bundles/primeng-inputnumber.umd.min.js +1 -1
  61. package/bundles/primeng-inputnumber.umd.min.js.map +1 -1
  62. package/bundles/primeng-knob.umd.js +1 -1
  63. package/bundles/primeng-knob.umd.js.map +1 -1
  64. package/bundles/primeng-knob.umd.min.js +1 -1
  65. package/bundles/primeng-knob.umd.min.js.map +1 -1
  66. package/bundles/primeng-lightbox.umd.js +1 -1
  67. package/bundles/primeng-lightbox.umd.min.js +1 -1
  68. package/bundles/primeng-lightbox.umd.min.js.map +1 -1
  69. package/bundles/primeng-listbox.umd.js +133 -34
  70. package/bundles/primeng-listbox.umd.js.map +1 -1
  71. package/bundles/primeng-listbox.umd.min.js +1 -1
  72. package/bundles/primeng-listbox.umd.min.js.map +1 -1
  73. package/bundles/primeng-multiselect.umd.js +146 -32
  74. package/bundles/primeng-multiselect.umd.js.map +1 -1
  75. package/bundles/primeng-multiselect.umd.min.js +2 -2
  76. package/bundles/primeng-multiselect.umd.min.js.map +1 -1
  77. package/bundles/primeng-sidebar.umd.js.map +1 -1
  78. package/bundles/primeng-sidebar.umd.min.js.map +1 -1
  79. package/bundles/primeng-slider.umd.js +1 -0
  80. package/bundles/primeng-slider.umd.js.map +1 -1
  81. package/bundles/primeng-slider.umd.min.js +1 -1
  82. package/bundles/primeng-slider.umd.min.js.map +1 -1
  83. package/bundles/primeng-table.umd.js +117 -16
  84. package/bundles/primeng-table.umd.js.map +1 -1
  85. package/bundles/primeng-table.umd.min.js +1 -1
  86. package/bundles/primeng-table.umd.min.js.map +1 -1
  87. package/bundles/primeng-tabview.umd.js +25 -3
  88. package/bundles/primeng-tabview.umd.js.map +1 -1
  89. package/bundles/primeng-tabview.umd.min.js +1 -1
  90. package/bundles/primeng-tabview.umd.min.js.map +1 -1
  91. package/bundles/primeng-treetable.umd.js +1 -1
  92. package/bundles/primeng-treetable.umd.js.map +1 -1
  93. package/bundles/primeng-treetable.umd.min.js +1 -1
  94. package/bundles/primeng-treetable.umd.min.js.map +1 -1
  95. package/bundles/primeng-virtualscroller.umd.js +3 -2
  96. package/bundles/primeng-virtualscroller.umd.js.map +1 -1
  97. package/bundles/primeng-virtualscroller.umd.min.js +1 -1
  98. package/bundles/primeng-virtualscroller.umd.min.js.map +1 -1
  99. package/calendar/primeng-calendar.metadata.json +1 -1
  100. package/cascadeselect/cascadeselect.d.ts +3 -3
  101. package/cascadeselect/primeng-cascadeselect.metadata.json +1 -1
  102. package/colorpicker/colorpicker.d.ts +1 -1
  103. package/confirmdialog/confirmdialog.d.ts +3 -2
  104. package/confirmdialog/primeng-confirmdialog.metadata.json +1 -1
  105. package/dialog/primeng-dialog.metadata.json +1 -1
  106. package/dom/primeng-dom.metadata.json +1 -1
  107. package/dropdown/primeng-dropdown.metadata.json +1 -1
  108. package/dynamicdialog/primeng-dynamicdialog.metadata.json +1 -1
  109. package/esm2015/api/confirmaeventtype.js +7 -0
  110. package/esm2015/api/filtermatchmode.js +5 -1
  111. package/esm2015/api/filterservice.js +39 -3
  112. package/esm2015/api/primengconfig.js +9 -5
  113. package/esm2015/api/public_api.js +2 -1
  114. package/esm2015/api/translation.js +1 -1
  115. package/esm2015/autocomplete/autocomplete.js +105 -22
  116. package/esm2015/avatar/avatar.js +1 -1
  117. package/esm2015/calendar/calendar.js +7 -1
  118. package/esm2015/cascadeselect/cascadeselect.js +9 -6
  119. package/esm2015/colorpicker/colorpicker.js +1 -1
  120. package/esm2015/confirmdialog/confirmdialog.js +14 -11
  121. package/esm2015/contextmenu/contextmenu.js +3 -3
  122. package/esm2015/dialog/dialog.js +1 -1
  123. package/esm2015/dom/domhandler.js +4 -1
  124. package/esm2015/dropdown/dropdown.js +2 -2
  125. package/esm2015/dynamicdialog/dynamicdialog.js +1 -1
  126. package/esm2015/inputmask/inputmask.js +6 -3
  127. package/esm2015/inputnumber/inputnumber.js +13 -3
  128. package/esm2015/knob/knob.js +2 -2
  129. package/esm2015/lightbox/lightbox.js +1 -1
  130. package/esm2015/listbox/listbox.js +134 -42
  131. package/esm2015/multiselect/multiselect.js +149 -42
  132. package/esm2015/sidebar/sidebar.js +1 -1
  133. package/esm2015/slider/slider.js +2 -1
  134. package/esm2015/table/table.js +127 -17
  135. package/esm2015/tabview/tabview.js +18 -4
  136. package/esm2015/treetable/treetable.js +2 -2
  137. package/esm2015/virtualscroller/virtualscroller.js +4 -3
  138. package/fesm2015/primeng-api.js +58 -7
  139. package/fesm2015/primeng-api.js.map +1 -1
  140. package/fesm2015/primeng-autocomplete.js +104 -21
  141. package/fesm2015/primeng-autocomplete.js.map +1 -1
  142. package/fesm2015/primeng-avatar.js +1 -1
  143. package/fesm2015/primeng-calendar.js +6 -0
  144. package/fesm2015/primeng-calendar.js.map +1 -1
  145. package/fesm2015/primeng-cascadeselect.js +8 -5
  146. package/fesm2015/primeng-cascadeselect.js.map +1 -1
  147. package/fesm2015/primeng-colorpicker.js.map +1 -1
  148. package/fesm2015/primeng-confirmdialog.js +13 -10
  149. package/fesm2015/primeng-confirmdialog.js.map +1 -1
  150. package/fesm2015/primeng-contextmenu.js +2 -2
  151. package/fesm2015/primeng-contextmenu.js.map +1 -1
  152. package/fesm2015/primeng-dialog.js +1 -1
  153. package/fesm2015/primeng-dom.js +3 -0
  154. package/fesm2015/primeng-dom.js.map +1 -1
  155. package/fesm2015/primeng-dropdown.js +1 -1
  156. package/fesm2015/primeng-dropdown.js.map +1 -1
  157. package/fesm2015/primeng-dynamicdialog.js +1 -1
  158. package/fesm2015/primeng-inputmask.js +5 -2
  159. package/fesm2015/primeng-inputmask.js.map +1 -1
  160. package/fesm2015/primeng-inputnumber.js +12 -2
  161. package/fesm2015/primeng-inputnumber.js.map +1 -1
  162. package/fesm2015/primeng-knob.js +1 -1
  163. package/fesm2015/primeng-knob.js.map +1 -1
  164. package/fesm2015/primeng-lightbox.js +1 -1
  165. package/fesm2015/primeng-listbox.js +133 -41
  166. package/fesm2015/primeng-listbox.js.map +1 -1
  167. package/fesm2015/primeng-multiselect.js +148 -41
  168. package/fesm2015/primeng-multiselect.js.map +1 -1
  169. package/fesm2015/primeng-sidebar.js.map +1 -1
  170. package/fesm2015/primeng-slider.js +1 -0
  171. package/fesm2015/primeng-slider.js.map +1 -1
  172. package/fesm2015/primeng-table.js +126 -16
  173. package/fesm2015/primeng-table.js.map +1 -1
  174. package/fesm2015/primeng-tabview.js +17 -3
  175. package/fesm2015/primeng-tabview.js.map +1 -1
  176. package/fesm2015/primeng-treetable.js +1 -1
  177. package/fesm2015/primeng-treetable.js.map +1 -1
  178. package/fesm2015/primeng-virtualscroller.js +3 -2
  179. package/fesm2015/primeng-virtualscroller.js.map +1 -1
  180. package/inputmask/inputmask.d.ts +2 -1
  181. package/inputmask/primeng-inputmask.metadata.json +1 -1
  182. package/inputnumber/inputnumber.d.ts +3 -1
  183. package/inputnumber/primeng-inputnumber.metadata.json +1 -1
  184. package/knob/primeng-knob.metadata.json +1 -1
  185. package/lightbox/primeng-lightbox.metadata.json +1 -1
  186. package/listbox/listbox.d.ts +7 -1
  187. package/listbox/primeng-listbox.metadata.json +1 -1
  188. package/multiselect/multiselect.d.ts +8 -1
  189. package/multiselect/primeng-multiselect.metadata.json +1 -1
  190. package/package.json +1 -1
  191. package/resources/components/avatar/avatar.css +3 -2
  192. package/resources/components/dialog/dialog.css +2 -0
  193. package/resources/components/virtualscroller/virtualscroller.css +2 -16
  194. package/resources/themes/arya-blue/theme.css +26 -38
  195. package/resources/themes/arya-green/theme.css +26 -38
  196. package/resources/themes/arya-orange/theme.css +26 -38
  197. package/resources/themes/arya-purple/theme.css +26 -38
  198. package/resources/themes/bootstrap4-dark-blue/theme.css +26 -38
  199. package/resources/themes/bootstrap4-dark-purple/theme.css +26 -38
  200. package/resources/themes/bootstrap4-light-blue/theme.css +26 -38
  201. package/resources/themes/bootstrap4-light-purple/theme.css +26 -38
  202. package/resources/themes/fluent-light/theme.css +26 -38
  203. package/resources/themes/luna-amber/theme.css +26 -38
  204. package/resources/themes/luna-blue/theme.css +26 -38
  205. package/resources/themes/luna-green/theme.css +26 -38
  206. package/resources/themes/luna-pink/theme.css +26 -38
  207. package/resources/themes/md-dark-deeppurple/theme.css +89 -69
  208. package/resources/themes/md-dark-indigo/theme.css +89 -69
  209. package/resources/themes/md-light-deeppurple/theme.css +293 -273
  210. package/resources/themes/md-light-indigo/theme.css +293 -273
  211. package/resources/themes/mdc-dark-deeppurple/theme.css +89 -69
  212. package/resources/themes/mdc-dark-indigo/theme.css +89 -69
  213. package/resources/themes/mdc-light-deeppurple/theme.css +293 -273
  214. package/resources/themes/mdc-light-indigo/theme.css +293 -273
  215. package/resources/themes/nova/theme.css +26 -38
  216. package/resources/themes/nova-accent/theme.css +26 -38
  217. package/resources/themes/nova-alt/theme.css +26 -38
  218. package/resources/themes/rhea/theme.css +26 -38
  219. package/resources/themes/saga-blue/theme.css +26 -38
  220. package/resources/themes/saga-green/theme.css +26 -38
  221. package/resources/themes/saga-orange/theme.css +26 -38
  222. package/resources/themes/saga-purple/theme.css +26 -38
  223. package/resources/themes/vela-blue/theme.css +26 -38
  224. package/resources/themes/vela-green/theme.css +26 -38
  225. package/resources/themes/vela-orange/theme.css +26 -38
  226. package/resources/themes/vela-purple/theme.css +26 -38
  227. package/sidebar/sidebar.d.ts +1 -1
  228. package/slider/primeng-slider.metadata.json +1 -1
  229. package/table/primeng-table.metadata.json +1 -1
  230. package/table/table.d.ts +12 -0
  231. package/tabview/primeng-tabview.metadata.json +1 -1
  232. package/tabview/tabview.d.ts +6 -2
  233. package/treetable/primeng-treetable.metadata.json +1 -1
  234. package/virtualscroller/primeng-virtualscroller.metadata.json +1 -1
@@ -69,6 +69,28 @@
69
69
  enumerable: false,
70
70
  configurable: true
71
71
  });
72
+ Object.defineProperty(TabPanel.prototype, "leftIcon", {
73
+ get: function () {
74
+ return this._leftIcon;
75
+ },
76
+ set: function (leftIcon) {
77
+ this._leftIcon = leftIcon;
78
+ this.tabView.cd.markForCheck();
79
+ },
80
+ enumerable: false,
81
+ configurable: true
82
+ });
83
+ Object.defineProperty(TabPanel.prototype, "rightIcon", {
84
+ get: function () {
85
+ return this._rightIcon;
86
+ },
87
+ set: function (rightIcon) {
88
+ this._rightIcon = rightIcon;
89
+ this.tabView.cd.markForCheck();
90
+ },
91
+ enumerable: false,
92
+ configurable: true
93
+ });
72
94
  TabPanel.prototype.ngOnDestroy = function () {
73
95
  this.view = null;
74
96
  };
@@ -89,8 +111,6 @@
89
111
  closable: [{ type: core.Input }],
90
112
  headerStyle: [{ type: core.Input }],
91
113
  headerStyleClass: [{ type: core.Input }],
92
- leftIcon: [{ type: core.Input }],
93
- rightIcon: [{ type: core.Input }],
94
114
  cache: [{ type: core.Input }],
95
115
  tooltip: [{ type: core.Input }],
96
116
  tooltipPosition: [{ type: core.Input }],
@@ -99,7 +119,9 @@
99
119
  templates: [{ type: core.ContentChildren, args: [api.PrimeTemplate,] }],
100
120
  selected: [{ type: core.Input }],
101
121
  disabled: [{ type: core.Input }],
102
- header: [{ type: core.Input }]
122
+ header: [{ type: core.Input }],
123
+ leftIcon: [{ type: core.Input }],
124
+ rightIcon: [{ type: core.Input }]
103
125
  };
104
126
  var TabView = /** @class */ (function () {
105
127
  function TabView(el, cd) {
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-tabview.umd.js","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})\nexport class TabPanel implements AfterContentInit,OnDestroy {\n \n @Input() closable: boolean;\n \n @Input() headerStyle: any;\n \n @Input() headerStyleClass: string;\n \n @Input() leftIcon: string;\n \n @Input() rightIcon: 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 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.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'\" [ngStyle]=\"style\" [class]=\"styleClass\">\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 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})\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 @ViewChild('navbar') navbar: 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 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 \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 }\n }\n\n updateInkBar() {\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\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":["Component","Inject","forwardRef","ViewContainerRef","ChangeDetectorRef","Input","ContentChildren","PrimeTemplate","EventEmitter","DomHandler","ChangeDetectionStrategy","ViewEncapsulation","ElementRef","ViewChild","Output","NgModule","CommonModule","SharedModule","TooltipModule","RippleModule"],"mappings":"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"}
1
+ {"version":3,"file":"primeng-tabview.umd.js","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})\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.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'\" [ngStyle]=\"style\" [class]=\"styleClass\">\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 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})\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 @ViewChild('navbar') navbar: 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 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 \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 }\n }\n\n updateInkBar() {\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\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":["Component","Inject","forwardRef","ViewContainerRef","ChangeDetectorRef","Input","ContentChildren","PrimeTemplate","EventEmitter","DomHandler","ChangeDetectionStrategy","ViewEncapsulation","ElementRef","ViewChild","Output","NgModule","CommonModule","SharedModule","TooltipModule","RippleModule"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("primeng/tooltip"),require("primeng/ripple"),require("primeng/api"),require("primeng/dom")):"function"==typeof define&&define.amd?define("primeng/tabview",["exports","@angular/core","@angular/common","primeng/tooltip","primeng/ripple","primeng/api","primeng/dom"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).primeng=e.primeng||{},e.primeng.tabview={}),e.ng.core,e.ng.common,e.primeng.tooltip,e.primeng.ripple,e.primeng.api,e.primeng.dom)}(this,(function(e,t,n,i,a,o,s){"use strict";var l=0,r=function(){function e(e,t,n){this.viewContainer=t,this.cd=n,this.cache=!0,this.tooltipPosition="top",this.tooltipPositionStyle="absolute",this.id="p-tabpanel-"+l++,this.tabView=e}return e.prototype.ngAfterContentInit=function(){var e=this;this.templates.forEach((function(t){switch(t.getType()){case"header":e.headerTemplate=t.template;break;case"content":default:e.contentTemplate=t.template}}))},Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected},set:function(e){this._selected=e,this.loaded||this.cd.detectChanges(),e&&(this.loaded=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e,this.tabView.cd.markForCheck()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"header",{get:function(){return this._header},set:function(e){this._header=e,this.tabView.cd.markForCheck()},enumerable:!1,configurable:!0}),e.prototype.ngOnDestroy=function(){this.view=null},e}();r.decorators=[{type:t.Component,args:[{selector:"p-tabPanel",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 '}]}],r.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return p}))]}]},{type:t.ViewContainerRef},{type:t.ChangeDetectorRef}]},r.propDecorators={closable:[{type:t.Input}],headerStyle:[{type:t.Input}],headerStyleClass:[{type:t.Input}],leftIcon:[{type:t.Input}],rightIcon:[{type:t.Input}],cache:[{type:t.Input}],tooltip:[{type:t.Input}],tooltipPosition:[{type:t.Input}],tooltipPositionStyle:[{type:t.Input}],tooltipStyleClass:[{type:t.Input}],templates:[{type:t.ContentChildren,args:[o.PrimeTemplate]}],selected:[{type:t.Input}],disabled:[{type:t.Input}],header:[{type:t.Input}]};var p=function(){function e(e,n){this.el=e,this.cd=n,this.orientation="top",this.onChange=new t.EventEmitter,this.onClose=new t.EventEmitter,this.activeIndexChange=new t.EventEmitter}return e.prototype.ngAfterContentInit=function(){var e=this;this.initTabs(),this.tabPanels.changes.subscribe((function(t){e.initTabs()}))},e.prototype.ngAfterViewChecked=function(){this.tabChanged&&(this.updateInkBar(),this.tabChanged=!1)},e.prototype.initTabs=function(){this.tabs=this.tabPanels.toArray(),!this.findSelectedTab()&&this.tabs.length&&(null!=this.activeIndex&&this.tabs.length>this.activeIndex?this.tabs[this.activeIndex].selected=!0:this.tabs[0].selected=!0,this.tabChanged=!0),this.cd.markForCheck()},e.prototype.open=function(e,t){if(t.disabled)e&&e.preventDefault();else{if(!t.selected){var n=this.findSelectedTab();n&&(n.selected=!1),this.tabChanged=!0,t.selected=!0;var i=this.findTabIndex(t);this.preventActiveIndexPropagation=!0,this.activeIndexChange.emit(i),this.onChange.emit({originalEvent:e,index:i})}e&&e.preventDefault()}},e.prototype.close=function(e,t){var n=this;this.controlClose?this.onClose.emit({originalEvent:e,index:this.findTabIndex(t),close:function(){n.closeTab(t)}}):(this.closeTab(t),this.onClose.emit({originalEvent:e,index:this.findTabIndex(t)})),e.stopPropagation()},e.prototype.closeTab=function(e){if(!e.disabled){if(e.selected){this.tabChanged=!0,e.selected=!1;for(var t=0;t<this.tabs.length;t++){var n=this.tabs[t];if(!n.closed&&!e.disabled){n.selected=!0;break}}}e.closed=!0}},e.prototype.findSelectedTab=function(){for(var e=0;e<this.tabs.length;e++)if(this.tabs[e].selected)return this.tabs[e];return null},e.prototype.findTabIndex=function(e){for(var t=-1,n=0;n<this.tabs.length;n++)if(this.tabs[n]==e){t=n;break}return t},e.prototype.getBlockableElement=function(){return this.el.nativeElement.children[0]},Object.defineProperty(e.prototype,"activeIndex",{get:function(){return this._activeIndex},set:function(e){this._activeIndex=e,this.preventActiveIndexPropagation?this.preventActiveIndexPropagation=!1:this.tabs&&this.tabs.length&&null!=this._activeIndex&&this.tabs.length>this._activeIndex&&(this.findSelectedTab().selected=!1,this.tabs[this._activeIndex].selected=!0)},enumerable:!1,configurable:!0}),e.prototype.updateInkBar=function(){var e=s.DomHandler.findSingle(this.navbar.nativeElement,"li.p-highlight");this.inkbar.nativeElement.style.width=s.DomHandler.getWidth(e)+"px",this.inkbar.nativeElement.style.left=s.DomHandler.getOffset(e).left-s.DomHandler.getOffset(this.navbar.nativeElement).left+"px"},e}();p.decorators=[{type:t.Component,args:[{selector:"p-tabView",template:'\n <div [ngClass]="\'p-tabview p-component\'" [ngStyle]="style" [class]="styleClass">\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 class="p-tabview-panels">\n <ng-content></ng-content>\n </div>\n </div>\n ',changeDetection:t.ChangeDetectionStrategy.OnPush,encapsulation:t.ViewEncapsulation.None,styles:[".p-tabview-nav{display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.p-tabview-nav-link{-ms-user-select:none;-webkit-user-select:none;align-items:center;cursor:pointer;display:flex;overflow:hidden;position:relative;text-decoration:none;user-select:none}.p-tabview-ink-bar{display:none;z-index:1}.p-tabview-nav-link:focus{z-index:1}.p-tabview-title{line-height:1}.p-tabview-close{z-index:1}"]}]}],p.ctorParameters=function(){return[{type:t.ElementRef},{type:t.ChangeDetectorRef}]},p.propDecorators={orientation:[{type:t.Input}],style:[{type:t.Input}],styleClass:[{type:t.Input}],controlClose:[{type:t.Input}],navbar:[{type:t.ViewChild,args:["navbar"]}],inkbar:[{type:t.ViewChild,args:["inkbar"]}],tabPanels:[{type:t.ContentChildren,args:[r]}],onChange:[{type:t.Output}],onClose:[{type:t.Output}],activeIndexChange:[{type:t.Output}],activeIndex:[{type:t.Input}]};var c=function(){};c.decorators=[{type:t.NgModule,args:[{imports:[n.CommonModule,o.SharedModule,i.TooltipModule,a.RippleModule],exports:[p,r,o.SharedModule],declarations:[p,r]}]}],e.TabPanel=r,e.TabView=p,e.TabViewModule=c,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("primeng/tooltip"),require("primeng/ripple"),require("primeng/api"),require("primeng/dom")):"function"==typeof define&&define.amd?define("primeng/tabview",["exports","@angular/core","@angular/common","primeng/tooltip","primeng/ripple","primeng/api","primeng/dom"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).primeng=e.primeng||{},e.primeng.tabview={}),e.ng.core,e.ng.common,e.primeng.tooltip,e.primeng.ripple,e.primeng.api,e.primeng.dom)}(this,(function(e,t,n,i,a,o,s){"use strict";var r=0,l=function(){function e(e,t,n){this.viewContainer=t,this.cd=n,this.cache=!0,this.tooltipPosition="top",this.tooltipPositionStyle="absolute",this.id="p-tabpanel-"+r++,this.tabView=e}return e.prototype.ngAfterContentInit=function(){var e=this;this.templates.forEach((function(t){switch(t.getType()){case"header":e.headerTemplate=t.template;break;case"content":default:e.contentTemplate=t.template}}))},Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected},set:function(e){this._selected=e,this.loaded||this.cd.detectChanges(),e&&(this.loaded=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e,this.tabView.cd.markForCheck()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"header",{get:function(){return this._header},set:function(e){this._header=e,this.tabView.cd.markForCheck()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"leftIcon",{get:function(){return this._leftIcon},set:function(e){this._leftIcon=e,this.tabView.cd.markForCheck()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"rightIcon",{get:function(){return this._rightIcon},set:function(e){this._rightIcon=e,this.tabView.cd.markForCheck()},enumerable:!1,configurable:!0}),e.prototype.ngOnDestroy=function(){this.view=null},e}();l.decorators=[{type:t.Component,args:[{selector:"p-tabPanel",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 '}]}],l.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return p}))]}]},{type:t.ViewContainerRef},{type:t.ChangeDetectorRef}]},l.propDecorators={closable:[{type:t.Input}],headerStyle:[{type:t.Input}],headerStyleClass:[{type:t.Input}],cache:[{type:t.Input}],tooltip:[{type:t.Input}],tooltipPosition:[{type:t.Input}],tooltipPositionStyle:[{type:t.Input}],tooltipStyleClass:[{type:t.Input}],templates:[{type:t.ContentChildren,args:[o.PrimeTemplate]}],selected:[{type:t.Input}],disabled:[{type:t.Input}],header:[{type:t.Input}],leftIcon:[{type:t.Input}],rightIcon:[{type:t.Input}]};var p=function(){function e(e,n){this.el=e,this.cd=n,this.orientation="top",this.onChange=new t.EventEmitter,this.onClose=new t.EventEmitter,this.activeIndexChange=new t.EventEmitter}return e.prototype.ngAfterContentInit=function(){var e=this;this.initTabs(),this.tabPanels.changes.subscribe((function(t){e.initTabs()}))},e.prototype.ngAfterViewChecked=function(){this.tabChanged&&(this.updateInkBar(),this.tabChanged=!1)},e.prototype.initTabs=function(){this.tabs=this.tabPanels.toArray(),!this.findSelectedTab()&&this.tabs.length&&(null!=this.activeIndex&&this.tabs.length>this.activeIndex?this.tabs[this.activeIndex].selected=!0:this.tabs[0].selected=!0,this.tabChanged=!0),this.cd.markForCheck()},e.prototype.open=function(e,t){if(t.disabled)e&&e.preventDefault();else{if(!t.selected){var n=this.findSelectedTab();n&&(n.selected=!1),this.tabChanged=!0,t.selected=!0;var i=this.findTabIndex(t);this.preventActiveIndexPropagation=!0,this.activeIndexChange.emit(i),this.onChange.emit({originalEvent:e,index:i})}e&&e.preventDefault()}},e.prototype.close=function(e,t){var n=this;this.controlClose?this.onClose.emit({originalEvent:e,index:this.findTabIndex(t),close:function(){n.closeTab(t)}}):(this.closeTab(t),this.onClose.emit({originalEvent:e,index:this.findTabIndex(t)})),e.stopPropagation()},e.prototype.closeTab=function(e){if(!e.disabled){if(e.selected){this.tabChanged=!0,e.selected=!1;for(var t=0;t<this.tabs.length;t++){var n=this.tabs[t];if(!n.closed&&!e.disabled){n.selected=!0;break}}}e.closed=!0}},e.prototype.findSelectedTab=function(){for(var e=0;e<this.tabs.length;e++)if(this.tabs[e].selected)return this.tabs[e];return null},e.prototype.findTabIndex=function(e){for(var t=-1,n=0;n<this.tabs.length;n++)if(this.tabs[n]==e){t=n;break}return t},e.prototype.getBlockableElement=function(){return this.el.nativeElement.children[0]},Object.defineProperty(e.prototype,"activeIndex",{get:function(){return this._activeIndex},set:function(e){this._activeIndex=e,this.preventActiveIndexPropagation?this.preventActiveIndexPropagation=!1:this.tabs&&this.tabs.length&&null!=this._activeIndex&&this.tabs.length>this._activeIndex&&(this.findSelectedTab().selected=!1,this.tabs[this._activeIndex].selected=!0)},enumerable:!1,configurable:!0}),e.prototype.updateInkBar=function(){var e=s.DomHandler.findSingle(this.navbar.nativeElement,"li.p-highlight");this.inkbar.nativeElement.style.width=s.DomHandler.getWidth(e)+"px",this.inkbar.nativeElement.style.left=s.DomHandler.getOffset(e).left-s.DomHandler.getOffset(this.navbar.nativeElement).left+"px"},e}();p.decorators=[{type:t.Component,args:[{selector:"p-tabView",template:'\n <div [ngClass]="\'p-tabview p-component\'" [ngStyle]="style" [class]="styleClass">\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 class="p-tabview-panels">\n <ng-content></ng-content>\n </div>\n </div>\n ',changeDetection:t.ChangeDetectionStrategy.OnPush,encapsulation:t.ViewEncapsulation.None,styles:[".p-tabview-nav{display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.p-tabview-nav-link{-ms-user-select:none;-webkit-user-select:none;align-items:center;cursor:pointer;display:flex;overflow:hidden;position:relative;text-decoration:none;user-select:none}.p-tabview-ink-bar{display:none;z-index:1}.p-tabview-nav-link:focus{z-index:1}.p-tabview-title{line-height:1}.p-tabview-close{z-index:1}"]}]}],p.ctorParameters=function(){return[{type:t.ElementRef},{type:t.ChangeDetectorRef}]},p.propDecorators={orientation:[{type:t.Input}],style:[{type:t.Input}],styleClass:[{type:t.Input}],controlClose:[{type:t.Input}],navbar:[{type:t.ViewChild,args:["navbar"]}],inkbar:[{type:t.ViewChild,args:["inkbar"]}],tabPanels:[{type:t.ContentChildren,args:[l]}],onChange:[{type:t.Output}],onClose:[{type:t.Output}],activeIndexChange:[{type:t.Output}],activeIndex:[{type:t.Input}]};var c=function(){};c.decorators=[{type:t.NgModule,args:[{imports:[n.CommonModule,o.SharedModule,i.TooltipModule,a.RippleModule],exports:[p,l,o.SharedModule],declarations:[p,l]}]}],e.TabPanel=l,e.TabView=p,e.TabViewModule=c,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=primeng-tabview.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/app/components/tabview/tabview.ts"],"names":["idx","TabPanel","tabView","viewContainer","cd","this","cache","tooltipPosition","tooltipPositionStyle","id","prototype","ngAfterContentInit","_this","templates","forEach","item","getType","headerTemplate","template","contentTemplate","Object","defineProperty","_selected","val","loaded","detectChanges","_disabled","disabled","markForCheck","_header","header","ngOnDestroy","view","Component","args","selector","Inject","forwardRef","TabView","ViewContainerRef","ChangeDetectorRef","Input","ContentChildren","PrimeTemplate","el","orientation","onChange","EventEmitter","onClose","activeIndexChange","initTabs","tabPanels","changes","subscribe","_","ngAfterViewChecked","tabChanged","updateInkBar","tabs","toArray","findSelectedTab","length","activeIndex","selected","open","event","tab","preventDefault","selectedTab","selectedTabIndex","findTabIndex","preventActiveIndexPropagation","emit","originalEvent","index","close","controlClose","closeTab","stopPropagation","i","tabPanel","closed","getBlockableElement","nativeElement","children","_activeIndex","tabHeader","DomHandler","findSingle","navbar","inkbar","style","width","getWidth","left","getOffset","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","ElementRef","ViewChild","Output","NgModule","imports","CommonModule","SharedModule","TooltipModule","RippleModule","exports","declarations"],"mappings":"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","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})\nexport class TabPanel implements AfterContentInit,OnDestroy {\n \n @Input() closable: boolean;\n \n @Input() headerStyle: any;\n \n @Input() headerStyleClass: string;\n \n @Input() leftIcon: string;\n \n @Input() rightIcon: 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 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.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'\" [ngStyle]=\"style\" [class]=\"styleClass\">\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 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})\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 @ViewChild('navbar') navbar: 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 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 \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 }\n }\n\n updateInkBar() {\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\n@NgModule({\n imports: [CommonModule,SharedModule,TooltipModule,RippleModule],\n exports: [TabView,TabPanel,SharedModule],\n declarations: [TabView,TabPanel]\n})\nexport class TabViewModule { }\n"]}
1
+ {"version":3,"sources":["../../src/app/components/tabview/tabview.ts"],"names":["idx","TabPanel","tabView","viewContainer","cd","this","cache","tooltipPosition","tooltipPositionStyle","id","prototype","ngAfterContentInit","_this","templates","forEach","item","getType","headerTemplate","template","contentTemplate","Object","defineProperty","_selected","val","loaded","detectChanges","_disabled","disabled","markForCheck","_header","header","_leftIcon","leftIcon","_rightIcon","rightIcon","ngOnDestroy","view","Component","args","selector","Inject","forwardRef","TabView","ViewContainerRef","ChangeDetectorRef","Input","ContentChildren","PrimeTemplate","el","orientation","onChange","EventEmitter","onClose","activeIndexChange","initTabs","tabPanels","changes","subscribe","_","ngAfterViewChecked","tabChanged","updateInkBar","tabs","toArray","findSelectedTab","length","activeIndex","selected","open","event","tab","preventDefault","selectedTab","selectedTabIndex","findTabIndex","preventActiveIndexPropagation","emit","originalEvent","index","close","controlClose","closeTab","stopPropagation","i","tabPanel","closed","getBlockableElement","nativeElement","children","_activeIndex","tabHeader","DomHandler","findSingle","navbar","inkbar","style","width","getWidth","left","getOffset","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","ElementRef","ViewChild","Output","NgModule","imports","CommonModule","SharedModule","TooltipModule","RippleModule","exports","declarations"],"mappings":"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","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})\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.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'\" [ngStyle]=\"style\" [class]=\"styleClass\">\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 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})\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 @ViewChild('navbar') navbar: 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 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 \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 }\n }\n\n updateInkBar() {\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\n@NgModule({\n imports: [CommonModule,SharedModule,TooltipModule,RippleModule],\n exports: [TabView,TabPanel,SharedModule],\n declarations: [TabView,TabPanel]\n})\nexport class TabViewModule { }\n"]}
@@ -1755,7 +1755,7 @@
1755
1755
  TTBody.decorators = [
1756
1756
  { type: core.Component, args: [{
1757
1757
  selector: '[pTreeTableBody]',
1758
- template: "\n <ng-container *ngIf=\"!tt.virtualScroll\">\n <ng-template ngFor let-serializedNode let-rowIndex=\"index\" [ngForOf]=\"tt.serializedValue\" [ngForTrackBy]=\"tt.rowTrackBy\">\n <ng-container *ngIf=\"serializedNode.visible\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: serializedNode, node: serializedNode.node, rowData: serializedNode.node.data, columns: columns}\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"tt.virtualScroll\">\n <ng-template cdkVirtualFor let-serializedNode let-rowIndex=\"index\" [cdkVirtualForOf]=\"tt.serializedValue\" [cdkVirtualForTrackBy]=\"tt.rowTrackBy\" [cdkVirtualForTemplateCacheSize]=\"0\">\n <ng-container *ngIf=\"serializedNode.visible\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: serializedNode, node: serializedNode.node, rowData: serializedNode.node.data, columns: columns}\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"tt.isEmpty()\">\n <ng-container *ngTemplateOutlet=\"tt.emptyMessageTemplate; context: {$implicit: columns}\"></ng-container>\n </ng-container>\n ",
1758
+ template: "\n <ng-container *ngIf=\"!tt.virtualScroll\">\n <ng-template ngFor let-serializedNode let-rowIndex=\"index\" [ngForOf]=\"tt.serializedValue\" [ngForTrackBy]=\"tt.rowTrackBy\">\n <ng-container *ngIf=\"serializedNode.visible\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: serializedNode, node: serializedNode.node, rowData: serializedNode.node.data, columns: columns}\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"tt.virtualScroll\">\n <ng-template cdkVirtualFor let-serializedNode let-rowIndex=\"index\" [cdkVirtualForOf]=\"tt.serializedValue\" [cdkVirtualForTrackBy]=\"tt.rowTrackBy\" [cdkVirtualForTemplateCacheSize]=\"0\">\n <ng-container *ngIf=\"serializedNode.visible\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: serializedNode, node: serializedNode.node, rowData: serializedNode.node.data, columns: columns}\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"tt.isEmpty()\">\n <ng-container *ngTemplateOutlet=\"tt.emptyMessageTemplate; context: {$implicit: columns, frozen: frozen}\"></ng-container>\n </ng-container>\n ",
1759
1759
  encapsulation: core.ViewEncapsulation.None
1760
1760
  },] }
1761
1761
  ];