@sebgroup/green-angular 3.6.3 → 3.8.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 (206) hide show
  1. package/esm2020/lib/context-menu/context-menu.component.mjs +4 -4
  2. package/esm2020/lib/context-menu/context-menu.module.mjs +2 -2
  3. package/esm2020/lib/datepicker/datepicker.component.mjs +4 -4
  4. package/esm2020/lib/datepicker/datepicker.module.mjs +5 -6
  5. package/esm2020/lib/dropdown/dropdown.component.mjs +4 -4
  6. package/esm2020/lib/dropdown/dropdown.module.mjs +2 -2
  7. package/esm2020/lib/modal/modal.component.mjs +16 -9
  8. package/esm2020/lib/shared/index.mjs +2 -1
  9. package/esm2020/src/lib/accordion/accordion-list-item.component.mjs +47 -0
  10. package/esm2020/src/lib/accordion/accordion.component.mjs +72 -0
  11. package/esm2020/src/lib/accordion/accordion.module.mjs +19 -0
  12. package/esm2020/src/lib/accordion/index.mjs +4 -0
  13. package/esm2020/src/lib/accordion/sebgroup-green-angular-src-lib-accordion.mjs +5 -0
  14. package/esm2020/src/lib/badge/badge.component.mjs +80 -0
  15. package/esm2020/src/lib/badge/badge.module.mjs +18 -0
  16. package/esm2020/src/lib/badge/index.mjs +3 -0
  17. package/esm2020/src/lib/badge/sebgroup-green-angular-src-lib-badge.mjs +5 -0
  18. package/esm2020/src/lib/button/button.component.mjs +28 -0
  19. package/esm2020/src/lib/button/button.module.mjs +18 -0
  20. package/esm2020/src/lib/button/index.mjs +3 -0
  21. package/esm2020/src/lib/button/sebgroup-green-angular-src-lib-button.mjs +5 -0
  22. package/esm2020/src/lib/cell-table/cell-table-item.component.mjs +91 -0
  23. package/esm2020/src/lib/cell-table/cell-table.component.mjs +97 -0
  24. package/esm2020/src/lib/cell-table/cell-table.module.mjs +26 -0
  25. package/esm2020/src/lib/cell-table/cell-table.types.mjs +7 -0
  26. package/esm2020/src/lib/cell-table/cell-underline.directive.mjs +55 -0
  27. package/esm2020/src/lib/cell-table/index.mjs +4 -0
  28. package/esm2020/src/lib/cell-table/sebgroup-green-angular-src-lib-cell-table.mjs +5 -0
  29. package/esm2020/src/lib/context-menu/context-menu.component.mjs +80 -0
  30. package/esm2020/src/lib/context-menu/context-menu.module.mjs +20 -0
  31. package/esm2020/src/lib/context-menu/index.mjs +3 -0
  32. package/esm2020/src/lib/context-menu/sebgroup-green-angular-src-lib-context-menu.mjs +5 -0
  33. package/esm2020/src/lib/datepicker/datepicker.component.mjs +138 -0
  34. package/esm2020/src/lib/datepicker/datepicker.module.mjs +20 -0
  35. package/esm2020/src/lib/datepicker/index.mjs +3 -0
  36. package/esm2020/src/lib/datepicker/sebgroup-green-angular-src-lib-datepicker.mjs +5 -0
  37. package/esm2020/src/lib/dropdown/dropdown-button.directive.mjs +16 -0
  38. package/esm2020/src/lib/dropdown/dropdown-option.directive.mjs +16 -0
  39. package/esm2020/src/lib/dropdown/dropdown.component.mjs +212 -0
  40. package/esm2020/src/lib/dropdown/dropdown.module.mjs +34 -0
  41. package/esm2020/src/lib/dropdown/index.mjs +5 -0
  42. package/esm2020/src/lib/dropdown/sebgroup-green-angular-src-lib-dropdown.mjs +5 -0
  43. package/esm2020/src/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +50 -0
  44. package/esm2020/src/lib/in-page-wizard/in-page-wizard.module.mjs +18 -0
  45. package/esm2020/src/lib/in-page-wizard/index.mjs +3 -0
  46. package/esm2020/src/lib/in-page-wizard/sebgroup-green-angular-src-lib-in-page-wizard.mjs +5 -0
  47. package/esm2020/src/lib/modal/index.mjs +5 -0
  48. package/esm2020/src/lib/modal/modal-footer.directive.mjs +16 -0
  49. package/esm2020/src/lib/modal/modal-header.directive.mjs +16 -0
  50. package/esm2020/src/lib/modal/modal.component.mjs +258 -0
  51. package/esm2020/src/lib/modal/modal.module.mjs +41 -0
  52. package/esm2020/src/lib/modal/sebgroup-green-angular-src-lib-modal.mjs +5 -0
  53. package/esm2020/src/lib/pagination/index.mjs +3 -0
  54. package/esm2020/src/lib/pagination/pagination.component.mjs +175 -0
  55. package/esm2020/src/lib/pagination/pagination.module.mjs +18 -0
  56. package/esm2020/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs +5 -0
  57. package/esm2020/src/lib/progress-circle/index.mjs +3 -0
  58. package/esm2020/src/lib/progress-circle/progress-circle.component.mjs +41 -0
  59. package/esm2020/src/lib/progress-circle/progress-circle.module.mjs +18 -0
  60. package/esm2020/src/lib/progress-circle/sebgroup-green-angular-src-lib-progress-circle.mjs +5 -0
  61. package/esm2020/src/lib/segmented-control/index.mjs +3 -0
  62. package/esm2020/src/lib/segmented-control/sebgroup-green-angular-src-lib-segmented-control.mjs +5 -0
  63. package/esm2020/src/lib/segmented-control/segmented-control.component.mjs +35 -0
  64. package/esm2020/src/lib/segmented-control/segmented-control.module.mjs +19 -0
  65. package/esm2020/src/lib/shared/core-element/core-element.directive.mjs +33 -0
  66. package/esm2020/src/lib/shared/core-element/core-element.module.mjs +18 -0
  67. package/esm2020/src/lib/shared/core-element/index.mjs +3 -0
  68. package/esm2020/src/lib/shared/index.mjs +4 -0
  69. package/esm2020/src/lib/shared/on-scroll.directive.mjs +47 -0
  70. package/esm2020/src/lib/shared/sebgroup-green-angular-src-lib-shared.mjs +5 -0
  71. package/esm2020/src/lib/shared/shared.module.mjs +18 -0
  72. package/esm2020/src/lib/slider/index.mjs +3 -0
  73. package/esm2020/src/lib/slider/sebgroup-green-angular-src-lib-slider.mjs +5 -0
  74. package/esm2020/src/lib/slider/slider.component.mjs +113 -0
  75. package/esm2020/src/lib/slider/slider.module.mjs +19 -0
  76. package/esm2020/src/lib/sortable-list/index.mjs +3 -0
  77. package/esm2020/src/lib/sortable-list/sebgroup-green-angular-src-lib-sortable-list.mjs +5 -0
  78. package/esm2020/src/lib/sortable-list/sortable-list.component.mjs +181 -0
  79. package/esm2020/src/lib/sortable-list/sortable-list.module.mjs +20 -0
  80. package/fesm2015/sebgroup-green-angular-src-lib-accordion.mjs +140 -0
  81. package/fesm2015/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -0
  82. package/fesm2015/sebgroup-green-angular-src-lib-badge.mjs +102 -0
  83. package/fesm2015/sebgroup-green-angular-src-lib-badge.mjs.map +1 -0
  84. package/fesm2015/sebgroup-green-angular-src-lib-button.mjs +50 -0
  85. package/fesm2015/sebgroup-green-angular-src-lib-button.mjs.map +1 -0
  86. package/fesm2015/sebgroup-green-angular-src-lib-cell-table.mjs +272 -0
  87. package/fesm2015/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -0
  88. package/fesm2015/sebgroup-green-angular-src-lib-context-menu.mjs +104 -0
  89. package/fesm2015/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -0
  90. package/fesm2015/sebgroup-green-angular-src-lib-datepicker.mjs +166 -0
  91. package/fesm2015/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -0
  92. package/fesm2015/sebgroup-green-angular-src-lib-dropdown.mjs +266 -0
  93. package/fesm2015/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -0
  94. package/fesm2015/sebgroup-green-angular-src-lib-in-page-wizard.mjs +72 -0
  95. package/fesm2015/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -0
  96. package/fesm2015/sebgroup-green-angular-src-lib-modal.mjs +328 -0
  97. package/fesm2015/sebgroup-green-angular-src-lib-modal.mjs.map +1 -0
  98. package/fesm2015/sebgroup-green-angular-src-lib-pagination.mjs +197 -0
  99. package/fesm2015/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -0
  100. package/fesm2015/sebgroup-green-angular-src-lib-progress-circle.mjs +63 -0
  101. package/fesm2015/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -0
  102. package/fesm2015/sebgroup-green-angular-src-lib-segmented-control.mjs +58 -0
  103. package/fesm2015/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -0
  104. package/fesm2015/sebgroup-green-angular-src-lib-shared.mjs +114 -0
  105. package/fesm2015/sebgroup-green-angular-src-lib-shared.mjs.map +1 -0
  106. package/fesm2015/sebgroup-green-angular-src-lib-slider.mjs +136 -0
  107. package/fesm2015/sebgroup-green-angular-src-lib-slider.mjs.map +1 -0
  108. package/fesm2015/sebgroup-green-angular-src-lib-sortable-list.mjs +204 -0
  109. package/fesm2015/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -0
  110. package/fesm2015/sebgroup-green-angular.mjs +96 -85
  111. package/fesm2015/sebgroup-green-angular.mjs.map +1 -1
  112. package/fesm2020/sebgroup-green-angular-src-lib-accordion.mjs +138 -0
  113. package/fesm2020/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -0
  114. package/fesm2020/sebgroup-green-angular-src-lib-badge.mjs +102 -0
  115. package/fesm2020/sebgroup-green-angular-src-lib-badge.mjs.map +1 -0
  116. package/fesm2020/sebgroup-green-angular-src-lib-button.mjs +50 -0
  117. package/fesm2020/sebgroup-green-angular-src-lib-button.mjs.map +1 -0
  118. package/fesm2020/sebgroup-green-angular-src-lib-cell-table.mjs +270 -0
  119. package/fesm2020/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -0
  120. package/fesm2020/sebgroup-green-angular-src-lib-context-menu.mjs +104 -0
  121. package/fesm2020/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -0
  122. package/fesm2020/sebgroup-green-angular-src-lib-datepicker.mjs +162 -0
  123. package/fesm2020/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -0
  124. package/fesm2020/sebgroup-green-angular-src-lib-dropdown.mjs +274 -0
  125. package/fesm2020/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -0
  126. package/fesm2020/sebgroup-green-angular-src-lib-in-page-wizard.mjs +72 -0
  127. package/fesm2020/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -0
  128. package/fesm2020/sebgroup-green-angular-src-lib-modal.mjs +326 -0
  129. package/fesm2020/sebgroup-green-angular-src-lib-modal.mjs.map +1 -0
  130. package/fesm2020/sebgroup-green-angular-src-lib-pagination.mjs +197 -0
  131. package/fesm2020/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -0
  132. package/fesm2020/sebgroup-green-angular-src-lib-progress-circle.mjs +63 -0
  133. package/fesm2020/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -0
  134. package/fesm2020/sebgroup-green-angular-src-lib-segmented-control.mjs +58 -0
  135. package/fesm2020/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -0
  136. package/fesm2020/sebgroup-green-angular-src-lib-shared.mjs +113 -0
  137. package/fesm2020/sebgroup-green-angular-src-lib-shared.mjs.map +1 -0
  138. package/fesm2020/sebgroup-green-angular-src-lib-slider.mjs +135 -0
  139. package/fesm2020/sebgroup-green-angular-src-lib-slider.mjs.map +1 -0
  140. package/fesm2020/sebgroup-green-angular-src-lib-sortable-list.mjs +204 -0
  141. package/fesm2020/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -0
  142. package/fesm2020/sebgroup-green-angular.mjs +96 -85
  143. package/fesm2020/sebgroup-green-angular.mjs.map +1 -1
  144. package/lib/context-menu/context-menu.component.d.ts +1 -1
  145. package/lib/context-menu/context-menu.module.d.ts +1 -1
  146. package/lib/datepicker/datepicker.module.d.ts +2 -3
  147. package/lib/dropdown/dropdown.module.d.ts +1 -1
  148. package/lib/modal/modal.component.d.ts +2 -1
  149. package/lib/shared/index.d.ts +1 -0
  150. package/package.json +125 -4
  151. package/src/lib/accordion/accordion-list-item.component.d.ts +15 -0
  152. package/src/lib/accordion/accordion.component.d.ts +16 -0
  153. package/src/lib/accordion/accordion.module.d.ts +9 -0
  154. package/src/lib/accordion/index.d.ts +3 -0
  155. package/src/lib/badge/badge.component.d.ts +25 -0
  156. package/src/lib/badge/badge.module.d.ts +8 -0
  157. package/src/lib/badge/index.d.ts +2 -0
  158. package/src/lib/button/button.component.d.ts +9 -0
  159. package/src/lib/button/button.module.d.ts +8 -0
  160. package/src/lib/button/index.d.ts +2 -0
  161. package/src/lib/cell-table/cell-table-item.component.d.ts +14 -0
  162. package/src/lib/cell-table/cell-table.component.d.ts +44 -0
  163. package/src/lib/cell-table/cell-table.module.d.ts +10 -0
  164. package/src/lib/cell-table/cell-table.types.d.ts +34 -0
  165. package/src/lib/cell-table/cell-underline.directive.d.ts +14 -0
  166. package/src/lib/cell-table/index.d.ts +3 -0
  167. package/src/lib/context-menu/context-menu.component.d.ts +49 -0
  168. package/src/lib/context-menu/context-menu.module.d.ts +9 -0
  169. package/src/lib/context-menu/index.d.ts +2 -0
  170. package/src/lib/datepicker/datepicker.component.d.ts +66 -0
  171. package/src/lib/datepicker/datepicker.module.d.ts +9 -0
  172. package/src/lib/datepicker/index.d.ts +2 -0
  173. package/src/lib/dropdown/dropdown-button.directive.d.ts +8 -0
  174. package/src/lib/dropdown/dropdown-option.directive.d.ts +8 -0
  175. package/src/lib/dropdown/dropdown.component.d.ts +79 -0
  176. package/src/lib/dropdown/dropdown.module.d.ts +11 -0
  177. package/src/lib/dropdown/index.d.ts +4 -0
  178. package/src/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +17 -0
  179. package/src/lib/in-page-wizard/in-page-wizard.module.d.ts +8 -0
  180. package/src/lib/in-page-wizard/index.d.ts +2 -0
  181. package/src/lib/modal/index.d.ts +4 -0
  182. package/src/lib/modal/modal-footer.directive.d.ts +8 -0
  183. package/src/lib/modal/modal-header.directive.d.ts +8 -0
  184. package/src/lib/modal/modal.component.d.ts +66 -0
  185. package/src/lib/modal/modal.module.d.ts +11 -0
  186. package/src/lib/pagination/index.d.ts +2 -0
  187. package/src/lib/pagination/pagination.component.d.ts +42 -0
  188. package/src/lib/pagination/pagination.module.d.ts +8 -0
  189. package/src/lib/progress-circle/index.d.ts +2 -0
  190. package/src/lib/progress-circle/progress-circle.component.d.ts +14 -0
  191. package/src/lib/progress-circle/progress-circle.module.d.ts +8 -0
  192. package/src/lib/segmented-control/index.d.ts +2 -0
  193. package/src/lib/segmented-control/segmented-control.component.d.ts +11 -0
  194. package/src/lib/segmented-control/segmented-control.module.d.ts +9 -0
  195. package/src/lib/shared/core-element/core-element.directive.d.ts +13 -0
  196. package/src/lib/shared/core-element/core-element.module.d.ts +8 -0
  197. package/src/lib/shared/core-element/index.d.ts +2 -0
  198. package/src/lib/shared/index.d.ts +3 -0
  199. package/src/lib/shared/on-scroll.directive.d.ts +14 -0
  200. package/src/lib/shared/shared.module.d.ts +8 -0
  201. package/src/lib/slider/index.d.ts +2 -0
  202. package/src/lib/slider/slider.component.d.ts +38 -0
  203. package/src/lib/slider/slider.module.d.ts +9 -0
  204. package/src/lib/sortable-list/index.d.ts +2 -0
  205. package/src/lib/sortable-list/sortable-list.component.d.ts +91 -0
  206. package/src/lib/sortable-list/sortable-list.module.d.ts +10 -0
@@ -0,0 +1,181 @@
1
+ import { Component, ElementRef, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
+ import { moveItemInArray, transferArrayItem, } from '@angular/cdk/drag-drop';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/cdk/drag-drop";
6
+ export class NggSortableListComponent {
7
+ constructor() {
8
+ this.groups = [];
9
+ this.shouldDisplayCheckboxes = false;
10
+ this.isReadOnly = false;
11
+ this.isDraggable = true;
12
+ this.description = '';
13
+ this.suffixTemplate = null;
14
+ this.itemSelectionChanged = new EventEmitter();
15
+ this.itemOrderChanged = new EventEmitter();
16
+ this.focusedIndex = { 0: 0 };
17
+ }
18
+ /**
19
+ * Toggles the selection of a checklist item and updates its position in the list.
20
+ *
21
+ * @param item - The checklist item to update.
22
+ */
23
+ toggleSelection(item) {
24
+ item.selected = !item.selected;
25
+ this.emitCheckListItem(item);
26
+ }
27
+ /**
28
+ * Handles the onDragDrop event.
29
+ *
30
+ * @param event - The drag and drop event.
31
+ */
32
+ onDragDrop(event) {
33
+ if (event.previousContainer === event.container) {
34
+ moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
35
+ }
36
+ else {
37
+ transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);
38
+ }
39
+ this.emitItemOrderChanged([Number(event.previousContainer.id), event.previousIndex], [Number(event.container.id), event.currentIndex]);
40
+ }
41
+ /**
42
+ * Handles moving items up or down using the alt + arrow up or alt + arrow down keys.
43
+ *
44
+ * @param groupIndex - The index of the group.
45
+ * @param currentItemIndex - The current index of the item.
46
+ * @param newItemIndex - The new index of the item.
47
+ */
48
+ onAltArrowKeydown(groupIndex, currentItemIndex, newItemIndex, event) {
49
+ event.preventDefault();
50
+ let newIndex = newItemIndex;
51
+ let newGroupIndex = groupIndex;
52
+ let transfer = false;
53
+ if (newIndex > this.groups[groupIndex].items.length - 1) {
54
+ newIndex = 0;
55
+ newGroupIndex = groupIndex + 1;
56
+ transfer = true;
57
+ this.focusedIndex[groupIndex] = this.groups[groupIndex].items.length - 2;
58
+ }
59
+ else if (newIndex < 0) {
60
+ newGroupIndex = groupIndex - 1;
61
+ newIndex = this.groups[newGroupIndex].items.length;
62
+ transfer = true;
63
+ this.focusedIndex[groupIndex] = 0;
64
+ }
65
+ if (transfer) {
66
+ transferArrayItem(this.groups[groupIndex].items, this.groups[newGroupIndex].items, currentItemIndex, newIndex);
67
+ }
68
+ else {
69
+ moveItemInArray(this.groups[groupIndex].items, currentItemIndex, newIndex);
70
+ }
71
+ this.emitItemOrderChanged([groupIndex, currentItemIndex], [newGroupIndex, newIndex]);
72
+ setTimeout(() => {
73
+ this.focusItem(newGroupIndex, newIndex);
74
+ });
75
+ }
76
+ /**
77
+ * Handles focus by arrow keydown event.
78
+ *
79
+ * @param groupIndex - The index of the group.
80
+ * @param itemIndex - The index of the item.
81
+ * @param event - The keyboard event.
82
+ */
83
+ onArrowKeydown(groupIndex, itemIndex, event) {
84
+ event.preventDefault();
85
+ setTimeout(() => {
86
+ let gi = groupIndex;
87
+ if (itemIndex > this.groups[groupIndex].items.length - 1) {
88
+ gi = groupIndex + 1;
89
+ itemIndex = 0;
90
+ }
91
+ if (itemIndex < 0) {
92
+ gi = groupIndex - 1;
93
+ if (gi < 0) {
94
+ return;
95
+ }
96
+ itemIndex = this.groups[gi].items.length - 1;
97
+ }
98
+ this.focusItem(gi, itemIndex);
99
+ });
100
+ }
101
+ /**
102
+ * Emits the item order changed event.
103
+ *
104
+ * @param previousIndex - The previous index of the item.
105
+ * @param currentIndex - The current index of the item.
106
+ */
107
+ emitItemOrderChanged(previousIndex, currentIndex) {
108
+ this.itemOrderChanged.emit({
109
+ previousIndex,
110
+ currentIndex,
111
+ groups: [...this.groups],
112
+ });
113
+ }
114
+ /**
115
+ * Emits the selected checklist item through an event.
116
+ *
117
+ * @param item - The checklist item to emit.
118
+ */
119
+ emitCheckListItem(item) {
120
+ this.itemSelectionChanged.emit({ changedItem: item, groups: this.groups });
121
+ }
122
+ /**
123
+ * Focuses on a specific item in the sortable list.
124
+ *
125
+ * @param groupIndex - The index of the group.
126
+ * @param itemIndex - The index of the item.
127
+ */
128
+ focusItem(groupIndex, itemIndex) {
129
+ const groupElements = this.sortableListGroups.nativeElement.querySelectorAll('.item-list-group');
130
+ if (groupElements && groupElements.length > groupIndex) {
131
+ const itemElements = groupElements[groupIndex].querySelectorAll('.item');
132
+ if (itemElements && itemElements.length > itemIndex) {
133
+ if (this.shouldDisplayCheckboxes) {
134
+ itemElements[itemIndex].querySelector('input').focus();
135
+ }
136
+ else {
137
+ itemElements[itemIndex].focus();
138
+ }
139
+ this.focusedIndex[groupIndex] = itemIndex;
140
+ }
141
+ }
142
+ }
143
+ /**
144
+ * Checks if an item has focus.
145
+ *
146
+ * @param groupIndex - The index of the group.
147
+ * @param itemIndex - The index of the item.
148
+ */
149
+ itemHasFocus(groupIndex, itemIndex) {
150
+ if (!this.focusedIndex[groupIndex]) {
151
+ this.focusedIndex[groupIndex] = 0;
152
+ }
153
+ return this.focusedIndex[groupIndex] === itemIndex;
154
+ }
155
+ }
156
+ NggSortableListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSortableListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
157
+ NggSortableListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggSortableListComponent, selector: "ngg-sortable-list", inputs: { groups: "groups", shouldDisplayCheckboxes: "shouldDisplayCheckboxes", isReadOnly: "isReadOnly", isDraggable: "isDraggable", description: "description", suffixTemplate: "suffixTemplate" }, outputs: { itemSelectionChanged: "itemSelectionChanged", itemOrderChanged: "itemOrderChanged" }, viewQueries: [{ propertyName: "sortableListGroups", first: true, predicate: ["sortableListGroups"], descendants: true }], ngImport: i0, template: "<div class=\"item-list\">\n <ng-container>\n <p class=\"item-list-header\">\n <span class=\"item-list-header-title\">{{ description }}</span>\n </p>\n <div #sortableListGroups cdkDropListGroup>\n <div\n *ngFor=\"let group of groups; let g_i = index\"\n class=\"item-list-group\"\n [class.drag-enabled]=\"isDraggable && !isReadOnly\"\n role=\"list\"\n cdkDropList\n [cdkDropListData]=\"group.items\"\n [id]=\"g_i.toString()\"\n (cdkDropListDropped)=\"onDragDrop($event)\"\n >\n <p\n *ngIf=\"group.title && group.title.length > 0\"\n class=\"item-list-header\"\n >\n <span class=\"item-list-header-title\">{{ group.title }}</span>\n </p>\n <p\n *ngIf=\"group.description && group.description.length > 0\"\n class=\"item-list-header-description\"\n >\n {{ group.description }}\n </p>\n <div\n *ngFor=\"let checklistItem of group.items; let i = index\"\n [cdkDragDisabled]=\"!isDraggable || isReadOnly\"\n [cdkDragData]=\"checklistItem\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n class=\"item-box\"\n role=\"listitem\"\n >\n <div *cdkDragPlaceholder class=\"item-custom-placeholder\"></div>\n <label\n (keydown.alt.arrowDown)=\"onAltArrowKeydown(g_i, i, i + 1, $event)\"\n (keydown.alt.arrowUp)=\"onAltArrowKeydown(g_i, i, i - 1, $event)\"\n (keydown.arrowDown)=\"onArrowKeydown(g_i, i + 1, $event)\"\n (keydown.arrowUp)=\"onArrowKeydown(g_i, i - 1, $event)\"\n class=\"form-control item-control align-items-center item\"\n [tabindex]=\"shouldDisplayCheckboxes ? '-1' : '0'\"\n >\n <div class=\"form-control\">\n <input\n (change)=\"toggleSelection(checklistItem)\"\n [checked]=\"checklistItem.selected\"\n [disabled]=\"isReadOnly\"\n [type]=\"shouldDisplayCheckboxes ? 'checkbox' : 'hidden'\"\n />\n <div class=\"item-box-title\">\n <span name=\"agendaItemName\"\n >{{ checklistItem.name }}\n <span\n *ngIf=\"checklistItem.hasCustomSuffix\"\n class=\"item-list-suffix\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n suffixTemplate;\n context: { $implicit: checklistItem }\n \"\n class=\"user-icon\"\n >\n </ng-container>\n </span>\n </span>\n <br />\n <span *ngIf=\"!!checklistItem.description\">\n <span class=\"item-list-suffix\" name=\"agendaItemToolTip\">\n {{ checklistItem.description }}\n </span>\n <br />\n </span>\n </div>\n <i></i>\n </div>\n <div *ngIf=\"isDraggable && !isReadOnly\" class=\"item-grip-icon\">\n <i class=\"sg-icon sg-icon-grip-vertical text-primary\"></i>\n </div>\n </label>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n", styles: [".item-list{width:100%;display:block}label.item{padding:0!important}.item-box{background-color:var(--sg-card-background);color:var(--text-primary-color);display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;font-size:14px;margin:5px 0;border:1px solid var(--border-color);border-radius:4px}.form-control{line-height:20px;font-size:16px;font-weight:500}.item-list-header{display:flex;flex-direction:row;justify-content:space-between;margin-bottom:1rem}.item-list-header-title{font-weight:600;font-size:1rem;line-height:1.25rem;font-style:normal}.item-list-header-subtitle{font-size:.75rem;color:var(--text-primary-color);display:flex;justify-content:center;align-content:center}.item-list-suffix{font-weight:400;font-size:.85rem}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.item-grip-icon{font-weight:400;padding:.75rem 1rem .75rem 0rem}.cdk-drop-list.cdk-drop-list-dragging{cursor:grabbing!important;pointer-events:all!important}.item-custom-placeholder.cdk-drag-placeholder{pointer-events:all!important}.cdk-drop-list.drag-enabled:not(.cdk-drag-placeholder) label{cursor:grab}.cdk-drop-list label:focus-visible{outline-color:#333;outline-offset:4px}.item-list.cdk-drop-list-dragging .item-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1);pointer-events:all!important}.item-custom-placeholder{border:dotted 1px #999;min-height:44px;transition:transform .25s cubic-bezier(0,0,.2,1);border-radius:4px;margin:5px 0;padding:12px 12px 12px 16px}.user-icon{margin-right:.5rem}.item-control{width:100%;display:flex;flex-direction:row;justify-content:space-between}.form-control.item-layout{display:flex;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }] });
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSortableListComponent, decorators: [{
159
+ type: Component,
160
+ args: [{ selector: 'ngg-sortable-list', template: "<div class=\"item-list\">\n <ng-container>\n <p class=\"item-list-header\">\n <span class=\"item-list-header-title\">{{ description }}</span>\n </p>\n <div #sortableListGroups cdkDropListGroup>\n <div\n *ngFor=\"let group of groups; let g_i = index\"\n class=\"item-list-group\"\n [class.drag-enabled]=\"isDraggable && !isReadOnly\"\n role=\"list\"\n cdkDropList\n [cdkDropListData]=\"group.items\"\n [id]=\"g_i.toString()\"\n (cdkDropListDropped)=\"onDragDrop($event)\"\n >\n <p\n *ngIf=\"group.title && group.title.length > 0\"\n class=\"item-list-header\"\n >\n <span class=\"item-list-header-title\">{{ group.title }}</span>\n </p>\n <p\n *ngIf=\"group.description && group.description.length > 0\"\n class=\"item-list-header-description\"\n >\n {{ group.description }}\n </p>\n <div\n *ngFor=\"let checklistItem of group.items; let i = index\"\n [cdkDragDisabled]=\"!isDraggable || isReadOnly\"\n [cdkDragData]=\"checklistItem\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n class=\"item-box\"\n role=\"listitem\"\n >\n <div *cdkDragPlaceholder class=\"item-custom-placeholder\"></div>\n <label\n (keydown.alt.arrowDown)=\"onAltArrowKeydown(g_i, i, i + 1, $event)\"\n (keydown.alt.arrowUp)=\"onAltArrowKeydown(g_i, i, i - 1, $event)\"\n (keydown.arrowDown)=\"onArrowKeydown(g_i, i + 1, $event)\"\n (keydown.arrowUp)=\"onArrowKeydown(g_i, i - 1, $event)\"\n class=\"form-control item-control align-items-center item\"\n [tabindex]=\"shouldDisplayCheckboxes ? '-1' : '0'\"\n >\n <div class=\"form-control\">\n <input\n (change)=\"toggleSelection(checklistItem)\"\n [checked]=\"checklistItem.selected\"\n [disabled]=\"isReadOnly\"\n [type]=\"shouldDisplayCheckboxes ? 'checkbox' : 'hidden'\"\n />\n <div class=\"item-box-title\">\n <span name=\"agendaItemName\"\n >{{ checklistItem.name }}\n <span\n *ngIf=\"checklistItem.hasCustomSuffix\"\n class=\"item-list-suffix\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n suffixTemplate;\n context: { $implicit: checklistItem }\n \"\n class=\"user-icon\"\n >\n </ng-container>\n </span>\n </span>\n <br />\n <span *ngIf=\"!!checklistItem.description\">\n <span class=\"item-list-suffix\" name=\"agendaItemToolTip\">\n {{ checklistItem.description }}\n </span>\n <br />\n </span>\n </div>\n <i></i>\n </div>\n <div *ngIf=\"isDraggable && !isReadOnly\" class=\"item-grip-icon\">\n <i class=\"sg-icon sg-icon-grip-vertical text-primary\"></i>\n </div>\n </label>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n", styles: [".item-list{width:100%;display:block}label.item{padding:0!important}.item-box{background-color:var(--sg-card-background);color:var(--text-primary-color);display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;font-size:14px;margin:5px 0;border:1px solid var(--border-color);border-radius:4px}.form-control{line-height:20px;font-size:16px;font-weight:500}.item-list-header{display:flex;flex-direction:row;justify-content:space-between;margin-bottom:1rem}.item-list-header-title{font-weight:600;font-size:1rem;line-height:1.25rem;font-style:normal}.item-list-header-subtitle{font-size:.75rem;color:var(--text-primary-color);display:flex;justify-content:center;align-content:center}.item-list-suffix{font-weight:400;font-size:.85rem}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.item-grip-icon{font-weight:400;padding:.75rem 1rem .75rem 0rem}.cdk-drop-list.cdk-drop-list-dragging{cursor:grabbing!important;pointer-events:all!important}.item-custom-placeholder.cdk-drag-placeholder{pointer-events:all!important}.cdk-drop-list.drag-enabled:not(.cdk-drag-placeholder) label{cursor:grab}.cdk-drop-list label:focus-visible{outline-color:#333;outline-offset:4px}.item-list.cdk-drop-list-dragging .item-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1);pointer-events:all!important}.item-custom-placeholder{border:dotted 1px #999;min-height:44px;transition:transform .25s cubic-bezier(0,0,.2,1);border-radius:4px;margin:5px 0;padding:12px 12px 12px 16px}.user-icon{margin-right:.5rem}.item-control{width:100%;display:flex;flex-direction:row;justify-content:space-between}.form-control.item-layout{display:flex;justify-content:space-between}\n"] }]
161
+ }], propDecorators: { groups: [{
162
+ type: Input
163
+ }], shouldDisplayCheckboxes: [{
164
+ type: Input
165
+ }], isReadOnly: [{
166
+ type: Input
167
+ }], isDraggable: [{
168
+ type: Input
169
+ }], description: [{
170
+ type: Input
171
+ }], suffixTemplate: [{
172
+ type: Input
173
+ }], itemSelectionChanged: [{
174
+ type: Output
175
+ }], itemOrderChanged: [{
176
+ type: Output
177
+ }], sortableListGroups: [{
178
+ type: ViewChild,
179
+ args: ['sortableListGroups']
180
+ }] } });
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGFibGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9zb3J0YWJsZS1saXN0L3NvcnRhYmxlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvc29ydGFibGUtbGlzdC9zb3J0YWJsZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBRUwsZUFBZSxFQUNmLGlCQUFpQixHQUNsQixNQUFNLHdCQUF3QixDQUFBOzs7O0FBcUIvQixNQUFNLE9BQU8sd0JBQXdCO0lBTHJDO1FBTVcsV0FBTSxHQUF3QixFQUFFLENBQUE7UUFDaEMsNEJBQXVCLEdBQUcsS0FBSyxDQUFBO1FBQy9CLGVBQVUsR0FBRyxLQUFLLENBQUE7UUFDbEIsZ0JBQVcsR0FBRyxJQUFJLENBQUE7UUFDbEIsZ0JBQVcsR0FBRyxFQUFFLENBQUE7UUFDaEIsbUJBQWMsR0FBNEIsSUFBSSxDQUFBO1FBRTdDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUc3QyxDQUFBO1FBQ00scUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBSXpDLENBQUE7UUFJSixpQkFBWSxHQUEyQixFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQTtLQXFMaEQ7SUFuTEM7Ozs7T0FJRztJQUNILGVBQWUsQ0FBQyxJQUFzQjtRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQTtRQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFD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QUlHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFNMEIsa0JBQWtCO3NCQUFsRCxTQUFTO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ2RrRHJhZ0Ryb3AsXG4gIG1vdmVJdGVtSW5BcnJheSxcbiAgdHJhbnNmZXJBcnJheUl0ZW0sXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnXG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydGFibGVMaXN0SXRlbSB7XG4gIGlkOiBhbnlcbiAgbmFtZTogc3RyaW5nXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIHNlbGVjdGVkPzogYm9vbGVhblxuICBoYXNDdXN0b21TdWZmaXg/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydGFibGVMaXN0R3JvdXAge1xuICBpdGVtczogU29ydGFibGVMaXN0SXRlbVtdXG4gIHRpdGxlOiBzdHJpbmdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdnLXNvcnRhYmxlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc29ydGFibGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NvcnRhYmxlLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdnU29ydGFibGVMaXN0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgZ3JvdXBzOiBTb3J0YWJsZUxpc3RHcm91cFtdID0gW11cbiAgQElucHV0KCkgc2hvdWxkRGlzcGxheUNoZWNrYm94ZXMgPSBmYWxzZVxuICBASW5wdXQoKSBpc1JlYWRPbmx5ID0gZmFsc2VcbiAgQElucHV0KCkgaXNEcmFnZ2FibGUgPSB0cnVlXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJydcbiAgQElucHV0KCkgc3VmZml4VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbFxuXG4gIEBPdXRwdXQoKSBpdGVtU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIGNoYW5nZWRJdGVtOiBTb3J0YWJsZUxpc3RJdGVtXG4gICAgZ3JvdXBzOiBTb3J0YWJsZUxpc3RHcm91cFtdXG4gIH0+KClcbiAgQE91dHB1dCgpIGl0ZW1PcmRlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBwcmV2aW91c0luZGV4OiBbbnVtYmVyLCBudW1iZXJdXG4gICAgY3VycmVudEluZGV4OiBbbnVtYmVyLCBudW1iZXJdXG4gICAgZ3JvdXBzOiBTb3J0YWJsZUxpc3RHcm91cFtdXG4gIH0+KClcblxuICBAVmlld0NoaWxkKCdzb3J0YWJsZUxpc3RHcm91cHMnKSBzb3J0YWJsZUxpc3RHcm91cHMhOiBFbGVtZW50UmVmXG5cbiAgZm9jdXNlZEluZGV4OiBSZWNvcmQ8bnVtYmVyLCBudW1iZXI+ID0geyAwOiAwIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgc2VsZWN0aW9uIG9mIGEgY2hlY2tsaXN0IGl0ZW0gYW5kIHVwZGF0ZXMgaXRzIHBvc2l0aW9uIGluIHRoZSBsaXN0LlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbSAtIFRoZSBjaGVja2xpc3QgaXRlbSB0byB1cGRhdGUuXG4gICAqL1xuICB0b2dnbGVTZWxlY3Rpb24oaXRlbTogU29ydGFibGVMaXN0SXRlbSkge1xuICAgIGl0ZW0uc2VsZWN0ZWQgPSAhaXRlbS5zZWxlY3RlZFxuICAgIHRoaXMuZW1pdENoZWNrTGlzdEl0ZW0oaXRlbSlcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBvbkRyYWdEcm9wIGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZHJhZyBhbmQgZHJvcCBldmVudC5cbiAgICovXG4gIG9uRHJhZ0Ryb3AoZXZlbnQ6IENka0RyYWdEcm9wPFNvcnRhYmxlTGlzdEl0ZW1bXT4pIHtcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xuICAgICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgICBldmVudC5jb250YWluZXIuZGF0YSxcbiAgICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgICAgZXZlbnQuY3VycmVudEluZGV4LFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShcbiAgICAgICAgZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSxcbiAgICAgICAgZXZlbnQuY29udGFpbmVyLmRhdGEsXG4gICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleCxcbiAgICAgIClcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRJdGVtT3JkZXJDaGFuZ2VkKFxuICAgICAgW051bWJlcihldmVudC5wcmV2aW91c0NvbnRhaW5lci5pZCksIGV2ZW50LnByZXZpb3VzSW5kZXhdLFxuICAgICAgW051bWJlcihldmVudC5jb250YWluZXIuaWQpLCBldmVudC5jdXJyZW50SW5kZXhdLFxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIG1vdmluZyBpdGVtcyB1cCBvciBkb3duIHVzaW5nIHRoZSBhbHQgKyBhcnJvdyB1cCBvciBhbHQgKyBhcnJvdyBkb3duIGtleXMuXG4gICAqXG4gICAqIEBwYXJhbSBncm91cEluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSBncm91cC5cbiAgICogQHBhcmFtIGN1cnJlbnRJdGVtSW5kZXggLSBUaGUgY3VycmVudCBpbmRleCBvZiB0aGUgaXRlbS5cbiAgICogQHBhcmFtIG5ld0l0ZW1JbmRleCAtIFRoZSBuZXcgaW5kZXggb2YgdGhlIGl0ZW0uXG4gICAqL1xuICBvbkFsdEFycm93S2V5ZG93bihcbiAgICBncm91cEluZGV4OiBudW1iZXIsXG4gICAgY3VycmVudEl0ZW1JbmRleDogbnVtYmVyLFxuICAgIG5ld0l0ZW1JbmRleDogbnVtYmVyLFxuICAgIGV2ZW50OiBhbnksXG4gICkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcblxuICAgIGxldCBuZXdJbmRleCA9IG5ld0l0ZW1JbmRleFxuICAgIGxldCBuZXdHcm91cEluZGV4ID0gZ3JvdXBJbmRleFxuICAgIGxldCB0cmFuc2ZlciA9IGZhbHNlXG5cbiAgICBpZiAobmV3SW5kZXggPiB0aGlzLmdyb3Vwc1tncm91cEluZGV4XS5pdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICBuZXdJbmRleCA9IDBcbiAgICAgIG5ld0dyb3VwSW5kZXggPSBncm91cEluZGV4ICsgMVxuICAgICAgdHJhbnNmZXIgPSB0cnVlXG4gICAgICB0aGlzLmZvY3VzZWRJbmRleFtncm91cEluZGV4XSA9IHRoaXMuZ3JvdXBzW2dyb3VwSW5kZXhdLml0ZW1zLmxlbmd0aCAtIDJcbiAgICB9IGVsc2UgaWYgKG5ld0luZGV4IDwgMCkge1xuICAgICAgbmV3R3JvdXBJbmRleCA9IGdyb3VwSW5kZXggLSAxXG4gICAgICBuZXdJbmRleCA9IHRoaXMuZ3JvdXBzW25ld0dyb3VwSW5kZXhdLml0ZW1zLmxlbmd0aFxuICAgICAgdHJhbnNmZXIgPSB0cnVlXG4gICAgICB0aGlzLmZvY3VzZWRJbmRleFtncm91cEluZGV4XSA9IDBcbiAgICB9XG5cbiAgICBpZiAodHJhbnNmZXIpIHtcbiAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKFxuICAgICAgICB0aGlzLmdyb3Vwc1tncm91cEluZGV4XS5pdGVtcyxcbiAgICAgICAgdGhpcy5ncm91cHNbbmV3R3JvdXBJbmRleF0uaXRlbXMsXG4gICAgICAgIGN1cnJlbnRJdGVtSW5kZXgsXG4gICAgICAgIG5ld0luZGV4LFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5ncm91cHNbZ3JvdXBJbmRleF0uaXRlbXMsIGN1cnJlbnRJdGVtSW5kZXgsIG5ld0luZGV4KVxuICAgIH1cblxuICAgIHRoaXMuZW1pdEl0ZW1PcmRlckNoYW5nZWQoXG4gICAgICBbZ3JvdXBJbmRleCwgY3VycmVudEl0ZW1JbmRleF0sXG4gICAgICBbbmV3R3JvdXBJbmRleCwgbmV3SW5kZXhdLFxuICAgIClcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb2N1c0l0ZW0obmV3R3JvdXBJbmRleCwgbmV3SW5kZXgpXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGZvY3VzIGJ5IGFycm93IGtleWRvd24gZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBncm91cEluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSBncm91cC5cbiAgICogQHBhcmFtIGl0ZW1JbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgaXRlbS5cbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGtleWJvYXJkIGV2ZW50LlxuICAgKi9cbiAgb25BcnJvd0tleWRvd24oZ3JvdXBJbmRleDogbnVtYmVyLCBpdGVtSW5kZXg6IG51bWJlciwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgbGV0IGdpID0gZ3JvdXBJbmRleFxuXG4gICAgICBpZiAoaXRlbUluZGV4ID4gdGhpcy5ncm91cHNbZ3JvdXBJbmRleF0uaXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICBnaSA9IGdyb3VwSW5kZXggKyAxXG4gICAgICAgIGl0ZW1JbmRleCA9IDBcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW1JbmRleCA8IDApIHtcbiAgICAgICAgZ2kgPSBncm91cEluZGV4IC0gMVxuICAgICAgICBpZiAoZ2kgPCAwKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgaXRlbUluZGV4ID0gdGhpcy5ncm91cHNbZ2ldLml0ZW1zLmxlbmd0aCAtIDFcbiAgICAgIH1cblxuICAgICAgdGhpcy5mb2N1c0l0ZW0oZ2ksIGl0ZW1JbmRleClcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBpdGVtIG9yZGVyIGNoYW5nZWQgZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBwcmV2aW91c0luZGV4IC0gVGhlIHByZXZpb3VzIGluZGV4IG9mIHRoZSBpdGVtLlxuICAgKiBAcGFyYW0gY3VycmVudEluZGV4IC0gVGhlIGN1cnJlbnQgaW5kZXggb2YgdGhlIGl0ZW0uXG4gICAqL1xuICBwcml2YXRlIGVtaXRJdGVtT3JkZXJDaGFuZ2VkKFxuICAgIHByZXZpb3VzSW5kZXg6IFtudW1iZXIsIG51bWJlcl0sXG4gICAgY3VycmVudEluZGV4OiBbbnVtYmVyLCBudW1iZXJdLFxuICApIHtcbiAgICB0aGlzLml0ZW1PcmRlckNoYW5nZWQuZW1pdCh7XG4gICAgICBwcmV2aW91c0luZGV4LFxuICAgICAgY3VycmVudEluZGV4LFxuICAgICAgZ3JvdXBzOiBbLi4udGhpcy5ncm91cHNdLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgdGhlIHNlbGVjdGVkIGNoZWNrbGlzdCBpdGVtIHRocm91Z2ggYW4gZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtIC0gVGhlIGNoZWNrbGlzdCBpdGVtIHRvIGVtaXQuXG4gICAqL1xuICBwcml2YXRlIGVtaXRDaGVja0xpc3RJdGVtKGl0ZW06IFNvcnRhYmxlTGlzdEl0ZW0pIHtcbiAgICB0aGlzLml0ZW1TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoeyBjaGFuZ2VkSXRlbTogaXRlbSwgZ3JvdXBzOiB0aGlzLmdyb3VwcyB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgb24gYSBzcGVjaWZpYyBpdGVtIGluIHRoZSBzb3J0YWJsZSBsaXN0LlxuICAgKlxuICAgKiBAcGFyYW0gZ3JvdXBJbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgZ3JvdXAuXG4gICAqIEBwYXJhbSBpdGVtSW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIGl0ZW0uXG4gICAqL1xuICBwcml2YXRlIGZvY3VzSXRlbShncm91cEluZGV4OiBudW1iZXIsIGl0ZW1JbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZ3JvdXBFbGVtZW50cyA9XG4gICAgICB0aGlzLnNvcnRhYmxlTGlzdEdyb3Vwcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5pdGVtLWxpc3QtZ3JvdXAnKVxuXG4gICAgaWYgKGdyb3VwRWxlbWVudHMgJiYgZ3JvdXBFbGVtZW50cy5sZW5ndGggPiBncm91cEluZGV4KSB7XG4gICAgICBjb25zdCBpdGVtRWxlbWVudHMgPSBncm91cEVsZW1lbnRzW2dyb3VwSW5kZXhdLnF1ZXJ5U2VsZWN0b3JBbGwoJy5pdGVtJylcbiAgICAgIGlmIChpdGVtRWxlbWVudHMgJiYgaXRlbUVsZW1lbnRzLmxlbmd0aCA+IGl0ZW1JbmRleCkge1xuICAgICAgICBpZiAodGhpcy5zaG91bGREaXNwbGF5Q2hlY2tib3hlcykge1xuICAgICAgICAgIGl0ZW1FbGVtZW50c1tpdGVtSW5kZXhdLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZm9jdXMoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1FbGVtZW50c1tpdGVtSW5kZXhdLmZvY3VzKClcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvY3VzZWRJbmRleFtncm91cEluZGV4XSA9IGl0ZW1JbmRleFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYW4gaXRlbSBoYXMgZm9jdXMuXG4gICAqXG4gICAqIEBwYXJhbSBncm91cEluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSBncm91cC5cbiAgICogQHBhcmFtIGl0ZW1JbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgaXRlbS5cbiAgICovXG4gIGl0ZW1IYXNGb2N1cyhncm91cEluZGV4OiBudW1iZXIsIGl0ZW1JbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLmZvY3VzZWRJbmRleFtncm91cEluZGV4XSkge1xuICAgICAgdGhpcy5mb2N1c2VkSW5kZXhbZ3JvdXBJbmRleF0gPSAwXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZvY3VzZWRJbmRleFtncm91cEluZGV4XSA9PT0gaXRlbUluZGV4XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpdGVtLWxpc3RcIj5cbiAgPG5nLWNvbnRhaW5lcj5cbiAgICA8cCBjbGFzcz1cIml0ZW0tbGlzdC1oZWFkZXJcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbS1saXN0LWhlYWRlci10aXRsZVwiPnt7IGRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgIDwvcD5cbiAgICA8ZGl2ICNzb3J0YWJsZUxpc3RHcm91cHMgY2RrRHJvcExpc3RHcm91cD5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGdyb3VwczsgbGV0IGdfaSA9IGluZGV4XCJcbiAgICAgICAgY2xhc3M9XCJpdGVtLWxpc3QtZ3JvdXBcIlxuICAgICAgICBbY2xhc3MuZHJhZy1lbmFibGVkXT1cImlzRHJhZ2dhYmxlICYmICFpc1JlYWRPbmx5XCJcbiAgICAgICAgcm9sZT1cImxpc3RcIlxuICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImdyb3VwLml0ZW1zXCJcbiAgICAgICAgW2lkXT1cImdfaS50b1N0cmluZygpXCJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyYWdEcm9wKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8cFxuICAgICAgICAgICpuZ0lmPVwiZ3JvdXAudGl0bGUgJiYgZ3JvdXAudGl0bGUubGVuZ3RoID4gMFwiXG4gICAgICAgICAgY2xhc3M9XCJpdGVtLWxpc3QtaGVhZGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbS1saXN0LWhlYWRlci10aXRsZVwiPnt7IGdyb3VwLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICA8L3A+XG4gICAgICAgIDxwXG4gICAgICAgICAgKm5nSWY9XCJncm91cC5kZXNjcmlwdGlvbiAmJiBncm91cC5kZXNjcmlwdGlvbi5sZW5ndGggPiAwXCJcbiAgICAgICAgICBjbGFzcz1cIml0ZW0tbGlzdC1oZWFkZXItZGVzY3JpcHRpb25cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZ3JvdXAuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNoZWNrbGlzdEl0ZW0gb2YgZ3JvdXAuaXRlbXM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWlzRHJhZ2dhYmxlIHx8IGlzUmVhZE9ubHlcIlxuICAgICAgICAgIFtjZGtEcmFnRGF0YV09XCJjaGVja2xpc3RJdGVtXCJcbiAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieVwiXG4gICAgICAgICAgY2xhc3M9XCJpdGVtLWJveFwiXG4gICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgKmNka0RyYWdQbGFjZWhvbGRlciBjbGFzcz1cIml0ZW0tY3VzdG9tLXBsYWNlaG9sZGVyXCI+PC9kaXY+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAoa2V5ZG93bi5hbHQuYXJyb3dEb3duKT1cIm9uQWx0QXJyb3dLZXlkb3duKGdfaSwgaSwgaSArIDEsICRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24uYWx0LmFycm93VXApPVwib25BbHRBcnJvd0tleWRvd24oZ19pLCBpLCBpIC0gMSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5hcnJvd0Rvd24pPVwib25BcnJvd0tleWRvd24oZ19pLCBpICsgMSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5hcnJvd1VwKT1cIm9uQXJyb3dLZXlkb3duKGdfaSwgaSAtIDEsICRldmVudClcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaXRlbS1jb250cm9sIGFsaWduLWl0ZW1zLWNlbnRlciBpdGVtXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCJzaG91bGREaXNwbGF5Q2hlY2tib3hlcyA/ICctMScgOiAnMCdcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVTZWxlY3Rpb24oY2hlY2tsaXN0SXRlbSlcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNoZWNrbGlzdEl0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJzaG91bGREaXNwbGF5Q2hlY2tib3hlcyA/ICdjaGVja2JveCcgOiAnaGlkZGVuJ1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWJveC10aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIG5hbWU9XCJhZ2VuZGFJdGVtTmFtZVwiXG4gICAgICAgICAgICAgICAgICA+e3sgY2hlY2tsaXN0SXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrbGlzdEl0ZW0uaGFzQ3VzdG9tU3VmZml4XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpdGVtLWxpc3Qtc3VmZml4XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXhUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjaGVja2xpc3RJdGVtIH1cbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhIWNoZWNrbGlzdEl0ZW0uZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbS1saXN0LXN1ZmZpeFwiIG5hbWU9XCJhZ2VuZGFJdGVtVG9vbFRpcFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBjaGVja2xpc3RJdGVtLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8aT48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0RyYWdnYWJsZSAmJiAhaXNSZWFkT25seVwiIGNsYXNzPVwiaXRlbS1ncmlwLWljb25cIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJzZy1pY29uIHNnLWljb24tZ3JpcC12ZXJ0aWNhbCB0ZXh0LXByaW1hcnlcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,20 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { NggSortableListComponent } from './sortable-list.component';
5
+ import { DragDropModule } from '@angular/cdk/drag-drop';
6
+ import * as i0 from "@angular/core";
7
+ export class NggSortableListModule {
8
+ }
9
+ NggSortableListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSortableListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ NggSortableListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggSortableListModule, declarations: [NggSortableListComponent], imports: [CommonModule, FormsModule, DragDropModule], exports: [NggSortableListComponent] });
11
+ NggSortableListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSortableListModule, imports: [CommonModule, FormsModule, DragDropModule] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSortableListModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [CommonModule, FormsModule, DragDropModule],
16
+ exports: [NggSortableListComponent],
17
+ declarations: [NggSortableListComponent],
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGFibGUtbGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9zb3J0YWJsZS1saXN0L3NvcnRhYmxlLWxpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7O0FBT3ZELE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixpQkFGakIsd0JBQXdCLGFBRjdCLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxhQUN6Qyx3QkFBd0I7bUhBR3ZCLHFCQUFxQixZQUp0QixZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWM7MkZBSXhDLHFCQUFxQjtrQkFMakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQztvQkFDcEQsT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ25DLFlBQVksRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBOZ2dTb3J0YWJsZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL3NvcnRhYmxlLWxpc3QuY29tcG9uZW50J1xuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJ1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgRHJhZ0Ryb3BNb2R1bGVdLFxuICBleHBvcnRzOiBbTmdnU29ydGFibGVMaXN0Q29tcG9uZW50XSxcbiAgZGVjbGFyYXRpb25zOiBbTmdnU29ydGFibGVMaXN0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTmdnU29ydGFibGVMaXN0TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,140 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, Input, Output, ContentChildren, NgModule } from '@angular/core';
3
+ import { randomId } from '@sebgroup/extract';
4
+ import * as i1 from '@angular/common';
5
+ import { CommonModule } from '@angular/common';
6
+
7
+ class NggAccordionListItemComponent {
8
+ constructor() {
9
+ this.id = randomId();
10
+ this.listItemHeader = '';
11
+ this.listItemSubHeader = '';
12
+ this.expandedChange = new EventEmitter();
13
+ this.contentHeight = '0px';
14
+ this.isExpanded = false;
15
+ }
16
+ shrink() {
17
+ this.isExpanded = false;
18
+ this.contentHeight = '0px';
19
+ }
20
+ expand() {
21
+ this.isExpanded = true;
22
+ this.contentHeight = 'auto';
23
+ }
24
+ toggleExpanded() {
25
+ this.isExpanded = !this.isExpanded;
26
+ if (this.isExpanded) {
27
+ this.contentHeight = 'auto';
28
+ }
29
+ else {
30
+ this.contentHeight = '0px';
31
+ }
32
+ this.expandedChange.emit(this);
33
+ }
34
+ }
35
+ NggAccordionListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
+ NggAccordionListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggAccordionListItemComponent, selector: "div[ngg-accordion-list-item]", inputs: { id: "id", listItemHeader: "listItemHeader", listItemSubHeader: "listItemSubHeader" }, outputs: { expandedChange: "expandedChange" }, ngImport: i0, template: "<ng-container data-testid=\"accordion-list-item-root\">\n <div role=\"heading\" aria-level=\"2\" [attr.id]=\"id\">\n <button\n data-testid=\"accordion-list-item-expander-button\"\n [attr.id]=\"id + '_header'\"\n (click)=\"toggleExpanded()\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"this.isExpanded\"\n [attr.aria-controls]=\"id + '_section'\"\n >\n <span data-testid=\"accordion-list-item-header\">{{ listItemHeader }}</span>\n <span data-testid=\"accordion-list-item-subheader\">{{\n listItemSubHeader\n }}</span>\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.8095 9.22817L18.1907 8.60942C18.0438 8.46255 17.8063 8.46255 17.6595 8.60942L12.0001 14.2563L6.34072 8.60942C6.19385 8.46255 5.95635 8.46255 5.80947 8.60942L5.19072 9.22817C5.04385 9.37505 5.04385 9.61255 5.19072 9.75942L11.7345 16.3032C11.8813 16.45 12.1188 16.45 12.2657 16.3032L18.8095 9.75942C18.9563 9.61255 18.9563 9.37505 18.8095 9.22817Z\"\n fill=\"#333333\"\n />\n </svg>\n </button>\n <div\n role=\"region\"\n [hidden]=\"!this.isExpanded\"\n [ngStyle]=\"{ height: this.contentHeight }\"\n [id]=\"id + '_section'\"\n [attr.aria-labelledby]=\"id + '_header'\"\n data-testid=\"accordion-list-item-content\"\n >\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionListItemComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: 'div[ngg-accordion-list-item]', template: "<ng-container data-testid=\"accordion-list-item-root\">\n <div role=\"heading\" aria-level=\"2\" [attr.id]=\"id\">\n <button\n data-testid=\"accordion-list-item-expander-button\"\n [attr.id]=\"id + '_header'\"\n (click)=\"toggleExpanded()\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"this.isExpanded\"\n [attr.aria-controls]=\"id + '_section'\"\n >\n <span data-testid=\"accordion-list-item-header\">{{ listItemHeader }}</span>\n <span data-testid=\"accordion-list-item-subheader\">{{\n listItemSubHeader\n }}</span>\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.8095 9.22817L18.1907 8.60942C18.0438 8.46255 17.8063 8.46255 17.6595 8.60942L12.0001 14.2563L6.34072 8.60942C6.19385 8.46255 5.95635 8.46255 5.80947 8.60942L5.19072 9.22817C5.04385 9.37505 5.04385 9.61255 5.19072 9.75942L11.7345 16.3032C11.8813 16.45 12.1188 16.45 12.2657 16.3032L18.8095 9.75942C18.9563 9.61255 18.9563 9.37505 18.8095 9.22817Z\"\n fill=\"#333333\"\n />\n </svg>\n </button>\n <div\n role=\"region\"\n [hidden]=\"!this.isExpanded\"\n [ngStyle]=\"{ height: this.contentHeight }\"\n [id]=\"id + '_section'\"\n [attr.aria-labelledby]=\"id + '_header'\"\n data-testid=\"accordion-list-item-content\"\n >\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
40
+ }], propDecorators: { id: [{
41
+ type: Input
42
+ }], listItemHeader: [{
43
+ type: Input
44
+ }], listItemSubHeader: [{
45
+ type: Input
46
+ }], expandedChange: [{
47
+ type: Output
48
+ }] } });
49
+
50
+ class NggAccordionComponent {
51
+ constructor() {
52
+ this.closeOthers = false;
53
+ }
54
+ get expandAll() {
55
+ return this._expandAll;
56
+ }
57
+ set expandAll(value) {
58
+ var _a, _b;
59
+ if (value === this._expandAll)
60
+ return;
61
+ if (this._expandAll) {
62
+ (_a = this.expandAllSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
63
+ }
64
+ this._expandAll = value;
65
+ this.expandAllSubscription = (_b = this._expandAll) === null || _b === void 0 ? void 0 : _b.subscribe(() => {
66
+ if (this.closeOthers === false) {
67
+ const itemArray = this.items ? Array.from(this.items) : undefined;
68
+ if (itemArray) {
69
+ for (const i of itemArray) {
70
+ i.expand();
71
+ }
72
+ }
73
+ }
74
+ });
75
+ }
76
+ ngAfterContentChecked() {
77
+ if (this.closeOthers) {
78
+ const itemArray = this.items ? Array.from(this.items) : undefined;
79
+ if (itemArray) {
80
+ for (const i of itemArray) {
81
+ i.expandedChange.subscribe((child) => this.onChildExpanded(child));
82
+ }
83
+ }
84
+ }
85
+ }
86
+ ngOnDestroy() {
87
+ var _a;
88
+ if (this.closeOthers) {
89
+ const itemArray = this.items ? Array.from(this.items) : undefined;
90
+ if (itemArray) {
91
+ for (const i of itemArray) {
92
+ i.expandedChange.unsubscribe();
93
+ }
94
+ }
95
+ }
96
+ (_a = this.expandAllSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
97
+ }
98
+ onChildExpanded(childIdentity) {
99
+ if (this.closeOthers && childIdentity.isExpanded && this.items) {
100
+ this.items.forEach((item) => {
101
+ if (item !== childIdentity)
102
+ item.shrink();
103
+ });
104
+ }
105
+ }
106
+ }
107
+ NggAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
108
+ NggAccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggAccordionComponent, selector: "ngg-accordion", inputs: { closeOthers: "closeOthers", expandAll: "expandAll" }, queries: [{ propertyName: "items", predicate: NggAccordionListItemComponent }], ngImport: i0, template: "<div class=\"accordion\" data-testid=\"accordion-root\">\n <ng-content></ng-content>\n</div>\n" });
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionComponent, decorators: [{
110
+ type: Component,
111
+ args: [{ selector: 'ngg-accordion', template: "<div class=\"accordion\" data-testid=\"accordion-root\">\n <ng-content></ng-content>\n</div>\n" }]
112
+ }], propDecorators: { items: [{
113
+ type: ContentChildren,
114
+ args: [NggAccordionListItemComponent]
115
+ }], closeOthers: [{
116
+ type: Input
117
+ }], expandAll: [{
118
+ type: Input
119
+ }] } });
120
+
121
+ class NggAccordionModule {
122
+ }
123
+ NggAccordionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
124
+ NggAccordionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionModule, declarations: [NggAccordionListItemComponent, NggAccordionComponent], imports: [CommonModule], exports: [NggAccordionListItemComponent, NggAccordionComponent] });
125
+ NggAccordionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionModule, imports: [CommonModule] });
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionModule, decorators: [{
127
+ type: NgModule,
128
+ args: [{
129
+ imports: [CommonModule],
130
+ exports: [NggAccordionListItemComponent, NggAccordionComponent],
131
+ declarations: [NggAccordionListItemComponent, NggAccordionComponent],
132
+ }]
133
+ }] });
134
+
135
+ /**
136
+ * Generated bundle index. Do not edit.
137
+ */
138
+
139
+ export { NggAccordionComponent, NggAccordionListItemComponent, NggAccordionModule };
140
+ //# sourceMappingURL=sebgroup-green-angular-src-lib-accordion.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sebgroup-green-angular-src-lib-accordion.mjs","sources":["../../../../libs/angular/src/lib/accordion/accordion-list-item.component.ts","../../../../libs/angular/src/lib/accordion/accordion-list-item.component.html","../../../../libs/angular/src/lib/accordion/accordion.component.ts","../../../../libs/angular/src/lib/accordion/accordion.component.html","../../../../libs/angular/src/lib/accordion/accordion.module.ts","../../../../libs/angular/src/lib/accordion/sebgroup-green-angular-src-lib-accordion.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core'\nimport { randomId } from '@sebgroup/extract'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[ngg-accordion-list-item]',\n templateUrl: './accordion-list-item.component.html',\n})\nexport class NggAccordionListItemComponent {\n @Input() public id: string = randomId()\n @Input() public listItemHeader = ''\n @Input() public listItemSubHeader = ''\n @Output() public expandedChange: EventEmitter<NggAccordionListItemComponent> =\n new EventEmitter<NggAccordionListItemComponent>()\n\n public contentHeight = '0px'\n public isExpanded = false\n\n public shrink(): void {\n this.isExpanded = false\n this.contentHeight = '0px'\n }\n\n public expand(): void {\n this.isExpanded = true\n this.contentHeight = 'auto'\n }\n\n public toggleExpanded(): void {\n this.isExpanded = !this.isExpanded\n if (this.isExpanded) {\n this.contentHeight = 'auto'\n } else {\n this.contentHeight = '0px'\n }\n\n this.expandedChange.emit(this)\n }\n}\n","<ng-container data-testid=\"accordion-list-item-root\">\n <div role=\"heading\" aria-level=\"2\" [attr.id]=\"id\">\n <button\n data-testid=\"accordion-list-item-expander-button\"\n [attr.id]=\"id + '_header'\"\n (click)=\"toggleExpanded()\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"this.isExpanded\"\n [attr.aria-controls]=\"id + '_section'\"\n >\n <span data-testid=\"accordion-list-item-header\">{{ listItemHeader }}</span>\n <span data-testid=\"accordion-list-item-subheader\">{{\n listItemSubHeader\n }}</span>\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.8095 9.22817L18.1907 8.60942C18.0438 8.46255 17.8063 8.46255 17.6595 8.60942L12.0001 14.2563L6.34072 8.60942C6.19385 8.46255 5.95635 8.46255 5.80947 8.60942L5.19072 9.22817C5.04385 9.37505 5.04385 9.61255 5.19072 9.75942L11.7345 16.3032C11.8813 16.45 12.1188 16.45 12.2657 16.3032L18.8095 9.75942C18.9563 9.61255 18.9563 9.37505 18.8095 9.22817Z\"\n fill=\"#333333\"\n />\n </svg>\n </button>\n <div\n role=\"region\"\n [hidden]=\"!this.isExpanded\"\n [ngStyle]=\"{ height: this.contentHeight }\"\n [id]=\"id + '_section'\"\n [attr.aria-labelledby]=\"id + '_header'\"\n data-testid=\"accordion-list-item-content\"\n >\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</ng-container>\n","import {\n AfterContentChecked,\n Component,\n ContentChildren,\n Input,\n OnDestroy,\n QueryList,\n} from '@angular/core'\nimport { Observable, Subscription } from 'rxjs'\nimport { NggAccordionListItemComponent } from './accordion-list-item.component'\n\n@Component({\n selector: 'ngg-accordion',\n templateUrl: './accordion.component.html',\n})\nexport class NggAccordionComponent implements AfterContentChecked, OnDestroy {\n @ContentChildren(NggAccordionListItemComponent) private items:\n | QueryList<NggAccordionListItemComponent>\n | undefined\n private _expandAll: Observable<void> | undefined\n private expandAllSubscription: Subscription | undefined\n @Input() public closeOthers = false\n @Input()\n public get expandAll(): Observable<void> | undefined {\n return this._expandAll\n }\n public set expandAll(value: Observable<void> | undefined) {\n if (value === this._expandAll) return\n if (this._expandAll) {\n this.expandAllSubscription?.unsubscribe()\n }\n\n this._expandAll = value\n this.expandAllSubscription = this._expandAll?.subscribe(() => {\n if (this.closeOthers === false) {\n const itemArray = this.items ? Array.from(this.items) : undefined\n if (itemArray) {\n for (const i of itemArray) {\n i.expand()\n }\n }\n }\n })\n }\n\n public ngAfterContentChecked(): void {\n if (this.closeOthers) {\n const itemArray = this.items ? Array.from(this.items) : undefined\n if (itemArray) {\n for (const i of itemArray) {\n i.expandedChange.subscribe((child) => this.onChildExpanded(child))\n }\n }\n }\n }\n\n public ngOnDestroy(): void {\n if (this.closeOthers) {\n const itemArray = this.items ? Array.from(this.items) : undefined\n if (itemArray) {\n for (const i of itemArray) {\n i.expandedChange.unsubscribe()\n }\n }\n }\n\n this.expandAllSubscription?.unsubscribe()\n }\n\n private onChildExpanded(childIdentity: NggAccordionListItemComponent) {\n if (this.closeOthers && childIdentity.isExpanded && this.items) {\n this.items.forEach((item) => {\n if (item !== childIdentity) item.shrink()\n })\n }\n }\n}\n","<div class=\"accordion\" data-testid=\"accordion-root\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { NggAccordionListItemComponent } from './accordion-list-item.component'\nimport { NggAccordionComponent } from './accordion.component'\n\n@NgModule({\n imports: [CommonModule],\n exports: [NggAccordionListItemComponent, NggAccordionComponent],\n declarations: [NggAccordionListItemComponent, NggAccordionComponent],\n})\nexport class NggAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, ChangeDetectionStrategy, Input, HostBinding, Output, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+
6
+ class NggBadgeComponent {
7
+ //eslint-disable-next-line
8
+ constructor() {
9
+ /** The color of the component */
10
+ this.badgeType = '';
11
+ /** Callback when component is dismissed */
12
+ this.handleClose = new EventEmitter();
13
+ }
14
+ /** Flag whether the component can be dismissed */
15
+ set isCloseable(value) {
16
+ this._isCloseable = value;
17
+ }
18
+ get isCloseable() {
19
+ return this._isCloseable === '' || !!this._isCloseable;
20
+ }
21
+ get class() {
22
+ return ['badge', this.badgeType].join(' ');
23
+ }
24
+ ngOnInit() {
25
+ if (!!this.customColor || !!this.customBackgroundColor) {
26
+ this.badgeType = '';
27
+ }
28
+ }
29
+ close(e) {
30
+ this.handleClose.emit(e);
31
+ }
32
+ }
33
+ NggBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
34
+ NggBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggBadgeComponent, selector: "[ngg-badge]", inputs: { badgeType: "badgeType", isCloseable: "isCloseable", closeText: "closeText", customColor: "customColor", customBackgroundColor: "customBackgroundColor" }, outputs: { handleClose: "handleClose" }, host: { properties: { "style.color": "this.customColor", "style.background-color": "this.customBackgroundColor", "class": "this.class" } }, ngImport: i0, template: `
35
+ <strong>
36
+ <ng-content></ng-content>
37
+ </strong>
38
+ <button *ngIf="isCloseable" class="close" (click)="close($event)">
39
+ {{ closeText }}
40
+ <i></i>
41
+ </button>
42
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggBadgeComponent, decorators: [{
44
+ type: Component,
45
+ args: [{
46
+ // we need to disable this warning since we don't want the badge component to create a new element
47
+ // eslint-disable-next-line @angular-eslint/component-selector
48
+ selector: '[ngg-badge]',
49
+ template: `
50
+ <strong>
51
+ <ng-content></ng-content>
52
+ </strong>
53
+ <button *ngIf="isCloseable" class="close" (click)="close($event)">
54
+ {{ closeText }}
55
+ <i></i>
56
+ </button>
57
+ `,
58
+ changeDetection: ChangeDetectionStrategy.OnPush,
59
+ }]
60
+ }], ctorParameters: function () { return []; }, propDecorators: { badgeType: [{
61
+ type: Input
62
+ }], isCloseable: [{
63
+ type: Input
64
+ }], closeText: [{
65
+ type: Input
66
+ }], customColor: [{
67
+ type: HostBinding,
68
+ args: ['style.color']
69
+ }, {
70
+ type: Input
71
+ }], customBackgroundColor: [{
72
+ type: HostBinding,
73
+ args: ['style.background-color']
74
+ }, {
75
+ type: Input
76
+ }], class: [{
77
+ type: HostBinding,
78
+ args: ['class']
79
+ }], handleClose: [{
80
+ type: Output
81
+ }] } });
82
+
83
+ class NggBadgeModule {
84
+ }
85
+ NggBadgeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggBadgeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
86
+ NggBadgeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggBadgeModule, declarations: [NggBadgeComponent], imports: [CommonModule], exports: [NggBadgeComponent] });
87
+ NggBadgeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggBadgeModule, imports: [CommonModule] });
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggBadgeModule, decorators: [{
89
+ type: NgModule,
90
+ args: [{
91
+ declarations: [NggBadgeComponent],
92
+ imports: [CommonModule],
93
+ exports: [NggBadgeComponent],
94
+ }]
95
+ }] });
96
+
97
+ /**
98
+ * Generated bundle index. Do not edit.
99
+ */
100
+
101
+ export { NggBadgeComponent, NggBadgeModule };
102
+ //# sourceMappingURL=sebgroup-green-angular-src-lib-badge.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sebgroup-green-angular-src-lib-badge.mjs","sources":["../../../../libs/angular/src/lib/badge/badge.component.ts","../../../../libs/angular/src/lib/badge/badge.module.ts","../../../../libs/angular/src/lib/badge/sebgroup-green-angular-src-lib-badge.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core'\nimport { BadgeType } from '@sebgroup/extract'\n\n@Component({\n // we need to disable this warning since we don't want the badge component to create a new element\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-badge]',\n template: `\n <strong>\n <ng-content></ng-content>\n </strong>\n <button *ngIf=\"isCloseable\" class=\"close\" (click)=\"close($event)\">\n {{ closeText }}\n <i></i>\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggBadgeComponent implements OnInit {\n /** The color of the component */\n @Input() badgeType?: BadgeType | '' = ''\n /** Flag whether the component can be dismissed */\n @Input() set isCloseable(value: boolean | '') {\n this._isCloseable = value\n }\n get isCloseable(): boolean {\n return this._isCloseable === '' || !!this._isCloseable\n }\n /** Close text */\n @Input() closeText?: string\n /** Custom text color */\n @HostBinding('style.color') @Input() customColor?: string\n /** Custom background color */\n @HostBinding('style.background-color') @Input() customBackgroundColor?: string\n\n @HostBinding('class') get class(): string {\n return ['badge', this.badgeType].join(' ')\n }\n\n /** Callback when component is dismissed */\n @Output() handleClose: EventEmitter<Event> = new EventEmitter()\n\n private _isCloseable?: boolean | ''\n\n //eslint-disable-next-line\n constructor() {}\n\n ngOnInit(): void {\n if (!!this.customColor || !!this.customBackgroundColor) {\n this.badgeType = ''\n }\n }\n\n close(e: Event) {\n this.handleClose.emit(e)\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggBadgeComponent } from './badge.component'\n\n@NgModule({\n declarations: [NggBadgeComponent],\n imports: [CommonModule],\n exports: [NggBadgeComponent],\n})\nexport class NggBadgeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MA0Ba,iBAAiB,CAAA;;AA2B5B,IAAA,WAAA,GAAA;;AAzBS,QAAA,IAAS,CAAA,SAAA,GAAoB,EAAE,CAAA;;AAoB9B,QAAA,IAAA,CAAA,WAAW,GAAwB,IAAI,YAAY,EAAE,CAAA;KAK/C;;IAvBhB,IAAa,WAAW,CAAC,KAAmB,EAAA;AAC1C,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;KAC1B;AACD,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA;KACvD;AAQD,IAAA,IAA0B,KAAK,GAAA;AAC7B,QAAA,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KAC3C;IAUD,QAAQ,GAAA;QACN,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACtD,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;AACpB,SAAA;KACF;AAED,IAAA,KAAK,CAAC,CAAQ,EAAA;AACZ,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACzB;;8GArCU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAXlB,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,4BAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAGU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAf7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;;AAGT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;AAQT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD,CAAA;0EAGU,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAOG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAE+B,WAAW,EAAA,CAAA;sBAA/C,WAAW;uBAAC,aAAa,CAAA;;sBAAG,KAAK;gBAEc,qBAAqB,EAAA,CAAA;sBAApE,WAAW;uBAAC,wBAAwB,CAAA;;sBAAG,KAAK;gBAEnB,KAAK,EAAA,CAAA;sBAA9B,WAAW;uBAAC,OAAO,CAAA;gBAKV,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MCtCI,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAJV,YAAA,EAAA,CAAA,iBAAiB,CACtB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAEhB,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAHf,YAAY,CAAA,EAAA,CAAA,CAAA;2FAGX,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,iBAAiB,CAAC;iBAC7B,CAAA;;;ACTD;;AAEG;;;;"}
@@ -0,0 +1,50 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, Input, HostBinding, NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+
5
+ class NggButtonComponent {
6
+ get classes() {
7
+ return [this.variant, this.size ? this.size : false]
8
+ .filter(Boolean)
9
+ .join(' ');
10
+ }
11
+ }
12
+ NggButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
+ NggButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggButtonComponent, selector: "[ngg-button]", inputs: { variant: "variant", size: "size" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggButtonComponent, decorators: [{
15
+ type: Component,
16
+ args: [{
17
+ // eslint-disable-next-line @angular-eslint/component-selector
18
+ selector: '[ngg-button]',
19
+ template: `<ng-content></ng-content>`,
20
+ changeDetection: ChangeDetectionStrategy.OnPush,
21
+ }]
22
+ }], propDecorators: { variant: [{
23
+ type: Input
24
+ }], size: [{
25
+ type: Input
26
+ }], classes: [{
27
+ type: HostBinding,
28
+ args: ['class']
29
+ }] } });
30
+
31
+ class NggButtonModule {
32
+ }
33
+ NggButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
34
+ NggButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggButtonModule, declarations: [NggButtonComponent], imports: [CommonModule], exports: [NggButtonComponent] });
35
+ NggButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggButtonModule, imports: [CommonModule] });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggButtonModule, decorators: [{
37
+ type: NgModule,
38
+ args: [{
39
+ declarations: [NggButtonComponent],
40
+ imports: [CommonModule],
41
+ exports: [NggButtonComponent],
42
+ }]
43
+ }] });
44
+
45
+ /**
46
+ * Generated bundle index. Do not edit.
47
+ */
48
+
49
+ export { NggButtonComponent, NggButtonModule };
50
+ //# sourceMappingURL=sebgroup-green-angular-src-lib-button.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sebgroup-green-angular-src-lib-button.mjs","sources":["../../../../libs/angular/src/lib/button/button.component.ts","../../../../libs/angular/src/lib/button/button.module.ts","../../../../libs/angular/src/lib/button/sebgroup-green-angular-src-lib-button.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core'\nimport { ButtonSize, ButtonVariant } from '@sebgroup/extract'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-button]',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggButtonComponent {\n @Input() variant?: ButtonVariant\n @Input() size?: ButtonSize\n\n @HostBinding('class') get classes(): string {\n return [this.variant, this.size ? this.size : false]\n .filter(Boolean)\n .join(' ')\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggButtonComponent } from './button.component'\n\n@NgModule({\n declarations: [NggButtonComponent],\n imports: [CommonModule],\n exports: [NggButtonComponent],\n})\nexport class NggButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAca,kBAAkB,CAAA;AAI7B,IAAA,IAA0B,OAAO,GAAA;AAC/B,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;aACjD,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAA;KACb;;+GARU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,qJAHnB,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAG1B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,CAA2B,yBAAA,CAAA;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD,CAAA;8BAEU,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEoB,OAAO,EAAA,CAAA;sBAAhC,WAAW;uBAAC,OAAO,CAAA;;;MCRT,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAJX,YAAA,EAAA,CAAA,kBAAkB,CACvB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAEjB,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAHhB,YAAY,CAAA,EAAA,CAAA,CAAA;2FAGX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,kBAAkB,CAAC;iBAC9B,CAAA;;;ACTD;;AAEG;;;;"}