@skyux/lists 5.7.2 → 6.0.0-beta.2

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 (141) hide show
  1. package/esm2020/index.mjs +22 -0
  2. package/esm2020/lib/modules/filter/filter-button.component.mjs +62 -0
  3. package/esm2020/lib/modules/filter/filter-inline-item.component.mjs +14 -0
  4. package/esm2020/lib/modules/filter/filter-inline.component.mjs +14 -0
  5. package/esm2020/lib/modules/filter/filter-summary-item.component.mjs +45 -0
  6. package/esm2020/lib/modules/filter/filter-summary.component.mjs +15 -0
  7. package/esm2020/lib/modules/filter/filter.module.mjs +61 -0
  8. package/esm2020/lib/modules/infinite-scroll/infinite-scroll-dom-adapter.service.mjs +93 -0
  9. package/esm2020/lib/modules/infinite-scroll/infinite-scroll.component.mjs +109 -0
  10. package/esm2020/lib/modules/infinite-scroll/infinite-scroll.module.mjs +20 -0
  11. package/esm2020/lib/modules/paging/paging.component.mjs +122 -0
  12. package/esm2020/lib/modules/paging/paging.module.mjs +34 -0
  13. package/esm2020/lib/modules/repeater/repeater-adapter.service.mjs +69 -0
  14. package/esm2020/lib/modules/repeater/repeater-item-content.component.mjs +14 -0
  15. package/esm2020/lib/modules/repeater/repeater-item-context-menu.component.mjs +17 -0
  16. package/esm2020/lib/modules/repeater/repeater-item-title.component.mjs +14 -0
  17. package/esm2020/lib/modules/repeater/repeater-item.component.mjs +383 -0
  18. package/esm2020/lib/modules/repeater/repeater.component.mjs +256 -0
  19. package/esm2020/lib/modules/repeater/repeater.module.mjs +69 -0
  20. package/esm2020/lib/modules/repeater/repeater.service.mjs +72 -0
  21. package/esm2020/lib/modules/shared/sky-lists-resources.module.mjs +80 -0
  22. package/esm2020/lib/modules/sort/sort-item.component.mjs +60 -0
  23. package/esm2020/lib/modules/sort/sort-menu-heading.component.mjs +13 -0
  24. package/esm2020/lib/modules/sort/sort.component.mjs +35 -0
  25. package/esm2020/lib/modules/sort/sort.module.mjs +50 -0
  26. package/esm2020/lib/modules/sort/sort.service.mjs +20 -0
  27. package/esm2020/skyux-lists.mjs +5 -0
  28. package/esm2020/testing/filter/filter-fixture-button.mjs +46 -0
  29. package/esm2020/testing/filter/filter-fixture-summary.mjs +28 -0
  30. package/esm2020/testing/filter/filter-testing.module.mjs +15 -0
  31. package/esm2020/testing/filter/lists-filter-fixture-button.mjs +2 -0
  32. package/esm2020/testing/infinite-scroll/infinite-scroll-fixture.mjs +27 -0
  33. package/esm2020/testing/infinite-scroll/infinite-scroll-testing.module.mjs +15 -0
  34. package/esm2020/testing/paging/paging-fixture-button.mjs +2 -0
  35. package/esm2020/testing/paging/paging-fixture.mjs +93 -0
  36. package/esm2020/testing/paging/paging-testing.module.mjs +15 -0
  37. package/esm2020/testing/public-api.mjs +13 -0
  38. package/esm2020/testing/skyux-lists-testing.mjs +5 -0
  39. package/esm2020/testing/sort/sort-fixture-menu-item.mjs +2 -0
  40. package/esm2020/testing/sort/sort-fixture-menu.mjs +2 -0
  41. package/esm2020/testing/sort/sort-fixture.mjs +140 -0
  42. package/esm2020/testing/sort/sort-testing.module.mjs +17 -0
  43. package/fesm2015/{skyux-lists-testing.js → skyux-lists-testing.mjs} +17 -17
  44. package/fesm2015/skyux-lists-testing.mjs.map +1 -0
  45. package/fesm2015/skyux-lists.mjs +1615 -0
  46. package/fesm2015/skyux-lists.mjs.map +1 -0
  47. package/fesm2020/skyux-lists-testing.mjs +389 -0
  48. package/fesm2020/skyux-lists-testing.mjs.map +1 -0
  49. package/fesm2020/skyux-lists.mjs +1615 -0
  50. package/fesm2020/skyux-lists.mjs.map +1 -0
  51. package/package.json +43 -19
  52. package/testing/package.json +5 -5
  53. package/bundles/skyux-lists-testing.umd.js +0 -887
  54. package/bundles/skyux-lists.umd.js +0 -2149
  55. package/esm2015/index.js +0 -22
  56. package/esm2015/index.js.map +0 -1
  57. package/esm2015/lib/modules/filter/filter-button.component.js +0 -67
  58. package/esm2015/lib/modules/filter/filter-button.component.js.map +0 -1
  59. package/esm2015/lib/modules/filter/filter-inline-item.component.js +0 -18
  60. package/esm2015/lib/modules/filter/filter-inline-item.component.js.map +0 -1
  61. package/esm2015/lib/modules/filter/filter-inline.component.js +0 -18
  62. package/esm2015/lib/modules/filter/filter-inline.component.js.map +0 -1
  63. package/esm2015/lib/modules/filter/filter-summary-item.component.js +0 -50
  64. package/esm2015/lib/modules/filter/filter-summary-item.component.js.map +0 -1
  65. package/esm2015/lib/modules/filter/filter-summary.component.js +0 -20
  66. package/esm2015/lib/modules/filter/filter-summary.component.js.map +0 -1
  67. package/esm2015/lib/modules/filter/filter.module.js +0 -61
  68. package/esm2015/lib/modules/filter/filter.module.js.map +0 -1
  69. package/esm2015/lib/modules/infinite-scroll/infinite-scroll-dom-adapter.service.js +0 -93
  70. package/esm2015/lib/modules/infinite-scroll/infinite-scroll-dom-adapter.service.js.map +0 -1
  71. package/esm2015/lib/modules/infinite-scroll/infinite-scroll.component.js +0 -115
  72. package/esm2015/lib/modules/infinite-scroll/infinite-scroll.component.js.map +0 -1
  73. package/esm2015/lib/modules/infinite-scroll/infinite-scroll.module.js +0 -20
  74. package/esm2015/lib/modules/infinite-scroll/infinite-scroll.module.js.map +0 -1
  75. package/esm2015/lib/modules/paging/paging.component.js +0 -127
  76. package/esm2015/lib/modules/paging/paging.component.js.map +0 -1
  77. package/esm2015/lib/modules/paging/paging.module.js +0 -34
  78. package/esm2015/lib/modules/paging/paging.module.js.map +0 -1
  79. package/esm2015/lib/modules/repeater/repeater-adapter.service.js +0 -69
  80. package/esm2015/lib/modules/repeater/repeater-adapter.service.js.map +0 -1
  81. package/esm2015/lib/modules/repeater/repeater-item-content.component.js +0 -17
  82. package/esm2015/lib/modules/repeater/repeater-item-content.component.js.map +0 -1
  83. package/esm2015/lib/modules/repeater/repeater-item-context-menu.component.js +0 -20
  84. package/esm2015/lib/modules/repeater/repeater-item-context-menu.component.js.map +0 -1
  85. package/esm2015/lib/modules/repeater/repeater-item-title.component.js +0 -17
  86. package/esm2015/lib/modules/repeater/repeater-item-title.component.js.map +0 -1
  87. package/esm2015/lib/modules/repeater/repeater-item.component.js +0 -389
  88. package/esm2015/lib/modules/repeater/repeater-item.component.js.map +0 -1
  89. package/esm2015/lib/modules/repeater/repeater.component.js +0 -262
  90. package/esm2015/lib/modules/repeater/repeater.component.js.map +0 -1
  91. package/esm2015/lib/modules/repeater/repeater.module.js +0 -69
  92. package/esm2015/lib/modules/repeater/repeater.module.js.map +0 -1
  93. package/esm2015/lib/modules/repeater/repeater.service.js +0 -72
  94. package/esm2015/lib/modules/repeater/repeater.service.js.map +0 -1
  95. package/esm2015/lib/modules/shared/sky-lists-resources.module.js +0 -80
  96. package/esm2015/lib/modules/shared/sky-lists-resources.module.js.map +0 -1
  97. package/esm2015/lib/modules/sort/sort-item.component.js +0 -65
  98. package/esm2015/lib/modules/sort/sort-item.component.js.map +0 -1
  99. package/esm2015/lib/modules/sort/sort-menu-heading.component.js +0 -17
  100. package/esm2015/lib/modules/sort/sort-menu-heading.component.js.map +0 -1
  101. package/esm2015/lib/modules/sort/sort.component.js +0 -41
  102. package/esm2015/lib/modules/sort/sort.component.js.map +0 -1
  103. package/esm2015/lib/modules/sort/sort.module.js +0 -50
  104. package/esm2015/lib/modules/sort/sort.module.js.map +0 -1
  105. package/esm2015/lib/modules/sort/sort.service.js +0 -20
  106. package/esm2015/lib/modules/sort/sort.service.js.map +0 -1
  107. package/esm2015/skyux-lists.js +0 -5
  108. package/esm2015/skyux-lists.js.map +0 -1
  109. package/esm2015/testing/filter/filter-fixture-button.js +0 -50
  110. package/esm2015/testing/filter/filter-fixture-button.js.map +0 -1
  111. package/esm2015/testing/filter/filter-fixture-summary.js +0 -31
  112. package/esm2015/testing/filter/filter-fixture-summary.js.map +0 -1
  113. package/esm2015/testing/filter/filter-testing.module.js +0 -15
  114. package/esm2015/testing/filter/filter-testing.module.js.map +0 -1
  115. package/esm2015/testing/filter/lists-filter-fixture-button.js +0 -2
  116. package/esm2015/testing/filter/lists-filter-fixture-button.js.map +0 -1
  117. package/esm2015/testing/infinite-scroll/infinite-scroll-fixture.js +0 -30
  118. package/esm2015/testing/infinite-scroll/infinite-scroll-fixture.js.map +0 -1
  119. package/esm2015/testing/infinite-scroll/infinite-scroll-testing.module.js +0 -15
  120. package/esm2015/testing/infinite-scroll/infinite-scroll-testing.module.js.map +0 -1
  121. package/esm2015/testing/paging/paging-fixture-button.js +0 -2
  122. package/esm2015/testing/paging/paging-fixture-button.js.map +0 -1
  123. package/esm2015/testing/paging/paging-fixture.js +0 -104
  124. package/esm2015/testing/paging/paging-fixture.js.map +0 -1
  125. package/esm2015/testing/paging/paging-testing.module.js +0 -15
  126. package/esm2015/testing/paging/paging-testing.module.js.map +0 -1
  127. package/esm2015/testing/public-api.js +0 -13
  128. package/esm2015/testing/public-api.js.map +0 -1
  129. package/esm2015/testing/skyux-lists-testing.js +0 -5
  130. package/esm2015/testing/skyux-lists-testing.js.map +0 -1
  131. package/esm2015/testing/sort/sort-fixture-menu-item.js +0 -2
  132. package/esm2015/testing/sort/sort-fixture-menu-item.js.map +0 -1
  133. package/esm2015/testing/sort/sort-fixture-menu.js +0 -2
  134. package/esm2015/testing/sort/sort-fixture-menu.js.map +0 -1
  135. package/esm2015/testing/sort/sort-fixture.js +0 -152
  136. package/esm2015/testing/sort/sort-fixture.js.map +0 -1
  137. package/esm2015/testing/sort/sort-testing.module.js +0 -17
  138. package/esm2015/testing/sort/sort-testing.module.js.map +0 -1
  139. package/fesm2015/skyux-lists-testing.js.map +0 -1
  140. package/fesm2015/skyux-lists.js +0 -1685
  141. package/fesm2015/skyux-lists.js.map +0 -1
@@ -0,0 +1,256 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Input, Output, QueryList, Renderer2, } from '@angular/core';
2
+ import { DragulaService } from 'ng2-dragula';
3
+ import { Subject } from 'rxjs';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import { SkyRepeaterAdapterService } from './repeater-adapter.service';
6
+ import { SkyRepeaterItemComponent } from './repeater-item.component';
7
+ import { SkyRepeaterService } from './repeater.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "./repeater.service";
10
+ import * as i2 from "./repeater-adapter.service";
11
+ import * as i3 from "ng2-dragula";
12
+ import * as i4 from "@skyux/i18n";
13
+ let uniqueId = 0;
14
+ /**
15
+ * Creates a container to display repeater items.
16
+ */
17
+ export class SkyRepeaterComponent {
18
+ constructor(changeDetector, repeaterService, adapterService, dragulaService, elementRef, renderer) {
19
+ this.changeDetector = changeDetector;
20
+ this.repeaterService = repeaterService;
21
+ this.adapterService = adapterService;
22
+ this.dragulaService = dragulaService;
23
+ this.elementRef = elementRef;
24
+ this.renderer = renderer;
25
+ /**
26
+ * Indicates whether users can change the order of items in the repeater list.
27
+ * Each repeater item also has `reorderable` property to indicate whether
28
+ * users can change its order.
29
+ */
30
+ this.reorderable = false;
31
+ /**
32
+ * Fires when the active repeater item changes.
33
+ */
34
+ this.activeIndexChange = new EventEmitter();
35
+ /**
36
+ * Fires when users change the order of repeater items.
37
+ * This event emits an ordered array of the `tag` properties that the consumer provides for each repeater item.
38
+ */
39
+ this.orderChange = new EventEmitter();
40
+ this.dragulaUnsubscribe = new Subject();
41
+ this.ngUnsubscribe = new Subject();
42
+ this._expandMode = 'none';
43
+ this.dragulaGroupName = `sky-repeater-dragula-${++uniqueId}`;
44
+ this.repeaterService.itemCollapseStateChange
45
+ .pipe(takeUntil(this.ngUnsubscribe))
46
+ .subscribe((item) => {
47
+ if (this.expandMode === 'single' && item.isExpanded) {
48
+ this.items.forEach((otherItem) => {
49
+ if (otherItem !== item &&
50
+ otherItem.isExpanded &&
51
+ otherItem.isCollapsible) {
52
+ otherItem.isExpanded = false;
53
+ }
54
+ });
55
+ }
56
+ });
57
+ this.repeaterService.activeItemIndexChange
58
+ .pipe(takeUntil(this.ngUnsubscribe))
59
+ .subscribe((index) => {
60
+ if (index !== this.activeIndex) {
61
+ this.activeIndex = index;
62
+ this.activeIndexChange.emit(index);
63
+ }
64
+ });
65
+ this.repeaterService.orderChange
66
+ .pipe(takeUntil(this.ngUnsubscribe))
67
+ .subscribe(() => {
68
+ this.emitTags();
69
+ });
70
+ this.repeaterService.repeaterGroupId = uniqueId;
71
+ this.updateForExpandMode();
72
+ this.adapterService.setRepeaterHost(this.elementRef);
73
+ this.initializeDragAndDrop();
74
+ }
75
+ /**
76
+ * Specifies a layout to determine which repeater items are expanded by default and whether
77
+ * repeater items are expandable and collapsible. Collapsed items display titles only.
78
+ * The valid options are `multiple`, `none`, and `single`.
79
+ * - `multiple` loads repeater items in an expanded state unless `isExpanded` is set to
80
+ * `false` for a repeater item. This layout allows users to expand and collapse
81
+ * as many repeater items as necessary. It is best-suited to repeater items where body
82
+ * content is important but users don't always need to see it.
83
+ * - `none` loads all repeater items in an expanded state and does not allow users to
84
+ * collapse them. This default layout provides the quickest access to the details in the
85
+ * repeater items. It is best-suited to repeater items with concise content
86
+ * that users need to view frequently.
87
+ * - `single` loads one repeater item in an expanded state and collapses all others.
88
+ * The expanded repeater item is the first one where `isExpanded` is set to `true`. This layout
89
+ * allows users to expand one item at a time. It provides the most compact view and is
90
+ * best-suited to repeater items where the most important information is in the titles
91
+ * and users only occasionally need to view the body content.
92
+ * @default "none"
93
+ */
94
+ set expandMode(value) {
95
+ this.repeaterService.expandMode = value;
96
+ this._expandMode = value;
97
+ this.updateForExpandMode();
98
+ }
99
+ get expandMode() {
100
+ return this._expandMode || 'none';
101
+ }
102
+ ngAfterContentInit() {
103
+ // If activeIndex has been set on init, call service to activate the appropriate item.
104
+ setTimeout(() => {
105
+ if (this.activeIndex || this.activeIndex === 0) {
106
+ this.repeaterService.activateItemByIndex(this.activeIndex);
107
+ }
108
+ if (this.reorderable && !this.everyItemHasTag()) {
109
+ console.warn('Please supply tag properties for each repeater item when reordering functionality is enabled.');
110
+ }
111
+ });
112
+ // HACK: Not updating for expand mode in a timeout causes an error.
113
+ // https://github.com/angular/angular/issues/6005
114
+ this.items.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
115
+ setTimeout(() => {
116
+ if (this.items.last) {
117
+ this.updateForExpandMode(this.items.last);
118
+ this.items.last.reorderable = this.reorderable;
119
+ }
120
+ if (this.activeIndex !== undefined) {
121
+ this.repeaterService.activateItemByIndex(this.activeIndex);
122
+ }
123
+ });
124
+ });
125
+ setTimeout(() => {
126
+ this.updateForExpandMode();
127
+ this.items.forEach((item) => {
128
+ item.reorderable = this.reorderable;
129
+ });
130
+ }, 0);
131
+ }
132
+ ngOnChanges(changes) {
133
+ if (changes['activeIndex']) {
134
+ this.repeaterService.enableActiveState = true;
135
+ if (changes['activeIndex'].currentValue !==
136
+ changes['activeIndex'].previousValue) {
137
+ this.repeaterService.activateItemByIndex(this.activeIndex);
138
+ }
139
+ }
140
+ if (changes.reorderable) {
141
+ if (this.items) {
142
+ this.items.forEach((item) => (item.reorderable = this.reorderable));
143
+ }
144
+ this.changeDetector.markForCheck();
145
+ }
146
+ }
147
+ ngOnDestroy() {
148
+ this.ngUnsubscribe.next();
149
+ this.ngUnsubscribe.complete();
150
+ this.destroyDragAndDrop();
151
+ }
152
+ updateForExpandMode(itemAdded) {
153
+ if (this.items) {
154
+ let foundExpanded = false;
155
+ const isCollapsible = this.expandMode !== 'none';
156
+ const isSingle = this.expandMode === 'single';
157
+ // Keep any newly-added expanded item expanded and collapse the rest.
158
+ if (itemAdded && itemAdded.isExpanded) {
159
+ foundExpanded = true;
160
+ }
161
+ this.items.forEach((item) => {
162
+ item.isCollapsible = isCollapsible && !!item.hasItemContent;
163
+ if (item !== itemAdded && isSingle && item.isExpanded) {
164
+ if (foundExpanded) {
165
+ item.updateForExpanded(false, false);
166
+ }
167
+ foundExpanded = true;
168
+ }
169
+ });
170
+ }
171
+ }
172
+ initializeDragAndDrop() {
173
+ /* Sanity check that we haven't already set up dragging abilities */
174
+ /* istanbul ignore else */
175
+ if (!this.dragulaService.find(this.dragulaGroupName)) {
176
+ this.dragulaService.setOptions(this.dragulaGroupName, {
177
+ moves: (el, container, handle) => {
178
+ const target = el.querySelector('.sky-repeater-item-grab-handle');
179
+ return this.reorderable && target && target.contains(handle);
180
+ },
181
+ });
182
+ }
183
+ let draggedItemIndex;
184
+ this.dragulaService.drag
185
+ .pipe(takeUntil(this.dragulaUnsubscribe))
186
+ .subscribe(([groupName, subject]) => {
187
+ /* istanbul ignore else */
188
+ if (groupName === this.dragulaGroupName) {
189
+ this.renderer.addClass(subject, 'sky-repeater-item-dragging');
190
+ draggedItemIndex = this.adapterService.getRepeaterItemIndex(subject);
191
+ }
192
+ });
193
+ this.dragulaService.dragend
194
+ .pipe(takeUntil(this.dragulaUnsubscribe))
195
+ .subscribe(([groupName, subject]) => {
196
+ /* istanbul ignore else */
197
+ if (groupName === this.dragulaGroupName) {
198
+ this.renderer.removeClass(subject, 'sky-repeater-item-dragging');
199
+ const newItemIndex = this.adapterService.getRepeaterItemIndex(subject);
200
+ /* sanity check */
201
+ /* istanbul ignore else */
202
+ if (draggedItemIndex >= 0) {
203
+ this.repeaterService.reorderItem(draggedItemIndex, newItemIndex);
204
+ draggedItemIndex = undefined;
205
+ }
206
+ this.emitTags();
207
+ }
208
+ });
209
+ }
210
+ destroyDragAndDrop() {
211
+ this.dragulaUnsubscribe.next();
212
+ this.dragulaUnsubscribe.complete();
213
+ this.dragulaUnsubscribe = undefined;
214
+ /* Sanity check that we have set up dragging abilities */
215
+ /* istanbul ignore else */
216
+ if (this.dragulaService.find(this.dragulaGroupName)) {
217
+ this.dragulaService.destroy(this.dragulaGroupName);
218
+ }
219
+ }
220
+ emitTags() {
221
+ const tags = this.repeaterService.items.map((item) => item.tag);
222
+ this.orderChange.emit(tags);
223
+ }
224
+ everyItemHasTag() {
225
+ /* sanity check */
226
+ /* istanbul ignore if */
227
+ if (!this.items || this.items.length === 0) {
228
+ return false;
229
+ }
230
+ return this.items.toArray().every((item) => {
231
+ return item.tag !== undefined;
232
+ });
233
+ }
234
+ }
235
+ SkyRepeaterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRepeaterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyRepeaterService }, { token: i2.SkyRepeaterAdapterService }, { token: i3.DragulaService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
236
+ SkyRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyRepeaterComponent, selector: "sky-repeater", inputs: { activeIndex: "activeIndex", ariaLabel: "ariaLabel", reorderable: "reorderable", expandMode: "expandMode" }, outputs: { activeIndexChange: "activeIndexChange", orderChange: "orderChange" }, providers: [SkyRepeaterService, SkyRepeaterAdapterService], queries: [{ propertyName: "items", predicate: SkyRepeaterItemComponent }], usesOnChanges: true, ngImport: i0, template: "<ng-container #repeaterHost>\n <div\n class=\"sky-repeater\"\n role=\"listbox\"\n [attr.aria-label]=\"ariaLabel || ('skyux_repeater_label' | skyLibResources)\"\n [dragula]=\"dragulaGroupName\"\n >\n <ng-content></ng-content>\n </div>\n</ng-container>\n", styles: [".sky-repeater{padding:0}\n"], directives: [{ type: i3.DragulaDirective, selector: "[dragula]", inputs: ["dragula", "dragulaModel", "dragulaOptions"] }], pipes: { "skyLibResources": i4.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRepeaterComponent, decorators: [{
238
+ type: Component,
239
+ args: [{ selector: 'sky-repeater', providers: [SkyRepeaterService, SkyRepeaterAdapterService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container #repeaterHost>\n <div\n class=\"sky-repeater\"\n role=\"listbox\"\n [attr.aria-label]=\"ariaLabel || ('skyux_repeater_label' | skyLibResources)\"\n [dragula]=\"dragulaGroupName\"\n >\n <ng-content></ng-content>\n </div>\n</ng-container>\n", styles: [".sky-repeater{padding:0}\n"] }]
240
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyRepeaterService }, { type: i2.SkyRepeaterAdapterService }, { type: i3.DragulaService }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { activeIndex: [{
241
+ type: Input
242
+ }], ariaLabel: [{
243
+ type: Input
244
+ }], reorderable: [{
245
+ type: Input
246
+ }], expandMode: [{
247
+ type: Input
248
+ }], activeIndexChange: [{
249
+ type: Output
250
+ }], orderChange: [{
251
+ type: Output
252
+ }], items: [{
253
+ type: ContentChildren,
254
+ args: [SkyRepeaterItemComponent]
255
+ }] } });
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3NyYy9saWIvbW9kdWxlcy9yZXBlYXRlci9yZXBlYXRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdHMvc3JjL2xpYi9tb2R1bGVzL3JlcGVhdGVyL3JlcGVhdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBRXhELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUVqQjs7R0FFRztBQVFILE1BQU0sT0FBTyxvQkFBb0I7SUFtRi9CLFlBQ1UsY0FBaUMsRUFDakMsZUFBbUMsRUFDbkMsY0FBeUMsRUFDekMsY0FBOEIsRUFDOUIsVUFBc0IsRUFDdEIsUUFBbUI7UUFMbkIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLG9CQUFlLEdBQWYsZUFBZSxDQUFvQjtRQUNuQyxtQkFBYyxH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QUFVO3NCQURwQixLQUFLO2dCQWVDLGlCQUFpQjtzQkFEdkIsTUFBTTtnQkFRQSxXQUFXO3NCQURqQixNQUFNO2dCQUlBLEtBQUs7c0JBRFgsZUFBZTt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERyYWd1bGFTZXJ2aWNlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lSZXBlYXRlckFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXBlYXRlci1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9yZXBlYXRlci1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlclNlcnZpY2UgfSBmcm9tICcuL3JlcGVhdGVyLnNlcnZpY2UnO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjb250YWluZXIgdG8gZGlzcGxheSByZXBlYXRlciBpdGVtcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXJlcGVhdGVyJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVwZWF0ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGVhdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5UmVwZWF0ZXJTZXJ2aWNlLCBTa3lSZXBlYXRlckFkYXB0ZXJTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreVJlcGVhdGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgaW5kZXggb2YgdGhlIHJlcGVhdGVyIGl0ZW0gdG8gdmlzdWFsbHkgaGlnaGxpZ2h0IGFzIGFjdGl2ZS5cbiAgICogRm9yIGV4YW1wbGUsIHVzZSB0aGlzIHByb3BlcnR5IGluIGNvbmp1bmN0aW9uIHdpdGggdGhlXG4gICAqIFtzcGxpdCB2aWV3IGNvbXBvbmVudF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3NwbGl0LXZpZXcpXG4gICAqIHRvIGhpZ2hsaWdodCBhIHJlcGVhdGVyIGl0ZW0gd2hpbGUgdXNlcnMgZWRpdCBpdC4gT25seSBvbmUgaXRlbSBjYW4gYmUgYWN0aXZlIGF0IGEgdGltZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhY3RpdmVJbmRleDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYW4gQVJJQSBsYWJlbCBmb3IgdGhlIHJlcGVhdGVyIGxpc3QuXG4gICAqIFRoaXMgc2V0cyB0aGUgcmVwZWF0ZXIgbGlzdCdzIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGVcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogQGRlZmF1bHQgXCJMaXN0IG9mIGl0ZW1zXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcmlhTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdXNlcnMgY2FuIGNoYW5nZSB0aGUgb3JkZXIgb2YgaXRlbXMgaW4gdGhlIHJlcGVhdGVyIGxpc3QuXG4gICAqIEVhY2ggcmVwZWF0ZXIgaXRlbSBhbHNvIGhhcyBgcmVvcmRlcmFibGVgIHByb3BlcnR5IHRvIGluZGljYXRlIHdoZXRoZXJcbiAgICogdXNlcnMgY2FuIGNoYW5nZSBpdHMgb3JkZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVvcmRlcmFibGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgbGF5b3V0IHRvIGRldGVybWluZSB3aGljaCByZXBlYXRlciBpdGVtcyBhcmUgZXhwYW5kZWQgYnkgZGVmYXVsdCBhbmQgd2hldGhlclxuICAgKiByZXBlYXRlciBpdGVtcyBhcmUgZXhwYW5kYWJsZSBhbmQgY29sbGFwc2libGUuIENvbGxhcHNlZCBpdGVtcyBkaXNwbGF5IHRpdGxlcyBvbmx5LlxuICAgKiBUaGUgdmFsaWQgb3B0aW9ucyBhcmUgYG11bHRpcGxlYCwgYG5vbmVgLCBhbmQgYHNpbmdsZWAuXG4gICAqIC0gYG11bHRpcGxlYCBsb2FkcyByZXBlYXRlciBpdGVtcyBpbiBhbiBleHBhbmRlZCBzdGF0ZSB1bmxlc3MgYGlzRXhwYW5kZWRgIGlzIHNldCB0b1xuICAgKiBgZmFsc2VgIGZvciBhIHJlcGVhdGVyIGl0ZW0uIFRoaXMgbGF5b3V0IGFsbG93cyB1c2VycyB0byBleHBhbmQgYW5kIGNvbGxhcHNlXG4gICAqIGFzIG1hbnkgcmVwZWF0ZXIgaXRlbXMgYXMgbmVjZXNzYXJ5LiBJdCBpcyBiZXN0LXN1aXRlZCB0byByZXBlYXRlciBpdGVtcyB3aGVyZSBib2R5XG4gICAqIGNvbnRlbnQgaXMgaW1wb3J0YW50IGJ1dCB1c2VycyBkb24ndCBhbHdheXMgbmVlZCB0byBzZWUgaXQuXG4gICAqIC0gYG5vbmVgIGxvYWRzIGFsbCByZXBlYXRlciBpdGVtcyBpbiBhbiBleHBhbmRlZCBzdGF0ZSBhbmQgZG9lcyBub3QgYWxsb3cgdXNlcnMgdG9cbiAgICogY29sbGFwc2UgdGhlbS4gVGhpcyBkZWZhdWx0IGxheW91dCBwcm92aWRlcyB0aGUgcXVpY2tlc3QgYWNjZXNzIHRvIHRoZSBkZXRhaWxzIGluIHRoZVxuICAgKiByZXBlYXRlciBpdGVtcy4gSXQgaXMgYmVzdC1zdWl0ZWQgdG8gcmVwZWF0ZXIgaXRlbXMgd2l0aCBjb25jaXNlIGNvbnRlbnRcbiAgICogdGhhdCB1c2VycyBuZWVkIHRvIHZpZXcgZnJlcXVlbnRseS5cbiAgICogLSBgc2luZ2xlYCBsb2FkcyBvbmUgcmVwZWF0ZXIgaXRlbSBpbiBhbiBleHBhbmRlZCBzdGF0ZSBhbmQgY29sbGFwc2VzIGFsbCBvdGhlcnMuXG4gICAqIFRoZSBleHBhbmRlZCByZXBlYXRlciBpdGVtIGlzIHRoZSBmaXJzdCBvbmUgd2hlcmUgYGlzRXhwYW5kZWRgIGlzIHNldCB0byBgdHJ1ZWAuIFRoaXMgbGF5b3V0XG4gICAqIGFsbG93cyB1c2VycyB0byBleHBhbmQgb25lIGl0ZW0gYXQgYSB0aW1lLiBJdCBwcm92aWRlcyB0aGUgbW9zdCBjb21wYWN0IHZpZXcgYW5kIGlzXG4gICAqIGJlc3Qtc3VpdGVkIHRvIHJlcGVhdGVyIGl0ZW1zIHdoZXJlIHRoZSBtb3N0IGltcG9ydGFudCBpbmZvcm1hdGlvbiBpcyBpbiB0aGUgdGl0bGVzXG4gICAqIGFuZCB1c2VycyBvbmx5IG9jY2FzaW9uYWxseSBuZWVkIHRvIHZpZXcgdGhlIGJvZHkgY29udGVudC5cbiAgICogQGRlZmF1bHQgXCJub25lXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZXhwYW5kTW9kZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZXBlYXRlclNlcnZpY2UuZXhwYW5kTW9kZSA9IHZhbHVlO1xuICAgIHRoaXMuX2V4cGFuZE1vZGUgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUZvckV4cGFuZE1vZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXhwYW5kTW9kZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9leHBhbmRNb2RlIHx8ICdub25lJztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBhY3RpdmUgcmVwZWF0ZXIgaXRlbSBjaGFuZ2VzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBhY3RpdmVJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIGNoYW5nZSB0aGUgb3JkZXIgb2YgcmVwZWF0ZXIgaXRlbXMuXG4gICAqIFRoaXMgZXZlbnQgZW1pdHMgYW4gb3JkZXJlZCBhcnJheSBvZiB0aGUgYHRhZ2AgcHJvcGVydGllcyB0aGF0IHRoZSBjb25zdW1lciBwcm92aWRlcyBmb3IgZWFjaCByZXBlYXRlciBpdGVtLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvcmRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQpXG4gIHB1YmxpYyBpdGVtczogUXVlcnlMaXN0PFNreVJlcGVhdGVySXRlbUNvbXBvbmVudD47XG5cbiAgcHVibGljIGRyYWd1bGFHcm91cE5hbWU6IHN0cmluZztcblxuICBwcml2YXRlIGRyYWd1bGFVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9leHBhbmRNb2RlID0gJ25vbmUnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVwZWF0ZXJTZXJ2aWNlOiBTa3lSZXBlYXRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhZGFwdGVyU2VydmljZTogU2t5UmVwZWF0ZXJBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGRyYWd1bGFTZXJ2aWNlOiBEcmFndWxhU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSA9IGBza3ktcmVwZWF0ZXItZHJhZ3VsYS0keysrdW5pcXVlSWR9YDtcblxuICAgIHRoaXMucmVwZWF0ZXJTZXJ2aWNlLml0ZW1Db2xsYXBzZVN0YXRlQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5leHBhbmRNb2RlID09PSAnc2luZ2xlJyAmJiBpdGVtLmlzRXhwYW5kZWQpIHtcbiAgICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKG90aGVySXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBvdGhlckl0ZW0gIT09IGl0ZW0gJiZcbiAgICAgICAgICAgICAgb3RoZXJJdGVtLmlzRXhwYW5kZWQgJiZcbiAgICAgICAgICAgICAgb3RoZXJJdGVtLmlzQ29sbGFwc2libGVcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBvdGhlckl0ZW0uaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMucmVwZWF0ZXJTZXJ2aWNlLmFjdGl2ZUl0ZW1JbmRleENoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChpbmRleCAhPT0gdGhpcy5hY3RpdmVJbmRleCkge1xuICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBpbmRleDtcbiAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMucmVwZWF0ZXJTZXJ2aWNlLm9yZGVyQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmVtaXRUYWdzKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMucmVwZWF0ZXJTZXJ2aWNlLnJlcGVhdGVyR3JvdXBJZCA9IHVuaXF1ZUlkO1xuXG4gICAgdGhpcy51cGRhdGVGb3JFeHBhbmRNb2RlKCk7XG5cbiAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLnNldFJlcGVhdGVySG9zdCh0aGlzLmVsZW1lbnRSZWYpO1xuXG4gICAgdGhpcy5pbml0aWFsaXplRHJhZ0FuZERyb3AoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLy8gSWYgYWN0aXZlSW5kZXggaGFzIGJlZW4gc2V0IG9uIGluaXQsIGNhbGwgc2VydmljZSB0byBhY3RpdmF0ZSB0aGUgYXBwcm9wcmlhdGUgaXRlbS5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZUluZGV4IHx8IHRoaXMuYWN0aXZlSW5kZXggPT09IDApIHtcbiAgICAgICAgdGhpcy5yZXBlYXRlclNlcnZpY2UuYWN0aXZhdGVJdGVtQnlJbmRleCh0aGlzLmFjdGl2ZUluZGV4KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucmVvcmRlcmFibGUgJiYgIXRoaXMuZXZlcnlJdGVtSGFzVGFnKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdQbGVhc2Ugc3VwcGx5IHRhZyBwcm9wZXJ0aWVzIGZvciBlYWNoIHJlcGVhdGVyIGl0ZW0gd2hlbiByZW9yZGVyaW5nIGZ1bmN0aW9uYWxpdHkgaXMgZW5hYmxlZC4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBIQUNLOiBOb3QgdXBkYXRpbmcgZm9yIGV4cGFuZCBtb2RlIGluIGEgdGltZW91dCBjYXVzZXMgYW4gZXJyb3IuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNjAwNVxuICAgIHRoaXMuaXRlbXMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zLmxhc3QpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUZvckV4cGFuZE1vZGUodGhpcy5pdGVtcy5sYXN0KTtcbiAgICAgICAgICB0aGlzLml0ZW1zLmxhc3QucmVvcmRlcmFibGUgPSB0aGlzLnJlb3JkZXJhYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMucmVwZWF0ZXJTZXJ2aWNlLmFjdGl2YXRlSXRlbUJ5SW5kZXgodGhpcy5hY3RpdmVJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUZvckV4cGFuZE1vZGUoKTtcblxuICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0ucmVvcmRlcmFibGUgPSB0aGlzLnJlb3JkZXJhYmxlO1xuICAgICAgfSk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydhY3RpdmVJbmRleCddKSB7XG4gICAgICB0aGlzLnJlcGVhdGVyU2VydmljZS5lbmFibGVBY3RpdmVTdGF0ZSA9IHRydWU7XG4gICAgICBpZiAoXG4gICAgICAgIGNoYW5nZXNbJ2FjdGl2ZUluZGV4J10uY3VycmVudFZhbHVlICE9PVxuICAgICAgICBjaGFuZ2VzWydhY3RpdmVJbmRleCddLnByZXZpb3VzVmFsdWVcbiAgICAgICkge1xuICAgICAgICB0aGlzLnJlcGVhdGVyU2VydmljZS5hY3RpdmF0ZUl0ZW1CeUluZGV4KHRoaXMuYWN0aXZlSW5kZXgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLnJlb3JkZXJhYmxlKSB7XG4gICAgICBpZiAodGhpcy5pdGVtcykge1xuICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IChpdGVtLnJlb3JkZXJhYmxlID0gdGhpcy5yZW9yZGVyYWJsZSkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZGVzdHJveURyYWdBbmREcm9wKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUZvckV4cGFuZE1vZGUoaXRlbUFkZGVkPzogU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXRlbXMpIHtcbiAgICAgIGxldCBmb3VuZEV4cGFuZGVkID0gZmFsc2U7XG4gICAgICBjb25zdCBpc0NvbGxhcHNpYmxlID0gdGhpcy5leHBhbmRNb2RlICE9PSAnbm9uZSc7XG4gICAgICBjb25zdCBpc1NpbmdsZSA9IHRoaXMuZXhwYW5kTW9kZSA9PT0gJ3NpbmdsZSc7XG5cbiAgICAgIC8vIEtlZXAgYW55IG5ld2x5LWFkZGVkIGV4cGFuZGVkIGl0ZW0gZXhwYW5kZWQgYW5kIGNvbGxhcHNlIHRoZSByZXN0LlxuICAgICAgaWYgKGl0ZW1BZGRlZCAmJiBpdGVtQWRkZWQuaXNFeHBhbmRlZCkge1xuICAgICAgICBmb3VuZEV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0uaXNDb2xsYXBzaWJsZSA9IGlzQ29sbGFwc2libGUgJiYgISFpdGVtLmhhc0l0ZW1Db250ZW50O1xuXG4gICAgICAgIGlmIChpdGVtICE9PSBpdGVtQWRkZWQgJiYgaXNTaW5nbGUgJiYgaXRlbS5pc0V4cGFuZGVkKSB7XG4gICAgICAgICAgaWYgKGZvdW5kRXhwYW5kZWQpIHtcbiAgICAgICAgICAgIGl0ZW0udXBkYXRlRm9yRXhwYW5kZWQoZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmb3VuZEV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRHJhZ0FuZERyb3AoKTogdm9pZCB7XG4gICAgLyogU2FuaXR5IGNoZWNrIHRoYXQgd2UgaGF2ZW4ndCBhbHJlYWR5IHNldCB1cCBkcmFnZ2luZyBhYmlsaXRpZXMgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghdGhpcy5kcmFndWxhU2VydmljZS5maW5kKHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSkpIHtcbiAgICAgIHRoaXMuZHJhZ3VsYVNlcnZpY2Uuc2V0T3B0aW9ucyh0aGlzLmRyYWd1bGFHcm91cE5hbWUsIHtcbiAgICAgICAgbW92ZXM6IChcbiAgICAgICAgICBlbDogSFRNTEVsZW1lbnQsXG4gICAgICAgICAgY29udGFpbmVyOiBIVE1MRWxlbWVudCxcbiAgICAgICAgICBoYW5kbGU6IEhUTUxFbGVtZW50XG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGVsLnF1ZXJ5U2VsZWN0b3IoJy5za3ktcmVwZWF0ZXItaXRlbS1ncmFiLWhhbmRsZScpO1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlb3JkZXJhYmxlICYmIHRhcmdldCAmJiB0YXJnZXQuY29udGFpbnMoaGFuZGxlKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCBkcmFnZ2VkSXRlbUluZGV4OiBudW1iZXI7XG5cbiAgICB0aGlzLmRyYWd1bGFTZXJ2aWNlLmRyYWdcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRyYWd1bGFVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChbZ3JvdXBOYW1lLCBzdWJqZWN0XTogYW55W10pID0+IHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGdyb3VwTmFtZSA9PT0gdGhpcy5kcmFndWxhR3JvdXBOYW1lKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhzdWJqZWN0LCAnc2t5LXJlcGVhdGVyLWl0ZW0tZHJhZ2dpbmcnKTtcbiAgICAgICAgICBkcmFnZ2VkSXRlbUluZGV4ID0gdGhpcy5hZGFwdGVyU2VydmljZS5nZXRSZXBlYXRlckl0ZW1JbmRleChzdWJqZWN0KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLmRyYWd1bGFTZXJ2aWNlLmRyYWdlbmRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRyYWd1bGFVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChbZ3JvdXBOYW1lLCBzdWJqZWN0XTogYW55W10pID0+IHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGdyb3VwTmFtZSA9PT0gdGhpcy5kcmFndWxhR3JvdXBOYW1lKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhzdWJqZWN0LCAnc2t5LXJlcGVhdGVyLWl0ZW0tZHJhZ2dpbmcnKTtcbiAgICAgICAgICBjb25zdCBuZXdJdGVtSW5kZXggPVxuICAgICAgICAgICAgdGhpcy5hZGFwdGVyU2VydmljZS5nZXRSZXBlYXRlckl0ZW1JbmRleChzdWJqZWN0KTtcblxuICAgICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKGRyYWdnZWRJdGVtSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5yZXBlYXRlclNlcnZpY2UucmVvcmRlckl0ZW0oZHJhZ2dlZEl0ZW1JbmRleCwgbmV3SXRlbUluZGV4KTtcbiAgICAgICAgICAgIGRyYWdnZWRJdGVtSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5lbWl0VGFncygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveURyYWdBbmREcm9wKCk6IHZvaWQge1xuICAgIHRoaXMuZHJhZ3VsYVVuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLmRyYWd1bGFVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZHJhZ3VsYVVuc3Vic2NyaWJlID0gdW5kZWZpbmVkO1xuXG4gICAgLyogU2FuaXR5IGNoZWNrIHRoYXQgd2UgaGF2ZSBzZXQgdXAgZHJhZ2dpbmcgYWJpbGl0aWVzICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5kcmFndWxhU2VydmljZS5maW5kKHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSkpIHtcbiAgICAgIHRoaXMuZHJhZ3VsYVNlcnZpY2UuZGVzdHJveSh0aGlzLmRyYWd1bGFHcm91cE5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdFRhZ3MoKTogdm9pZCB7XG4gICAgY29uc3QgdGFncyA9IHRoaXMucmVwZWF0ZXJTZXJ2aWNlLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS50YWcpO1xuICAgIHRoaXMub3JkZXJDaGFuZ2UuZW1pdCh0YWdzKTtcbiAgfVxuXG4gIHByaXZhdGUgZXZlcnlJdGVtSGFzVGFnKCk6IGJvb2xlYW4ge1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghdGhpcy5pdGVtcyB8fCB0aGlzLml0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pdGVtcy50b0FycmF5KCkuZXZlcnkoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBpdGVtLnRhZyAhPT0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICNyZXBlYXRlckhvc3Q+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1yZXBlYXRlclwiXG4gICAgcm9sZT1cImxpc3Rib3hcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8ICgnc2t5dXhfcmVwZWF0ZXJfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzKVwiXG4gICAgW2RyYWd1bGFdPVwiZHJhZ3VsYUdyb3VwTmFtZVwiXG4gID5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,69 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { SkyCheckboxModule } from '@skyux/forms';
4
+ import { SkyChevronModule, SkyIconModule } from '@skyux/indicators';
5
+ import { SkyInlineFormModule } from '@skyux/inline-form';
6
+ import { DragulaModule } from 'ng2-dragula';
7
+ import { SkyListsResourcesModule } from '../shared/sky-lists-resources.module';
8
+ import { SkyRepeaterItemContentComponent } from './repeater-item-content.component';
9
+ import { SkyRepeaterItemContextMenuComponent } from './repeater-item-context-menu.component';
10
+ import { SkyRepeaterItemTitleComponent } from './repeater-item-title.component';
11
+ import { SkyRepeaterItemComponent } from './repeater-item.component';
12
+ import { SkyRepeaterComponent } from './repeater.component';
13
+ import * as i0 from "@angular/core";
14
+ export class SkyRepeaterModule {
15
+ }
16
+ SkyRepeaterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRepeaterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ SkyRepeaterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRepeaterModule, declarations: [SkyRepeaterComponent,
18
+ SkyRepeaterItemComponent,
19
+ SkyRepeaterItemContentComponent,
20
+ SkyRepeaterItemContextMenuComponent,
21
+ SkyRepeaterItemTitleComponent], imports: [CommonModule,
22
+ DragulaModule,
23
+ SkyChevronModule,
24
+ SkyCheckboxModule,
25
+ SkyIconModule,
26
+ SkyInlineFormModule,
27
+ SkyListsResourcesModule], exports: [SkyRepeaterComponent,
28
+ SkyRepeaterItemComponent,
29
+ SkyRepeaterItemContentComponent,
30
+ SkyRepeaterItemContextMenuComponent,
31
+ SkyRepeaterItemTitleComponent] });
32
+ SkyRepeaterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRepeaterModule, imports: [[
33
+ CommonModule,
34
+ DragulaModule,
35
+ SkyChevronModule,
36
+ SkyCheckboxModule,
37
+ SkyIconModule,
38
+ SkyInlineFormModule,
39
+ SkyListsResourcesModule,
40
+ ]] });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRepeaterModule, decorators: [{
42
+ type: NgModule,
43
+ args: [{
44
+ declarations: [
45
+ SkyRepeaterComponent,
46
+ SkyRepeaterItemComponent,
47
+ SkyRepeaterItemContentComponent,
48
+ SkyRepeaterItemContextMenuComponent,
49
+ SkyRepeaterItemTitleComponent,
50
+ ],
51
+ imports: [
52
+ CommonModule,
53
+ DragulaModule,
54
+ SkyChevronModule,
55
+ SkyCheckboxModule,
56
+ SkyIconModule,
57
+ SkyInlineFormModule,
58
+ SkyListsResourcesModule,
59
+ ],
60
+ exports: [
61
+ SkyRepeaterComponent,
62
+ SkyRepeaterItemComponent,
63
+ SkyRepeaterItemContentComponent,
64
+ SkyRepeaterItemContextMenuComponent,
65
+ SkyRepeaterItemTitleComponent,
66
+ ],
67
+ }]
68
+ }] });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3NyYy9saWIvbW9kdWxlcy9yZXBlYXRlci9yZXBlYXRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQTJCNUQsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQXZCMUIsb0JBQW9CO1FBQ3BCLHdCQUF3QjtRQUN4QiwrQkFBK0I7UUFDL0IsbUNBQW1DO1FBQ25DLDZCQUE2QixhQUc3QixZQUFZO1FBQ1osYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixpQkFBaUI7UUFDakIsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQix1QkFBdUIsYUFHdkIsb0JBQW9CO1FBQ3BCLHdCQUF3QjtRQUN4QiwrQkFBK0I7UUFDL0IsbUNBQW1DO1FBQ25DLDZCQUE2QjsrR0FHcEIsaUJBQWlCLFlBakJuQjtZQUNQLFlBQVk7WUFDWixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLHVCQUF1QjtTQUN4QjsyRkFTVSxpQkFBaUI7a0JBekI3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsK0JBQStCO3dCQUMvQixtQ0FBbUM7d0JBQ25DLDZCQUE2QjtxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLHVCQUF1QjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4QiwrQkFBK0I7d0JBQy9CLG1DQUFtQzt3QkFDbkMsNkJBQTZCO3FCQUM5QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuaW1wb3J0IHsgU2t5Q2hldnJvbk1vZHVsZSwgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcbmltcG9ydCB7IFNreUlubGluZUZvcm1Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaW5saW5lLWZvcm0nO1xuXG5pbXBvcnQgeyBEcmFndWxhTW9kdWxlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xuXG5pbXBvcnQgeyBTa3lMaXN0c1Jlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktbGlzdHMtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreVJlcGVhdGVySXRlbUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL3JlcGVhdGVyLWl0ZW0tY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJJdGVtQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL3JlcGVhdGVyLWl0ZW0tY29udGV4dC1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1UaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vcmVwZWF0ZXItaXRlbS10aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9yZXBlYXRlci1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlckNvbXBvbmVudCB9IGZyb20gJy4vcmVwZWF0ZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2t5UmVwZWF0ZXJDb21wb25lbnQsXG4gICAgU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50LFxuICAgIFNreVJlcGVhdGVySXRlbUNvbnRlbnRDb21wb25lbnQsXG4gICAgU2t5UmVwZWF0ZXJJdGVtQ29udGV4dE1lbnVDb21wb25lbnQsXG4gICAgU2t5UmVwZWF0ZXJJdGVtVGl0bGVDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRHJhZ3VsYU1vZHVsZSxcbiAgICBTa3lDaGV2cm9uTW9kdWxlLFxuICAgIFNreUNoZWNrYm94TW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5SW5saW5lRm9ybU1vZHVsZSxcbiAgICBTa3lMaXN0c1Jlc291cmNlc01vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreVJlcGVhdGVyQ29tcG9uZW50LFxuICAgIFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCxcbiAgICBTa3lSZXBlYXRlckl0ZW1Db250ZW50Q29tcG9uZW50LFxuICAgIFNreVJlcGVhdGVySXRlbUNvbnRleHRNZW51Q29tcG9uZW50LFxuICAgIFNreVJlcGVhdGVySXRlbVRpdGxlQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lSZXBlYXRlck1vZHVsZSB7fVxuIl19
@@ -0,0 +1,72 @@
1
+ import { EventEmitter, Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * @internal
6
+ */
7
+ export class SkyRepeaterService {
8
+ constructor() {
9
+ this.activeItemChange = new BehaviorSubject(undefined);
10
+ this.activeItemIndexChange = new BehaviorSubject(undefined);
11
+ this.enableActiveState = false;
12
+ this.itemCollapseStateChange = new EventEmitter();
13
+ this.items = [];
14
+ this.orderChange = new BehaviorSubject(undefined);
15
+ }
16
+ ngOnDestroy() {
17
+ this.activeItemChange.complete();
18
+ this.itemCollapseStateChange.complete();
19
+ this.orderChange.complete();
20
+ }
21
+ activateItem(item) {
22
+ if (this.enableActiveState) {
23
+ /* istanbul ignore else */
24
+ if (item) {
25
+ const index = this.items.findIndex((i) => i === item);
26
+ this.activeItemIndexChange.next(index);
27
+ this.activeItemChange.next(item);
28
+ }
29
+ }
30
+ }
31
+ activateItemByIndex(index) {
32
+ /* istanbul ignore else */
33
+ if (this.enableActiveState) {
34
+ if (index === undefined) {
35
+ this.activeItemChange.next(undefined);
36
+ }
37
+ else {
38
+ const activeItem = this.items[index];
39
+ if (activeItem) {
40
+ this.activeItemChange.next(activeItem);
41
+ }
42
+ }
43
+ }
44
+ }
45
+ registerItem(item) {
46
+ this.items.push(item);
47
+ }
48
+ unregisterItem(item) {
49
+ const indexOfDestroyedItem = this.items.indexOf(item);
50
+ if (indexOfDestroyedItem > -1) {
51
+ this.items.splice(indexOfDestroyedItem, 1);
52
+ }
53
+ }
54
+ onItemCollapseStateChange(item) {
55
+ this.itemCollapseStateChange.emit(item);
56
+ }
57
+ getItemIndex(item) {
58
+ return this.items.indexOf(item);
59
+ }
60
+ registerOrderChange() {
61
+ this.orderChange.next();
62
+ }
63
+ reorderItem(oldIndex, newIndex) {
64
+ this.items.splice(newIndex, 0, this.items.splice(oldIndex, 1)[0]);
65
+ }
66
+ }
67
+ SkyRepeaterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRepeaterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
68
+ SkyRepeaterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRepeaterService });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRepeaterService, decorators: [{
70
+ type: Injectable
71
+ }] });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0cy9zcmMvbGliL21vZHVsZXMvcmVwZWF0ZXIvcmVwZWF0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUl2Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFUyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FDM0MsU0FBUyxDQUNWLENBQUM7UUFFSywwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxTQUFTLENBQUMsQ0FBQztRQUUvRCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFJMUIsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFFdkUsVUFBSyxHQUErQixFQUFFLENBQUM7UUFFdkMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBTyxTQUFTLENBQUMsQ0FBQztLQTZEM0Q7SUF6RFEsV0FBVztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUE4QjtRQUNoRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQiwwQkFBMEI7WUFDMUIsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsQztTQUNGO0lBQ0gsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQWE7UUFDdEMsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN2QztpQkFBTTtnQkFDTCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLFVBQVUsRUFBRTtvQkFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUN4QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sWUFBWSxDQUFDLElBQThCO1FBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxjQUFjLENBQUMsSUFBOEI7UUFDbEQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFJLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQztJQUVNLHlCQUF5QixDQUFDLElBQThCO1FBQzdELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUE4QjtRQUNoRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sV0FBVyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDOzsrR0EzRVUsa0JBQWtCO21IQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3JlcGVhdGVyLWl0ZW0uY29tcG9uZW50JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVJlcGVhdGVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBhY3RpdmVJdGVtQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQ+KFxuICAgIHVuZGVmaW5lZFxuICApO1xuXG4gIHB1YmxpYyBhY3RpdmVJdGVtSW5kZXhDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odW5kZWZpbmVkKTtcblxuICBwdWJsaWMgZW5hYmxlQWN0aXZlU3RhdGUgPSBmYWxzZTtcblxuICBwdWJsaWMgZXhwYW5kTW9kZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBpdGVtQ29sbGFwc2VTdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50PigpO1xuXG4gIHB1YmxpYyBpdGVtczogU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50W10gPSBbXTtcblxuICBwdWJsaWMgb3JkZXJDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XG5cbiAgcHVibGljIHJlcGVhdGVyR3JvdXBJZDogbnVtYmVyO1xuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUl0ZW1DaGFuZ2UuY29tcGxldGUoKTtcbiAgICB0aGlzLml0ZW1Db2xsYXBzZVN0YXRlQ2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5vcmRlckNoYW5nZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGFjdGl2YXRlSXRlbShpdGVtOiBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbmFibGVBY3RpdmVTdGF0ZSkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoKGkpID0+IGkgPT09IGl0ZW0pO1xuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1JbmRleENoYW5nZS5uZXh0KGluZGV4KTtcbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtQ2hhbmdlLm5leHQoaXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFjdGl2YXRlSXRlbUJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuZW5hYmxlQWN0aXZlU3RhdGUpIHtcbiAgICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlSXRlbUNoYW5nZS5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBhY3RpdmVJdGVtID0gdGhpcy5pdGVtc1tpbmRleF07XG4gICAgICAgIGlmIChhY3RpdmVJdGVtKSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVJdGVtQ2hhbmdlLm5leHQoYWN0aXZlSXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJJdGVtKGl0ZW06IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXMucHVzaChpdGVtKTtcbiAgfVxuXG4gIHB1YmxpYyB1bnJlZ2lzdGVySXRlbShpdGVtOiBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleE9mRGVzdHJveWVkSXRlbSA9IHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICBpZiAoaW5kZXhPZkRlc3Ryb3llZEl0ZW0gPiAtMSkge1xuICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaW5kZXhPZkRlc3Ryb3llZEl0ZW0sIDEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkl0ZW1Db2xsYXBzZVN0YXRlQ2hhbmdlKGl0ZW06IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbUNvbGxhcHNlU3RhdGVDaGFuZ2UuZW1pdChpdGVtKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJdGVtSW5kZXgoaXRlbTogU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5pbmRleE9mKGl0ZW0pO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT3JkZXJDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5vcmRlckNoYW5nZS5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVvcmRlckl0ZW0ob2xkSW5kZXg6IG51bWJlciwgbmV3SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuaXRlbXMuc3BsaWNlKG5ld0luZGV4LCAwLCB0aGlzLml0ZW1zLnNwbGljZShvbGRJbmRleCwgMSlbMF0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,80 @@
1
+ /**
2
+ * NOTICE: DO NOT MODIFY THIS FILE!
3
+ * The contents of this file were automatically generated by
4
+ * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-lists' schematic.
5
+ * To update this file, simply rerun the command.
6
+ */
7
+ import { NgModule } from '@angular/core';
8
+ import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
9
+ import * as i0 from "@angular/core";
10
+ const RESOURCES = {
11
+ 'EN-US': {
12
+ skyux_filter_button_title: { message: 'Filter' },
13
+ skyux_filter_summary_close: { message: 'Remove filter' },
14
+ skyux_filter_summary_header: { message: 'Filter' },
15
+ skyux_infinite_scroll_load_more_button: { message: 'Load more' },
16
+ skyux_paging_label: { message: 'Pagination' },
17
+ skyux_paging_next: { message: 'Next' },
18
+ skyux_paging_previous: { message: 'Previous' },
19
+ skyux_repeater_label: { message: 'List of items' },
20
+ skyux_repeater_item_expand: { message: 'Expand or collapse {0}' },
21
+ skyux_repeater_item_expand_default: { message: 'Expand or collapse' },
22
+ skyux_repeater_item_checkbox_label: { message: 'Select {0}' },
23
+ skyux_repeater_item_checkbox_label_default: { message: 'Select row' },
24
+ skyux_repeater_item_reorder_cancel: {
25
+ message: 'Item reordering was canceled. The item was returned to its original position.',
26
+ },
27
+ skyux_repeater_item_reorder_finish: {
28
+ message: 'Dropped the item in position',
29
+ },
30
+ skyux_repeater_item_reorder_instructions: {
31
+ message: 'Item grabbed. Press the up and down arrow keys to change position. Press the spacebar or enter key to drop. And press the escape key to cancel.',
32
+ },
33
+ skyux_repeater_item_reorder_moved: {
34
+ message: 'Moved the item to position',
35
+ },
36
+ skyux_repeater_item_reorder_label_default: { message: 'Reorder' },
37
+ skyux_repeater_item_reorder_label: { message: 'Reorder {0}' },
38
+ skyux_repeater_item_reorder_operation: {
39
+ message: 'Press the spacebar or enter key to reorder.',
40
+ },
41
+ skyux_repeater_item_reorder_top: { message: 'Top' },
42
+ skyux_repeater_item_reorder_top_label: { message: 'Move {0} to top' },
43
+ skyux_repeater_item_reorder_top_label_default: { message: 'Move to top' },
44
+ skyux_sort_button_label: { message: 'Sort' },
45
+ skyux_sort_menu_heading: { message: 'Sort by' },
46
+ },
47
+ };
48
+ export class SkyListsResourcesProvider {
49
+ getString(localeInfo, name) {
50
+ return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
51
+ }
52
+ }
53
+ /**
54
+ * Import into any component library module that needs to use resource strings.
55
+ */
56
+ export class SkyListsResourcesModule {
57
+ }
58
+ SkyListsResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyListsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
59
+ SkyListsResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyListsResourcesModule, exports: [SkyI18nModule] });
60
+ SkyListsResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyListsResourcesModule, providers: [
61
+ {
62
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
63
+ useClass: SkyListsResourcesProvider,
64
+ multi: true,
65
+ },
66
+ ], imports: [SkyI18nModule] });
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyListsResourcesModule, decorators: [{
68
+ type: NgModule,
69
+ args: [{
70
+ exports: [SkyI18nModule],
71
+ providers: [
72
+ {
73
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
74
+ useClass: SkyListsResourcesProvider,
75
+ multi: true,
76
+ },
77
+ ],
78
+ }]
79
+ }] });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWxpc3RzLXJlc291cmNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdHMvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9za3ktbGlzdHMtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixhQUFhLEVBR2IscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBMEM7SUFDdkQsT0FBTyxFQUFFO1FBQ1AseUJBQXlCLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFO1FBQ2hELDBCQUEwQixFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRTtRQUN4RCwyQkFBMkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUU7UUFDbEQsc0NBQXNDLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFO1FBQ2hFLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUM3QyxpQkFBaUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDdEMscUJBQXFCLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQzlDLG9CQUFvQixFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRTtRQUNsRCwwQkFBMEIsRUFBRSxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRTtRQUNqRSxrQ0FBa0MsRUFBRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRTtRQUNyRSxrQ0FBa0MsRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUU7UUFDN0QsMENBQTBDLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQ3JFLGtDQUFrQyxFQUFFO1lBQ2xDLE9BQU8sRUFDTCwrRUFBK0U7U0FDbEY7UUFDRCxrQ0FBa0MsRUFBRTtZQUNsQyxPQUFPLEVBQUUsOEJBQThCO1NBQ3hDO1FBQ0Qsd0NBQXdDLEVBQUU7WUFDeEMsT0FBTyxFQUNMLGlKQUFpSjtTQUNwSjtRQUNELGlDQUFpQyxFQUFFO1lBQ2pDLE9BQU8sRUFBRSw0QkFBNEI7U0FDdEM7UUFDRCx5Q0FBeUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUU7UUFDakUsaUNBQWlDLEVBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFO1FBQzdELHFDQUFxQyxFQUFFO1lBQ3JDLE9BQU8sRUFBRSw2Q0FBNkM7U0FDdkQ7UUFDRCwrQkFBK0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7UUFDbkQscUNBQXFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUU7UUFDckUsNkNBQTZDLEVBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFO1FBQ3pFLHVCQUF1QixFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtRQUM1Qyx1QkFBdUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUU7S0FDaEQ7Q0FDRixDQUFDO0FBRUYsTUFBTSxPQUFPLHlCQUF5QjtJQUM3QixTQUFTLENBQ2QsVUFBNEIsRUFDNUIsSUFBWTtRQUVaLE9BQU8scUJBQXFCLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFXSCxNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3FIQUF2Qix1QkFBdUIsWUFUeEIsYUFBYTtxSEFTWix1QkFBdUIsYUFSdkI7UUFDVDtZQUNFLE9BQU8sRUFBRSwyQkFBMkI7WUFDcEMsUUFBUSxFQUFFLHlCQUF5QjtZQUNuQyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsWUFQUyxhQUFhOzJGQVNaLHVCQUF1QjtrQkFWbkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsMkJBQTJCOzRCQUNwQyxRQUFRLEVBQUUseUJBQXlCOzRCQUNuQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTk9USUNFOiBETyBOT1QgTU9ESUZZIFRISVMgRklMRSFcbiAqIFRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgd2VyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieVxuICogdGhlICduZyBnZW5lcmF0ZSBAc2t5dXgvaTE4bjpsaWItcmVzb3VyY2VzLW1vZHVsZSBsaWIvbW9kdWxlcy9zaGFyZWQvc2t5LWxpc3RzJyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTS1lfTElCX1JFU09VUkNFU19QUk9WSURFUlMsXG4gIFNreUFwcExvY2FsZUluZm8sXG4gIFNreUkxOG5Nb2R1bGUsXG4gIFNreUxpYlJlc291cmNlcyxcbiAgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIsXG4gIGdldExpYlN0cmluZ0ZvckxvY2FsZSxcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5jb25zdCBSRVNPVVJDRVM6IHsgW2xvY2FsZTogc3RyaW5nXTogU2t5TGliUmVzb3VyY2VzIH0gPSB7XG4gICdFTi1VUyc6IHtcbiAgICBza3l1eF9maWx0ZXJfYnV0dG9uX3RpdGxlOiB7IG1lc3NhZ2U6ICdGaWx0ZXInIH0sXG4gICAgc2t5dXhfZmlsdGVyX3N1bW1hcnlfY2xvc2U6IHsgbWVzc2FnZTogJ1JlbW92ZSBmaWx0ZXInIH0sXG4gICAgc2t5dXhfZmlsdGVyX3N1bW1hcnlfaGVhZGVyOiB7IG1lc3NhZ2U6ICdGaWx0ZXInIH0sXG4gICAgc2t5dXhfaW5maW5pdGVfc2Nyb2xsX2xvYWRfbW9yZV9idXR0b246IHsgbWVzc2FnZTogJ0xvYWQgbW9yZScgfSxcbiAgICBza3l1eF9wYWdpbmdfbGFiZWw6IHsgbWVzc2FnZTogJ1BhZ2luYXRpb24nIH0sXG4gICAgc2t5dXhfcGFnaW5nX25leHQ6IHsgbWVzc2FnZTogJ05leHQnIH0sXG4gICAgc2t5dXhfcGFnaW5nX3ByZXZpb3VzOiB7IG1lc3NhZ2U6ICdQcmV2aW91cycgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9sYWJlbDogeyBtZXNzYWdlOiAnTGlzdCBvZiBpdGVtcycgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX2V4cGFuZDogeyBtZXNzYWdlOiAnRXhwYW5kIG9yIGNvbGxhcHNlIHswfScgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX2V4cGFuZF9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdFeHBhbmQgb3IgY29sbGFwc2UnIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9jaGVja2JveF9sYWJlbDogeyBtZXNzYWdlOiAnU2VsZWN0IHswfScgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX2NoZWNrYm94X2xhYmVsX2RlZmF1bHQ6IHsgbWVzc2FnZTogJ1NlbGVjdCByb3cnIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX2NhbmNlbDoge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ0l0ZW0gcmVvcmRlcmluZyB3YXMgY2FuY2VsZWQuIFRoZSBpdGVtIHdhcyByZXR1cm5lZCB0byBpdHMgb3JpZ2luYWwgcG9zaXRpb24uJyxcbiAgICB9LFxuICAgIHNreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl9maW5pc2g6IHtcbiAgICAgIG1lc3NhZ2U6ICdEcm9wcGVkIHRoZSBpdGVtIGluIHBvc2l0aW9uJyxcbiAgICB9LFxuICAgIHNreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl9pbnN0cnVjdGlvbnM6IHtcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgICdJdGVtIGdyYWJiZWQuIFByZXNzIHRoZSB1cCBhbmQgZG93biBhcnJvdyBrZXlzIHRvIGNoYW5nZSBwb3NpdGlvbi4gUHJlc3MgdGhlIHNwYWNlYmFyIG9yIGVudGVyIGtleSB0byBkcm9wLiBBbmQgcHJlc3MgdGhlIGVzY2FwZSBrZXkgdG8gY2FuY2VsLicsXG4gICAgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfbW92ZWQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdNb3ZlZCB0aGUgaXRlbSB0byBwb3NpdGlvbicsXG4gICAgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfbGFiZWxfZGVmYXVsdDogeyBtZXNzYWdlOiAnUmVvcmRlcicgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfbGFiZWw6IHsgbWVzc2FnZTogJ1Jlb3JkZXIgezB9JyB9LFxuICAgIHNreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl9vcGVyYXRpb246IHtcbiAgICAgIG1lc3NhZ2U6ICdQcmVzcyB0aGUgc3BhY2ViYXIgb3IgZW50ZXIga2V5IHRvIHJlb3JkZXIuJyxcbiAgICB9LFxuICAgIHNreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl90b3A6IHsgbWVzc2FnZTogJ1RvcCcgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfdG9wX2xhYmVsOiB7IG1lc3NhZ2U6ICdNb3ZlIHswfSB0byB0b3AnIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX3RvcF9sYWJlbF9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdNb3ZlIHRvIHRvcCcgfSxcbiAgICBza3l1eF9zb3J0X2J1dHRvbl9sYWJlbDogeyBtZXNzYWdlOiAnU29ydCcgfSxcbiAgICBza3l1eF9zb3J0X21lbnVfaGVhZGluZzogeyBtZXNzYWdlOiAnU29ydCBieScgfSxcbiAgfSxcbn07XG5cbmV4cG9ydCBjbGFzcyBTa3lMaXN0c1Jlc291cmNlc1Byb3ZpZGVyIGltcGxlbWVudHMgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIge1xuICBwdWJsaWMgZ2V0U3RyaW5nKFxuICAgIGxvY2FsZUluZm86IFNreUFwcExvY2FsZUluZm8sXG4gICAgbmFtZTogc3RyaW5nXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGdldExpYlN0cmluZ0ZvckxvY2FsZShSRVNPVVJDRVMsIGxvY2FsZUluZm8ubG9jYWxlLCBuYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIEltcG9ydCBpbnRvIGFueSBjb21wb25lbnQgbGlicmFyeSBtb2R1bGUgdGhhdCBuZWVkcyB0byB1c2UgcmVzb3VyY2Ugc3RyaW5ncy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1NreUkxOG5Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTS1lfTElCX1JFU09VUkNFU19QUk9WSURFUlMsXG4gICAgICB1c2VDbGFzczogU2t5TGlzdHNSZXNvdXJjZXNQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUxpc3RzUmVzb3VyY2VzTW9kdWxlIHt9XG4iXX0=