@progress/kendo-angular-menu 3.0.6-dev.202203091409 → 4.0.0-dev.202204191048

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 (199) hide show
  1. package/bundles/kendo-angular-menu.umd.js +5 -0
  2. package/{dist/es2015/constants.d.ts → constants.d.ts} +0 -0
  3. package/{dist/es2015/context-menu → context-menu}/context-menu-event.d.ts +0 -0
  4. package/{dist/es2015/context-menu → context-menu}/context-menu-items.service.d.ts +3 -0
  5. package/{dist/es2015/context-menu → context-menu}/context-menu-popup-event.d.ts +0 -0
  6. package/{dist/es2015/context-menu → context-menu}/context-menu-select-event.d.ts +0 -0
  7. package/{dist/es2015/context-menu → context-menu}/context-menu-target-container.directive.d.ts +3 -0
  8. package/{dist/es2015/context-menu → context-menu}/context-menu-target.directive.d.ts +3 -0
  9. package/{dist/es2015/context-menu → context-menu}/context-menu-target.service.d.ts +3 -0
  10. package/{dist/es2015/context-menu → context-menu}/context-menu-template.directive.d.ts +3 -0
  11. package/{dist/es2015/context-menu → context-menu}/context-menu.component.d.ts +4 -1
  12. package/{dist/es2015/context-menu → context-menu}/context-menu.module.d.ts +11 -0
  13. package/{dist/es2015/context-menu → context-menu}/context-menu.service.d.ts +3 -0
  14. package/{dist/es2015/data-binding → data-binding}/binding-directive-base.d.ts +3 -0
  15. package/{dist/es2015/data-binding → data-binding}/flat-binding.directive.d.ts +3 -0
  16. package/{dist/es2015/data-binding → data-binding}/hierachy-binding.directive.d.ts +3 -0
  17. package/{dist/es2015/data-binding → data-binding}/utils.d.ts +0 -0
  18. package/{dist/es2015/dom-queries.d.ts → dom-queries.d.ts} +0 -0
  19. package/{dist/es2015 → esm2015}/constants.js +0 -0
  20. package/{dist/es2015 → esm2015}/context-menu/context-menu-event.js +0 -0
  21. package/esm2015/context-menu/context-menu-items.service.js +25 -0
  22. package/{dist/es2015 → esm2015}/context-menu/context-menu-popup-event.js +0 -0
  23. package/{dist/es2015 → esm2015}/context-menu/context-menu-select-event.js +0 -0
  24. package/esm2015/context-menu/context-menu-target-container.directive.js +32 -0
  25. package/esm2015/context-menu/context-menu-target.directive.js +46 -0
  26. package/{dist/es2015 → esm2015}/context-menu/context-menu-target.service.js +8 -10
  27. package/esm2015/context-menu/context-menu-template.directive.js +32 -0
  28. package/{dist/es2015 → esm2015}/context-menu/context-menu.component.js +107 -113
  29. package/{dist/es2015 → esm2015}/context-menu/context-menu.module.js +20 -11
  30. package/{dist/es2015 → esm2015}/context-menu/context-menu.service.js +8 -10
  31. package/{dist/es2015 → esm2015}/data-binding/binding-directive-base.js +12 -0
  32. package/esm2015/data-binding/flat-binding.directive.js +82 -0
  33. package/esm2015/data-binding/hierachy-binding.directive.js +71 -0
  34. package/{dist/es2015 → esm2015}/data-binding/utils.js +0 -1
  35. package/{dist/es2015 → esm2015}/dom-queries.js +0 -3
  36. package/{dist/es/constants.js → esm2015/kendo-angular-menu.js} +2 -2
  37. package/{dist/es → esm2015}/main.js +3 -2
  38. package/{dist/es → esm2015}/menu-animation.interface.js +1 -0
  39. package/esm2015/menu-base.js +69 -0
  40. package/{dist/es2015 → esm2015}/menu-event.js +0 -0
  41. package/{dist/es2015 → esm2015}/menu-item.component.js +41 -60
  42. package/{dist/es → esm2015}/menu-item.interface.js +1 -0
  43. package/{dist/es2015 → esm2015}/menu-select-event.js +0 -0
  44. package/{dist/es2015 → esm2015}/menu.component.js +76 -63
  45. package/{dist/es2015 → esm2015}/menu.module.js +32 -13
  46. package/{dist/es2015 → esm2015}/menus.module.js +12 -9
  47. package/{dist/es2015 → esm2015}/open-on-click-settings.js +0 -1
  48. package/{dist/es2015 → esm2015}/package-metadata.js +1 -1
  49. package/{dist/es2015 → esm2015}/preventable-event.js +0 -0
  50. package/esm2015/rendering/arrow.directive.js +62 -0
  51. package/esm2015/rendering/link.directive.js +54 -0
  52. package/esm2015/rendering/list.component.js +546 -0
  53. package/{dist/es2015 → esm2015}/rendering/popup-settings.js +0 -0
  54. package/{dist/es2015 → esm2015}/services/actions.service.js +21 -14
  55. package/{dist/es2015 → esm2015}/services/hover.service.js +10 -10
  56. package/{dist/es2015 → esm2015}/services/items.service.js +8 -13
  57. package/{dist/es2015 → esm2015}/services/navigation.service.js +12 -15
  58. package/{dist/es2015 → esm2015}/templates/item-content-template.directive.js +14 -12
  59. package/{dist/es2015 → esm2015}/templates/item-link-template.directive.js +14 -12
  60. package/{dist/es2015 → esm2015}/templates/item-template.directive.js +14 -12
  61. package/{dist/es2015 → esm2015}/utils.js +0 -0
  62. package/{dist/fesm2015/index.js → fesm2015/kendo-angular-menu.js} +1113 -1113
  63. package/kendo-angular-menu.d.ts +9 -0
  64. package/{dist/es2015/main.d.ts → main.d.ts} +3 -2
  65. package/{dist/es2015/menu-animation.interface.d.ts → menu-animation.interface.d.ts} +0 -0
  66. package/{dist/es2015/menu-base.d.ts → menu-base.d.ts} +4 -1
  67. package/{dist/es2015/menu-event.d.ts → menu-event.d.ts} +0 -0
  68. package/{dist/es2015/menu-item.component.d.ts → menu-item.component.d.ts} +7 -4
  69. package/{dist/es2015/menu-item.interface.d.ts → menu-item.interface.d.ts} +0 -0
  70. package/{dist/es2015/menu-select-event.d.ts → menu-select-event.d.ts} +0 -0
  71. package/{dist/es2015/menu.component.d.ts → menu.component.d.ts} +7 -4
  72. package/menu.module.d.ts +54 -0
  73. package/{dist/es2015/menus.module.d.ts → menus.module.d.ts} +6 -0
  74. package/{dist/es2015/open-on-click-settings.d.ts → open-on-click-settings.d.ts} +0 -0
  75. package/{dist/es2015/package-metadata.d.ts → package-metadata.d.ts} +0 -0
  76. package/package.json +31 -108
  77. package/{dist/es2015/preventable-event.d.ts → preventable-event.d.ts} +0 -0
  78. package/{dist/es2015/rendering → rendering}/arrow.directive.d.ts +6 -3
  79. package/{dist/es2015/rendering → rendering}/link.directive.d.ts +4 -1
  80. package/rendering/list.component.d.ts +104 -0
  81. package/{dist/es2015/rendering → rendering}/popup-settings.d.ts +0 -0
  82. package/schematics/ngAdd/index.js +5 -2
  83. package/schematics/ngAdd/index.js.map +1 -1
  84. package/{dist/es2015/services → services}/actions.service.d.ts +24 -1
  85. package/{dist/es2015/services → services}/hover.service.d.ts +7 -2
  86. package/{dist/es2015/services → services}/items.service.d.ts +4 -1
  87. package/{dist/es2015/services → services}/navigation.service.d.ts +6 -3
  88. package/{dist/es2015/templates → templates}/item-content-template.directive.d.ts +3 -0
  89. package/{dist/es2015/templates → templates}/item-link-template.directive.d.ts +3 -0
  90. package/{dist/es2015/templates → templates}/item-template.directive.d.ts +3 -0
  91. package/{dist/es2015/utils.d.ts → utils.d.ts} +1 -1
  92. package/dist/cdn/js/kendo-angular-menu.js +0 -20
  93. package/dist/cdn/main.js +0 -5
  94. package/dist/es/context-menu/context-menu-event.js +0 -13
  95. package/dist/es/context-menu/context-menu-items.service.js +0 -26
  96. package/dist/es/context-menu/context-menu-popup-event.js +0 -17
  97. package/dist/es/context-menu/context-menu-select-event.js +0 -17
  98. package/dist/es/context-menu/context-menu-target-container.directive.js +0 -31
  99. package/dist/es/context-menu/context-menu-target.directive.js +0 -48
  100. package/dist/es/context-menu/context-menu-target.service.js +0 -29
  101. package/dist/es/context-menu/context-menu-template.directive.js +0 -31
  102. package/dist/es/context-menu/context-menu.component.js +0 -456
  103. package/dist/es/context-menu/context-menu.module.js +0 -64
  104. package/dist/es/context-menu/context-menu.service.js +0 -30
  105. package/dist/es/data-binding/binding-directive-base.js +0 -32
  106. package/dist/es/data-binding/flat-binding.directive.js +0 -104
  107. package/dist/es/data-binding/hierachy-binding.directive.js +0 -94
  108. package/dist/es/data-binding/utils.js +0 -32
  109. package/dist/es/dom-queries.js +0 -107
  110. package/dist/es/index.js +0 -21
  111. package/dist/es/menu-base.js +0 -79
  112. package/dist/es/menu-event.js +0 -17
  113. package/dist/es/menu-item.component.js +0 -165
  114. package/dist/es/menu-select-event.js +0 -17
  115. package/dist/es/menu.component.js +0 -256
  116. package/dist/es/menu.module.js +0 -79
  117. package/dist/es/menus.module.js +0 -41
  118. package/dist/es/open-on-click-settings.js +0 -13
  119. package/dist/es/package-metadata.js +0 -15
  120. package/dist/es/preventable-event.js +0 -36
  121. package/dist/es/rendering/arrow.directive.js +0 -81
  122. package/dist/es/rendering/item.component.js +0 -337
  123. package/dist/es/rendering/link.directive.js +0 -62
  124. package/dist/es/rendering/list.component.js +0 -219
  125. package/dist/es/rendering/popup-settings.js +0 -66
  126. package/dist/es/services/actions.service.js +0 -178
  127. package/dist/es/services/hover.service.js +0 -136
  128. package/dist/es/services/items.service.js +0 -140
  129. package/dist/es/services/navigation.service.js +0 -274
  130. package/dist/es/templates/item-content-template.directive.js +0 -50
  131. package/dist/es/templates/item-link-template.directive.js +0 -52
  132. package/dist/es/templates/item-template.directive.js +0 -51
  133. package/dist/es/utils.js +0 -18
  134. package/dist/es2015/context-menu/context-menu-items.service.js +0 -25
  135. package/dist/es2015/context-menu/context-menu-target-container.directive.js +0 -30
  136. package/dist/es2015/context-menu/context-menu-target.directive.js +0 -47
  137. package/dist/es2015/context-menu/context-menu-template.directive.js +0 -30
  138. package/dist/es2015/data-binding/flat-binding.directive.js +0 -101
  139. package/dist/es2015/data-binding/hierachy-binding.directive.js +0 -90
  140. package/dist/es2015/index.d.ts +0 -21
  141. package/dist/es2015/index.js +0 -21
  142. package/dist/es2015/index.metadata.json +0 -1
  143. package/dist/es2015/main.js +0 -26
  144. package/dist/es2015/menu-animation.interface.js +0 -4
  145. package/dist/es2015/menu-base.js +0 -73
  146. package/dist/es2015/menu-item.interface.js +0 -4
  147. package/dist/es2015/menu.module.d.ts +0 -38
  148. package/dist/es2015/rendering/arrow.directive.js +0 -68
  149. package/dist/es2015/rendering/item.component.d.ts +0 -64
  150. package/dist/es2015/rendering/item.component.js +0 -327
  151. package/dist/es2015/rendering/link.directive.js +0 -57
  152. package/dist/es2015/rendering/list.component.d.ts +0 -41
  153. package/dist/es2015/rendering/list.component.js +0 -233
  154. package/dist/fesm5/index.js +0 -3222
  155. package/dist/npm/constants.js +0 -10
  156. package/dist/npm/context-menu/context-menu-event.js +0 -15
  157. package/dist/npm/context-menu/context-menu-items.service.js +0 -28
  158. package/dist/npm/context-menu/context-menu-popup-event.js +0 -19
  159. package/dist/npm/context-menu/context-menu-select-event.js +0 -19
  160. package/dist/npm/context-menu/context-menu-target-container.directive.js +0 -33
  161. package/dist/npm/context-menu/context-menu-target.directive.js +0 -50
  162. package/dist/npm/context-menu/context-menu-target.service.js +0 -31
  163. package/dist/npm/context-menu/context-menu-template.directive.js +0 -33
  164. package/dist/npm/context-menu/context-menu.component.js +0 -459
  165. package/dist/npm/context-menu/context-menu.module.js +0 -66
  166. package/dist/npm/context-menu/context-menu.service.js +0 -32
  167. package/dist/npm/data-binding/binding-directive-base.js +0 -34
  168. package/dist/npm/data-binding/flat-binding.directive.js +0 -106
  169. package/dist/npm/data-binding/hierachy-binding.directive.js +0 -96
  170. package/dist/npm/data-binding/utils.js +0 -34
  171. package/dist/npm/dom-queries.js +0 -110
  172. package/dist/npm/index.js +0 -37
  173. package/dist/npm/main.js +0 -50
  174. package/dist/npm/menu-animation.interface.js +0 -6
  175. package/dist/npm/menu-base.js +0 -81
  176. package/dist/npm/menu-event.js +0 -19
  177. package/dist/npm/menu-item.component.js +0 -167
  178. package/dist/npm/menu-item.interface.js +0 -6
  179. package/dist/npm/menu-select-event.js +0 -19
  180. package/dist/npm/menu.component.js +0 -258
  181. package/dist/npm/menu.module.js +0 -81
  182. package/dist/npm/menus.module.js +0 -43
  183. package/dist/npm/open-on-click-settings.js +0 -15
  184. package/dist/npm/package-metadata.js +0 -17
  185. package/dist/npm/preventable-event.js +0 -38
  186. package/dist/npm/rendering/arrow.directive.js +0 -83
  187. package/dist/npm/rendering/item.component.js +0 -339
  188. package/dist/npm/rendering/link.directive.js +0 -64
  189. package/dist/npm/rendering/list.component.js +0 -221
  190. package/dist/npm/rendering/popup-settings.js +0 -68
  191. package/dist/npm/services/actions.service.js +0 -180
  192. package/dist/npm/services/hover.service.js +0 -138
  193. package/dist/npm/services/items.service.js +0 -143
  194. package/dist/npm/services/navigation.service.js +0 -276
  195. package/dist/npm/templates/item-content-template.directive.js +0 -52
  196. package/dist/npm/templates/item-link-template.directive.js +0 -54
  197. package/dist/npm/templates/item-template.directive.js +0 -53
  198. package/dist/npm/utils.js +0 -20
  199. package/dist/systemjs/kendo-angular-menu.js +0 -5
@@ -1,327 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import * as tslib_1 from "tslib";
6
- import { Component, Input, ElementRef, Renderer2, ViewChild, ChangeDetectorRef, HostBinding, TemplateRef } from '@angular/core';
7
- import { ItemsService } from '../services/items.service';
8
- import { NavigationService } from '../services/navigation.service';
9
- import { POPUP_SETTINGS, POPUP_SETTINGS_RTL } from './popup-settings';
10
- import { PopupService, POPUP_CONTAINER } from '@progress/kendo-angular-popup';
11
- import { bodyFactory } from '../utils';
12
- const ɵ0 = bodyFactory;
13
- /* tslint:disable:component-selector */
14
- /**
15
- * @hidden
16
- */
17
- let ItemComponent = class ItemComponent {
18
- constructor(itemsService, navigation, changeDetector, renderer, popupService, element) {
19
- this.itemsService = itemsService;
20
- this.navigation = navigation;
21
- this.changeDetector = changeDetector;
22
- this.renderer = renderer;
23
- this.popupService = popupService;
24
- this.element = element;
25
- this.animate = true;
26
- this.openOnClick = false;
27
- this.opened = false;
28
- this.navigating = false;
29
- this.destroyed = false;
30
- }
31
- set index(index) {
32
- if (this._index && this._index !== index) {
33
- this.itemsService.remove(this);
34
- this._index = index;
35
- this.itemsService.add(this);
36
- }
37
- else {
38
- this._index = index;
39
- }
40
- this.childId = this.itemsService.childId(index);
41
- }
42
- get index() {
43
- return this._index;
44
- }
45
- get disabled() {
46
- return this.item.disabled;
47
- }
48
- get hasPopup() {
49
- return this.hasContent ? true : null;
50
- }
51
- get expanded() {
52
- return this.hasContent ? this.opened : null;
53
- }
54
- get label() {
55
- return this.item.text ? this.item.text : null;
56
- }
57
- get activeId() {
58
- return this.index === this.navigation.activeIndex ? '0' : '-1';
59
- }
60
- get popupSettings() {
61
- const settings = this.rtl ? POPUP_SETTINGS_RTL : POPUP_SETTINGS;
62
- return this.horizontal ? settings.horizontal : settings.vertical;
63
- }
64
- get horizontal() {
65
- return this.vertical || this.level > 0;
66
- }
67
- get hasLink() {
68
- return Boolean(this.item.url);
69
- }
70
- get linkTemplate() {
71
- return this.item.linkTemplate || this.itemLinkTemplate;
72
- }
73
- get hasContent() {
74
- const items = this.item.items;
75
- return items && items.length || this.item.contentTemplate;
76
- }
77
- get isContent() {
78
- return Boolean(this.item.content);
79
- }
80
- get iconClass() {
81
- return `k-i-${this.item.icon}`;
82
- }
83
- get children() {
84
- const item = this.item;
85
- if (item.contentTemplate) {
86
- if (!this.contentItems) {
87
- this.contentItems = [{
88
- content: item.contentTemplate,
89
- owner: item,
90
- ownerIndex: this.index
91
- }];
92
- }
93
- return this.contentItems;
94
- }
95
- return item.items;
96
- }
97
- get template() {
98
- return this.item.template || this.itemTemplate;
99
- }
100
- hasContentTemplates() {
101
- const item = this.item;
102
- return this.itemTemplate || item.contentTemplate || this.itemLinkTemplate ||
103
- (item.items && item.items.find(current => current.template || current.linkTemplate));
104
- }
105
- ngOnInit() {
106
- this.itemsService.add(this);
107
- }
108
- ngOnDestroy() {
109
- this.itemsService.remove(this);
110
- this.destroyed = true;
111
- if (this.popupRef) {
112
- this.popupRef.close();
113
- this.popupRef = null;
114
- }
115
- }
116
- focus() {
117
- this.element.nativeElement.focus();
118
- }
119
- blur() {
120
- this.element.nativeElement.blur();
121
- }
122
- toggleActive(isActive) {
123
- if (isActive) {
124
- this.setAttribute('tabindex', '0');
125
- }
126
- else {
127
- this.setAttribute('tabindex', '-1');
128
- }
129
- }
130
- open() {
131
- if (!this.destroyed && this.hasContent && !this.opened) {
132
- const popupSettings = this.popupSettings;
133
- const animate = this.animate ? Object.assign({}, this.animate, {
134
- direction: popupSettings.animate
135
- }) : false;
136
- this.opened = true;
137
- this.popupRef = this.popupService.open({
138
- popupAlign: popupSettings.popup,
139
- anchorAlign: popupSettings.anchor,
140
- collision: popupSettings.collision,
141
- anchor: this.element,
142
- positionMode: 'absolute',
143
- content: this.popupTemplate,
144
- popupClass: {
145
- 'k-rtl': this.rtl,
146
- 'k-menu-popup': true
147
- },
148
- animate: animate
149
- });
150
- this.setAttribute('aria-expanded', 'true');
151
- this.setAttribute('aria-owns', this.childId);
152
- this.changeDetector.detectChanges();
153
- }
154
- }
155
- close() {
156
- if (!this.destroyed && this.opened) {
157
- this.opened = false;
158
- if (this.popupRef) {
159
- this.popupRef.close();
160
- this.popupRef = null;
161
- }
162
- this.changeDetector.detectChanges();
163
- this.setAttribute('aria-expanded', 'false');
164
- this.renderer.removeAttribute(this.element.nativeElement, 'aria-owns');
165
- }
166
- }
167
- navigate() {
168
- let link;
169
- if (this.linkTemplate) {
170
- link = this.element.nativeElement.querySelector('a.k-menu-link');
171
- }
172
- else if (this.hasLink) {
173
- link = this.link.nativeElement;
174
- }
175
- if (link) {
176
- this.navigating = true;
177
- link.click();
178
- this.navigating = false;
179
- }
180
- }
181
- setAttribute(name, value) {
182
- this.renderer.setAttribute(this.element.nativeElement, name, value);
183
- }
184
- };
185
- tslib_1.__decorate([
186
- Input(),
187
- tslib_1.__metadata("design:type", Object)
188
- ], ItemComponent.prototype, "item", void 0);
189
- tslib_1.__decorate([
190
- Input(),
191
- tslib_1.__metadata("design:type", Number)
192
- ], ItemComponent.prototype, "level", void 0);
193
- tslib_1.__decorate([
194
- Input(),
195
- tslib_1.__metadata("design:type", String),
196
- tslib_1.__metadata("design:paramtypes", [String])
197
- ], ItemComponent.prototype, "index", null);
198
- tslib_1.__decorate([
199
- Input(),
200
- tslib_1.__metadata("design:type", Number)
201
- ], ItemComponent.prototype, "siblingIndex", void 0);
202
- tslib_1.__decorate([
203
- Input(),
204
- tslib_1.__metadata("design:type", Object)
205
- ], ItemComponent.prototype, "animate", void 0);
206
- tslib_1.__decorate([
207
- Input(),
208
- tslib_1.__metadata("design:type", Boolean)
209
- ], ItemComponent.prototype, "vertical", void 0);
210
- tslib_1.__decorate([
211
- Input(),
212
- tslib_1.__metadata("design:type", Boolean)
213
- ], ItemComponent.prototype, "rtl", void 0);
214
- tslib_1.__decorate([
215
- Input(),
216
- tslib_1.__metadata("design:type", Boolean)
217
- ], ItemComponent.prototype, "openOnClick", void 0);
218
- tslib_1.__decorate([
219
- Input(),
220
- tslib_1.__metadata("design:type", TemplateRef)
221
- ], ItemComponent.prototype, "itemTemplate", void 0);
222
- tslib_1.__decorate([
223
- Input(),
224
- tslib_1.__metadata("design:type", TemplateRef)
225
- ], ItemComponent.prototype, "itemLinkTemplate", void 0);
226
- tslib_1.__decorate([
227
- ViewChild('link', { static: false }),
228
- tslib_1.__metadata("design:type", ElementRef)
229
- ], ItemComponent.prototype, "link", void 0);
230
- tslib_1.__decorate([
231
- ViewChild('popupTemplate', { static: true }),
232
- tslib_1.__metadata("design:type", TemplateRef)
233
- ], ItemComponent.prototype, "popupTemplate", void 0);
234
- tslib_1.__decorate([
235
- HostBinding('attr.aria-disabled'),
236
- tslib_1.__metadata("design:type", Boolean),
237
- tslib_1.__metadata("design:paramtypes", [])
238
- ], ItemComponent.prototype, "disabled", null);
239
- tslib_1.__decorate([
240
- HostBinding('attr.aria-haspopup'),
241
- tslib_1.__metadata("design:type", Boolean),
242
- tslib_1.__metadata("design:paramtypes", [])
243
- ], ItemComponent.prototype, "hasPopup", null);
244
- tslib_1.__decorate([
245
- HostBinding('attr.aria-expanded'),
246
- tslib_1.__metadata("design:type", Boolean),
247
- tslib_1.__metadata("design:paramtypes", [])
248
- ], ItemComponent.prototype, "expanded", null);
249
- tslib_1.__decorate([
250
- HostBinding('attr.aria-label'),
251
- tslib_1.__metadata("design:type", Boolean),
252
- tslib_1.__metadata("design:paramtypes", [])
253
- ], ItemComponent.prototype, "label", null);
254
- tslib_1.__decorate([
255
- HostBinding('attr.tabindex'),
256
- tslib_1.__metadata("design:type", String),
257
- tslib_1.__metadata("design:paramtypes", [])
258
- ], ItemComponent.prototype, "activeId", null);
259
- ItemComponent = tslib_1.__decorate([
260
- Component({
261
- providers: [PopupService, {
262
- provide: POPUP_CONTAINER,
263
- useFactory: ɵ0
264
- }],
265
- selector: '[kendoMenuItem]',
266
- template: `
267
- <span *ngIf="!hasLink && !item.content && !linkTemplate" class="k-link k-menu-link" #link
268
- [class.k-state-active]="opened" role="presentation">
269
- <ng-template [ngTemplateOutlet]="itemcontent">
270
- </ng-template>
271
- </span>
272
- <a *ngIf="item.url && !linkTemplate" class="k-link k-menu-link" #link [attr.href]="item.url"
273
- [class.k-state-active]="opened" tabindex="-1" role="presentation">
274
- <ng-template [ngTemplateOutlet]="itemcontent">
275
- </ng-template>
276
- </a>
277
- <ng-template *ngIf="linkTemplate && !item.content" [ngTemplateOutlet]="linkTemplate"
278
- [ngTemplateOutletContext]="{ item: item, index: index }">
279
- </ng-template>
280
-
281
- <div class="k-content" *ngIf="item.content" role="presentation">
282
- <ng-template [ngTemplateOutlet]="item.content" [ngTemplateOutletContext]="{ item: item.owner, index: item.ownerIndex }">
283
- </ng-template>
284
- </div>
285
-
286
- <ng-template #popupTemplate>
287
- <ul kendoMenuList
288
- [attr.id]="childId"
289
- [animate]="animate"
290
- [rtl]="rtl"
291
- [vertical]="vertical"
292
- [openOnClick]="openOnClick"
293
- [items]="children"
294
- [level]="level + 1"
295
- [index]="index"
296
- [itemTemplate]="itemTemplate"
297
- [itemLinkTemplate]="itemLinkTemplate"
298
- role="menu"
299
- class="k-group k-menu-group k-reset">
300
- </ul>
301
- </ng-template>
302
-
303
- <ng-template #itemcontent>
304
- <span *ngIf="item.icon" class="k-icon" [ngClass]="iconClass" role="presentation"></span>
305
- <ng-container *ngIf="!template">
306
- <span class="k-menu-link-text">{{ item.text }}</span>
307
- </ng-container>
308
- <ng-template *ngIf="template" [ngTemplateOutlet]="template" [ngTemplateOutletContext]="{ item: item, index: index }">
309
- </ng-template>
310
- <span class="k-icon k-menu-expand-arrow" *ngIf="hasContent"
311
- role="presentation"
312
- [class.k-i-arrow-60-down]="!horizontal"
313
- [class.k-i-arrow-60-right]="horizontal && !rtl"
314
- [class.k-i-arrow-60-left]="horizontal && rtl">
315
- </span>
316
- </ng-template>
317
- `
318
- }),
319
- tslib_1.__metadata("design:paramtypes", [ItemsService,
320
- NavigationService,
321
- ChangeDetectorRef,
322
- Renderer2,
323
- PopupService,
324
- ElementRef])
325
- ], ItemComponent);
326
- export { ItemComponent };
327
- export { ɵ0 };
@@ -1,57 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import * as tslib_1 from "tslib";
6
- import { Directive, Input, HostBinding, isDevMode } from '@angular/core';
7
- import { ItemsService } from '../services/items.service';
8
- /**
9
- * Represents a directive that can be used in the [`linkTemplate`]({% slug api_menu_itemlinktemplatedirective %})
10
- * of the items to apply the default styling and behavior.
11
- */
12
- let LinkDirective = class LinkDirective {
13
- constructor(itemsService) {
14
- this.itemsService = itemsService;
15
- this.hostClasses = true;
16
- this.role = 'presentation';
17
- this.tabindex = '-1';
18
- }
19
- get activeClass() {
20
- return this.item.opened;
21
- }
22
- ngOnInit() {
23
- if (isDevMode() && !this.index) {
24
- throw new Error('The kendoMenuItemLink directive requires the item index to be set.');
25
- }
26
- this.item = this.itemsService.get(this.index) || {};
27
- }
28
- };
29
- tslib_1.__decorate([
30
- Input('kendoMenuItemLink'),
31
- tslib_1.__metadata("design:type", String)
32
- ], LinkDirective.prototype, "index", void 0);
33
- tslib_1.__decorate([
34
- HostBinding('class.k-link'),
35
- HostBinding('class.k-menu-link'),
36
- tslib_1.__metadata("design:type", Boolean)
37
- ], LinkDirective.prototype, "hostClasses", void 0);
38
- tslib_1.__decorate([
39
- HostBinding('attr.role'),
40
- tslib_1.__metadata("design:type", String)
41
- ], LinkDirective.prototype, "role", void 0);
42
- tslib_1.__decorate([
43
- HostBinding('attr.tabindex'),
44
- tslib_1.__metadata("design:type", String)
45
- ], LinkDirective.prototype, "tabindex", void 0);
46
- tslib_1.__decorate([
47
- HostBinding('class.k-state-active'),
48
- tslib_1.__metadata("design:type", Boolean),
49
- tslib_1.__metadata("design:paramtypes", [])
50
- ], LinkDirective.prototype, "activeClass", null);
51
- LinkDirective = tslib_1.__decorate([
52
- Directive({
53
- selector: '[kendoMenuItemLink]'
54
- }),
55
- tslib_1.__metadata("design:paramtypes", [ItemsService])
56
- ], LinkDirective);
57
- export { LinkDirective };
@@ -1,41 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { ElementRef, TemplateRef, OnInit, OnDestroy, Renderer2, NgZone } from '@angular/core';
6
- import { ItemsService } from '../services/items.service';
7
- import { ActionsService } from '../services/actions.service';
8
- import { NavigationService } from '../services/navigation.service';
9
- import { HoverService } from '../services/hover.service';
10
- import { MenuAnimation } from '../menu-animation.interface';
11
- /**
12
- * @hidden
13
- */
14
- export declare class ListComponent implements OnInit, OnDestroy {
15
- private itemsService;
16
- private hover;
17
- private actions;
18
- private navigation;
19
- private renderer;
20
- private ngZone;
21
- element: ElementRef;
22
- items: any[];
23
- level: number;
24
- index: string;
25
- animate: boolean | MenuAnimation;
26
- vertical: boolean;
27
- rtl: boolean;
28
- openOnClick: any;
29
- itemTemplate: TemplateRef<any>;
30
- itemLinkTemplate: TemplateRef<any>;
31
- private domSubscriptions;
32
- constructor(itemsService: ItemsService, hover: HoverService, actions: ActionsService, navigation: NavigationService, renderer: Renderer2, ngZone: NgZone, element: ElementRef);
33
- hierarchyIndex(index: number): string;
34
- ngOnInit(): void;
35
- ngOnDestroy(): void;
36
- private initDomEvents;
37
- private leavesMenu;
38
- private onLeave;
39
- private nodeItem;
40
- private clickHandler;
41
- }
@@ -1,233 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import * as tslib_1 from "tslib";
6
- import { Component, Input, ElementRef, TemplateRef, Renderer2, NgZone } from '@angular/core';
7
- import { ItemsService } from '../services/items.service';
8
- import { ActionsService } from '../services/actions.service';
9
- import { NavigationService } from '../services/navigation.service';
10
- import { HoverService } from '../services/hover.service';
11
- import { NODE_INDEX } from '../constants';
12
- import { closestItem, closest, hasClass, isFocusable, nodeIndex, inMenu } from '../dom-queries';
13
- import { isDocumentAvailable } from '@progress/kendo-angular-common';
14
- /* tslint:disable:component-selector */
15
- /**
16
- * @hidden
17
- */
18
- let ListComponent = class ListComponent {
19
- constructor(itemsService, hover, actions, navigation, renderer, ngZone, element) {
20
- this.itemsService = itemsService;
21
- this.hover = hover;
22
- this.actions = actions;
23
- this.navigation = navigation;
24
- this.renderer = renderer;
25
- this.ngZone = ngZone;
26
- this.element = element;
27
- this.animate = true;
28
- }
29
- hierarchyIndex(index) {
30
- return this.itemsService.itemIndex(this.index, index);
31
- }
32
- ngOnInit() {
33
- this.itemsService.addList(this);
34
- this.initDomEvents();
35
- }
36
- ngOnDestroy() {
37
- this.itemsService.removeList(this);
38
- if (this.domSubscriptions) {
39
- this.domSubscriptions();
40
- }
41
- }
42
- initDomEvents() {
43
- if (!isDocumentAvailable() || !this.element) {
44
- return;
45
- }
46
- this.ngZone.runOutsideAngular(() => {
47
- const element = this.element.nativeElement;
48
- const container = this.level > 0 ? closest(element, (node) => hasClass(node, 'k-popup')) : element;
49
- const overSubscription = this.renderer.listen(element, 'mouseover', (e) => {
50
- if (e.target === element && this.level === 0) {
51
- this.onLeave();
52
- }
53
- else {
54
- const item = this.nodeItem(e.target) || this.itemsService.get(this.index);
55
- if (item && !(this.openOnClick && this.openOnClick.toggle === 'click' && item.level === 0 && !item.hasContent)) {
56
- this.hover.over(item);
57
- }
58
- }
59
- });
60
- const leaveSubscription = this.renderer.listen(container, 'mouseleave', (e) => {
61
- if (this.leavesMenu(e)) {
62
- this.onLeave();
63
- }
64
- });
65
- const keydownSubscription = this.renderer.listen(element, 'keydown', (e) => {
66
- if (hasClass(e.target, 'k-menu-item')) {
67
- this.navigation.keydown(e);
68
- }
69
- });
70
- const blurSubscription = this.renderer.listen(element, 'focusout', (e) => {
71
- if (this.leavesMenu(e)) {
72
- this.navigation.focusLeave();
73
- }
74
- });
75
- /**
76
- * Handle focus/blur open/close for iOS devices since it behaves inconsistently with the rest
77
- * Refer to: https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html
78
- */
79
- const touchSubscription = this.renderer.listen(document, 'touchstart', (e) => {
80
- if (inMenu(e.target, this.itemsService)) {
81
- const item = this.nodeItem(e.target);
82
- // Needs to be called because the 'click' handler will be called only on secondary tap and the item will remain unfocused
83
- this.navigation.focus(item);
84
- // This is needed since the 'mouseover' event is not always dispatched
85
- if (!item.opened) {
86
- this.hover.over(item);
87
- }
88
- }
89
- else if (this.navigation.focusedIdx) {
90
- // If the touch is outside of the menu and the menu is not currently in focus
91
- const activeItem = this.itemsService.get(this.navigation.activeIndex);
92
- this.onLeave(); // needs to be called explicitly since mouseleave event is not triggered
93
- activeItem.blur(); // needs to be called explicitly otherwise the item remains focused => triggers focusout
94
- }
95
- });
96
- const clickSubscription = this.renderer.listen(element, 'click', this.clickHandler.bind(this));
97
- this.domSubscriptions = () => {
98
- overSubscription();
99
- leaveSubscription();
100
- keydownSubscription();
101
- blurSubscription();
102
- clickSubscription();
103
- touchSubscription();
104
- };
105
- });
106
- }
107
- leavesMenu(e) {
108
- if (!e.relatedTarget) {
109
- return true;
110
- }
111
- return !inMenu(e.relatedTarget, this.itemsService);
112
- }
113
- onLeave() {
114
- const openOnClick = this.openOnClick;
115
- if (!openOnClick || openOnClick.toggle !== 'click') {
116
- this.hover.leave(openOnClick && openOnClick.toggle === 'leave');
117
- }
118
- }
119
- nodeItem(target) {
120
- const node = closestItem(target, this.element.nativeElement);
121
- if (node) {
122
- const index = nodeIndex(node);
123
- return this.itemsService.get(index);
124
- }
125
- }
126
- clickHandler(e) {
127
- if (isFocusable(e.target) && !hasClass(e.target, 'k-menu-item')) {
128
- return;
129
- }
130
- const item = this.nodeItem(e.target);
131
- if (!item || item.isContent || item.navigating) {
132
- return;
133
- }
134
- if (item.disabled) {
135
- e.preventDefault();
136
- return;
137
- }
138
- this.actions.select(item, e, () => {
139
- e.preventDefault();
140
- });
141
- this.navigation.focus(item);
142
- if (item.level > 0 && !item.hasContent) {
143
- this.actions.closeToRoot(item);
144
- }
145
- if (this.openOnClick) {
146
- const hover = this.hover;
147
- if (item.opened) {
148
- if (item.level === 0) {
149
- hover.openOnOver = false;
150
- this.actions.close(item);
151
- }
152
- }
153
- else if (item.hasContent) {
154
- hover.openOnOver = true;
155
- this.actions.closeOthers(item);
156
- this.actions.open(item);
157
- }
158
- else {
159
- hover.openOnOver = false;
160
- if (item.level === 0 && this.openOnClick.toggle === 'click') {
161
- this.hover.closeCurrent();
162
- }
163
- }
164
- }
165
- this.actions.execute();
166
- }
167
- };
168
- tslib_1.__decorate([
169
- Input(),
170
- tslib_1.__metadata("design:type", Array)
171
- ], ListComponent.prototype, "items", void 0);
172
- tslib_1.__decorate([
173
- Input(),
174
- tslib_1.__metadata("design:type", Number)
175
- ], ListComponent.prototype, "level", void 0);
176
- tslib_1.__decorate([
177
- Input(),
178
- tslib_1.__metadata("design:type", String)
179
- ], ListComponent.prototype, "index", void 0);
180
- tslib_1.__decorate([
181
- Input(),
182
- tslib_1.__metadata("design:type", Object)
183
- ], ListComponent.prototype, "animate", void 0);
184
- tslib_1.__decorate([
185
- Input(),
186
- tslib_1.__metadata("design:type", Boolean)
187
- ], ListComponent.prototype, "vertical", void 0);
188
- tslib_1.__decorate([
189
- Input(),
190
- tslib_1.__metadata("design:type", Boolean)
191
- ], ListComponent.prototype, "rtl", void 0);
192
- tslib_1.__decorate([
193
- Input(),
194
- tslib_1.__metadata("design:type", Object)
195
- ], ListComponent.prototype, "openOnClick", void 0);
196
- tslib_1.__decorate([
197
- Input(),
198
- tslib_1.__metadata("design:type", TemplateRef)
199
- ], ListComponent.prototype, "itemTemplate", void 0);
200
- tslib_1.__decorate([
201
- Input(),
202
- tslib_1.__metadata("design:type", TemplateRef)
203
- ], ListComponent.prototype, "itemLinkTemplate", void 0);
204
- ListComponent = tslib_1.__decorate([
205
- Component({
206
- selector: '[kendoMenuList]',
207
- template: `
208
- <ng-container *ngFor="let item of items; let idx = index">
209
- <li *ngIf="!item.separator" kendoMenuItem
210
- [item]="item" [level]="level" [vertical]="vertical" [animate]="animate" [rtl]="rtl"
211
- [itemTemplate]="itemTemplate" [itemLinkTemplate]="itemLinkTemplate" [openOnClick]="openOnClick"
212
- [index]="hierarchyIndex(idx)" [siblingIndex]="idx" [attr.${NODE_INDEX}]="hierarchyIndex(idx)"
213
- [ngClass]="item.cssClass" [ngStyle]="item.cssStyle"
214
- role="menuitem"
215
- class="k-item k-menu-item"
216
- [class.k-first]="idx === 0" [class.k-last]="idx === items.length - 1"
217
- [class.k-state-disabled]="item.disabled"></li>
218
- <li *ngIf="item.separator" class="k-separator k-item"
219
- role="separator" [ngClass]="item.cssClass" [ngStyle]="item.cssStyle">
220
- &nbsp;
221
- </li>
222
- </ng-container>
223
- `
224
- }),
225
- tslib_1.__metadata("design:paramtypes", [ItemsService,
226
- HoverService,
227
- ActionsService,
228
- NavigationService,
229
- Renderer2,
230
- NgZone,
231
- ElementRef])
232
- ], ListComponent);
233
- export { ListComponent };