primeng 16.0.1 → 16.1.0

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 (233) hide show
  1. package/accordion/accordion.d.ts +35 -11
  2. package/api/tooltipoptions.d.ts +1 -0
  3. package/api/translation.d.ts +23 -0
  4. package/api/treenode.d.ts +1 -1
  5. package/autocomplete/autocomplete.d.ts +1 -1
  6. package/avatar/avatar.d.ts +11 -1
  7. package/breadcrumb/breadcrumb.d.ts +5 -1
  8. package/button/button.d.ts +3 -0
  9. package/chip/chip.d.ts +1 -0
  10. package/contextmenu/contextmenu.d.ts +157 -67
  11. package/dock/dock.d.ts +47 -2
  12. package/dom/domhandler.d.ts +1 -0
  13. package/esm2022/accordion/accordion.mjs +177 -43
  14. package/esm2022/api/primengconfig.mjs +75 -2
  15. package/esm2022/api/tooltipoptions.mjs +1 -1
  16. package/esm2022/api/translation.mjs +1 -1
  17. package/esm2022/api/treenode.mjs +1 -1
  18. package/esm2022/autocomplete/autocomplete.mjs +3 -3
  19. package/esm2022/avatar/avatar.mjs +18 -4
  20. package/esm2022/blockui/blockui.mjs +19 -3
  21. package/esm2022/breadcrumb/breadcrumb.mjs +50 -33
  22. package/esm2022/button/button.mjs +4 -1
  23. package/esm2022/card/card.mjs +3 -3
  24. package/esm2022/chip/chip.mjs +18 -13
  25. package/esm2022/contextmenu/contextmenu.mjs +993 -547
  26. package/esm2022/divider/divider.mjs +3 -3
  27. package/esm2022/dock/dock.mjs +284 -86
  28. package/esm2022/dom/domhandler.mjs +19 -7
  29. package/esm2022/dropdown/dropdown.mjs +2 -2
  30. package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +4 -1
  31. package/esm2022/fieldset/fieldset.mjs +59 -32
  32. package/esm2022/fileupload/fileupload.mjs +4 -4
  33. package/esm2022/image/image.mjs +11 -3
  34. package/esm2022/inplace/inplace.mjs +18 -11
  35. package/esm2022/megamenu/megamenu.mjs +997 -348
  36. package/esm2022/menu/menu.mjs +398 -166
  37. package/esm2022/menubar/menubar.mjs +895 -282
  38. package/esm2022/orderlist/orderlist.mjs +9 -15
  39. package/esm2022/panel/panel.mjs +44 -33
  40. package/esm2022/panelmenu/panelmenu.mjs +982 -344
  41. package/esm2022/progressbar/progressbar.mjs +19 -15
  42. package/esm2022/progressspinner/progressspinner.mjs +5 -5
  43. package/esm2022/ripple/ripple.mjs +3 -1
  44. package/esm2022/scrollpanel/scrollpanel.mjs +195 -23
  45. package/esm2022/scrolltop/scrolltop.mjs +11 -2
  46. package/esm2022/skeleton/skeleton.mjs +3 -3
  47. package/esm2022/slidemenu/slidemenu.mjs +1059 -372
  48. package/esm2022/splitbutton/splitbutton.mjs +2 -2
  49. package/esm2022/splitter/splitter.mjs +160 -29
  50. package/esm2022/steps/steps.mjs +112 -22
  51. package/esm2022/table/table.mjs +21 -11
  52. package/esm2022/tabmenu/tabmenu.mjs +191 -63
  53. package/esm2022/tabview/tabview.mjs +173 -39
  54. package/esm2022/terminal/terminal.mjs +3 -3
  55. package/esm2022/tieredmenu/tieredmenu.mjs +868 -392
  56. package/esm2022/toolbar/toolbar.mjs +17 -10
  57. package/esm2022/tooltip/tooltip.mjs +2 -2
  58. package/esm2022/tree/tree.mjs +3 -3
  59. package/esm2022/treetable/treetable.mjs +17 -17
  60. package/esm2022/utils/objectutils.mjs +31 -1
  61. package/esm2022/utils/uniquecomponentid.mjs +2 -3
  62. package/fesm2022/primeng-accordion.mjs +176 -42
  63. package/fesm2022/primeng-accordion.mjs.map +1 -1
  64. package/fesm2022/primeng-api.mjs +74 -1
  65. package/fesm2022/primeng-api.mjs.map +1 -1
  66. package/fesm2022/primeng-autocomplete.mjs +2 -2
  67. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  68. package/fesm2022/primeng-avatar.mjs +17 -3
  69. package/fesm2022/primeng-avatar.mjs.map +1 -1
  70. package/fesm2022/primeng-blockui.mjs +18 -2
  71. package/fesm2022/primeng-blockui.mjs.map +1 -1
  72. package/fesm2022/primeng-breadcrumb.mjs +49 -32
  73. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  74. package/fesm2022/primeng-button.mjs +3 -0
  75. package/fesm2022/primeng-button.mjs.map +1 -1
  76. package/fesm2022/primeng-card.mjs +2 -2
  77. package/fesm2022/primeng-card.mjs.map +1 -1
  78. package/fesm2022/primeng-chip.mjs +17 -12
  79. package/fesm2022/primeng-chip.mjs.map +1 -1
  80. package/fesm2022/primeng-contextmenu.mjs +992 -546
  81. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  82. package/fesm2022/primeng-divider.mjs +2 -2
  83. package/fesm2022/primeng-divider.mjs.map +1 -1
  84. package/fesm2022/primeng-dock.mjs +283 -85
  85. package/fesm2022/primeng-dock.mjs.map +1 -1
  86. package/fesm2022/primeng-dom.mjs +18 -6
  87. package/fesm2022/primeng-dom.mjs.map +1 -1
  88. package/fesm2022/primeng-dropdown.mjs +1 -1
  89. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  90. package/fesm2022/primeng-dynamicdialog.mjs +3 -0
  91. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  92. package/fesm2022/primeng-fieldset.mjs +57 -30
  93. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  94. package/fesm2022/primeng-fileupload.mjs +3 -3
  95. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  96. package/fesm2022/primeng-image.mjs +10 -2
  97. package/fesm2022/primeng-image.mjs.map +1 -1
  98. package/fesm2022/primeng-inplace.mjs +17 -10
  99. package/fesm2022/primeng-inplace.mjs.map +1 -1
  100. package/fesm2022/primeng-megamenu.mjs +996 -348
  101. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  102. package/fesm2022/primeng-menu.mjs +397 -166
  103. package/fesm2022/primeng-menu.mjs.map +1 -1
  104. package/fesm2022/primeng-menubar.mjs +894 -281
  105. package/fesm2022/primeng-menubar.mjs.map +1 -1
  106. package/fesm2022/primeng-orderlist.mjs +8 -14
  107. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  108. package/fesm2022/primeng-panel.mjs +44 -33
  109. package/fesm2022/primeng-panel.mjs.map +1 -1
  110. package/fesm2022/primeng-panelmenu.mjs +981 -344
  111. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  112. package/fesm2022/primeng-progressbar.mjs +18 -14
  113. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  114. package/fesm2022/primeng-progressspinner.mjs +4 -4
  115. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  116. package/fesm2022/primeng-ripple.mjs +2 -0
  117. package/fesm2022/primeng-ripple.mjs.map +1 -1
  118. package/fesm2022/primeng-scrollpanel.mjs +194 -22
  119. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  120. package/fesm2022/primeng-scrolltop.mjs +10 -1
  121. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  122. package/fesm2022/primeng-skeleton.mjs +2 -2
  123. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  124. package/fesm2022/primeng-slidemenu.mjs +1058 -371
  125. package/fesm2022/primeng-slidemenu.mjs.map +1 -1
  126. package/fesm2022/primeng-splitbutton.mjs +1 -1
  127. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  128. package/fesm2022/primeng-splitter.mjs +160 -29
  129. package/fesm2022/primeng-splitter.mjs.map +1 -1
  130. package/fesm2022/primeng-steps.mjs +111 -21
  131. package/fesm2022/primeng-steps.mjs.map +1 -1
  132. package/fesm2022/primeng-table.mjs +20 -10
  133. package/fesm2022/primeng-table.mjs.map +1 -1
  134. package/fesm2022/primeng-tabmenu.mjs +190 -62
  135. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  136. package/fesm2022/primeng-tabview.mjs +172 -38
  137. package/fesm2022/primeng-tabview.mjs.map +1 -1
  138. package/fesm2022/primeng-terminal.mjs +2 -2
  139. package/fesm2022/primeng-terminal.mjs.map +1 -1
  140. package/fesm2022/primeng-tieredmenu.mjs +867 -391
  141. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  142. package/fesm2022/primeng-toolbar.mjs +16 -9
  143. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  144. package/fesm2022/primeng-tooltip.mjs +1 -1
  145. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  146. package/fesm2022/primeng-tree.mjs +2 -2
  147. package/fesm2022/primeng-tree.mjs.map +1 -1
  148. package/fesm2022/primeng-treetable.mjs +16 -16
  149. package/fesm2022/primeng-treetable.mjs.map +1 -1
  150. package/fesm2022/primeng-utils.mjs +31 -2
  151. package/fesm2022/primeng-utils.mjs.map +1 -1
  152. package/fieldset/fieldset.d.ts +6 -5
  153. package/fileupload/fileupload.d.ts +1 -1
  154. package/image/image.d.ts +1 -0
  155. package/inplace/inplace.d.ts +6 -1
  156. package/megamenu/megamenu.d.ts +137 -15
  157. package/menu/menu.d.ts +74 -8
  158. package/menubar/menubar.d.ts +116 -22
  159. package/orderlist/orderlist.d.ts +2 -1
  160. package/package.json +131 -131
  161. package/panel/panel.d.ts +6 -5
  162. package/panelmenu/panelmenu.d.ts +134 -22
  163. package/resources/components/autocomplete/autocomplete.css +9 -8
  164. package/resources/components/breadcrumb/breadcrumb.css +9 -3
  165. package/resources/components/common/common.css +1 -1
  166. package/resources/components/contextmenu/contextmenu.css +1 -7
  167. package/resources/components/dock/dock.css +1 -1
  168. package/resources/components/megamenu/megamenu.css +9 -10
  169. package/resources/components/panelmenu/panelmenu.css +4 -2
  170. package/resources/components/slidemenu/slidemenu.css +40 -41
  171. package/resources/primeng.css +1 -1
  172. package/resources/primeng.min.css +1 -1
  173. package/resources/themes/arya-blue/theme.css +342 -390
  174. package/resources/themes/arya-green/theme.css +342 -390
  175. package/resources/themes/arya-orange/theme.css +342 -390
  176. package/resources/themes/arya-purple/theme.css +342 -390
  177. package/resources/themes/bootstrap4-dark-blue/theme.css +357 -416
  178. package/resources/themes/bootstrap4-dark-purple/theme.css +357 -416
  179. package/resources/themes/bootstrap4-light-blue/theme.css +369 -428
  180. package/resources/themes/bootstrap4-light-purple/theme.css +369 -428
  181. package/resources/themes/fluent-light/theme.css +352 -400
  182. package/resources/themes/lara-dark-blue/theme.css +344 -392
  183. package/resources/themes/lara-dark-indigo/theme.css +344 -392
  184. package/resources/themes/lara-dark-purple/theme.css +344 -392
  185. package/resources/themes/lara-dark-teal/theme.css +344 -392
  186. package/resources/themes/lara-light-blue/theme.css +370 -418
  187. package/resources/themes/lara-light-indigo/theme.css +370 -418
  188. package/resources/themes/lara-light-purple/theme.css +370 -418
  189. package/resources/themes/lara-light-teal/theme.css +370 -418
  190. package/resources/themes/luna-amber/theme.css +360 -408
  191. package/resources/themes/luna-blue/theme.css +360 -408
  192. package/resources/themes/luna-green/theme.css +360 -408
  193. package/resources/themes/luna-pink/theme.css +360 -408
  194. package/resources/themes/md-dark-deeppurple/theme.css +373 -403
  195. package/resources/themes/md-dark-indigo/theme.css +373 -403
  196. package/resources/themes/md-light-deeppurple/theme.css +373 -403
  197. package/resources/themes/md-light-indigo/theme.css +373 -403
  198. package/resources/themes/mdc-dark-deeppurple/theme.css +373 -403
  199. package/resources/themes/mdc-dark-indigo/theme.css +373 -403
  200. package/resources/themes/mdc-light-deeppurple/theme.css +373 -403
  201. package/resources/themes/mdc-light-indigo/theme.css +373 -403
  202. package/resources/themes/mira/theme.css +347 -395
  203. package/resources/themes/nano/theme.css +348 -396
  204. package/resources/themes/nova/theme.css +336 -384
  205. package/resources/themes/nova-accent/theme.css +336 -384
  206. package/resources/themes/nova-alt/theme.css +336 -384
  207. package/resources/themes/rhea/theme.css +336 -384
  208. package/resources/themes/saga-blue/theme.css +348 -396
  209. package/resources/themes/saga-green/theme.css +348 -396
  210. package/resources/themes/saga-orange/theme.css +348 -396
  211. package/resources/themes/saga-purple/theme.css +348 -396
  212. package/resources/themes/soho-dark/theme.css +362 -410
  213. package/resources/themes/soho-light/theme.css +370 -418
  214. package/resources/themes/tailwind-light/theme.css +361 -409
  215. package/resources/themes/vela-blue/theme.css +348 -396
  216. package/resources/themes/vela-green/theme.css +348 -396
  217. package/resources/themes/vela-orange/theme.css +348 -396
  218. package/resources/themes/vela-purple/theme.css +348 -396
  219. package/resources/themes/viva-dark/theme.css +342 -390
  220. package/resources/themes/viva-light/theme.css +348 -396
  221. package/scrollpanel/scrollpanel.d.ts +22 -4
  222. package/scrolltop/scrolltop.d.ts +6 -1
  223. package/slidemenu/slidemenu.d.ts +192 -88
  224. package/splitter/splitter.d.ts +18 -5
  225. package/steps/steps.d.ts +20 -3
  226. package/table/table.d.ts +6 -3
  227. package/tabmenu/tabmenu.d.ts +24 -1
  228. package/tabview/tabview.d.ts +26 -3
  229. package/tieredmenu/tieredmenu.d.ts +134 -50
  230. package/toolbar/toolbar.d.ts +6 -1
  231. package/tooltip/tooltip.d.ts +2 -2
  232. package/utils/objectutils.d.ts +4 -0
  233. package/utils/uniquecomponentid.d.ts +1 -1
@@ -1,9 +1,10 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, NgModule } from '@angular/core';
4
+ import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, NgModule } from '@angular/core';
5
5
  import * as i1 from '@angular/router';
6
6
  import { RouterModule } from '@angular/router';
7
+ import { DomHandler } from 'primeng/dom';
7
8
  import * as i3 from 'primeng/tooltip';
8
9
  import { TooltipModule } from 'primeng/tooltip';
9
10
 
@@ -40,12 +41,18 @@ class Steps {
40
41
  * @group Props
41
42
  */
42
43
  styleClass;
44
+ /**
45
+ * Whether to apply 'router-link-active-exact' class if route exactly matches the item path.
46
+ * @group Props
47
+ */
48
+ exact = true;
43
49
  /**
44
50
  * Callback to invoke when the new step is selected.
45
51
  * @param {number} number - current index.
46
52
  * @group Emits
47
53
  */
48
54
  activeIndexChange = new EventEmitter();
55
+ listViewChild;
49
56
  constructor(router, route, cd) {
50
57
  this.router = router;
51
58
  this.route = route;
@@ -55,7 +62,7 @@ class Steps {
55
62
  ngOnInit() {
56
63
  this.subscription = this.router.events.subscribe(() => this.cd.markForCheck());
57
64
  }
58
- itemClick(event, item, i) {
65
+ onItemClick(event, item, i) {
59
66
  if (this.readonly || item.disabled) {
60
67
  event.preventDefault();
61
68
  return;
@@ -72,6 +79,78 @@ class Steps {
72
79
  });
73
80
  }
74
81
  }
82
+ onItemKeydown(event, item, i) {
83
+ switch (event.code) {
84
+ case 'ArrowRight': {
85
+ this.navigateToNextItem(event.target);
86
+ event.preventDefault();
87
+ break;
88
+ }
89
+ case 'ArrowLeft': {
90
+ this.navigateToPrevItem(event.target);
91
+ event.preventDefault();
92
+ break;
93
+ }
94
+ case 'Home': {
95
+ this.navigateToFirstItem(event.target);
96
+ event.preventDefault();
97
+ break;
98
+ }
99
+ case 'End': {
100
+ this.navigateToLastItem(event.target);
101
+ event.preventDefault();
102
+ break;
103
+ }
104
+ case 'Tab':
105
+ //no op
106
+ break;
107
+ case 'Enter':
108
+ case 'Space': {
109
+ this.onItemClick(event, item, i);
110
+ event.preventDefault();
111
+ break;
112
+ }
113
+ default:
114
+ break;
115
+ }
116
+ }
117
+ navigateToNextItem(target) {
118
+ const nextItem = this.findNextItem(target);
119
+ nextItem && this.setFocusToMenuitem(target, nextItem);
120
+ }
121
+ navigateToPrevItem(target) {
122
+ const prevItem = this.findPrevItem(target);
123
+ prevItem && this.setFocusToMenuitem(target, prevItem);
124
+ }
125
+ navigateToFirstItem(target) {
126
+ const firstItem = this.findFirstItem();
127
+ firstItem && this.setFocusToMenuitem(target, firstItem);
128
+ }
129
+ navigateToLastItem(target) {
130
+ const lastItem = this.findLastItem();
131
+ lastItem && this.setFocusToMenuitem(target, lastItem);
132
+ }
133
+ findNextItem(item) {
134
+ const nextItem = item.parentElement.nextElementSibling;
135
+ return nextItem ? nextItem.children[0] : null;
136
+ }
137
+ findPrevItem(item) {
138
+ const prevItem = item.parentElement.previousElementSibling;
139
+ return prevItem ? prevItem.children[0] : null;
140
+ }
141
+ findFirstItem() {
142
+ const firstSibling = DomHandler.findSingle(this.listViewChild.nativeElement, '[data-pc-section="menuitem"]');
143
+ return firstSibling ? firstSibling.children[0] : null;
144
+ }
145
+ findLastItem() {
146
+ const siblings = DomHandler.find(this.listViewChild.nativeElement, '[data-pc-section="menuitem"]');
147
+ return siblings ? siblings[siblings.length - 1].children[0] : null;
148
+ }
149
+ setFocusToMenuitem(target, focusableItem) {
150
+ target.tabIndex = '-1';
151
+ focusableItem.tabIndex = '0';
152
+ focusableItem.focus();
153
+ }
75
154
  isClickableRouterLink(item) {
76
155
  return item.routerLink && !this.readonly && !item.disabled;
77
156
  }
@@ -88,9 +167,9 @@ class Steps {
88
167
  }
89
168
  }
90
169
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: Steps, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
91
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: Steps, selector: "p-steps", inputs: { activeIndex: "activeIndex", model: "model", readonly: "readonly", style: "style", styleClass: "styleClass" }, outputs: { activeIndexChange: "activeIndexChange" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
92
- <div [ngClass]="{ 'p-steps p-component': true, 'p-readonly': readonly }" [ngStyle]="style" [class]="styleClass">
93
- <ul role="tablist">
170
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: Steps, selector: "p-steps", inputs: { activeIndex: "activeIndex", model: "model", readonly: "readonly", style: "style", styleClass: "styleClass", exact: "exact" }, outputs: { activeIndexChange: "activeIndexChange" }, host: { classAttribute: "p-element" }, viewQueries: [{ propertyName: "listViewChild", first: true, predicate: ["list"], descendants: true }], ngImport: i0, template: `
171
+ <nav [ngClass]="{ 'p-steps p-component': true, 'p-readonly': readonly }" [ngStyle]="style" [class]="styleClass" [attr.data-pc-name]="'steps'">
172
+ <ul #list role="tablist" [attr.data-pc-section]="'menu'">
94
173
  <li
95
174
  *ngFor="let item of model; let i = index"
96
175
  class="p-steps-item"
@@ -103,6 +182,7 @@ class Steps {
103
182
  pTooltip
104
183
  [tooltipOptions]="item.tooltipOptions"
105
184
  [ngClass]="{ 'p-highlight p-steps-current': isActive(item, i), 'p-disabled': item.disabled || (readonly && !isActive(item, i)) }"
185
+ [attr.data-pc-section]="'menuitem'"
106
186
  >
107
187
  <a
108
188
  *ngIf="isClickableRouterLink(item); else elseBlock"
@@ -112,17 +192,18 @@ class Steps {
112
192
  [routerLinkActive]="'p-menuitem-link-active'"
113
193
  [routerLinkActiveOptions]="item.routerLinkActiveOptions || { exact: false }"
114
194
  class="p-menuitem-link"
115
- (click)="itemClick($event, item, i)"
116
- (keydown.enter)="itemClick($event, item, i)"
195
+ (click)="onItemClick($event, item, i)"
196
+ (keydown)="onItemKeydown($event, item, i)"
117
197
  [target]="item.target"
118
198
  [attr.id]="item.id"
119
- [attr.tabindex]="item.disabled || readonly ? null : item.tabindex ? item.tabindex : '0'"
199
+ [attr.tabindex]="item.disabled || readonly ? null : item.tabindex ? item.tabindex : '-1'"
120
200
  [fragment]="item.fragment"
121
201
  [queryParamsHandling]="item.queryParamsHandling"
122
202
  [preserveFragment]="item.preserveFragment"
123
203
  [skipLocationChange]="item.skipLocationChange"
124
204
  [replaceUrl]="item.replaceUrl"
125
205
  [state]="item.state"
206
+ [ariaCurrentWhenActive]="exact ? 'step' : undefined"
126
207
  >
127
208
  <span class="p-steps-number">{{ i + 1 }}</span>
128
209
  <span class="p-steps-title" *ngIf="item.escape !== false; else htmlLabel">{{ item.label }}</span>
@@ -133,11 +214,12 @@ class Steps {
133
214
  [attr.href]="item.url"
134
215
  class="p-menuitem-link"
135
216
  role="presentation"
136
- (click)="itemClick($event, item, i)"
137
- (keydown.enter)="itemClick($event, item, i)"
217
+ (click)="onItemClick($event, item, i)"
218
+ (keydown)="onItemKeydown($event, item, i)"
138
219
  [target]="item.target"
139
220
  [attr.id]="item.id"
140
- [attr.tabindex]="item.disabled || (i !== activeIndex && readonly) ? null : item.tabindex ? item.tabindex : '0'"
221
+ [attr.tabindex]="item.disabled || (i !== activeIndex && readonly) ? null : item.tabindex ? item.tabindex : '-1'"
222
+ [ariaCurrentWhenActive]="exact ? 'step' : undefined"
141
223
  >
142
224
  <span class="p-steps-number">{{ i + 1 }}</span>
143
225
  <span class="p-steps-title" *ngIf="item.escape !== false; else htmlRouteLabel">{{ item.label }}</span>
@@ -146,14 +228,14 @@ class Steps {
146
228
  </ng-template>
147
229
  </li>
148
230
  </ul>
149
- </div>
231
+ </nav>
150
232
  `, isInline: true, styles: [".p-steps{position:relative}.p-steps ul{padding:0;margin:0;list-style-type:none;display:flex}.p-steps-item{position:relative;display:flex;justify-content:center;flex:1 1 auto}.p-steps-item .p-menuitem-link{display:inline-flex;flex-direction:column;align-items:center;overflow:hidden;text-decoration:none}.p-steps.p-steps-readonly .p-steps-item{cursor:auto}.p-steps-item.p-steps-current .p-menuitem-link{cursor:default}.p-steps-title{white-space:nowrap}.p-steps-number{display:flex;align-items:center;justify-content:center}.p-steps-title{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
151
233
  }
152
234
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: Steps, decorators: [{
153
235
  type: Component,
154
236
  args: [{ selector: 'p-steps', template: `
155
- <div [ngClass]="{ 'p-steps p-component': true, 'p-readonly': readonly }" [ngStyle]="style" [class]="styleClass">
156
- <ul role="tablist">
237
+ <nav [ngClass]="{ 'p-steps p-component': true, 'p-readonly': readonly }" [ngStyle]="style" [class]="styleClass" [attr.data-pc-name]="'steps'">
238
+ <ul #list role="tablist" [attr.data-pc-section]="'menu'">
157
239
  <li
158
240
  *ngFor="let item of model; let i = index"
159
241
  class="p-steps-item"
@@ -166,6 +248,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
166
248
  pTooltip
167
249
  [tooltipOptions]="item.tooltipOptions"
168
250
  [ngClass]="{ 'p-highlight p-steps-current': isActive(item, i), 'p-disabled': item.disabled || (readonly && !isActive(item, i)) }"
251
+ [attr.data-pc-section]="'menuitem'"
169
252
  >
170
253
  <a
171
254
  *ngIf="isClickableRouterLink(item); else elseBlock"
@@ -175,17 +258,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
175
258
  [routerLinkActive]="'p-menuitem-link-active'"
176
259
  [routerLinkActiveOptions]="item.routerLinkActiveOptions || { exact: false }"
177
260
  class="p-menuitem-link"
178
- (click)="itemClick($event, item, i)"
179
- (keydown.enter)="itemClick($event, item, i)"
261
+ (click)="onItemClick($event, item, i)"
262
+ (keydown)="onItemKeydown($event, item, i)"
180
263
  [target]="item.target"
181
264
  [attr.id]="item.id"
182
- [attr.tabindex]="item.disabled || readonly ? null : item.tabindex ? item.tabindex : '0'"
265
+ [attr.tabindex]="item.disabled || readonly ? null : item.tabindex ? item.tabindex : '-1'"
183
266
  [fragment]="item.fragment"
184
267
  [queryParamsHandling]="item.queryParamsHandling"
185
268
  [preserveFragment]="item.preserveFragment"
186
269
  [skipLocationChange]="item.skipLocationChange"
187
270
  [replaceUrl]="item.replaceUrl"
188
271
  [state]="item.state"
272
+ [ariaCurrentWhenActive]="exact ? 'step' : undefined"
189
273
  >
190
274
  <span class="p-steps-number">{{ i + 1 }}</span>
191
275
  <span class="p-steps-title" *ngIf="item.escape !== false; else htmlLabel">{{ item.label }}</span>
@@ -196,11 +280,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
196
280
  [attr.href]="item.url"
197
281
  class="p-menuitem-link"
198
282
  role="presentation"
199
- (click)="itemClick($event, item, i)"
200
- (keydown.enter)="itemClick($event, item, i)"
283
+ (click)="onItemClick($event, item, i)"
284
+ (keydown)="onItemKeydown($event, item, i)"
201
285
  [target]="item.target"
202
286
  [attr.id]="item.id"
203
- [attr.tabindex]="item.disabled || (i !== activeIndex && readonly) ? null : item.tabindex ? item.tabindex : '0'"
287
+ [attr.tabindex]="item.disabled || (i !== activeIndex && readonly) ? null : item.tabindex ? item.tabindex : '-1'"
288
+ [ariaCurrentWhenActive]="exact ? 'step' : undefined"
204
289
  >
205
290
  <span class="p-steps-number">{{ i + 1 }}</span>
206
291
  <span class="p-steps-title" *ngIf="item.escape !== false; else htmlRouteLabel">{{ item.label }}</span>
@@ -209,7 +294,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
209
294
  </ng-template>
210
295
  </li>
211
296
  </ul>
212
- </div>
297
+ </nav>
213
298
  `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
214
299
  class: 'p-element'
215
300
  }, styles: [".p-steps{position:relative}.p-steps ul{padding:0;margin:0;list-style-type:none;display:flex}.p-steps-item{position:relative;display:flex;justify-content:center;flex:1 1 auto}.p-steps-item .p-menuitem-link{display:inline-flex;flex-direction:column;align-items:center;overflow:hidden;text-decoration:none}.p-steps.p-steps-readonly .p-steps-item{cursor:auto}.p-steps-item.p-steps-current .p-menuitem-link{cursor:default}.p-steps-title{white-space:nowrap}.p-steps-number{display:flex;align-items:center;justify-content:center}.p-steps-title{display:block}\n"] }]
@@ -223,8 +308,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
223
308
  type: Input
224
309
  }], styleClass: [{
225
310
  type: Input
311
+ }], exact: [{
312
+ type: Input
226
313
  }], activeIndexChange: [{
227
314
  type: Output
315
+ }], listViewChild: [{
316
+ type: ViewChild,
317
+ args: ['list', { static: false }]
228
318
  }] } });
229
319
  class StepsModule {
230
320
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: StepsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-steps.mjs","sources":["../../src/app/components/steps/steps.ts","../../src/app/components/steps/primeng-steps.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, NgModule, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { MenuItem } from 'primeng/api';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { Subscription } from 'rxjs';\n/**\n * Steps components is an indicator for the steps in a wizard workflow.\n * @group Components\n */\n@Component({\n selector: 'p-steps',\n template: `\n <div [ngClass]=\"{ 'p-steps p-component': true, 'p-readonly': readonly }\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <ul role=\"tablist\">\n <li\n *ngFor=\"let item of model; let i = index\"\n class=\"p-steps-item\"\n #menuitem\n [ngStyle]=\"item.style\"\n [class]=\"item.styleClass\"\n role=\"tab\"\n [attr.aria-selected]=\"i === activeIndex\"\n [attr.aria-expanded]=\"i === activeIndex\"\n pTooltip\n [tooltipOptions]=\"item.tooltipOptions\"\n [ngClass]=\"{ 'p-highlight p-steps-current': isActive(item, i), 'p-disabled': item.disabled || (readonly && !isActive(item, i)) }\"\n >\n <a\n *ngIf=\"isClickableRouterLink(item); else elseBlock\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.queryParams\"\n role=\"presentation\"\n [routerLinkActive]=\"'p-menuitem-link-active'\"\n [routerLinkActiveOptions]=\"item.routerLinkActiveOptions || { exact: false }\"\n class=\"p-menuitem-link\"\n (click)=\"itemClick($event, item, i)\"\n (keydown.enter)=\"itemClick($event, item, i)\"\n [target]=\"item.target\"\n [attr.id]=\"item.id\"\n [attr.tabindex]=\"item.disabled || readonly ? null : item.tabindex ? item.tabindex : '0'\"\n [fragment]=\"item.fragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"item.preserveFragment\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n >\n <span class=\"p-steps-number\">{{ i + 1 }}</span>\n <span class=\"p-steps-title\" *ngIf=\"item.escape !== false; else htmlLabel\">{{ item.label }}</span>\n <ng-template #htmlLabel><span class=\"p-steps-title\" [innerHTML]=\"item.label\"></span></ng-template>\n </a>\n <ng-template #elseBlock>\n <a\n [attr.href]=\"item.url\"\n class=\"p-menuitem-link\"\n role=\"presentation\"\n (click)=\"itemClick($event, item, i)\"\n (keydown.enter)=\"itemClick($event, item, i)\"\n [target]=\"item.target\"\n [attr.id]=\"item.id\"\n [attr.tabindex]=\"item.disabled || (i !== activeIndex && readonly) ? null : item.tabindex ? item.tabindex : '0'\"\n >\n <span class=\"p-steps-number\">{{ i + 1 }}</span>\n <span class=\"p-steps-title\" *ngIf=\"item.escape !== false; else htmlRouteLabel\">{{ item.label }}</span>\n <ng-template #htmlRouteLabel><span class=\"p-steps-title\" [innerHTML]=\"item.label\"></span></ng-template>\n </a>\n </ng-template>\n </li>\n </ul>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./steps.css'],\n host: {\n class: 'p-element'\n }\n})\nexport class Steps implements OnInit, OnDestroy {\n /**\n * Index of the active item.\n * @group Props\n */\n @Input() activeIndex: number = 0;\n /**\n * An array of menu items.\n * @group Props\n */\n @Input() model: MenuItem[] | undefined;\n /**\n * Whether the items are clickable or not.\n * @group Props\n */\n @Input() readonly: boolean = true;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Callback to invoke when the new step is selected.\n * @param {number} number - current index.\n * @group Emits\n */\n @Output() activeIndexChange: EventEmitter<number> = new EventEmitter<number>();\n\n constructor(private router: Router, private route: ActivatedRoute, private cd: ChangeDetectorRef) {}\n\n subscription: Subscription | undefined;\n\n ngOnInit() {\n this.subscription = this.router.events.subscribe(() => this.cd.markForCheck());\n }\n\n itemClick(event: Event, item: MenuItem, i: number) {\n if (this.readonly || item.disabled) {\n event.preventDefault();\n return;\n }\n\n this.activeIndexChange.emit(i);\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 index: i\n });\n }\n }\n\n isClickableRouterLink(item: MenuItem) {\n return item.routerLink && !this.readonly && !item.disabled;\n }\n\n isActive(item: MenuItem, index: number) {\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 index === this.activeIndex;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, RouterModule, TooltipModule],\n exports: [Steps, RouterModule, TooltipModule],\n declarations: [Steps]\n})\nexport class StepsModule {}\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-steps.mjs","sources":["../../src/app/components/steps/steps.ts","../../src/app/components/steps/primeng-steps.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, NgModule, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { DomHandler } from 'primeng/dom';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { MenuItem } from 'primeng/api';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { Subscription } from 'rxjs';\n/**\n * Steps components is an indicator for the steps in a wizard workflow.\n * @group Components\n */\n@Component({\n selector: 'p-steps',\n template: `\n <nav [ngClass]=\"{ 'p-steps p-component': true, 'p-readonly': readonly }\" [ngStyle]=\"style\" [class]=\"styleClass\" [attr.data-pc-name]=\"'steps'\">\n <ul #list role=\"tablist\" [attr.data-pc-section]=\"'menu'\">\n <li\n *ngFor=\"let item of model; let i = index\"\n class=\"p-steps-item\"\n #menuitem\n [ngStyle]=\"item.style\"\n [class]=\"item.styleClass\"\n role=\"tab\"\n [attr.aria-selected]=\"i === activeIndex\"\n [attr.aria-expanded]=\"i === activeIndex\"\n pTooltip\n [tooltipOptions]=\"item.tooltipOptions\"\n [ngClass]=\"{ 'p-highlight p-steps-current': isActive(item, i), 'p-disabled': item.disabled || (readonly && !isActive(item, i)) }\"\n [attr.data-pc-section]=\"'menuitem'\"\n >\n <a\n *ngIf=\"isClickableRouterLink(item); else elseBlock\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.queryParams\"\n role=\"presentation\"\n [routerLinkActive]=\"'p-menuitem-link-active'\"\n [routerLinkActiveOptions]=\"item.routerLinkActiveOptions || { exact: false }\"\n class=\"p-menuitem-link\"\n (click)=\"onItemClick($event, item, i)\"\n (keydown)=\"onItemKeydown($event, item, i)\"\n [target]=\"item.target\"\n [attr.id]=\"item.id\"\n [attr.tabindex]=\"item.disabled || readonly ? null : item.tabindex ? item.tabindex : '-1'\"\n [fragment]=\"item.fragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"item.preserveFragment\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n [ariaCurrentWhenActive]=\"exact ? 'step' : undefined\"\n >\n <span class=\"p-steps-number\">{{ i + 1 }}</span>\n <span class=\"p-steps-title\" *ngIf=\"item.escape !== false; else htmlLabel\">{{ item.label }}</span>\n <ng-template #htmlLabel><span class=\"p-steps-title\" [innerHTML]=\"item.label\"></span></ng-template>\n </a>\n <ng-template #elseBlock>\n <a\n [attr.href]=\"item.url\"\n class=\"p-menuitem-link\"\n role=\"presentation\"\n (click)=\"onItemClick($event, item, i)\"\n (keydown)=\"onItemKeydown($event, item, i)\"\n [target]=\"item.target\"\n [attr.id]=\"item.id\"\n [attr.tabindex]=\"item.disabled || (i !== activeIndex && readonly) ? null : item.tabindex ? item.tabindex : '-1'\"\n [ariaCurrentWhenActive]=\"exact ? 'step' : undefined\"\n >\n <span class=\"p-steps-number\">{{ i + 1 }}</span>\n <span class=\"p-steps-title\" *ngIf=\"item.escape !== false; else htmlRouteLabel\">{{ item.label }}</span>\n <ng-template #htmlRouteLabel><span class=\"p-steps-title\" [innerHTML]=\"item.label\"></span></ng-template>\n </a>\n </ng-template>\n </li>\n </ul>\n </nav>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./steps.css'],\n host: {\n class: 'p-element'\n }\n})\nexport class Steps implements OnInit, OnDestroy {\n /**\n * Index of the active item.\n * @group Props\n */\n @Input() activeIndex: number = 0;\n /**\n * An array of menu items.\n * @group Props\n */\n @Input() model: MenuItem[] | undefined;\n /**\n * Whether the items are clickable or not.\n * @group Props\n */\n @Input() readonly: boolean = true;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Whether to apply 'router-link-active-exact' class if route exactly matches the item path.\n * @group Props\n */\n @Input() exact: boolean = true;\n /**\n * Callback to invoke when the new step is selected.\n * @param {number} number - current index.\n * @group Emits\n */\n @Output() activeIndexChange: EventEmitter<number> = new EventEmitter<number>();\n\n @ViewChild('list', { static: false }) listViewChild: Nullable<ElementRef>;\n\n constructor(private router: Router, private route: ActivatedRoute, private cd: ChangeDetectorRef) {}\n\n subscription: Subscription | undefined;\n\n ngOnInit() {\n this.subscription = this.router.events.subscribe(() => this.cd.markForCheck());\n }\n\n onItemClick(event: Event, item: MenuItem, i: number) {\n if (this.readonly || item.disabled) {\n event.preventDefault();\n return;\n }\n\n this.activeIndexChange.emit(i);\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 index: i\n });\n }\n }\n\n onItemKeydown(event: KeyboardEvent, item: MenuItem, i: number) {\n switch (event.code) {\n case 'ArrowRight': {\n this.navigateToNextItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft': {\n this.navigateToPrevItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Home': {\n this.navigateToFirstItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'End': {\n this.navigateToLastItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Tab':\n //no op\n break;\n\n case 'Enter':\n\n case 'Space': {\n this.onItemClick(event, item, i);\n event.preventDefault();\n break;\n }\n\n default:\n break;\n }\n }\n\n navigateToNextItem(target) {\n const nextItem = this.findNextItem(target);\n\n nextItem && this.setFocusToMenuitem(target, nextItem);\n }\n navigateToPrevItem(target) {\n const prevItem = this.findPrevItem(target);\n\n prevItem && this.setFocusToMenuitem(target, prevItem);\n }\n navigateToFirstItem(target) {\n const firstItem = this.findFirstItem();\n\n firstItem && this.setFocusToMenuitem(target, firstItem);\n }\n navigateToLastItem(target) {\n const lastItem = this.findLastItem();\n\n lastItem && this.setFocusToMenuitem(target, lastItem);\n }\n findNextItem(item) {\n const nextItem = item.parentElement.nextElementSibling;\n\n return nextItem ? nextItem.children[0] : null;\n }\n findPrevItem(item) {\n const prevItem = item.parentElement.previousElementSibling;\n\n return prevItem ? prevItem.children[0] : null;\n }\n findFirstItem() {\n const firstSibling = DomHandler.findSingle(this.listViewChild.nativeElement, '[data-pc-section=\"menuitem\"]');\n\n return firstSibling ? firstSibling.children[0] : null;\n }\n findLastItem() {\n const siblings = DomHandler.find(this.listViewChild.nativeElement, '[data-pc-section=\"menuitem\"]');\n\n return siblings ? siblings[siblings.length - 1].children[0] : null;\n }\n setFocusToMenuitem(target, focusableItem) {\n target.tabIndex = '-1';\n focusableItem.tabIndex = '0';\n focusableItem.focus();\n }\n\n isClickableRouterLink(item: MenuItem) {\n return item.routerLink && !this.readonly && !item.disabled;\n }\n\n isActive(item: MenuItem, index: number) {\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 index === this.activeIndex;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, RouterModule, TooltipModule],\n exports: [Steps, RouterModule, TooltipModule],\n declarations: [Steps]\n})\nexport class StepsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ import { SortAltIcon } from 'primeng/icons/sortalt';
35
35
  import { SortAmountDownIcon } from 'primeng/icons/sortamountdown';
36
36
  import { SortAmountUpAltIcon } from 'primeng/icons/sortamountupalt';
37
37
  import { SpinnerIcon } from 'primeng/icons/spinner';
38
+ import { FilterSlashIcon } from 'primeng/icons/filterslash';
38
39
 
39
40
  class TableService {
40
41
  sortSource = new Subject();
@@ -359,7 +360,7 @@ class Table {
359
360
  }
360
361
  set responsive(val) {
361
362
  this._responsive = val;
362
- console.warn('responsive propery is deprecated as table is always responsive with scrollable behavior.');
363
+ console.warn('responsive property is deprecated as table is always responsive with scrollable behavior.');
363
364
  }
364
365
  _responsive;
365
366
  /**
@@ -443,7 +444,7 @@ class Table {
443
444
  */
444
445
  editMode = 'cell';
445
446
  /**
446
- * One or more field names to use in row grouping.
447
+ * Field name to use in row grouping.
447
448
  * @group Props
448
449
  */
449
450
  groupRowsBy;
@@ -1019,6 +1020,7 @@ class Table {
1019
1020
  get processedData() {
1020
1021
  return this.filteredValue || this.value || [];
1021
1022
  }
1023
+ _initialColWidths;
1022
1024
  dataToRender(data) {
1023
1025
  const _data = data || this.processedData;
1024
1026
  if (_data && this.paginator) {
@@ -2001,6 +2003,7 @@ class Table {
2001
2003
  }
2002
2004
  }
2003
2005
  else if (this.columnResizeMode === 'expand') {
2006
+ this._initialColWidths = this._totalTableWidth();
2004
2007
  let tableWidth = this.tableViewChild?.nativeElement.offsetWidth + delta;
2005
2008
  this.setResizeTableWidth(tableWidth + 'px');
2006
2009
  this.resizeTableCells(newColumnWidth, null);
@@ -2016,16 +2019,20 @@ class Table {
2016
2019
  this.resizeHelperViewChild.nativeElement.style.display = 'none';
2017
2020
  DomHandler.removeClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');
2018
2021
  }
2019
- resizeTableCells(newColumnWidth, nextColumnWidth) {
2020
- let colIndex = DomHandler.index(this.resizeColumnElement);
2022
+ _totalTableWidth() {
2021
2023
  let widths = [];
2022
- const tableHead = DomHandler.findSingle(this.containerViewChild?.nativeElement, '.p-datatable-thead');
2024
+ const tableHead = DomHandler.findSingle(this.containerViewChild.nativeElement, '.p-datatable-thead');
2023
2025
  let headers = DomHandler.find(tableHead, 'tr > th');
2024
2026
  headers.forEach((header) => widths.push(DomHandler.getOuterWidth(header)));
2027
+ return widths;
2028
+ }
2029
+ resizeTableCells(newColumnWidth, nextColumnWidth) {
2030
+ let colIndex = DomHandler.index(this.resizeColumnElement);
2031
+ let width = this.columnResizeMode === 'expand' ? this._initialColWidths : this._totalTableWidth();
2025
2032
  this.destroyStyleElement();
2026
2033
  this.createStyleElement();
2027
2034
  let innerHTML = '';
2028
- widths.forEach((width, index) => {
2035
+ width.forEach((width, index) => {
2029
2036
  let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;
2030
2037
  let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important;`;
2031
2038
  innerHTML += `
@@ -5590,7 +5597,7 @@ class ColumnFilter {
5590
5597
  <ng-container *ngTemplateOutlet="footerTemplate; context: { $implicit: field }"></ng-container>
5591
5598
  </div>
5592
5599
  </div>
5593
- `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i0.forwardRef(function () { return i5.Dropdown; }), selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "overlayDirection", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: i0.forwardRef(function () { return i6.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i6.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i0.forwardRef(function () { return i7.ButtonDirective; }), selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i0.forwardRef(function () { return FilterIcon; }), selector: "FilterIcon" }, { kind: "component", type: i0.forwardRef(function () { return ColumnFilterFormElement; }), selector: "p-columnFilterFormElement", inputs: ["field", "type", "filterConstraint", "filterTemplate", "placeholder", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping"] }], animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('.12s cubic-bezier(0, 0, 0.2, 1)')]), transition(':leave', [animate('.1s linear', style({ opacity: 0 }))])])], encapsulation: i0.ViewEncapsulation.None });
5600
+ `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i0.forwardRef(function () { return i5.Dropdown; }), selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "overlayDirection", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: i0.forwardRef(function () { return i6.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i6.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i0.forwardRef(function () { return i7.ButtonDirective; }), selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i0.forwardRef(function () { return FilterIcon; }), selector: "FilterIcon" }, { kind: "component", type: i0.forwardRef(function () { return FilterSlashIcon; }), selector: "FilterSlashIcon" }, { kind: "component", type: i0.forwardRef(function () { return ColumnFilterFormElement; }), selector: "p-columnFilterFormElement", inputs: ["field", "type", "filterConstraint", "filterTemplate", "placeholder", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping"] }], animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('.12s cubic-bezier(0, 0, 0.2, 1)')]), transition(':leave', [animate('.1s linear', style({ opacity: 0 }))])])], encapsulation: i0.ViewEncapsulation.None });
5594
5601
  }
5595
5602
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ColumnFilter, decorators: [{
5596
5603
  type: Component,
@@ -5991,7 +5998,8 @@ class TableModule {
5991
5998
  SortAmountUpAltIcon,
5992
5999
  SortAmountDownIcon,
5993
6000
  CheckIcon,
5994
- FilterIcon], exports: [Table, SharedModule, SortableColumn, FrozenColumn, RowGroupHeader, SelectableRow, RowToggler, ContextMenuRow, ResizableColumn, ReorderableColumn, EditableColumn, CellEditor, SortIcon, TableRadioButton, TableCheckbox, TableHeaderCheckbox, ReorderableRowHandle, ReorderableRow, SelectableRowDblClick, EditableRow, InitEditableRow, SaveEditableRow, CancelEditableRow, ColumnFilter, ColumnFilterFormElement, ScrollerModule] });
6001
+ FilterIcon,
6002
+ FilterSlashIcon], exports: [Table, SharedModule, SortableColumn, FrozenColumn, RowGroupHeader, SelectableRow, RowToggler, ContextMenuRow, ResizableColumn, ReorderableColumn, EditableColumn, CellEditor, SortIcon, TableRadioButton, TableCheckbox, TableHeaderCheckbox, ReorderableRowHandle, ReorderableRow, SelectableRowDblClick, EditableRow, InitEditableRow, SaveEditableRow, CancelEditableRow, ColumnFilter, ColumnFilterFormElement, ScrollerModule] });
5995
6003
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableModule, imports: [CommonModule,
5996
6004
  PaginatorModule,
5997
6005
  InputTextModule,
@@ -6010,7 +6018,8 @@ class TableModule {
6010
6018
  SortAmountUpAltIcon,
6011
6019
  SortAmountDownIcon,
6012
6020
  CheckIcon,
6013
- FilterIcon, SharedModule,
6021
+ FilterIcon,
6022
+ FilterSlashIcon, SharedModule,
6014
6023
  ScrollerModule] });
6015
6024
  }
6016
6025
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TableModule, decorators: [{
@@ -6035,7 +6044,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
6035
6044
  SortAmountUpAltIcon,
6036
6045
  SortAmountDownIcon,
6037
6046
  CheckIcon,
6038
- FilterIcon
6047
+ FilterIcon,
6048
+ FilterSlashIcon
6039
6049
  ],
6040
6050
  exports: [
6041
6051
  Table,