@skyux/lists 5.9.4 → 6.0.0-beta.10

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 (142) hide show
  1. package/documentation.json +20 -20
  2. package/esm2020/index.mjs +22 -0
  3. package/esm2020/lib/modules/filter/filter-button.component.mjs +62 -0
  4. package/esm2020/lib/modules/filter/filter-inline-item.component.mjs +14 -0
  5. package/esm2020/lib/modules/filter/filter-inline.component.mjs +14 -0
  6. package/esm2020/lib/modules/filter/filter-summary-item.component.mjs +45 -0
  7. package/esm2020/lib/modules/filter/filter-summary.component.mjs +15 -0
  8. package/esm2020/lib/modules/filter/filter.module.mjs +61 -0
  9. package/esm2020/lib/modules/infinite-scroll/infinite-scroll-dom-adapter.service.mjs +93 -0
  10. package/esm2020/lib/modules/infinite-scroll/infinite-scroll.component.mjs +109 -0
  11. package/esm2020/lib/modules/infinite-scroll/infinite-scroll.module.mjs +20 -0
  12. package/esm2020/lib/modules/paging/paging.component.mjs +122 -0
  13. package/esm2020/lib/modules/paging/paging.module.mjs +34 -0
  14. package/esm2020/lib/modules/repeater/repeater-adapter.service.mjs +69 -0
  15. package/esm2020/lib/modules/repeater/repeater-item-content.component.mjs +14 -0
  16. package/esm2020/lib/modules/repeater/repeater-item-context-menu.component.mjs +17 -0
  17. package/esm2020/lib/modules/repeater/repeater-item-title.component.mjs +14 -0
  18. package/esm2020/lib/modules/repeater/repeater-item.component.mjs +383 -0
  19. package/esm2020/lib/modules/repeater/repeater.component.mjs +258 -0
  20. package/esm2020/lib/modules/repeater/repeater.module.mjs +70 -0
  21. package/esm2020/lib/modules/repeater/repeater.service.mjs +72 -0
  22. package/esm2020/lib/modules/shared/sky-lists-resources.module.mjs +81 -0
  23. package/esm2020/lib/modules/sort/sort-item.component.mjs +60 -0
  24. package/esm2020/lib/modules/sort/sort-menu-heading.component.mjs +13 -0
  25. package/esm2020/lib/modules/sort/sort.component.mjs +35 -0
  26. package/esm2020/lib/modules/sort/sort.module.mjs +50 -0
  27. package/esm2020/lib/modules/sort/sort.service.mjs +20 -0
  28. package/esm2020/skyux-lists.mjs +5 -0
  29. package/esm2020/testing/filter/filter-fixture-button.mjs +46 -0
  30. package/esm2020/testing/filter/filter-fixture-summary.mjs +28 -0
  31. package/esm2020/testing/filter/filter-testing.module.mjs +15 -0
  32. package/esm2020/testing/filter/lists-filter-fixture-button.mjs +2 -0
  33. package/esm2020/testing/infinite-scroll/infinite-scroll-fixture.mjs +27 -0
  34. package/esm2020/testing/infinite-scroll/infinite-scroll-testing.module.mjs +15 -0
  35. package/esm2020/testing/paging/paging-fixture-button.mjs +2 -0
  36. package/esm2020/testing/paging/paging-fixture.mjs +93 -0
  37. package/esm2020/testing/paging/paging-testing.module.mjs +15 -0
  38. package/esm2020/testing/public-api.mjs +13 -0
  39. package/esm2020/testing/skyux-lists-testing.mjs +5 -0
  40. package/esm2020/testing/sort/sort-fixture-menu-item.mjs +2 -0
  41. package/esm2020/testing/sort/sort-fixture-menu.mjs +2 -0
  42. package/esm2020/testing/sort/sort-fixture.mjs +140 -0
  43. package/esm2020/testing/sort/sort-testing.module.mjs +17 -0
  44. package/fesm2015/{skyux-lists-testing.js → skyux-lists-testing.mjs} +17 -17
  45. package/fesm2015/skyux-lists-testing.mjs.map +1 -0
  46. package/fesm2015/skyux-lists.mjs +1619 -0
  47. package/fesm2015/skyux-lists.mjs.map +1 -0
  48. package/fesm2020/skyux-lists-testing.mjs +389 -0
  49. package/fesm2020/skyux-lists-testing.mjs.map +1 -0
  50. package/fesm2020/skyux-lists.mjs +1619 -0
  51. package/fesm2020/skyux-lists.mjs.map +1 -0
  52. package/package.json +43 -19
  53. package/testing/package.json +5 -5
  54. package/bundles/skyux-lists-testing.umd.js +0 -887
  55. package/bundles/skyux-lists.umd.js +0 -2150
  56. package/esm2015/index.js +0 -22
  57. package/esm2015/index.js.map +0 -1
  58. package/esm2015/lib/modules/filter/filter-button.component.js +0 -67
  59. package/esm2015/lib/modules/filter/filter-button.component.js.map +0 -1
  60. package/esm2015/lib/modules/filter/filter-inline-item.component.js +0 -18
  61. package/esm2015/lib/modules/filter/filter-inline-item.component.js.map +0 -1
  62. package/esm2015/lib/modules/filter/filter-inline.component.js +0 -18
  63. package/esm2015/lib/modules/filter/filter-inline.component.js.map +0 -1
  64. package/esm2015/lib/modules/filter/filter-summary-item.component.js +0 -50
  65. package/esm2015/lib/modules/filter/filter-summary-item.component.js.map +0 -1
  66. package/esm2015/lib/modules/filter/filter-summary.component.js +0 -20
  67. package/esm2015/lib/modules/filter/filter-summary.component.js.map +0 -1
  68. package/esm2015/lib/modules/filter/filter.module.js +0 -61
  69. package/esm2015/lib/modules/filter/filter.module.js.map +0 -1
  70. package/esm2015/lib/modules/infinite-scroll/infinite-scroll-dom-adapter.service.js +0 -93
  71. package/esm2015/lib/modules/infinite-scroll/infinite-scroll-dom-adapter.service.js.map +0 -1
  72. package/esm2015/lib/modules/infinite-scroll/infinite-scroll.component.js +0 -115
  73. package/esm2015/lib/modules/infinite-scroll/infinite-scroll.component.js.map +0 -1
  74. package/esm2015/lib/modules/infinite-scroll/infinite-scroll.module.js +0 -20
  75. package/esm2015/lib/modules/infinite-scroll/infinite-scroll.module.js.map +0 -1
  76. package/esm2015/lib/modules/paging/paging.component.js +0 -127
  77. package/esm2015/lib/modules/paging/paging.component.js.map +0 -1
  78. package/esm2015/lib/modules/paging/paging.module.js +0 -34
  79. package/esm2015/lib/modules/paging/paging.module.js.map +0 -1
  80. package/esm2015/lib/modules/repeater/repeater-adapter.service.js +0 -69
  81. package/esm2015/lib/modules/repeater/repeater-adapter.service.js.map +0 -1
  82. package/esm2015/lib/modules/repeater/repeater-item-content.component.js +0 -17
  83. package/esm2015/lib/modules/repeater/repeater-item-content.component.js.map +0 -1
  84. package/esm2015/lib/modules/repeater/repeater-item-context-menu.component.js +0 -20
  85. package/esm2015/lib/modules/repeater/repeater-item-context-menu.component.js.map +0 -1
  86. package/esm2015/lib/modules/repeater/repeater-item-title.component.js +0 -17
  87. package/esm2015/lib/modules/repeater/repeater-item-title.component.js.map +0 -1
  88. package/esm2015/lib/modules/repeater/repeater-item.component.js +0 -389
  89. package/esm2015/lib/modules/repeater/repeater-item.component.js.map +0 -1
  90. package/esm2015/lib/modules/repeater/repeater.component.js +0 -262
  91. package/esm2015/lib/modules/repeater/repeater.component.js.map +0 -1
  92. package/esm2015/lib/modules/repeater/repeater.module.js +0 -69
  93. package/esm2015/lib/modules/repeater/repeater.module.js.map +0 -1
  94. package/esm2015/lib/modules/repeater/repeater.service.js +0 -72
  95. package/esm2015/lib/modules/repeater/repeater.service.js.map +0 -1
  96. package/esm2015/lib/modules/shared/sky-lists-resources.module.js +0 -81
  97. package/esm2015/lib/modules/shared/sky-lists-resources.module.js.map +0 -1
  98. package/esm2015/lib/modules/sort/sort-item.component.js +0 -65
  99. package/esm2015/lib/modules/sort/sort-item.component.js.map +0 -1
  100. package/esm2015/lib/modules/sort/sort-menu-heading.component.js +0 -17
  101. package/esm2015/lib/modules/sort/sort-menu-heading.component.js.map +0 -1
  102. package/esm2015/lib/modules/sort/sort.component.js +0 -41
  103. package/esm2015/lib/modules/sort/sort.component.js.map +0 -1
  104. package/esm2015/lib/modules/sort/sort.module.js +0 -50
  105. package/esm2015/lib/modules/sort/sort.module.js.map +0 -1
  106. package/esm2015/lib/modules/sort/sort.service.js +0 -20
  107. package/esm2015/lib/modules/sort/sort.service.js.map +0 -1
  108. package/esm2015/skyux-lists.js +0 -5
  109. package/esm2015/skyux-lists.js.map +0 -1
  110. package/esm2015/testing/filter/filter-fixture-button.js +0 -50
  111. package/esm2015/testing/filter/filter-fixture-button.js.map +0 -1
  112. package/esm2015/testing/filter/filter-fixture-summary.js +0 -31
  113. package/esm2015/testing/filter/filter-fixture-summary.js.map +0 -1
  114. package/esm2015/testing/filter/filter-testing.module.js +0 -15
  115. package/esm2015/testing/filter/filter-testing.module.js.map +0 -1
  116. package/esm2015/testing/filter/lists-filter-fixture-button.js +0 -2
  117. package/esm2015/testing/filter/lists-filter-fixture-button.js.map +0 -1
  118. package/esm2015/testing/infinite-scroll/infinite-scroll-fixture.js +0 -30
  119. package/esm2015/testing/infinite-scroll/infinite-scroll-fixture.js.map +0 -1
  120. package/esm2015/testing/infinite-scroll/infinite-scroll-testing.module.js +0 -15
  121. package/esm2015/testing/infinite-scroll/infinite-scroll-testing.module.js.map +0 -1
  122. package/esm2015/testing/paging/paging-fixture-button.js +0 -2
  123. package/esm2015/testing/paging/paging-fixture-button.js.map +0 -1
  124. package/esm2015/testing/paging/paging-fixture.js +0 -104
  125. package/esm2015/testing/paging/paging-fixture.js.map +0 -1
  126. package/esm2015/testing/paging/paging-testing.module.js +0 -15
  127. package/esm2015/testing/paging/paging-testing.module.js.map +0 -1
  128. package/esm2015/testing/public-api.js +0 -13
  129. package/esm2015/testing/public-api.js.map +0 -1
  130. package/esm2015/testing/skyux-lists-testing.js +0 -5
  131. package/esm2015/testing/skyux-lists-testing.js.map +0 -1
  132. package/esm2015/testing/sort/sort-fixture-menu-item.js +0 -2
  133. package/esm2015/testing/sort/sort-fixture-menu-item.js.map +0 -1
  134. package/esm2015/testing/sort/sort-fixture-menu.js +0 -2
  135. package/esm2015/testing/sort/sort-fixture-menu.js.map +0 -1
  136. package/esm2015/testing/sort/sort-fixture.js +0 -152
  137. package/esm2015/testing/sort/sort-fixture.js.map +0 -1
  138. package/esm2015/testing/sort/sort-testing.module.js +0 -17
  139. package/esm2015/testing/sort/sort-testing.module.js.map +0 -1
  140. package/fesm2015/skyux-lists-testing.js.map +0 -1
  141. package/fesm2015/skyux-lists.js +0 -1686
  142. package/fesm2015/skyux-lists.js.map +0 -1
@@ -0,0 +1,258 @@
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.createGroup(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
185
+ .drag(this.dragulaGroupName)
186
+ .pipe(takeUntil(this.dragulaUnsubscribe))
187
+ .subscribe((args) => {
188
+ /* istanbul ignore else */
189
+ if (args.name === this.dragulaGroupName) {
190
+ this.renderer.addClass(args.el, 'sky-repeater-item-dragging');
191
+ draggedItemIndex = this.adapterService.getRepeaterItemIndex(args.el);
192
+ }
193
+ });
194
+ this.dragulaService
195
+ .dragend(this.dragulaGroupName)
196
+ .pipe(takeUntil(this.dragulaUnsubscribe))
197
+ .subscribe((args) => {
198
+ /* istanbul ignore else */
199
+ if (args.name === this.dragulaGroupName) {
200
+ this.renderer.removeClass(args.el, 'sky-repeater-item-dragging');
201
+ const newItemIndex = this.adapterService.getRepeaterItemIndex(args.el);
202
+ /* sanity check */
203
+ /* istanbul ignore else */
204
+ if (draggedItemIndex >= 0) {
205
+ this.repeaterService.reorderItem(draggedItemIndex, newItemIndex);
206
+ draggedItemIndex = undefined;
207
+ }
208
+ this.emitTags();
209
+ }
210
+ });
211
+ }
212
+ destroyDragAndDrop() {
213
+ this.dragulaUnsubscribe.next();
214
+ this.dragulaUnsubscribe.complete();
215
+ this.dragulaUnsubscribe = undefined;
216
+ /* Sanity check that we have set up dragging abilities */
217
+ /* istanbul ignore else */
218
+ if (this.dragulaService.find(this.dragulaGroupName)) {
219
+ this.dragulaService.destroy(this.dragulaGroupName);
220
+ }
221
+ }
222
+ emitTags() {
223
+ const tags = this.repeaterService.items.map((item) => item.tag);
224
+ this.orderChange.emit(tags);
225
+ }
226
+ everyItemHasTag() {
227
+ /* sanity check */
228
+ /* istanbul ignore if */
229
+ if (!this.items || this.items.length === 0) {
230
+ return false;
231
+ }
232
+ return this.items.toArray().every((item) => {
233
+ return item.tag !== undefined;
234
+ });
235
+ }
236
+ }
237
+ SkyRepeaterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", 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 });
238
+ SkyRepeaterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", 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"], outputs: ["dragulaModelChange"] }], pipes: { "skyLibResources": i4.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyRepeaterComponent, decorators: [{
240
+ type: Component,
241
+ 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"] }]
242
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyRepeaterService }, { type: i2.SkyRepeaterAdapterService }, { type: i3.DragulaService }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { activeIndex: [{
243
+ type: Input
244
+ }], ariaLabel: [{
245
+ type: Input
246
+ }], reorderable: [{
247
+ type: Input
248
+ }], expandMode: [{
249
+ type: Input
250
+ }], activeIndexChange: [{
251
+ type: Output
252
+ }], orderChange: [{
253
+ type: Output
254
+ }], items: [{
255
+ type: ContentChildren,
256
+ args: [SkyRepeaterItemComponent]
257
+ }] } });
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3NyYy9saWIvbW9kdWxlcy9yZXBlYXRlci9yZXBlYXRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdHMvc3JjL2xpYi9tb2R1bGVzL3JlcGVhdGVyL3JlcGVhdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBRXhELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUVqQjs7R0FFRztBQVFILE1BQU0sT0FBTyxvQkFBb0I7SUFtRi9CLFlBQ1UsY0FBaUMsRUFDakMsZUFBbUMsRUFDbkMsY0FBeUMsRUFDekMsY0FBOEIsRUFDOUIsVUFBc0IsRUFDdEIsUUFBbUI7UUFMbkIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLG9CQUFlLEdBQWYsZUFBZSxDQUFvQjtRQUNuQyxtQkFBYyxH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TTsrUEFZeEMsV0FBVztzQkFEakIsS0FBSztnQkFVQyxTQUFTO3NCQURmLEtBQUs7Z0JBU0MsV0FBVztzQkFEakIsS0FBSztnQkF1QkssVUFBVTtzQkFEcEIsS0FBSztnQkFlQyxpQkFBaUI7c0JBRHZCLE1BQU07Z0JBUUEsV0FBVztzQkFEakIsTUFBTTtnQkFJQSxLQUFLO3NCQURYLGVBQWU7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEcmFndWxhU2VydmljZSB9IGZyb20gJ25nMi1kcmFndWxhJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5UmVwZWF0ZXJBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vcmVwZWF0ZXItYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcmVwZWF0ZXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXBlYXRlci5zZXJ2aWNlJztcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY29udGFpbmVyIHRvIGRpc3BsYXkgcmVwZWF0ZXIgaXRlbXMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1yZXBlYXRlcicsXG4gIHN0eWxlVXJsczogWycuL3JlcGVhdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBlYXRlci5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1NreVJlcGVhdGVyU2VydmljZSwgU2t5UmVwZWF0ZXJBZGFwdGVyU2VydmljZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lSZXBlYXRlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGluZGV4IG9mIHRoZSByZXBlYXRlciBpdGVtIHRvIHZpc3VhbGx5IGhpZ2hsaWdodCBhcyBhY3RpdmUuXG4gICAqIEZvciBleGFtcGxlLCB1c2UgdGhpcyBwcm9wZXJ0eSBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZVxuICAgKiBbc3BsaXQgdmlldyBjb21wb25lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9zcGxpdC12aWV3KVxuICAgKiB0byBoaWdobGlnaHQgYSByZXBlYXRlciBpdGVtIHdoaWxlIHVzZXJzIGVkaXQgaXQuIE9ubHkgb25lIGl0ZW0gY2FuIGJlIGFjdGl2ZSBhdCBhIHRpbWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWN0aXZlSW5kZXg6IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIEFSSUEgbGFiZWwgZm9yIHRoZSByZXBlYXRlciBsaXN0LlxuICAgKiBUaGlzIHNldHMgdGhlIHJlcGVhdGVyIGxpc3QncyBgYXJpYS1sYWJlbGAgYXR0cmlidXRlXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIEBkZWZhdWx0IFwiTGlzdCBvZiBpdGVtc1wiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHVzZXJzIGNhbiBjaGFuZ2UgdGhlIG9yZGVyIG9mIGl0ZW1zIGluIHRoZSByZXBlYXRlciBsaXN0LlxuICAgKiBFYWNoIHJlcGVhdGVyIGl0ZW0gYWxzbyBoYXMgYHJlb3JkZXJhYmxlYCBwcm9wZXJ0eSB0byBpbmRpY2F0ZSB3aGV0aGVyXG4gICAqIHVzZXJzIGNhbiBjaGFuZ2UgaXRzIG9yZGVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHJlb3JkZXJhYmxlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGxheW91dCB0byBkZXRlcm1pbmUgd2hpY2ggcmVwZWF0ZXIgaXRlbXMgYXJlIGV4cGFuZGVkIGJ5IGRlZmF1bHQgYW5kIHdoZXRoZXJcbiAgICogcmVwZWF0ZXIgaXRlbXMgYXJlIGV4cGFuZGFibGUgYW5kIGNvbGxhcHNpYmxlLiBDb2xsYXBzZWQgaXRlbXMgZGlzcGxheSB0aXRsZXMgb25seS5cbiAgICogVGhlIHZhbGlkIG9wdGlvbnMgYXJlIGBtdWx0aXBsZWAsIGBub25lYCwgYW5kIGBzaW5nbGVgLlxuICAgKiAtIGBtdWx0aXBsZWAgbG9hZHMgcmVwZWF0ZXIgaXRlbXMgaW4gYW4gZXhwYW5kZWQgc3RhdGUgdW5sZXNzIGBpc0V4cGFuZGVkYCBpcyBzZXQgdG9cbiAgICogYGZhbHNlYCBmb3IgYSByZXBlYXRlciBpdGVtLiBUaGlzIGxheW91dCBhbGxvd3MgdXNlcnMgdG8gZXhwYW5kIGFuZCBjb2xsYXBzZVxuICAgKiBhcyBtYW55IHJlcGVhdGVyIGl0ZW1zIGFzIG5lY2Vzc2FyeS4gSXQgaXMgYmVzdC1zdWl0ZWQgdG8gcmVwZWF0ZXIgaXRlbXMgd2hlcmUgYm9keVxuICAgKiBjb250ZW50IGlzIGltcG9ydGFudCBidXQgdXNlcnMgZG9uJ3QgYWx3YXlzIG5lZWQgdG8gc2VlIGl0LlxuICAgKiAtIGBub25lYCBsb2FkcyBhbGwgcmVwZWF0ZXIgaXRlbXMgaW4gYW4gZXhwYW5kZWQgc3RhdGUgYW5kIGRvZXMgbm90IGFsbG93IHVzZXJzIHRvXG4gICAqIGNvbGxhcHNlIHRoZW0uIFRoaXMgZGVmYXVsdCBsYXlvdXQgcHJvdmlkZXMgdGhlIHF1aWNrZXN0IGFjY2VzcyB0byB0aGUgZGV0YWlscyBpbiB0aGVcbiAgICogcmVwZWF0ZXIgaXRlbXMuIEl0IGlzIGJlc3Qtc3VpdGVkIHRvIHJlcGVhdGVyIGl0ZW1zIHdpdGggY29uY2lzZSBjb250ZW50XG4gICAqIHRoYXQgdXNlcnMgbmVlZCB0byB2aWV3IGZyZXF1ZW50bHkuXG4gICAqIC0gYHNpbmdsZWAgbG9hZHMgb25lIHJlcGVhdGVyIGl0ZW0gaW4gYW4gZXhwYW5kZWQgc3RhdGUgYW5kIGNvbGxhcHNlcyBhbGwgb3RoZXJzLlxuICAgKiBUaGUgZXhwYW5kZWQgcmVwZWF0ZXIgaXRlbSBpcyB0aGUgZmlyc3Qgb25lIHdoZXJlIGBpc0V4cGFuZGVkYCBpcyBzZXQgdG8gYHRydWVgLiBUaGlzIGxheW91dFxuICAgKiBhbGxvd3MgdXNlcnMgdG8gZXhwYW5kIG9uZSBpdGVtIGF0IGEgdGltZS4gSXQgcHJvdmlkZXMgdGhlIG1vc3QgY29tcGFjdCB2aWV3IGFuZCBpc1xuICAgKiBiZXN0LXN1aXRlZCB0byByZXBlYXRlciBpdGVtcyB3aGVyZSB0aGUgbW9zdCBpbXBvcnRhbnQgaW5mb3JtYXRpb24gaXMgaW4gdGhlIHRpdGxlc1xuICAgKiBhbmQgdXNlcnMgb25seSBvY2Nhc2lvbmFsbHkgbmVlZCB0byB2aWV3IHRoZSBib2R5IGNvbnRlbnQuXG4gICAqIEBkZWZhdWx0IFwibm9uZVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGV4cGFuZE1vZGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucmVwZWF0ZXJTZXJ2aWNlLmV4cGFuZE1vZGUgPSB2YWx1ZTtcbiAgICB0aGlzLl9leHBhbmRNb2RlID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVGb3JFeHBhbmRNb2RlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGV4cGFuZE1vZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZXhwYW5kTW9kZSB8fCAnbm9uZSc7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgYWN0aXZlIHJlcGVhdGVyIGl0ZW0gY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYWN0aXZlSW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBjaGFuZ2UgdGhlIG9yZGVyIG9mIHJlcGVhdGVyIGl0ZW1zLlxuICAgKiBUaGlzIGV2ZW50IGVtaXRzIGFuIG9yZGVyZWQgYXJyYXkgb2YgdGhlIGB0YWdgIHByb3BlcnRpZXMgdGhhdCB0aGUgY29uc3VtZXIgcHJvdmlkZXMgZm9yIGVhY2ggcmVwZWF0ZXIgaXRlbS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3JkZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50KVxuICBwdWJsaWMgaXRlbXM6IFF1ZXJ5TGlzdDxTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQ+O1xuXG4gIHB1YmxpYyBkcmFndWxhR3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBkcmFndWxhVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBfZXhwYW5kTW9kZSA9ICdub25lJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlcGVhdGVyU2VydmljZTogU2t5UmVwZWF0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWRhcHRlclNlcnZpY2U6IFNreVJlcGVhdGVyQWRhcHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkcmFndWxhU2VydmljZTogRHJhZ3VsYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICB0aGlzLmRyYWd1bGFHcm91cE5hbWUgPSBgc2t5LXJlcGVhdGVyLWRyYWd1bGEtJHsrK3VuaXF1ZUlkfWA7XG5cbiAgICB0aGlzLnJlcGVhdGVyU2VydmljZS5pdGVtQ29sbGFwc2VTdGF0ZUNoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChpdGVtOiBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZXhwYW5kTW9kZSA9PT0gJ3NpbmdsZScgJiYgaXRlbS5pc0V4cGFuZGVkKSB7XG4gICAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChvdGhlckl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgb3RoZXJJdGVtICE9PSBpdGVtICYmXG4gICAgICAgICAgICAgIG90aGVySXRlbS5pc0V4cGFuZGVkICYmXG4gICAgICAgICAgICAgIG90aGVySXRlbS5pc0NvbGxhcHNpYmxlXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgb3RoZXJJdGVtLmlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnJlcGVhdGVyU2VydmljZS5hY3RpdmVJdGVtSW5kZXhDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAoaW5kZXggIT09IHRoaXMuYWN0aXZlSW5kZXgpIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgdGhpcy5hY3RpdmVJbmRleENoYW5nZS5lbWl0KGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnJlcGVhdGVyU2VydmljZS5vcmRlckNoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5lbWl0VGFncygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnJlcGVhdGVyU2VydmljZS5yZXBlYXRlckdyb3VwSWQgPSB1bmlxdWVJZDtcblxuICAgIHRoaXMudXBkYXRlRm9yRXhwYW5kTW9kZSgpO1xuXG4gICAgdGhpcy5hZGFwdGVyU2VydmljZS5zZXRSZXBlYXRlckhvc3QodGhpcy5lbGVtZW50UmVmKTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZURyYWdBbmREcm9wKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIC8vIElmIGFjdGl2ZUluZGV4IGhhcyBiZWVuIHNldCBvbiBpbml0LCBjYWxsIHNlcnZpY2UgdG8gYWN0aXZhdGUgdGhlIGFwcHJvcHJpYXRlIGl0ZW0uXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCB8fCB0aGlzLmFjdGl2ZUluZGV4ID09PSAwKSB7XG4gICAgICAgIHRoaXMucmVwZWF0ZXJTZXJ2aWNlLmFjdGl2YXRlSXRlbUJ5SW5kZXgodGhpcy5hY3RpdmVJbmRleCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnJlb3JkZXJhYmxlICYmICF0aGlzLmV2ZXJ5SXRlbUhhc1RhZygpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnUGxlYXNlIHN1cHBseSB0YWcgcHJvcGVydGllcyBmb3IgZWFjaCByZXBlYXRlciBpdGVtIHdoZW4gcmVvcmRlcmluZyBmdW5jdGlvbmFsaXR5IGlzIGVuYWJsZWQuJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gSEFDSzogTm90IHVwZGF0aW5nIGZvciBleHBhbmQgbW9kZSBpbiBhIHRpbWVvdXQgY2F1c2VzIGFuIGVycm9yLlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzYwMDVcbiAgICB0aGlzLml0ZW1zLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pdGVtcy5sYXN0KSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVGb3JFeHBhbmRNb2RlKHRoaXMuaXRlbXMubGFzdCk7XG4gICAgICAgICAgdGhpcy5pdGVtcy5sYXN0LnJlb3JkZXJhYmxlID0gdGhpcy5yZW9yZGVyYWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLnJlcGVhdGVyU2VydmljZS5hY3RpdmF0ZUl0ZW1CeUluZGV4KHRoaXMuYWN0aXZlSW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVGb3JFeHBhbmRNb2RlKCk7XG5cbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpdGVtLnJlb3JkZXJhYmxlID0gdGhpcy5yZW9yZGVyYWJsZTtcbiAgICAgIH0pO1xuICAgIH0sIDApO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snYWN0aXZlSW5kZXgnXSkge1xuICAgICAgdGhpcy5yZXBlYXRlclNlcnZpY2UuZW5hYmxlQWN0aXZlU3RhdGUgPSB0cnVlO1xuICAgICAgaWYgKFxuICAgICAgICBjaGFuZ2VzWydhY3RpdmVJbmRleCddLmN1cnJlbnRWYWx1ZSAhPT1cbiAgICAgICAgY2hhbmdlc1snYWN0aXZlSW5kZXgnXS5wcmV2aW91c1ZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5yZXBlYXRlclNlcnZpY2UuYWN0aXZhdGVJdGVtQnlJbmRleCh0aGlzLmFjdGl2ZUluZGV4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5yZW9yZGVyYWJsZSkge1xuICAgICAgaWYgKHRoaXMuaXRlbXMpIHtcbiAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5yZW9yZGVyYWJsZSA9IHRoaXMucmVvcmRlcmFibGUpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLmRlc3Ryb3lEcmFnQW5kRHJvcCgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb3JFeHBhbmRNb2RlKGl0ZW1BZGRlZD86IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICBsZXQgZm91bmRFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgY29uc3QgaXNDb2xsYXBzaWJsZSA9IHRoaXMuZXhwYW5kTW9kZSAhPT0gJ25vbmUnO1xuICAgICAgY29uc3QgaXNTaW5nbGUgPSB0aGlzLmV4cGFuZE1vZGUgPT09ICdzaW5nbGUnO1xuXG4gICAgICAvLyBLZWVwIGFueSBuZXdseS1hZGRlZCBleHBhbmRlZCBpdGVtIGV4cGFuZGVkIGFuZCBjb2xsYXBzZSB0aGUgcmVzdC5cbiAgICAgIGlmIChpdGVtQWRkZWQgJiYgaXRlbUFkZGVkLmlzRXhwYW5kZWQpIHtcbiAgICAgICAgZm91bmRFeHBhbmRlZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpdGVtLmlzQ29sbGFwc2libGUgPSBpc0NvbGxhcHNpYmxlICYmICEhaXRlbS5oYXNJdGVtQ29udGVudDtcblxuICAgICAgICBpZiAoaXRlbSAhPT0gaXRlbUFkZGVkICYmIGlzU2luZ2xlICYmIGl0ZW0uaXNFeHBhbmRlZCkge1xuICAgICAgICAgIGlmIChmb3VuZEV4cGFuZGVkKSB7XG4gICAgICAgICAgICBpdGVtLnVwZGF0ZUZvckV4cGFuZGVkKGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZm91bmRFeHBhbmRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURyYWdBbmREcm9wKCk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayB0aGF0IHdlIGhhdmVuJ3QgYWxyZWFkeSBzZXQgdXAgZHJhZ2dpbmcgYWJpbGl0aWVzICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXRoaXMuZHJhZ3VsYVNlcnZpY2UuZmluZCh0aGlzLmRyYWd1bGFHcm91cE5hbWUpKSB7XG4gICAgICB0aGlzLmRyYWd1bGFTZXJ2aWNlLmNyZWF0ZUdyb3VwKHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSwge1xuICAgICAgICBtb3ZlczogKFxuICAgICAgICAgIGVsOiBIVE1MRWxlbWVudCxcbiAgICAgICAgICBjb250YWluZXI6IEhUTUxFbGVtZW50LFxuICAgICAgICAgIGhhbmRsZTogSFRNTEVsZW1lbnRcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZWwucXVlcnlTZWxlY3RvcignLnNreS1yZXBlYXRlci1pdGVtLWdyYWItaGFuZGxlJyk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVvcmRlcmFibGUgJiYgdGFyZ2V0ICYmIHRhcmdldC5jb250YWlucyhoYW5kbGUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IGRyYWdnZWRJdGVtSW5kZXg6IG51bWJlcjtcblxuICAgIHRoaXMuZHJhZ3VsYVNlcnZpY2VcbiAgICAgIC5kcmFnKHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRyYWd1bGFVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChhcmdzKSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChhcmdzLm5hbWUgPT09IHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSkge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYXJncy5lbCwgJ3NreS1yZXBlYXRlci1pdGVtLWRyYWdnaW5nJyk7XG4gICAgICAgICAgZHJhZ2dlZEl0ZW1JbmRleCA9IHRoaXMuYWRhcHRlclNlcnZpY2UuZ2V0UmVwZWF0ZXJJdGVtSW5kZXgoXG4gICAgICAgICAgICBhcmdzLmVsIGFzIEhUTUxFbGVtZW50XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLmRyYWd1bGFTZXJ2aWNlXG4gICAgICAuZHJhZ2VuZCh0aGlzLmRyYWd1bGFHcm91cE5hbWUpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kcmFndWxhVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoYXJncykgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoYXJncy5uYW1lID09PSB0aGlzLmRyYWd1bGFHcm91cE5hbWUpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGFyZ3MuZWwsICdza3ktcmVwZWF0ZXItaXRlbS1kcmFnZ2luZycpO1xuICAgICAgICAgIGNvbnN0IG5ld0l0ZW1JbmRleCA9IHRoaXMuYWRhcHRlclNlcnZpY2UuZ2V0UmVwZWF0ZXJJdGVtSW5kZXgoXG4gICAgICAgICAgICBhcmdzLmVsIGFzIEhUTUxFbGVtZW50XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKGRyYWdnZWRJdGVtSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5yZXBlYXRlclNlcnZpY2UucmVvcmRlckl0ZW0oZHJhZ2dlZEl0ZW1JbmRleCwgbmV3SXRlbUluZGV4KTtcbiAgICAgICAgICAgIGRyYWdnZWRJdGVtSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5lbWl0VGFncygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveURyYWdBbmREcm9wKCk6IHZvaWQge1xuICAgIHRoaXMuZHJhZ3VsYVVuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLmRyYWd1bGFVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZHJhZ3VsYVVuc3Vic2NyaWJlID0gdW5kZWZpbmVkO1xuXG4gICAgLyogU2FuaXR5IGNoZWNrIHRoYXQgd2UgaGF2ZSBzZXQgdXAgZHJhZ2dpbmcgYWJpbGl0aWVzICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5kcmFndWxhU2VydmljZS5maW5kKHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSkpIHtcbiAgICAgIHRoaXMuZHJhZ3VsYVNlcnZpY2UuZGVzdHJveSh0aGlzLmRyYWd1bGFHcm91cE5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdFRhZ3MoKTogdm9pZCB7XG4gICAgY29uc3QgdGFncyA9IHRoaXMucmVwZWF0ZXJTZXJ2aWNlLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS50YWcpO1xuICAgIHRoaXMub3JkZXJDaGFuZ2UuZW1pdCh0YWdzKTtcbiAgfVxuXG4gIHByaXZhdGUgZXZlcnlJdGVtSGFzVGFnKCk6IGJvb2xlYW4ge1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghdGhpcy5pdGVtcyB8fCB0aGlzLml0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pdGVtcy50b0FycmF5KCkuZXZlcnkoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBpdGVtLnRhZyAhPT0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICNyZXBlYXRlckhvc3Q+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1yZXBlYXRlclwiXG4gICAgcm9sZT1cImxpc3Rib3hcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8ICgnc2t5dXhfcmVwZWF0ZXJfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzKVwiXG4gICAgW2RyYWd1bGFdPVwiZHJhZ3VsYUdyb3VwTmFtZVwiXG4gID5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,70 @@
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, DragulaService } 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.3.2", ngImport: i0, type: SkyRepeaterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ SkyRepeaterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", 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.3.2", ngImport: i0, type: SkyRepeaterModule, providers: [DragulaService], 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.3.2", 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
+ providers: [DragulaService],
68
+ }]
69
+ }] });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3NyYy9saWIvbW9kdWxlcy9yZXBlYXRlci9yZXBlYXRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUE0QjVELE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkF4QjFCLG9CQUFvQjtRQUNwQix3QkFBd0I7UUFDeEIsK0JBQStCO1FBQy9CLG1DQUFtQztRQUNuQyw2QkFBNkIsYUFHN0IsWUFBWTtRQUNaLGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsdUJBQXVCLGFBR3ZCLG9CQUFvQjtRQUNwQix3QkFBd0I7UUFDeEIsK0JBQStCO1FBQy9CLG1DQUFtQztRQUNuQyw2QkFBNkI7K0dBSXBCLGlCQUFpQixhQUZqQixDQUFDLGNBQWMsQ0FBQyxZQWhCbEI7WUFDUCxZQUFZO1lBQ1osYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixpQkFBaUI7WUFDakIsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQix1QkFBdUI7U0FDeEI7MkZBVVUsaUJBQWlCO2tCQTFCN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osb0JBQW9CO3dCQUNwQix3QkFBd0I7d0JBQ3hCLCtCQUErQjt3QkFDL0IsbUNBQW1DO3dCQUNuQyw2QkFBNkI7cUJBQzlCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsK0JBQStCO3dCQUMvQixtQ0FBbUM7d0JBQ25DLDZCQUE2QjtxQkFDOUI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuaW1wb3J0IHsgU2t5Q2hldnJvbk1vZHVsZSwgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcbmltcG9ydCB7IFNreUlubGluZUZvcm1Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaW5saW5lLWZvcm0nO1xuXG5pbXBvcnQgeyBEcmFndWxhTW9kdWxlLCBEcmFndWxhU2VydmljZSB9IGZyb20gJ25nMi1kcmFndWxhJztcblxuaW1wb3J0IHsgU2t5TGlzdHNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWxpc3RzLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1Db250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9yZXBlYXRlci1pdGVtLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVJlcGVhdGVySXRlbUNvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9yZXBlYXRlci1pdGVtLWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJJdGVtVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL3JlcGVhdGVyLWl0ZW0tdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcmVwZWF0ZXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJDb21wb25lbnQgfSBmcm9tICcuL3JlcGVhdGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreVJlcGVhdGVyQ29tcG9uZW50LFxuICAgIFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCxcbiAgICBTa3lSZXBlYXRlckl0ZW1Db250ZW50Q29tcG9uZW50LFxuICAgIFNreVJlcGVhdGVySXRlbUNvbnRleHRNZW51Q29tcG9uZW50LFxuICAgIFNreVJlcGVhdGVySXRlbVRpdGxlQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERyYWd1bGFNb2R1bGUsXG4gICAgU2t5Q2hldnJvbk1vZHVsZSxcbiAgICBTa3lDaGVja2JveE1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIFNreUlubGluZUZvcm1Nb2R1bGUsXG4gICAgU2t5TGlzdHNSZXNvdXJjZXNNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTa3lSZXBlYXRlckNvbXBvbmVudCxcbiAgICBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQsXG4gICAgU2t5UmVwZWF0ZXJJdGVtQ29udGVudENvbXBvbmVudCxcbiAgICBTa3lSZXBlYXRlckl0ZW1Db250ZXh0TWVudUNvbXBvbmVudCxcbiAgICBTa3lSZXBlYXRlckl0ZW1UaXRsZUNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbRHJhZ3VsYVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lSZXBlYXRlck1vZHVsZSB7fVxuIl19
@@ -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.3.2", ngImport: i0, type: SkyRepeaterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
68
+ SkyRepeaterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyRepeaterService });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyRepeaterService, decorators: [{
70
+ type: Injectable
71
+ }] });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0cy9zcmMvbGliL21vZHVsZXMvcmVwZWF0ZXIvcmVwZWF0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUl2Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFUyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FDM0MsU0FBUyxDQUNWLENBQUM7UUFFSywwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxTQUFTLENBQUMsQ0FBQztRQUUvRCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFJMUIsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFFdkUsVUFBSyxHQUErQixFQUFFLENBQUM7UUFFdkMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBTyxTQUFTLENBQUMsQ0FBQztLQTZEM0Q7SUF6RFEsV0FBVztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUE4QjtRQUNoRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQiwwQkFBMEI7WUFDMUIsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsQztTQUNGO0lBQ0gsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQWE7UUFDdEMsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN2QztpQkFBTTtnQkFDTCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLFVBQVUsRUFBRTtvQkFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUN4QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sWUFBWSxDQUFDLElBQThCO1FBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxjQUFjLENBQUMsSUFBOEI7UUFDbEQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFJLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQztJQUVNLHlCQUF5QixDQUFDLElBQThCO1FBQzdELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUE4QjtRQUNoRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sV0FBVyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDOzsrR0EzRVUsa0JBQWtCO21IQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3JlcGVhdGVyLWl0ZW0uY29tcG9uZW50JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVJlcGVhdGVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBhY3RpdmVJdGVtQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQ+KFxuICAgIHVuZGVmaW5lZFxuICApO1xuXG4gIHB1YmxpYyBhY3RpdmVJdGVtSW5kZXhDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odW5kZWZpbmVkKTtcblxuICBwdWJsaWMgZW5hYmxlQWN0aXZlU3RhdGUgPSBmYWxzZTtcblxuICBwdWJsaWMgZXhwYW5kTW9kZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBpdGVtQ29sbGFwc2VTdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50PigpO1xuXG4gIHB1YmxpYyBpdGVtczogU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50W10gPSBbXTtcblxuICBwdWJsaWMgb3JkZXJDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XG5cbiAgcHVibGljIHJlcGVhdGVyR3JvdXBJZDogbnVtYmVyO1xuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUl0ZW1DaGFuZ2UuY29tcGxldGUoKTtcbiAgICB0aGlzLml0ZW1Db2xsYXBzZVN0YXRlQ2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5vcmRlckNoYW5nZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGFjdGl2YXRlSXRlbShpdGVtOiBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbmFibGVBY3RpdmVTdGF0ZSkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoKGkpID0+IGkgPT09IGl0ZW0pO1xuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1JbmRleENoYW5nZS5uZXh0KGluZGV4KTtcbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtQ2hhbmdlLm5leHQoaXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFjdGl2YXRlSXRlbUJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuZW5hYmxlQWN0aXZlU3RhdGUpIHtcbiAgICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlSXRlbUNoYW5nZS5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBhY3RpdmVJdGVtID0gdGhpcy5pdGVtc1tpbmRleF07XG4gICAgICAgIGlmIChhY3RpdmVJdGVtKSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVJdGVtQ2hhbmdlLm5leHQoYWN0aXZlSXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJJdGVtKGl0ZW06IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXMucHVzaChpdGVtKTtcbiAgfVxuXG4gIHB1YmxpYyB1bnJlZ2lzdGVySXRlbShpdGVtOiBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleE9mRGVzdHJveWVkSXRlbSA9IHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICBpZiAoaW5kZXhPZkRlc3Ryb3llZEl0ZW0gPiAtMSkge1xuICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaW5kZXhPZkRlc3Ryb3llZEl0ZW0sIDEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkl0ZW1Db2xsYXBzZVN0YXRlQ2hhbmdlKGl0ZW06IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbUNvbGxhcHNlU3RhdGVDaGFuZ2UuZW1pdChpdGVtKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJdGVtSW5kZXgoaXRlbTogU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5pbmRleE9mKGl0ZW0pO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT3JkZXJDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5vcmRlckNoYW5nZS5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVvcmRlckl0ZW0ob2xkSW5kZXg6IG51bWJlciwgbmV3SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuaXRlbXMuc3BsaWNlKG5ld0luZGV4LCAwLCB0aGlzLml0ZW1zLnNwbGljZShvbGRJbmRleCwgMSlbMF0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,81 @@
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_page_link_aria_label: { message: 'Page {0}' },
19
+ skyux_paging_previous: { message: 'Previous' },
20
+ skyux_repeater_label: { message: 'List of items' },
21
+ skyux_repeater_item_expand: { message: 'Expand or collapse {0}' },
22
+ skyux_repeater_item_expand_default: { message: 'Expand or collapse' },
23
+ skyux_repeater_item_checkbox_label: { message: 'Select {0}' },
24
+ skyux_repeater_item_checkbox_label_default: { message: 'Select row' },
25
+ skyux_repeater_item_reorder_cancel: {
26
+ message: 'Item reordering was canceled. The item was returned to its original position.',
27
+ },
28
+ skyux_repeater_item_reorder_finish: {
29
+ message: 'Dropped the item in position',
30
+ },
31
+ skyux_repeater_item_reorder_instructions: {
32
+ 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.',
33
+ },
34
+ skyux_repeater_item_reorder_moved: {
35
+ message: 'Moved the item to position',
36
+ },
37
+ skyux_repeater_item_reorder_label_default: { message: 'Reorder' },
38
+ skyux_repeater_item_reorder_label: { message: 'Reorder {0}' },
39
+ skyux_repeater_item_reorder_operation: {
40
+ message: 'Press the spacebar or enter key to reorder.',
41
+ },
42
+ skyux_repeater_item_reorder_top: { message: 'Top' },
43
+ skyux_repeater_item_reorder_top_label: { message: 'Move {0} to top' },
44
+ skyux_repeater_item_reorder_top_label_default: { message: 'Move to top' },
45
+ skyux_sort_button_label: { message: 'Sort' },
46
+ skyux_sort_menu_heading: { message: 'Sort by' },
47
+ },
48
+ };
49
+ export class SkyListsResourcesProvider {
50
+ getString(localeInfo, name) {
51
+ return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
52
+ }
53
+ }
54
+ /**
55
+ * Import into any component library module that needs to use resource strings.
56
+ */
57
+ export class SkyListsResourcesModule {
58
+ }
59
+ SkyListsResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
60
+ SkyListsResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListsResourcesModule, exports: [SkyI18nModule] });
61
+ SkyListsResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListsResourcesModule, providers: [
62
+ {
63
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
64
+ useClass: SkyListsResourcesProvider,
65
+ multi: true,
66
+ },
67
+ ], imports: [SkyI18nModule] });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyListsResourcesModule, decorators: [{
69
+ type: NgModule,
70
+ args: [{
71
+ exports: [SkyI18nModule],
72
+ providers: [
73
+ {
74
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
75
+ useClass: SkyListsResourcesProvider,
76
+ multi: true,
77
+ },
78
+ ],
79
+ }]
80
+ }] });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWxpc3RzLXJlc291cmNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdHMvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9za3ktbGlzdHMtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixhQUFhLEVBR2IscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBMEM7SUFDdkQsT0FBTyxFQUFFO1FBQ1AseUJBQXlCLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFO1FBQ2hELDBCQUEwQixFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRTtRQUN4RCwyQkFBMkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUU7UUFDbEQsc0NBQXNDLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFO1FBQ2hFLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUM3QyxpQkFBaUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDdEMsaUNBQWlDLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQzFELHFCQUFxQixFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUM5QyxvQkFBb0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUU7UUFDbEQsMEJBQTBCLEVBQUUsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUU7UUFDakUsa0NBQWtDLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7UUFDckUsa0NBQWtDLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQzdELDBDQUEwQyxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUNyRSxrQ0FBa0MsRUFBRTtZQUNsQyxPQUFPLEVBQ0wsK0VBQStFO1NBQ2xGO1FBQ0Qsa0NBQWtDLEVBQUU7WUFDbEMsT0FBTyxFQUFFLDhCQUE4QjtTQUN4QztRQUNELHdDQUF3QyxFQUFFO1lBQ3hDLE9BQU8sRUFDTCxpSkFBaUo7U0FDcEo7UUFDRCxpQ0FBaUMsRUFBRTtZQUNqQyxPQUFPLEVBQUUsNEJBQTRCO1NBQ3RDO1FBQ0QseUNBQXlDLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFO1FBQ2pFLGlDQUFpQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRTtRQUM3RCxxQ0FBcUMsRUFBRTtZQUNyQyxPQUFPLEVBQUUsNkNBQTZDO1NBQ3ZEO1FBQ0QsK0JBQStCLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1FBQ25ELHFDQUFxQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFO1FBQ3JFLDZDQUE2QyxFQUFFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRTtRQUN6RSx1QkFBdUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDNUMsdUJBQXVCLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFO0tBQ2hEO0NBQ0YsQ0FBQztBQUVGLE1BQU0sT0FBTyx5QkFBeUI7SUFDN0IsU0FBUyxDQUNkLFVBQTRCLEVBQzVCLElBQVk7UUFFWixPQUFPLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBV0gsTUFBTSxPQUFPLHVCQUF1Qjs7b0hBQXZCLHVCQUF1QjtxSEFBdkIsdUJBQXVCLFlBVHhCLGFBQWE7cUhBU1osdUJBQXVCLGFBUnZCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsMkJBQTJCO1lBQ3BDLFFBQVEsRUFBRSx5QkFBeUI7WUFDbkMsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLFlBUFMsYUFBYTsyRkFTWix1QkFBdUI7a0JBVm5DLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDJCQUEyQjs0QkFDcEMsUUFBUSxFQUFFLHlCQUF5Qjs0QkFDbkMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE5PVElDRTogRE8gTk9UIE1PRElGWSBUSElTIEZJTEUhXG4gKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIHdlcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnlcbiAqIHRoZSAnbmcgZ2VuZXJhdGUgQHNreXV4L2kxOG46bGliLXJlc291cmNlcy1tb2R1bGUgbGliL21vZHVsZXMvc2hhcmVkL3NreS1saXN0cycgc2NoZW1hdGljLlxuICogVG8gdXBkYXRlIHRoaXMgZmlsZSwgc2ltcGx5IHJlcnVuIHRoZSBjb21tYW5kLlxuICovXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU0tZX0xJQl9SRVNPVVJDRVNfUFJPVklERVJTLFxuICBTa3lBcHBMb2NhbGVJbmZvLFxuICBTa3lJMThuTW9kdWxlLFxuICBTa3lMaWJSZXNvdXJjZXMsXG4gIFNreUxpYlJlc291cmNlc1Byb3ZpZGVyLFxuICBnZXRMaWJTdHJpbmdGb3JMb2NhbGUsXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuY29uc3QgUkVTT1VSQ0VTOiB7IFtsb2NhbGU6IHN0cmluZ106IFNreUxpYlJlc291cmNlcyB9ID0ge1xuICAnRU4tVVMnOiB7XG4gICAgc2t5dXhfZmlsdGVyX2J1dHRvbl90aXRsZTogeyBtZXNzYWdlOiAnRmlsdGVyJyB9LFxuICAgIHNreXV4X2ZpbHRlcl9zdW1tYXJ5X2Nsb3NlOiB7IG1lc3NhZ2U6ICdSZW1vdmUgZmlsdGVyJyB9LFxuICAgIHNreXV4X2ZpbHRlcl9zdW1tYXJ5X2hlYWRlcjogeyBtZXNzYWdlOiAnRmlsdGVyJyB9LFxuICAgIHNreXV4X2luZmluaXRlX3Njcm9sbF9sb2FkX21vcmVfYnV0dG9uOiB7IG1lc3NhZ2U6ICdMb2FkIG1vcmUnIH0sXG4gICAgc2t5dXhfcGFnaW5nX2xhYmVsOiB7IG1lc3NhZ2U6ICdQYWdpbmF0aW9uJyB9LFxuICAgIHNreXV4X3BhZ2luZ19uZXh0OiB7IG1lc3NhZ2U6ICdOZXh0JyB9LFxuICAgIHNreXV4X3BhZ2luZ19wYWdlX2xpbmtfYXJpYV9sYWJlbDogeyBtZXNzYWdlOiAnUGFnZSB7MH0nIH0sXG4gICAgc2t5dXhfcGFnaW5nX3ByZXZpb3VzOiB7IG1lc3NhZ2U6ICdQcmV2aW91cycgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9sYWJlbDogeyBtZXNzYWdlOiAnTGlzdCBvZiBpdGVtcycgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX2V4cGFuZDogeyBtZXNzYWdlOiAnRXhwYW5kIG9yIGNvbGxhcHNlIHswfScgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX2V4cGFuZF9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdFeHBhbmQgb3IgY29sbGFwc2UnIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9jaGVja2JveF9sYWJlbDogeyBtZXNzYWdlOiAnU2VsZWN0IHswfScgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX2NoZWNrYm94X2xhYmVsX2RlZmF1bHQ6IHsgbWVzc2FnZTogJ1NlbGVjdCByb3cnIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX2NhbmNlbDoge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ0l0ZW0gcmVvcmRlcmluZyB3YXMgY2FuY2VsZWQuIFRoZSBpdGVtIHdhcyByZXR1cm5lZCB0byBpdHMgb3JpZ2luYWwgcG9zaXRpb24uJyxcbiAgICB9LFxuICAgIHNreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl9maW5pc2g6IHtcbiAgICAgIG1lc3NhZ2U6ICdEcm9wcGVkIHRoZSBpdGVtIGluIHBvc2l0aW9uJyxcbiAgICB9LFxuICAgIHNreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl9pbnN0cnVjdGlvbnM6IHtcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgICdJdGVtIGdyYWJiZWQuIFByZXNzIHRoZSB1cCBhbmQgZG93biBhcnJvdyBrZXlzIHRvIGNoYW5nZSBwb3NpdGlvbi4gUHJlc3MgdGhlIHNwYWNlYmFyIG9yIGVudGVyIGtleSB0byBkcm9wLiBBbmQgcHJlc3MgdGhlIGVzY2FwZSBrZXkgdG8gY2FuY2VsLicsXG4gICAgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfbW92ZWQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdNb3ZlZCB0aGUgaXRlbSB0byBwb3NpdGlvbicsXG4gICAgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfbGFiZWxfZGVmYXVsdDogeyBtZXNzYWdlOiAnUmVvcmRlcicgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfbGFiZWw6IHsgbWVzc2FnZTogJ1Jlb3JkZXIgezB9JyB9LFxuICAgIHNreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl9vcGVyYXRpb246IHtcbiAgICAgIG1lc3NhZ2U6ICdQcmVzcyB0aGUgc3BhY2ViYXIgb3IgZW50ZXIga2V5IHRvIHJlb3JkZXIuJyxcbiAgICB9LFxuICAgIHNreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl90b3A6IHsgbWVzc2FnZTogJ1RvcCcgfSxcbiAgICBza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfdG9wX2xhYmVsOiB7IG1lc3NhZ2U6ICdNb3ZlIHswfSB0byB0b3AnIH0sXG4gICAgc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX3RvcF9sYWJlbF9kZWZhdWx0OiB7IG1lc3NhZ2U6ICdNb3ZlIHRvIHRvcCcgfSxcbiAgICBza3l1eF9zb3J0X2J1dHRvbl9sYWJlbDogeyBtZXNzYWdlOiAnU29ydCcgfSxcbiAgICBza3l1eF9zb3J0X21lbnVfaGVhZGluZzogeyBtZXNzYWdlOiAnU29ydCBieScgfSxcbiAgfSxcbn07XG5cbmV4cG9ydCBjbGFzcyBTa3lMaXN0c1Jlc291cmNlc1Byb3ZpZGVyIGltcGxlbWVudHMgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIge1xuICBwdWJsaWMgZ2V0U3RyaW5nKFxuICAgIGxvY2FsZUluZm86IFNreUFwcExvY2FsZUluZm8sXG4gICAgbmFtZTogc3RyaW5nXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGdldExpYlN0cmluZ0ZvckxvY2FsZShSRVNPVVJDRVMsIGxvY2FsZUluZm8ubG9jYWxlLCBuYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIEltcG9ydCBpbnRvIGFueSBjb21wb25lbnQgbGlicmFyeSBtb2R1bGUgdGhhdCBuZWVkcyB0byB1c2UgcmVzb3VyY2Ugc3RyaW5ncy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1NreUkxOG5Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTS1lfTElCX1JFU09VUkNFU19QUk9WSURFUlMsXG4gICAgICB1c2VDbGFzczogU2t5TGlzdHNSZXNvdXJjZXNQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUxpc3RzUmVzb3VyY2VzTW9kdWxlIHt9XG4iXX0=