@skyux/list-builder-view-checklist 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 (61) hide show
  1. package/esm2020/index.mjs +15 -0
  2. package/esm2020/lib/modules/list-view-checklist/list-view-checklist-item.component.mjs +14 -0
  3. package/esm2020/lib/modules/list-view-checklist/list-view-checklist.component.mjs +287 -0
  4. package/esm2020/lib/modules/list-view-checklist/list-view-checklist.module.mjs +25 -0
  5. package/esm2020/lib/modules/list-view-checklist/state/checklist-state-action.type.mjs +2 -0
  6. package/esm2020/lib/modules/list-view-checklist/state/checklist-state.model.mjs +7 -0
  7. package/esm2020/lib/modules/list-view-checklist/state/checklist-state.rxstate.mjs +13 -0
  8. package/esm2020/lib/modules/list-view-checklist/state/checklist-state.state-node.mjs +20 -0
  9. package/esm2020/lib/modules/list-view-checklist/state/items/item.model.mjs +10 -0
  10. package/esm2020/lib/modules/list-view-checklist/state/items/items.orchestrator.mjs +19 -0
  11. package/esm2020/lib/modules/list-view-checklist/state/items/load.action.mjs +9 -0
  12. package/esm2020/skyux-list-builder-view-checklist.mjs +5 -0
  13. package/esm2020/testing/list-view-checklist-fixture.mjs +83 -0
  14. package/esm2020/testing/list-view-checklist-item.mjs +2 -0
  15. package/esm2020/testing/public-api.mjs +3 -0
  16. package/esm2020/testing/skyux-list-builder-view-checklist-testing.mjs +5 -0
  17. package/fesm2015/{skyux-list-builder-view-checklist-testing.js → skyux-list-builder-view-checklist-testing.mjs} +1 -1
  18. package/fesm2015/skyux-list-builder-view-checklist-testing.mjs.map +1 -0
  19. package/fesm2015/{skyux-list-builder-view-checklist.js → skyux-list-builder-view-checklist.mjs} +30 -41
  20. package/fesm2015/skyux-list-builder-view-checklist.mjs.map +1 -0
  21. package/{esm2015/testing/list-view-checklist-fixture.js → fesm2020/skyux-list-builder-view-checklist-testing.mjs} +9 -2
  22. package/fesm2020/skyux-list-builder-view-checklist-testing.mjs.map +1 -0
  23. package/fesm2020/skyux-list-builder-view-checklist.mjs +380 -0
  24. package/fesm2020/skyux-list-builder-view-checklist.mjs.map +1 -0
  25. package/package.json +39 -15
  26. package/testing/package.json +5 -5
  27. package/bundles/skyux-list-builder-view-checklist-testing.umd.js +0 -98
  28. package/bundles/skyux-list-builder-view-checklist.umd.js +0 -792
  29. package/esm2015/index.js +0 -15
  30. package/esm2015/index.js.map +0 -1
  31. package/esm2015/lib/modules/list-view-checklist/list-view-checklist-item.component.js +0 -19
  32. package/esm2015/lib/modules/list-view-checklist/list-view-checklist-item.component.js.map +0 -1
  33. package/esm2015/lib/modules/list-view-checklist/list-view-checklist.component.js +0 -293
  34. package/esm2015/lib/modules/list-view-checklist/list-view-checklist.component.js.map +0 -1
  35. package/esm2015/lib/modules/list-view-checklist/list-view-checklist.module.js +0 -25
  36. package/esm2015/lib/modules/list-view-checklist/list-view-checklist.module.js.map +0 -1
  37. package/esm2015/lib/modules/list-view-checklist/state/checklist-state-action.type.js +0 -2
  38. package/esm2015/lib/modules/list-view-checklist/state/checklist-state-action.type.js.map +0 -1
  39. package/esm2015/lib/modules/list-view-checklist/state/checklist-state.model.js +0 -7
  40. package/esm2015/lib/modules/list-view-checklist/state/checklist-state.model.js.map +0 -1
  41. package/esm2015/lib/modules/list-view-checklist/state/checklist-state.rxstate.js +0 -13
  42. package/esm2015/lib/modules/list-view-checklist/state/checklist-state.rxstate.js.map +0 -1
  43. package/esm2015/lib/modules/list-view-checklist/state/checklist-state.state-node.js +0 -20
  44. package/esm2015/lib/modules/list-view-checklist/state/checklist-state.state-node.js.map +0 -1
  45. package/esm2015/lib/modules/list-view-checklist/state/items/item.model.js +0 -10
  46. package/esm2015/lib/modules/list-view-checklist/state/items/item.model.js.map +0 -1
  47. package/esm2015/lib/modules/list-view-checklist/state/items/items.orchestrator.js +0 -19
  48. package/esm2015/lib/modules/list-view-checklist/state/items/items.orchestrator.js.map +0 -1
  49. package/esm2015/lib/modules/list-view-checklist/state/items/load.action.js +0 -9
  50. package/esm2015/lib/modules/list-view-checklist/state/items/load.action.js.map +0 -1
  51. package/esm2015/skyux-list-builder-view-checklist.js +0 -5
  52. package/esm2015/skyux-list-builder-view-checklist.js.map +0 -1
  53. package/esm2015/testing/list-view-checklist-fixture.js.map +0 -1
  54. package/esm2015/testing/list-view-checklist-item.js +0 -2
  55. package/esm2015/testing/list-view-checklist-item.js.map +0 -1
  56. package/esm2015/testing/public-api.js +0 -3
  57. package/esm2015/testing/public-api.js.map +0 -1
  58. package/esm2015/testing/skyux-list-builder-view-checklist-testing.js +0 -5
  59. package/esm2015/testing/skyux-list-builder-view-checklist-testing.js.map +0 -1
  60. package/fesm2015/skyux-list-builder-view-checklist-testing.js.map +0 -1
  61. package/fesm2015/skyux-list-builder-view-checklist.js.map +0 -1
@@ -0,0 +1,15 @@
1
+ export * from './lib/modules/list-view-checklist/list-view-checklist.module';
2
+ export * from './lib/modules/list-view-checklist/state/checklist-state-action.type';
3
+ export * from './lib/modules/list-view-checklist/state/checklist-state.model';
4
+ export * from './lib/modules/list-view-checklist/state/checklist-state.rxstate';
5
+ export * from './lib/modules/list-view-checklist/state/checklist-state.state-node';
6
+ export * from './lib/modules/list-view-checklist/state/items/item.model';
7
+ export * from './lib/modules/list-view-checklist/state/items/items.orchestrator';
8
+ export * from './lib/modules/list-view-checklist/state/items/load.action';
9
+ // The following export is used internally by `@skyux/select-field`.
10
+ // TODO: Find a way to remove this in the next major version release.
11
+ export * from './lib/modules/list-view-checklist/list-view-checklist.component';
12
+ // Components and directives must be exported to support Angular’s “partial” Ivy compiler.
13
+ // Obscure names are used to indicate types are not part of the public API.
14
+ export { SkyListViewChecklistItemComponent as λ1 } from './lib/modules/list-view-checklist/list-view-checklist-item.component';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctY2hlY2tsaXN0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsMkRBQTJELENBQUM7QUFFMUUsb0VBQW9FO0FBQ3BFLHFFQUFxRTtBQUNyRSxjQUFjLGlFQUFpRSxDQUFDO0FBRWhGLDBGQUEwRjtBQUMxRiwyRUFBMkU7QUFDM0UsT0FBTyxFQUFFLGlDQUFpQyxJQUFJLEVBQUUsRUFBRSxNQUFNLHNFQUFzRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9saXN0LXZpZXctY2hlY2tsaXN0L2xpc3Qtdmlldy1jaGVja2xpc3QubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvbGlzdC12aWV3LWNoZWNrbGlzdC9zdGF0ZS9jaGVja2xpc3Qtc3RhdGUtYWN0aW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9saXN0LXZpZXctY2hlY2tsaXN0L3N0YXRlL2NoZWNrbGlzdC1zdGF0ZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2xpc3Qtdmlldy1jaGVja2xpc3Qvc3RhdGUvY2hlY2tsaXN0LXN0YXRlLnJ4c3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9saXN0LXZpZXctY2hlY2tsaXN0L3N0YXRlL2NoZWNrbGlzdC1zdGF0ZS5zdGF0ZS1ub2RlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvbGlzdC12aWV3LWNoZWNrbGlzdC9zdGF0ZS9pdGVtcy9pdGVtLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvbGlzdC12aWV3LWNoZWNrbGlzdC9zdGF0ZS9pdGVtcy9pdGVtcy5vcmNoZXN0cmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9saXN0LXZpZXctY2hlY2tsaXN0L3N0YXRlL2l0ZW1zL2xvYWQuYWN0aW9uJztcblxuLy8gVGhlIGZvbGxvd2luZyBleHBvcnQgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IGBAc2t5dXgvc2VsZWN0LWZpZWxkYC5cbi8vIFRPRE86IEZpbmQgYSB3YXkgdG8gcmVtb3ZlIHRoaXMgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLlxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9saXN0LXZpZXctY2hlY2tsaXN0L2xpc3Qtdmlldy1jaGVja2xpc3QuY29tcG9uZW50JztcblxuLy8gQ29tcG9uZW50cyBhbmQgZGlyZWN0aXZlcyBtdXN0IGJlIGV4cG9ydGVkIHRvIHN1cHBvcnQgQW5ndWxhcuKAmXMg4oCccGFydGlhbOKAnSBJdnkgY29tcGlsZXIuXG4vLyBPYnNjdXJlIG5hbWVzIGFyZSB1c2VkIHRvIGluZGljYXRlIHR5cGVzIGFyZSBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS5cbmV4cG9ydCB7IFNreUxpc3RWaWV3Q2hlY2tsaXN0SXRlbUNvbXBvbmVudCBhcyDOuzEgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2xpc3Qtdmlldy1jaGVja2xpc3QvbGlzdC12aWV3LWNoZWNrbGlzdC1pdGVtLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { ListViewChecklistItemModel } from './state/items/item.model';
3
+ import * as i0 from "@angular/core";
4
+ export class SkyListViewChecklistItemComponent {
5
+ }
6
+ SkyListViewChecklistItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyListViewChecklistItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ SkyListViewChecklistItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyListViewChecklistItemComponent, selector: "sky-list-view-checklist-item", inputs: { item: "item" }, ngImport: i0, template: "<div class=\"sky-list-view-checklist-item\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-list-view-checklist-item{display:block;width:100%;cursor:pointer;word-wrap:break-word}.sky-list-view-checklist-item:last-child{border-bottom-width:0}.sky-list-view-checklist-item ::ng-deep sky-checkbox{display:block;position:relative;width:100%;padding:10px;cursor:pointer;border-bottom:1px dotted #cdcfd2}.sky-list-view-checklist-item ::ng-deep sky-checkbox-label div{overflow:hidden;text-overflow:ellipsis}.sky-list-view-checklist-item ::ng-deep .sky-list-view-checklist-single-button{background-color:transparent;border:none;border-bottom:1px dotted #cdcfd2;display:block;text-align:left;margin-bottom:0;padding:10px;width:100%;cursor:pointer}.sky-list-view-checklist-item ::ng-deep .sky-list-view-checklist-single-button.sky-list-view-checklist-row-selected{background-color:#f1eef6}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyListViewChecklistItemComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'sky-list-view-checklist-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-list-view-checklist-item\">\n <ng-content></ng-content>\n</div>\n", styles: [".sky-list-view-checklist-item{display:block;width:100%;cursor:pointer;word-wrap:break-word}.sky-list-view-checklist-item:last-child{border-bottom-width:0}.sky-list-view-checklist-item ::ng-deep sky-checkbox{display:block;position:relative;width:100%;padding:10px;cursor:pointer;border-bottom:1px dotted #cdcfd2}.sky-list-view-checklist-item ::ng-deep sky-checkbox-label div{overflow:hidden;text-overflow:ellipsis}.sky-list-view-checklist-item ::ng-deep .sky-list-view-checklist-single-button{background-color:transparent;border:none;border-bottom:1px dotted #cdcfd2;display:block;text-align:left;margin-bottom:0;padding:10px;width:100%;cursor:pointer}.sky-list-view-checklist-item ::ng-deep .sky-list-view-checklist-single-button.sky-list-view-checklist-row-selected{background-color:#f1eef6}\n"] }]
11
+ }], propDecorators: { item: [{
12
+ type: Input
13
+ }] } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LWNoZWNrbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXItdmlldy1jaGVja2xpc3Qvc3JjL2xpYi9tb2R1bGVzL2xpc3Qtdmlldy1jaGVja2xpc3QvbGlzdC12aWV3LWNoZWNrbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXItdmlldy1jaGVja2xpc3Qvc3JjL2xpYi9tb2R1bGVzL2xpc3Qtdmlldy1jaGVja2xpc3QvbGlzdC12aWV3LWNoZWNrbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQVF0RSxNQUFNLE9BQU8saUNBQWlDOzs4SEFBakMsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsOEZDVjlDLHFGQUdBOzJGRE9hLGlDQUFpQztrQkFON0MsU0FBUzsrQkFDRSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU07OEJBSXhDLElBQUk7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExpc3RWaWV3Q2hlY2tsaXN0SXRlbU1vZGVsIH0gZnJvbSAnLi9zdGF0ZS9pdGVtcy9pdGVtLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWxpc3Qtdmlldy1jaGVja2xpc3QtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LXZpZXctY2hlY2tsaXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0LXZpZXctY2hlY2tsaXN0LWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUxpc3RWaWV3Q2hlY2tsaXN0SXRlbUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpdGVtOiBMaXN0Vmlld0NoZWNrbGlzdEl0ZW1Nb2RlbDtcbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktbGlzdC12aWV3LWNoZWNrbGlzdC1pdGVtXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,287 @@
1
+ import { ChangeDetectionStrategy, Component, Input, forwardRef, } from '@angular/core';
2
+ import { ListFilterModel, ListSelectedSetItemSelectedAction, ListSelectedSetItemsSelectedAction, ListState, ListStateDispatcher, ListToolbarSetTypeAction, ListViewComponent, } from '@skyux/list-builder';
3
+ import { getData, } from '@skyux/list-builder-common';
4
+ import { Subject } from 'rxjs';
5
+ import { distinctUntilChanged, map as observableMap, take, takeUntil, } from 'rxjs/operators';
6
+ import { ChecklistStateModel } from './state/checklist-state.model';
7
+ import { ChecklistStateDispatcher } from './state/checklist-state.rxstate';
8
+ import { ChecklistState } from './state/checklist-state.state-node';
9
+ import { ListViewChecklistItemModel } from './state/items/item.model';
10
+ import { ListViewChecklistItemsLoadAction } from './state/items/load.action';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@skyux/list-builder";
13
+ import * as i2 from "./state/checklist-state.state-node";
14
+ import * as i3 from "./state/checklist-state.rxstate";
15
+ import * as i4 from "./list-view-checklist-item.component";
16
+ import * as i5 from "@skyux/forms";
17
+ import * as i6 from "@angular/common";
18
+ export class SkyListViewChecklistComponent extends ListViewComponent {
19
+ constructor(state, dispatcher, checklistState, checklistDispatcher) {
20
+ super(state, 'Checklist View');
21
+ this.dispatcher = dispatcher;
22
+ this.checklistState = checklistState;
23
+ this.checklistDispatcher = checklistDispatcher;
24
+ /**
25
+ * Specifies a search function to apply on the view data.
26
+ * The default function searches view data on label, description,
27
+ * and category if field selectors are defined for the given field.
28
+ * @default default search function
29
+ */
30
+ this.search = this.searchFunction();
31
+ /**
32
+ * Specifies the name of the label field selector.
33
+ * @default "label"
34
+ */
35
+ // eslint-disable-next-line @angular-eslint/no-input-rename
36
+ this.labelFieldSelector = 'label';
37
+ /**
38
+ * Specifies the name of the description field selector.
39
+ * @default "description"
40
+ */
41
+ this.description = 'description';
42
+ this.ngUnsubscribe = new Subject();
43
+ this._selectMode = 'multiple';
44
+ this._selectedIdMap = new Map();
45
+ this._showOnlySelected = false;
46
+ let lastUpdate;
47
+ this.state
48
+ .pipe(observableMap((s) => s.items), distinctUntilChanged(), observableMap((items) => {
49
+ const dataChanged = lastUpdate === undefined || items.lastUpdate !== lastUpdate;
50
+ lastUpdate = items.lastUpdate;
51
+ const newItems = items.items.map((item) => {
52
+ return new ListViewChecklistItemModel(item.id, {
53
+ label: this.labelFieldSelector
54
+ ? getData(item.data, this.labelFieldSelector)
55
+ : undefined,
56
+ description: this.description
57
+ ? getData(item.data, this.description)
58
+ : undefined,
59
+ });
60
+ });
61
+ this.checklistDispatcher.next(new ListViewChecklistItemsLoadAction(newItems, true, dataChanged, items.count));
62
+ }))
63
+ .pipe(takeUntil(this.ngUnsubscribe))
64
+ .subscribe();
65
+ this.state
66
+ .pipe(observableMap((t) => t.selected), takeUntil(this.ngUnsubscribe))
67
+ .subscribe((selectedItems) => {
68
+ this._selectedIdMap = selectedItems.item.selectedIdMap;
69
+ });
70
+ }
71
+ /**
72
+ * Specifies the name of the view.
73
+ * @required
74
+ */
75
+ set name(value) {
76
+ this.viewName = value;
77
+ }
78
+ /**
79
+ * Specifies how many items users can select.
80
+ * `"single"` allows users to select one item in the checklist, while `"multiple"`
81
+ * allows users to select multiple items in the checklist.
82
+ * @default "multiple"
83
+ */
84
+ set selectMode(value) {
85
+ this._selectMode = value;
86
+ if (this.selectMode === 'multiple') {
87
+ this.dispatcher.toolbarShowMultiselectToolbar(true);
88
+ }
89
+ else {
90
+ this.showOnlySelected = false;
91
+ this.dispatcher.toolbarShowMultiselectToolbar(false);
92
+ }
93
+ this.reapplyFilter(this.showOnlySelected);
94
+ }
95
+ get selectMode() {
96
+ return this._selectMode || 'multiple';
97
+ }
98
+ /**
99
+ * Indicates whether to display selected items only.
100
+ * @default false
101
+ */
102
+ set showOnlySelected(value) {
103
+ this._showOnlySelected = value;
104
+ }
105
+ get showOnlySelected() {
106
+ return this._showOnlySelected;
107
+ }
108
+ ngOnInit() {
109
+ if (this.selectMode === 'multiple') {
110
+ this.dispatcher.toolbarShowMultiselectToolbar(true);
111
+ }
112
+ // If 'show-selected' filter is changed from multiselect toolbar (list-builder)
113
+ // make sure the private variable _showOnlySelected stays in sync.
114
+ this.state
115
+ .pipe(observableMap((t) => t.filters), takeUntil(this.ngUnsubscribe), distinctUntilChanged(this.showSelectedValuesEqual))
116
+ .subscribe((filters) => {
117
+ const showSelectedFilter = filters.find((filter) => filter.name === 'show-selected');
118
+ if (showSelectedFilter) {
119
+ this._showOnlySelected = showSelectedFilter.value === 'true';
120
+ }
121
+ });
122
+ }
123
+ ngOnChanges(changes) {
124
+ if (changes['showOnlySelected'] &&
125
+ changes['showOnlySelected'].currentValue !==
126
+ changes['showOnlySelected'].previousValue) {
127
+ this.reapplyFilter(changes['showOnlySelected'].currentValue);
128
+ }
129
+ }
130
+ /**
131
+ * @deprecated since version 3.2.0
132
+ * Multiselect toolbar will automatically show if select mode is set to 'multiple'.
133
+ * These methods are no longer needed, as that functionality is part of list-builder.
134
+ */
135
+ changeVisibleItems(change) {
136
+ this.showOnlySelected = change.checked;
137
+ }
138
+ /**
139
+ * @deprecated since version 3.2.0
140
+ * Multiselect toolbar will automatically show if select mode is set to 'multiple'.
141
+ * These methods are no longer needed, as that functionality is part of list-builder.
142
+ */
143
+ clearSelections() {
144
+ this.state
145
+ .pipe(observableMap((state) => state.items.items), take(1))
146
+ .subscribe((items) => {
147
+ this.dispatcher.next(new ListSelectedSetItemsSelectedAction(items.map((item) => item.id), false, false));
148
+ /* istanbul ignore else */
149
+ if (this.showOnlySelected) {
150
+ this.reapplyFilter(this.showOnlySelected);
151
+ }
152
+ });
153
+ }
154
+ /**
155
+ * @deprecated since version 3.2.0
156
+ * Multiselect toolbar will automatically show if select mode is set to 'multiple'.
157
+ * These methods are no longer needed, as that functionality is part of list-builder.
158
+ */
159
+ selectAll() {
160
+ this.state
161
+ .pipe(observableMap((state) => state.items.items), take(1))
162
+ .subscribe((items) => {
163
+ this.dispatcher.next(new ListSelectedSetItemsSelectedAction(items.map((item) => item.id), true, false));
164
+ /* istanbul ignore else */
165
+ if (this.showOnlySelected) {
166
+ this.reapplyFilter(this.showOnlySelected);
167
+ }
168
+ });
169
+ }
170
+ onViewActive() {
171
+ if (this.search !== undefined) {
172
+ this.dispatcher.searchSetFunctions([this.search]);
173
+ }
174
+ const fieldSelectors = [];
175
+ if (this.labelFieldSelector) {
176
+ fieldSelectors.push(this.labelFieldSelector);
177
+ }
178
+ if (this.description) {
179
+ fieldSelectors.push(this.description);
180
+ }
181
+ this.dispatcher.searchSetFieldSelectors(fieldSelectors);
182
+ this.dispatcher.next(new ListToolbarSetTypeAction('search'));
183
+ }
184
+ ngOnDestroy() {
185
+ this.ngUnsubscribe.next();
186
+ this.ngUnsubscribe.complete();
187
+ }
188
+ get items() {
189
+ return this.checklistState.pipe(observableMap((state) => state.items.items));
190
+ }
191
+ searchFunction() {
192
+ return (data, searchText) => {
193
+ if (this.labelFieldSelector !== undefined) {
194
+ const label = getData(data, this.labelFieldSelector);
195
+ if (label !== undefined &&
196
+ label !== null &&
197
+ label.toString().toLowerCase().indexOf(searchText) !== -1) {
198
+ return true;
199
+ }
200
+ }
201
+ if (this.description !== undefined) {
202
+ const description = getData(data, this.description);
203
+ if (description !== undefined &&
204
+ description !== null &&
205
+ description.toString().toLowerCase().indexOf(searchText) !== -1) {
206
+ return true;
207
+ }
208
+ }
209
+ return false;
210
+ };
211
+ }
212
+ itemSelected(id) {
213
+ return this.state.pipe(observableMap((state) => state.selected.item.selectedIdMap.get(id)));
214
+ }
215
+ setItemSelection(item, event) {
216
+ this.dispatcher.next(new ListSelectedSetItemSelectedAction(item.id, event.checked));
217
+ }
218
+ singleSelectRowClick(item) {
219
+ this.dispatcher.next(new ListSelectedSetItemsSelectedAction([item.id], true, true));
220
+ }
221
+ getShowSelectedFilter(isSelected) {
222
+ return new ListFilterModel({
223
+ name: 'show-selected',
224
+ value: isSelected.toString(),
225
+ filterFunction: (model, showOnlySelected) => {
226
+ /* istanbul ignore else */
227
+ if (showOnlySelected.toString() !== false.toString()) {
228
+ return this._selectedIdMap.get(model.id);
229
+ }
230
+ },
231
+ defaultValue: false.toString(),
232
+ });
233
+ }
234
+ reapplyFilter(isSelected) {
235
+ this.state
236
+ .pipe(observableMap((state) => state.filters), take(1))
237
+ .subscribe((filters) => {
238
+ filters = filters.filter((filter) => filter.name !== 'show-selected');
239
+ filters.push(this.getShowSelectedFilter(isSelected));
240
+ this.dispatcher.filtersUpdate(filters);
241
+ });
242
+ }
243
+ showSelectedValuesEqual(prev, next) {
244
+ const prevShowSelectedFilter = prev.find((filter) => filter.name === 'show-selected');
245
+ const nextShowSelectedFilter = next.find((filter) => filter.name === 'show-selected');
246
+ if (prevShowSelectedFilter && nextShowSelectedFilter) {
247
+ return prevShowSelectedFilter.value === nextShowSelectedFilter.value;
248
+ }
249
+ return true;
250
+ }
251
+ }
252
+ SkyListViewChecklistComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyListViewChecklistComponent, deps: [{ token: i1.ListState }, { token: i1.ListStateDispatcher }, { token: i2.ChecklistState }, { token: i3.ChecklistStateDispatcher }], target: i0.ɵɵFactoryTarget.Component });
253
+ SkyListViewChecklistComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyListViewChecklistComponent, selector: "sky-list-view-checklist", inputs: { name: "name", search: "search", labelFieldSelector: ["label", "labelFieldSelector"], description: "description", selectMode: "selectMode", showOnlySelected: "showOnlySelected" }, providers: [
254
+ {
255
+ provide: ListViewComponent,
256
+ useExisting: forwardRef(() => SkyListViewChecklistComponent),
257
+ },
258
+ ChecklistState,
259
+ ChecklistStateDispatcher,
260
+ ChecklistStateModel,
261
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"sky-list-view-checklist\" *ngIf=\"active | async\">\n <div [ngSwitch]=\"selectMode\">\n <ng-template ngSwitchCase=\"single\">\n <div role=\"radiogroup\">\n <sky-list-view-checklist-item\n *ngFor=\"let item of items | async\"\n [attr.sky-cmp-id]=\"item.id\"\n [item]=\"item\"\n >\n <button\n role=\"radio\"\n type=\"button\"\n class=\"sky-list-view-checklist-single-button\"\n [attr.aria-checked]=\"(itemSelected(item.id) | async) || false\"\n [ngClass]=\"{\n 'sky-list-view-checklist-row-selected':\n (itemSelected(item.id) | async)\n }\"\n (click)=\"singleSelectRowClick(item)\"\n >\n <div *ngIf=\"item.label\" class=\"sky-emphasized\">\n {{ item.label }}\n </div>\n <div *ngIf=\"item.description\">{{ item.description }}</div>\n </button>\n </sky-list-view-checklist-item>\n </div>\n </ng-template>\n\n <ng-template ngSwitchDefault>\n <sky-list-view-checklist-item\n *ngFor=\"let item of items | async\"\n [attr.sky-cmp-id]=\"item.id\"\n [item]=\"item\"\n >\n <sky-checkbox\n [checked]=\"itemSelected(item.id) | async\"\n (change)=\"setItemSelection(item, $event)\"\n >\n <sky-checkbox-label>\n <div\n *ngIf=\"item.label\"\n class=\"sky-emphasized\"\n [attr.title]=\"item.label\"\n >\n {{ item.label }}\n </div>\n <div *ngIf=\"item.description\" [attr.title]=\"item.description\">\n {{ item.description }}\n </div>\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-list-view-checklist-item>\n </ng-template>\n </div>\n</div>\n", styles: [".sky-list-view-checklist ::ng-deep .sky-checkbox-wrapper{display:flex;align-items:flex-start}.sky-list-view-checklist ::ng-deep .sky-checkbox-wrapper>.sky-checkbox,.sky-list-view-checklist ::ng-deep .sky-checkbox-wrapper>input{flex:1;max-width:22px}.sky-list-view-checklist ::ng-deep .sky-switch{white-space:nowrap}.sky-list-view-checklist ::ng-deep .sky-switch-label{margin:0}.sky-list-view-checklist ::ng-deep sky-checkbox-label{min-width:0}.sky-list-view-checklist ::ng-deep .sky-switch-control{margin:0 5px 0 0}\n"], components: [{ type: i4.SkyListViewChecklistItemComponent, selector: "sky-list-view-checklist-item", inputs: ["item"] }, { type: i5.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i5.λ4, selector: "sky-checkbox-label" }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
262
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyListViewChecklistComponent, decorators: [{
263
+ type: Component,
264
+ args: [{ selector: 'sky-list-view-checklist', providers: [
265
+ {
266
+ provide: ListViewComponent,
267
+ useExisting: forwardRef(() => SkyListViewChecklistComponent),
268
+ },
269
+ ChecklistState,
270
+ ChecklistStateDispatcher,
271
+ ChecklistStateModel,
272
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-list-view-checklist\" *ngIf=\"active | async\">\n <div [ngSwitch]=\"selectMode\">\n <ng-template ngSwitchCase=\"single\">\n <div role=\"radiogroup\">\n <sky-list-view-checklist-item\n *ngFor=\"let item of items | async\"\n [attr.sky-cmp-id]=\"item.id\"\n [item]=\"item\"\n >\n <button\n role=\"radio\"\n type=\"button\"\n class=\"sky-list-view-checklist-single-button\"\n [attr.aria-checked]=\"(itemSelected(item.id) | async) || false\"\n [ngClass]=\"{\n 'sky-list-view-checklist-row-selected':\n (itemSelected(item.id) | async)\n }\"\n (click)=\"singleSelectRowClick(item)\"\n >\n <div *ngIf=\"item.label\" class=\"sky-emphasized\">\n {{ item.label }}\n </div>\n <div *ngIf=\"item.description\">{{ item.description }}</div>\n </button>\n </sky-list-view-checklist-item>\n </div>\n </ng-template>\n\n <ng-template ngSwitchDefault>\n <sky-list-view-checklist-item\n *ngFor=\"let item of items | async\"\n [attr.sky-cmp-id]=\"item.id\"\n [item]=\"item\"\n >\n <sky-checkbox\n [checked]=\"itemSelected(item.id) | async\"\n (change)=\"setItemSelection(item, $event)\"\n >\n <sky-checkbox-label>\n <div\n *ngIf=\"item.label\"\n class=\"sky-emphasized\"\n [attr.title]=\"item.label\"\n >\n {{ item.label }}\n </div>\n <div *ngIf=\"item.description\" [attr.title]=\"item.description\">\n {{ item.description }}\n </div>\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-list-view-checklist-item>\n </ng-template>\n </div>\n</div>\n", styles: [".sky-list-view-checklist ::ng-deep .sky-checkbox-wrapper{display:flex;align-items:flex-start}.sky-list-view-checklist ::ng-deep .sky-checkbox-wrapper>.sky-checkbox,.sky-list-view-checklist ::ng-deep .sky-checkbox-wrapper>input{flex:1;max-width:22px}.sky-list-view-checklist ::ng-deep .sky-switch{white-space:nowrap}.sky-list-view-checklist ::ng-deep .sky-switch-label{margin:0}.sky-list-view-checklist ::ng-deep sky-checkbox-label{min-width:0}.sky-list-view-checklist ::ng-deep .sky-switch-control{margin:0 5px 0 0}\n"] }]
273
+ }], ctorParameters: function () { return [{ type: i1.ListState }, { type: i1.ListStateDispatcher }, { type: i2.ChecklistState }, { type: i3.ChecklistStateDispatcher }]; }, propDecorators: { name: [{
274
+ type: Input
275
+ }], search: [{
276
+ type: Input
277
+ }], labelFieldSelector: [{
278
+ type: Input,
279
+ args: ['label']
280
+ }], description: [{
281
+ type: Input
282
+ }], selectMode: [{
283
+ type: Input
284
+ }], showOnlySelected: [{
285
+ type: Input
286
+ }] } });
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LWNoZWNrbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctY2hlY2tsaXN0L3NyYy9saWIvbW9kdWxlcy9saXN0LXZpZXctY2hlY2tsaXN0L2xpc3Qtdmlldy1jaGVja2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci12aWV3LWNoZWNrbGlzdC9zcmMvbGliL21vZHVsZXMvbGlzdC12aWV3LWNoZWNrbGlzdC9saXN0LXZpZXctY2hlY2tsaXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFLTCxVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLGVBQWUsRUFFZixpQ0FBaUMsRUFDakMsa0NBQWtDLEVBQ2xDLFNBQVMsRUFDVCxtQkFBbUIsRUFDbkIsd0JBQXdCLEVBQ3hCLGlCQUFpQixHQUNsQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFJTCxPQUFPLEdBQ1IsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsR0FBRyxJQUFJLGFBQWEsRUFDcEIsSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJB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LE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7MEhBN1ZVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLCtPQVg3QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDZCQUE2QixDQUFDO1NBQzdEO1FBQ0QsY0FBYztRQUNkLHdCQUF3QjtRQUN4QixtQkFBbUI7S0FDcEIsc0VDdERILGszREF3REE7MkZEQ2EsNkJBQTZCO2tCQWZ6QyxTQUFTOytCQUNFLHlCQUF5QixhQUd4Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQzt5QkFDN0Q7d0JBQ0QsY0FBYzt3QkFDZCx3QkFBd0I7d0JBQ3hCLG1CQUFtQjtxQkFDcEIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07c01BVzNDLElBQUk7c0JBRFAsS0FBSztnQkFZQyxNQUFNO3NCQURaLEtBQUs7Z0JBVUMsa0JBQWtCO3NCQUR4QixLQUFLO3VCQUFDLE9BQU87Z0JBUVAsV0FBVztzQkFEakIsS0FBSztnQkFVSyxVQUFVO3NCQURwQixLQUFLO2dCQXVCSyxnQkFBZ0I7c0JBRDFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQge1xuICBMaXN0RmlsdGVyTW9kZWwsXG4gIExpc3RTZWxlY3RlZE1vZGVsLFxuICBMaXN0U2VsZWN0ZWRTZXRJdGVtU2VsZWN0ZWRBY3Rpb24sXG4gIExpc3RTZWxlY3RlZFNldEl0ZW1zU2VsZWN0ZWRBY3Rpb24sXG4gIExpc3RTdGF0ZSxcbiAgTGlzdFN0YXRlRGlzcGF0Y2hlcixcbiAgTGlzdFRvb2xiYXJTZXRUeXBlQWN0aW9uLFxuICBMaXN0Vmlld0NvbXBvbmVudCxcbn0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlcic7XG5pbXBvcnQge1xuICBBc3luY0l0ZW0sXG4gIEFzeW5jTGlzdCxcbiAgTGlzdEl0ZW1Nb2RlbCxcbiAgZ2V0RGF0YSxcbn0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlci1jb21tb24nO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgbWFwIGFzIG9ic2VydmFibGVNYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBDaGVja2xpc3RTdGF0ZU1vZGVsIH0gZnJvbSAnLi9zdGF0ZS9jaGVja2xpc3Qtc3RhdGUubW9kZWwnO1xuaW1wb3J0IHsgQ2hlY2tsaXN0U3RhdGVEaXNwYXRjaGVyIH0gZnJvbSAnLi9zdGF0ZS9jaGVja2xpc3Qtc3RhdGUucnhzdGF0ZSc7XG5pbXBvcnQgeyBDaGVja2xpc3RTdGF0ZSB9IGZyb20gJy4vc3RhdGUvY2hlY2tsaXN0LXN0YXRlLnN0YXRlLW5vZGUnO1xuaW1wb3J0IHsgTGlzdFZpZXdDaGVja2xpc3RJdGVtTW9kZWwgfSBmcm9tICcuL3N0YXRlL2l0ZW1zL2l0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgTGlzdFZpZXdDaGVja2xpc3RJdGVtc0xvYWRBY3Rpb24gfSBmcm9tICcuL3N0YXRlL2l0ZW1zL2xvYWQuYWN0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWxpc3Qtdmlldy1jaGVja2xpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC12aWV3LWNoZWNrbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpc3Qtdmlldy1jaGVja2xpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTGlzdFZpZXdDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lMaXN0Vmlld0NoZWNrbGlzdENvbXBvbmVudCksXG4gICAgfSxcbiAgICBDaGVja2xpc3RTdGF0ZSxcbiAgICBDaGVja2xpc3RTdGF0ZURpc3BhdGNoZXIsXG4gICAgQ2hlY2tsaXN0U3RhdGVNb2RlbCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUxpc3RWaWV3Q2hlY2tsaXN0Q29tcG9uZW50XG4gIGV4dGVuZHMgTGlzdFZpZXdDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzXG57XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIHZpZXcuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IG5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmlld05hbWUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBzZWFyY2ggZnVuY3Rpb24gdG8gYXBwbHkgb24gdGhlIHZpZXcgZGF0YS5cbiAgICogVGhlIGRlZmF1bHQgZnVuY3Rpb24gc2VhcmNoZXMgdmlldyBkYXRhIG9uIGxhYmVsLCBkZXNjcmlwdGlvbixcbiAgICogYW5kIGNhdGVnb3J5IGlmIGZpZWxkIHNlbGVjdG9ycyBhcmUgZGVmaW5lZCBmb3IgdGhlIGdpdmVuIGZpZWxkLlxuICAgKiBAZGVmYXVsdCBkZWZhdWx0IHNlYXJjaCBmdW5jdGlvblxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlYXJjaDogKGRhdGE6IGFueSwgc2VhcmNoVGV4dDogc3RyaW5nKSA9PiBib29sZWFuID1cbiAgICB0aGlzLnNlYXJjaEZ1bmN0aW9uKCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgbGFiZWwgZmllbGQgc2VsZWN0b3IuXG4gICAqIEBkZWZhdWx0IFwibGFiZWxcIlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdsYWJlbCcpXG4gIHB1YmxpYyBsYWJlbEZpZWxkU2VsZWN0b3IgPSAnbGFiZWwnO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGRlc2NyaXB0aW9uIGZpZWxkIHNlbGVjdG9yLlxuICAgKiBAZGVmYXVsdCBcImRlc2NyaXB0aW9uXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9ICdkZXNjcmlwdGlvbic7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBob3cgbWFueSBpdGVtcyB1c2VycyBjYW4gc2VsZWN0LlxuICAgKiBgXCJzaW5nbGVcImAgYWxsb3dzIHVzZXJzIHRvIHNlbGVjdCBvbmUgaXRlbSBpbiB0aGUgY2hlY2tsaXN0LCB3aGlsZSBgXCJtdWx0aXBsZVwiYFxuICAgKiBhbGxvd3MgdXNlcnMgdG8gc2VsZWN0IG11bHRpcGxlIGl0ZW1zIGluIHRoZSBjaGVja2xpc3QuXG4gICAqIEBkZWZhdWx0IFwibXVsdGlwbGVcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RNb2RlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zZWxlY3RNb2RlID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RNb2RlID09PSAnbXVsdGlwbGUnKSB7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIudG9vbGJhclNob3dNdWx0aXNlbGVjdFRvb2xiYXIodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd09ubHlTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5kaXNwYXRjaGVyLnRvb2xiYXJTaG93TXVsdGlzZWxlY3RUb29sYmFyKGZhbHNlKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlYXBwbHlGaWx0ZXIodGhpcy5zaG93T25seVNlbGVjdGVkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0TW9kZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RNb2RlIHx8ICdtdWx0aXBsZSc7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzcGxheSBzZWxlY3RlZCBpdGVtcyBvbmx5LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzaG93T25seVNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd09ubHlTZWxlY3RlZCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBzaG93T25seVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zaG93T25seVNlbGVjdGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9zZWxlY3RNb2RlID0gJ211bHRpcGxlJztcblxuICBwcml2YXRlIF9zZWxlY3RlZElkTWFwOiBNYXA8c3RyaW5nLCBib29sZWFuPiA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX3Nob3dPbmx5U2VsZWN0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdGF0ZTogTGlzdFN0YXRlLFxuICAgIHByaXZhdGUgZGlzcGF0Y2hlcjogTGlzdFN0YXRlRGlzcGF0Y2hlcixcbiAgICBwcml2YXRlIGNoZWNrbGlzdFN0YXRlOiBDaGVja2xpc3RTdGF0ZSxcbiAgICBwcml2YXRlIGNoZWNrbGlzdERpc3BhdGNoZXI6IENoZWNrbGlzdFN0YXRlRGlzcGF0Y2hlclxuICApIHtcbiAgICBzdXBlcihzdGF0ZSwgJ0NoZWNrbGlzdCBWaWV3Jyk7XG5cbiAgICBsZXQgbGFzdFVwZGF0ZTogYW55O1xuICAgIHRoaXMuc3RhdGVcbiAgICAgIC5waXBlKFxuICAgICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLml0ZW1zKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgoaXRlbXM6IEFzeW5jTGlzdDxMaXN0SXRlbU1vZGVsPikgPT4ge1xuICAgICAgICAgIGNvbnN0IGRhdGFDaGFuZ2VkID1cbiAgICAgICAgICAgIGxhc3RVcGRhdGUgPT09IHVuZGVmaW5lZCB8fCBpdGVtcy5sYXN0VXBkYXRlICE9PSBsYXN0VXBkYXRlO1xuICAgICAgICAgIGxhc3RVcGRhdGUgPSBpdGVtcy5sYXN0VXBkYXRlO1xuICAgICAgICAgIGNvbnN0IG5ld0l0ZW1zID0gaXRlbXMuaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IExpc3RWaWV3Q2hlY2tsaXN0SXRlbU1vZGVsKGl0ZW0uaWQsIHtcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMubGFiZWxGaWVsZFNlbGVjdG9yXG4gICAgICAgICAgICAgICAgPyBnZXREYXRhKGl0ZW0uZGF0YSwgdGhpcy5sYWJlbEZpZWxkU2VsZWN0b3IpXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgPyBnZXREYXRhKGl0ZW0uZGF0YSwgdGhpcy5kZXNjcmlwdGlvbilcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3REaXNwYXRjaGVyLm5leHQoXG4gICAgICAgICAgICBuZXcgTGlzdFZpZXdDaGVja2xpc3RJdGVtc0xvYWRBY3Rpb24oXG4gICAgICAgICAgICAgIG5ld0l0ZW1zLFxuICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgICBkYXRhQ2hhbmdlZCxcbiAgICAgICAgICAgICAgaXRlbXMuY291bnRcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnN0YXRlXG4gICAgICAucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgodCkgPT4gdC5zZWxlY3RlZCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChzZWxlY3RlZEl0ZW1zOiBBc3luY0l0ZW08TGlzdFNlbGVjdGVkTW9kZWw+KSA9PiB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSWRNYXAgPSBzZWxlY3RlZEl0ZW1zLml0ZW0uc2VsZWN0ZWRJZE1hcDtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnNlbGVjdE1vZGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci50b29sYmFyU2hvd011bHRpc2VsZWN0VG9vbGJhcih0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBJZiAnc2hvdy1zZWxlY3RlZCcgZmlsdGVyIGlzIGNoYW5nZWQgZnJvbSBtdWx0aXNlbGVjdCB0b29sYmFyIChsaXN0LWJ1aWxkZXIpXG4gICAgLy8gbWFrZSBzdXJlIHRoZSBwcml2YXRlIHZhcmlhYmxlIF9zaG93T25seVNlbGVjdGVkIHN0YXlzIGluIHN5bmMuXG4gICAgdGhpcy5zdGF0ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIG9ic2VydmFibGVNYXAoKHQpID0+IHQuZmlsdGVycyksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCh0aGlzLnNob3dTZWxlY3RlZFZhbHVlc0VxdWFsKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZmlsdGVyczogTGlzdEZpbHRlck1vZGVsW10pID0+IHtcbiAgICAgICAgY29uc3Qgc2hvd1NlbGVjdGVkRmlsdGVyID0gZmlsdGVycy5maW5kKFxuICAgICAgICAgIChmaWx0ZXI6IExpc3RGaWx0ZXJNb2RlbCkgPT4gZmlsdGVyLm5hbWUgPT09ICdzaG93LXNlbGVjdGVkJ1xuICAgICAgICApO1xuICAgICAgICBpZiAoc2hvd1NlbGVjdGVkRmlsdGVyKSB7XG4gICAgICAgICAgdGhpcy5fc2hvd09ubHlTZWxlY3RlZCA9IHNob3dTZWxlY3RlZEZpbHRlci52YWx1ZSA9PT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlc1snc2hvd09ubHlTZWxlY3RlZCddICYmXG4gICAgICBjaGFuZ2VzWydzaG93T25seVNlbGVjdGVkJ10uY3VycmVudFZhbHVlICE9PVxuICAgICAgICBjaGFuZ2VzWydzaG93T25seVNlbGVjdGVkJ10ucHJldmlvdXNWYWx1ZVxuICAgICkge1xuICAgICAgdGhpcy5yZWFwcGx5RmlsdGVyKGNoYW5nZXNbJ3Nob3dPbmx5U2VsZWN0ZWQnXS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDMuMi4wXG4gICAqIE11bHRpc2VsZWN0IHRvb2xiYXIgd2lsbCBhdXRvbWF0aWNhbGx5IHNob3cgaWYgc2VsZWN0IG1vZGUgaXMgc2V0IHRvICdtdWx0aXBsZScuXG4gICAqIFRoZXNlIG1ldGhvZHMgYXJlIG5vIGxvbmdlciBuZWVkZWQsIGFzIHRoYXQgZnVuY3Rpb25hbGl0eSBpcyBwYXJ0IG9mIGxpc3QtYnVpbGRlci5cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VWaXNpYmxlSXRlbXMoY2hhbmdlOiBTa3lDaGVja2JveENoYW5nZSkge1xuICAgIHRoaXMuc2hvd09ubHlTZWxlY3RlZCA9IGNoYW5nZS5jaGVja2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMy4yLjBcbiAgICogTXVsdGlzZWxlY3QgdG9vbGJhciB3aWxsIGF1dG9tYXRpY2FsbHkgc2hvdyBpZiBzZWxlY3QgbW9kZSBpcyBzZXQgdG8gJ211bHRpcGxlJy5cbiAgICogVGhlc2UgbWV0aG9kcyBhcmUgbm8gbG9uZ2VyIG5lZWRlZCwgYXMgdGhhdCBmdW5jdGlvbmFsaXR5IGlzIHBhcnQgb2YgbGlzdC1idWlsZGVyLlxuICAgKi9cbiAgcHVibGljIGNsZWFyU2VsZWN0aW9ucygpIHtcbiAgICB0aGlzLnN0YXRlXG4gICAgICAucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgoc3RhdGUpID0+IHN0YXRlLml0ZW1zLml0ZW1zKSxcbiAgICAgICAgdGFrZSgxKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoaXRlbXMpID0+IHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoXG4gICAgICAgICAgbmV3IExpc3RTZWxlY3RlZFNldEl0ZW1zU2VsZWN0ZWRBY3Rpb24oXG4gICAgICAgICAgICBpdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0uaWQpLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAodGhpcy5zaG93T25seVNlbGVjdGVkKSB7XG4gICAgICAgICAgdGhpcy5yZWFwcGx5RmlsdGVyKHRoaXMuc2hvd09ubHlTZWxlY3RlZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMy4yLjBcbiAgICogTXVsdGlzZWxlY3QgdG9vbGJhciB3aWxsIGF1dG9tYXRpY2FsbHkgc2hvdyBpZiBzZWxlY3QgbW9kZSBpcyBzZXQgdG8gJ211bHRpcGxlJy5cbiAgICogVGhlc2UgbWV0aG9kcyBhcmUgbm8gbG9uZ2VyIG5lZWRlZCwgYXMgdGhhdCBmdW5jdGlvbmFsaXR5IGlzIHBhcnQgb2YgbGlzdC1idWlsZGVyLlxuICAgKi9cbiAgcHVibGljIHNlbGVjdEFsbCgpIHtcbiAgICB0aGlzLnN0YXRlXG4gICAgICAucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgoc3RhdGUpID0+IHN0YXRlLml0ZW1zLml0ZW1zKSxcbiAgICAgICAgdGFrZSgxKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoaXRlbXMpID0+IHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoXG4gICAgICAgICAgbmV3IExpc3RTZWxlY3RlZFNldEl0ZW1zU2VsZWN0ZWRBY3Rpb24oXG4gICAgICAgICAgICBpdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0uaWQpLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICh0aGlzLnNob3dPbmx5U2VsZWN0ZWQpIHtcbiAgICAgICAgICB0aGlzLnJlYXBwbHlGaWx0ZXIodGhpcy5zaG93T25seVNlbGVjdGVkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25WaWV3QWN0aXZlKCkge1xuICAgIGlmICh0aGlzLnNlYXJjaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIuc2VhcmNoU2V0RnVuY3Rpb25zKFt0aGlzLnNlYXJjaF0pO1xuICAgIH1cblxuICAgIGNvbnN0IGZpZWxkU2VsZWN0b3JzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgaWYgKHRoaXMubGFiZWxGaWVsZFNlbGVjdG9yKSB7XG4gICAgICBmaWVsZFNlbGVjdG9ycy5wdXNoKHRoaXMubGFiZWxGaWVsZFNlbGVjdG9yKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZXNjcmlwdGlvbikge1xuICAgICAgZmllbGRTZWxlY3RvcnMucHVzaCh0aGlzLmRlc2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BhdGNoZXIuc2VhcmNoU2V0RmllbGRTZWxlY3RvcnMoZmllbGRTZWxlY3RvcnMpO1xuXG4gICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RUb29sYmFyU2V0VHlwZUFjdGlvbignc2VhcmNoJykpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBnZXQgaXRlbXMoKTogT2JzZXJ2YWJsZTxMaXN0Vmlld0NoZWNrbGlzdEl0ZW1Nb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuY2hlY2tsaXN0U3RhdGUucGlwZShcbiAgICAgIG9ic2VydmFibGVNYXAoKHN0YXRlKSA9PiBzdGF0ZS5pdGVtcy5pdGVtcylcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAoZGF0YTogYW55LCBzZWFyY2hUZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICh0aGlzLmxhYmVsRmllbGRTZWxlY3RvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gZ2V0RGF0YShkYXRhLCB0aGlzLmxhYmVsRmllbGRTZWxlY3Rvcik7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBsYWJlbCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgbGFiZWwgIT09IG51bGwgJiZcbiAgICAgICAgICBsYWJlbC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXh0KSAhPT0gLTFcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGdldERhdGEoZGF0YSwgdGhpcy5kZXNjcmlwdGlvbik7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBkZXNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgZGVzY3JpcHRpb24gIT09IG51bGwgJiZcbiAgICAgICAgICBkZXNjcmlwdGlvbi50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXh0KSAhPT0gLTFcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaXRlbVNlbGVjdGVkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgb2JzZXJ2YWJsZU1hcCgoc3RhdGUpID0+IHN0YXRlLnNlbGVjdGVkLml0ZW0uc2VsZWN0ZWRJZE1hcC5nZXQoaWQpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2V0SXRlbVNlbGVjdGlvbihpdGVtOiBMaXN0SXRlbU1vZGVsLCBldmVudDogYW55KSB7XG4gICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoXG4gICAgICBuZXcgTGlzdFNlbGVjdGVkU2V0SXRlbVNlbGVjdGVkQWN0aW9uKGl0ZW0uaWQsIGV2ZW50LmNoZWNrZWQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzaW5nbGVTZWxlY3RSb3dDbGljayhpdGVtOiBMaXN0SXRlbU1vZGVsKSB7XG4gICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoXG4gICAgICBuZXcgTGlzdFNlbGVjdGVkU2V0SXRlbXNTZWxlY3RlZEFjdGlvbihbaXRlbS5pZF0sIHRydWUsIHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2hvd1NlbGVjdGVkRmlsdGVyKGlzU2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gbmV3IExpc3RGaWx0ZXJNb2RlbCh7XG4gICAgICBuYW1lOiAnc2hvdy1zZWxlY3RlZCcsXG4gICAgICB2YWx1ZTogaXNTZWxlY3RlZC50b1N0cmluZygpLFxuICAgICAgZmlsdGVyRnVuY3Rpb246IChtb2RlbDogTGlzdEl0ZW1Nb2RlbCwgc2hvd09ubHlTZWxlY3RlZDogYm9vbGVhbikgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoc2hvd09ubHlTZWxlY3RlZC50b1N0cmluZygpICE9PSBmYWxzZS50b1N0cmluZygpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSWRNYXAuZ2V0KG1vZGVsLmlkKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UudG9TdHJpbmcoKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhcHBseUZpbHRlcihpc1NlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5zdGF0ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIG9ic2VydmFibGVNYXAoKHN0YXRlKSA9PiBzdGF0ZS5maWx0ZXJzKSxcbiAgICAgICAgdGFrZSgxKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZmlsdGVyczogTGlzdEZpbHRlck1vZGVsW10pID0+IHtcbiAgICAgICAgZmlsdGVycyA9IGZpbHRlcnMuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5uYW1lICE9PSAnc2hvdy1zZWxlY3RlZCcpO1xuICAgICAgICBmaWx0ZXJzLnB1c2godGhpcy5nZXRTaG93U2VsZWN0ZWRGaWx0ZXIoaXNTZWxlY3RlZCkpO1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIuZmlsdGVyc1VwZGF0ZShmaWx0ZXJzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93U2VsZWN0ZWRWYWx1ZXNFcXVhbChcbiAgICBwcmV2OiBMaXN0RmlsdGVyTW9kZWxbXSxcbiAgICBuZXh0OiBMaXN0RmlsdGVyTW9kZWxbXVxuICApIHtcbiAgICBjb25zdCBwcmV2U2hvd1NlbGVjdGVkRmlsdGVyID0gcHJldi5maW5kKFxuICAgICAgKGZpbHRlcikgPT4gZmlsdGVyLm5hbWUgPT09ICdzaG93LXNlbGVjdGVkJ1xuICAgICk7XG4gICAgY29uc3QgbmV4dFNob3dTZWxlY3RlZEZpbHRlciA9IG5leHQuZmluZChcbiAgICAgIChmaWx0ZXIpID0+IGZpbHRlci5uYW1lID09PSAnc2hvdy1zZWxlY3RlZCdcbiAgICApO1xuXG4gICAgaWYgKHByZXZTaG93U2VsZWN0ZWRGaWx0ZXIgJiYgbmV4dFNob3dTZWxlY3RlZEZpbHRlcikge1xuICAgICAgcmV0dXJuIHByZXZTaG93U2VsZWN0ZWRGaWx0ZXIudmFsdWUgPT09IG5leHRTaG93U2VsZWN0ZWRGaWx0ZXIudmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktbGlzdC12aWV3LWNoZWNrbGlzdFwiICpuZ0lmPVwiYWN0aXZlIHwgYXN5bmNcIj5cbiAgPGRpdiBbbmdTd2l0Y2hdPVwic2VsZWN0TW9kZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBuZ1N3aXRjaENhc2U9XCJzaW5nbGVcIj5cbiAgICAgIDxkaXYgcm9sZT1cInJhZGlvZ3JvdXBcIj5cbiAgICAgICAgPHNreS1saXN0LXZpZXctY2hlY2tsaXN0LWl0ZW1cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcyB8IGFzeW5jXCJcbiAgICAgICAgICBbYXR0ci5za3ktY21wLWlkXT1cIml0ZW0uaWRcIlxuICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgcm9sZT1cInJhZGlvXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJza3ktbGlzdC12aWV3LWNoZWNrbGlzdC1zaW5nbGUtYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCIoaXRlbVNlbGVjdGVkKGl0ZW0uaWQpIHwgYXN5bmMpIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3NreS1saXN0LXZpZXctY2hlY2tsaXN0LXJvdy1zZWxlY3RlZCc6XG4gICAgICAgICAgICAgICAgKGl0ZW1TZWxlY3RlZChpdGVtLmlkKSB8IGFzeW5jKVxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2luZ2xlU2VsZWN0Um93Q2xpY2soaXRlbSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLmxhYmVsXCIgY2xhc3M9XCJza3ktZW1waGFzaXplZFwiPlxuICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLmRlc2NyaXB0aW9uXCI+e3sgaXRlbS5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NreS1saXN0LXZpZXctY2hlY2tsaXN0LWl0ZW0+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlIG5nU3dpdGNoRGVmYXVsdD5cbiAgICAgIDxza3ktbGlzdC12aWV3LWNoZWNrbGlzdC1pdGVtXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zIHwgYXN5bmNcIlxuICAgICAgICBbYXR0ci5za3ktY21wLWlkXT1cIml0ZW0uaWRcIlxuICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAgIFtjaGVja2VkXT1cIml0ZW1TZWxlY3RlZChpdGVtLmlkKSB8IGFzeW5jXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInNldEl0ZW1TZWxlY3Rpb24oaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWNoZWNrYm94LWxhYmVsPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1lbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZGVzY3JpcHRpb25cIiBbYXR0ci50aXRsZV09XCJpdGVtLmRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIHt7IGl0ZW0uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2t5LWNoZWNrYm94LWxhYmVsPlxuICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgIDwvc2t5LWxpc3Qtdmlldy1jaGVja2xpc3QtaXRlbT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,25 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { SkyCheckboxModule } from '@skyux/forms';
5
+ import { SkyListViewChecklistItemComponent } from './list-view-checklist-item.component';
6
+ import { SkyListViewChecklistComponent } from './list-view-checklist.component';
7
+ import * as i0 from "@angular/core";
8
+ export class SkyListViewChecklistModule {
9
+ }
10
+ SkyListViewChecklistModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyListViewChecklistModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ SkyListViewChecklistModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyListViewChecklistModule, declarations: [SkyListViewChecklistComponent,
12
+ SkyListViewChecklistItemComponent], imports: [CommonModule, FormsModule, SkyCheckboxModule], exports: [SkyListViewChecklistComponent, SkyListViewChecklistItemComponent] });
13
+ SkyListViewChecklistModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyListViewChecklistModule, imports: [[CommonModule, FormsModule, SkyCheckboxModule]] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyListViewChecklistModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ declarations: [
18
+ SkyListViewChecklistComponent,
19
+ SkyListViewChecklistItemComponent,
20
+ ],
21
+ imports: [CommonModule, FormsModule, SkyCheckboxModule],
22
+ exports: [SkyListViewChecklistComponent, SkyListViewChecklistItemComponent],
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LWNoZWNrbGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctY2hlY2tsaXN0L3NyYy9saWIvbW9kdWxlcy9saXN0LXZpZXctY2hlY2tsaXN0L2xpc3Qtdmlldy1jaGVja2xpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBVWhGLE1BQU0sT0FBTywwQkFBMEI7O3VIQUExQiwwQkFBMEI7d0hBQTFCLDBCQUEwQixpQkFObkMsNkJBQTZCO1FBQzdCLGlDQUFpQyxhQUV6QixZQUFZLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixhQUM1Qyw2QkFBNkIsRUFBRSxpQ0FBaUM7d0hBRS9ELDBCQUEwQixZQUg1QixDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsaUJBQWlCLENBQUM7MkZBRzVDLDBCQUEwQjtrQkFSdEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osNkJBQTZCO3dCQUM3QixpQ0FBaUM7cUJBQ2xDO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsaUJBQWlCLENBQUM7b0JBQ3ZELE9BQU8sRUFBRSxDQUFDLDZCQUE2QixFQUFFLGlDQUFpQyxDQUFDO2lCQUM1RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5cbmltcG9ydCB7IFNreUxpc3RWaWV3Q2hlY2tsaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC12aWV3LWNoZWNrbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lMaXN0Vmlld0NoZWNrbGlzdENvbXBvbmVudCB9IGZyb20gJy4vbGlzdC12aWV3LWNoZWNrbGlzdC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTa3lMaXN0Vmlld0NoZWNrbGlzdENvbXBvbmVudCxcbiAgICBTa3lMaXN0Vmlld0NoZWNrbGlzdEl0ZW1Db21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTa3lDaGVja2JveE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtTa3lMaXN0Vmlld0NoZWNrbGlzdENvbXBvbmVudCwgU2t5TGlzdFZpZXdDaGVja2xpc3RJdGVtQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TGlzdFZpZXdDaGVja2xpc3RNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LXN0YXRlLWFjdGlvbi50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci12aWV3LWNoZWNrbGlzdC9zcmMvbGliL21vZHVsZXMvbGlzdC12aWV3LWNoZWNrbGlzdC9zdGF0ZS9jaGVja2xpc3Qtc3RhdGUtYWN0aW9uLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpc3RWaWV3Q2hlY2tsaXN0SXRlbXNMb2FkQWN0aW9uIH0gZnJvbSAnLi9pdGVtcy9sb2FkLmFjdGlvbic7XG5cbmV4cG9ydCB0eXBlIENoZWNrbGlzdFN0YXRlQWN0aW9uID0gTGlzdFZpZXdDaGVja2xpc3RJdGVtc0xvYWRBY3Rpb247XG4iXX0=
@@ -0,0 +1,7 @@
1
+ import { AsyncList } from '@skyux/list-builder-common';
2
+ export class ChecklistStateModel {
3
+ constructor() {
4
+ this.items = new AsyncList();
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LXN0YXRlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci12aWV3LWNoZWNrbGlzdC9zcmMvbGliL21vZHVsZXMvbGlzdC12aWV3LWNoZWNrbGlzdC9zdGF0ZS9jaGVja2xpc3Qtc3RhdGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXZELE1BQU0sT0FBTyxtQkFBbUI7SUFBaEM7UUFDUyxVQUFLLEdBQ1YsSUFBSSxTQUFTLEVBQThCLENBQUM7SUFDaEQsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNMaXN0IH0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlci1jb21tb24nO1xuXG5pbXBvcnQgeyBMaXN0Vmlld0NoZWNrbGlzdEl0ZW1Nb2RlbCB9IGZyb20gJy4vaXRlbXMvaXRlbS5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RTdGF0ZU1vZGVsIHtcbiAgcHVibGljIGl0ZW1zOiBBc3luY0xpc3Q8TGlzdFZpZXdDaGVja2xpc3RJdGVtTW9kZWw+ID1cbiAgICBuZXcgQXN5bmNMaXN0PExpc3RWaWV3Q2hlY2tsaXN0SXRlbU1vZGVsPigpO1xufVxuIl19
@@ -0,0 +1,13 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { StateDispatcher, StateOrchestrator } from '@skyux/list-builder-common';
3
+ import * as i0 from "@angular/core";
4
+ export class ChecklistStateDispatcher extends StateDispatcher {
5
+ }
6
+ ChecklistStateDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ChecklistStateDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
7
+ ChecklistStateDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ChecklistStateDispatcher });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ChecklistStateDispatcher, decorators: [{
9
+ type: Injectable
10
+ }] });
11
+ export class ChecklistStateOrchestrator extends StateOrchestrator {
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LXN0YXRlLnJ4c3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctY2hlY2tsaXN0L3NyYy9saWIvbW9kdWxlcy9saXN0LXZpZXctY2hlY2tsaXN0L3N0YXRlL2NoZWNrbGlzdC1zdGF0ZS5yeHN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUtoRixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZUFBcUM7O3FIQUF0RSx3QkFBd0I7eUhBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVOztBQUdYLE1BQU0sT0FBTywwQkFBOEIsU0FBUSxpQkFHbEQ7Q0FBRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0YXRlRGlzcGF0Y2hlciwgU3RhdGVPcmNoZXN0cmF0b3IgfSBmcm9tICdAc2t5dXgvbGlzdC1idWlsZGVyLWNvbW1vbic7XG5cbmltcG9ydCB7IENoZWNrbGlzdFN0YXRlQWN0aW9uIH0gZnJvbSAnLi9jaGVja2xpc3Qtc3RhdGUtYWN0aW9uLnR5cGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2hlY2tsaXN0U3RhdGVEaXNwYXRjaGVyIGV4dGVuZHMgU3RhdGVEaXNwYXRjaGVyPENoZWNrbGlzdFN0YXRlQWN0aW9uPiB7fVxuXG5leHBvcnQgY2xhc3MgQ2hlY2tsaXN0U3RhdGVPcmNoZXN0cmF0b3I8VD4gZXh0ZW5kcyBTdGF0ZU9yY2hlc3RyYXRvcjxcbiAgVCxcbiAgQ2hlY2tsaXN0U3RhdGVBY3Rpb25cbj4ge31cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { StateNode } from '@skyux/list-builder-common';
3
+ import { ChecklistStateModel } from './checklist-state.model';
4
+ import { ChecklistStateDispatcher } from './checklist-state.rxstate';
5
+ import { ListViewChecklistItemsOrchestrator } from './items/items.orchestrator';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./checklist-state.model";
8
+ import * as i2 from "./checklist-state.rxstate";
9
+ export class ChecklistState extends StateNode {
10
+ constructor(initialState, dispatcher) {
11
+ super(initialState, dispatcher);
12
+ this.register('items', ListViewChecklistItemsOrchestrator).begin();
13
+ }
14
+ }
15
+ ChecklistState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ChecklistState, deps: [{ token: i1.ChecklistStateModel }, { token: i2.ChecklistStateDispatcher }], target: i0.ɵɵFactoryTarget.Injectable });
16
+ ChecklistState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ChecklistState });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ChecklistState, decorators: [{
18
+ type: Injectable
19
+ }], ctorParameters: function () { return [{ type: i1.ChecklistStateModel }, { type: i2.ChecklistStateDispatcher }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LXN0YXRlLnN0YXRlLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctY2hlY2tsaXN0L3NyYy9saWIvbW9kdWxlcy9saXN0LXZpZXctY2hlY2tsaXN0L3N0YXRlL2NoZWNrbGlzdC1zdGF0ZS5zdGF0ZS1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBR2hGLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBOEI7SUFDaEUsWUFDRSxZQUFpQyxFQUNqQyxVQUFvQztRQUVwQyxLQUFLLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLGtDQUFrQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckUsQ0FBQzs7MkdBUlUsY0FBYzsrR0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdGF0ZU5vZGUgfSBmcm9tICdAc2t5dXgvbGlzdC1idWlsZGVyLWNvbW1vbic7XG5cbmltcG9ydCB7IENoZWNrbGlzdFN0YXRlTW9kZWwgfSBmcm9tICcuL2NoZWNrbGlzdC1zdGF0ZS5tb2RlbCc7XG5pbXBvcnQgeyBDaGVja2xpc3RTdGF0ZURpc3BhdGNoZXIgfSBmcm9tICcuL2NoZWNrbGlzdC1zdGF0ZS5yeHN0YXRlJztcbmltcG9ydCB7IExpc3RWaWV3Q2hlY2tsaXN0SXRlbXNPcmNoZXN0cmF0b3IgfSBmcm9tICcuL2l0ZW1zL2l0ZW1zLm9yY2hlc3RyYXRvcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RTdGF0ZSBleHRlbmRzIFN0YXRlTm9kZTxDaGVja2xpc3RTdGF0ZU1vZGVsPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGluaXRpYWxTdGF0ZTogQ2hlY2tsaXN0U3RhdGVNb2RlbCxcbiAgICBkaXNwYXRjaGVyOiBDaGVja2xpc3RTdGF0ZURpc3BhdGNoZXJcbiAgKSB7XG4gICAgc3VwZXIoaW5pdGlhbFN0YXRlLCBkaXNwYXRjaGVyKTtcblxuICAgIHRoaXMucmVnaXN0ZXIoJ2l0ZW1zJywgTGlzdFZpZXdDaGVja2xpc3RJdGVtc09yY2hlc3RyYXRvcikuYmVnaW4oKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,10 @@
1
+ export class ListViewChecklistItemModel {
2
+ constructor(id, data) {
3
+ this.id = id;
4
+ if (data) {
5
+ this.label = data.label;
6
+ this.description = data.description;
7
+ }
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXItdmlldy1jaGVja2xpc3Qvc3JjL2xpYi9tb2R1bGVzL2xpc3Qtdmlldy1jaGVja2xpc3Qvc3RhdGUvaXRlbXMvaXRlbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sMEJBQTBCO0lBS3JDLFlBQVksRUFBVSxFQUFFLElBQVU7UUFDaEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFFYixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDckM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTGlzdFZpZXdDaGVja2xpc3RJdGVtTW9kZWwge1xuICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLmlkID0gaWQ7XG5cbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5sYWJlbCA9IGRhdGEubGFiZWw7XG4gICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZGF0YS5kZXNjcmlwdGlvbjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { AsyncList } from '@skyux/list-builder-common';
2
+ import { ChecklistStateOrchestrator } from '../checklist-state.rxstate';
3
+ import { ListViewChecklistItemModel } from './item.model';
4
+ import { ListViewChecklistItemsLoadAction } from './load.action';
5
+ export class ListViewChecklistItemsOrchestrator extends ChecklistStateOrchestrator {
6
+ /* istanbul ignore next */
7
+ constructor() {
8
+ super();
9
+ this.register(ListViewChecklistItemsLoadAction, this.load);
10
+ }
11
+ load(state, action) {
12
+ const newListItems = action.items.map((item) => new ListViewChecklistItemModel(item.id, item));
13
+ if (action.refresh) {
14
+ return new AsyncList([...newListItems], action.dataChanged ? Date.now() : state.lastUpdate, false, state.count);
15
+ }
16
+ return new AsyncList([...state.items, ...newListItems], action.dataChanged ? Date.now() : state.lastUpdate, false, action.itemCount);
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMub3JjaGVzdHJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci12aWV3LWNoZWNrbGlzdC9zcmMvbGliL21vZHVsZXMvbGlzdC12aWV3LWNoZWNrbGlzdC9zdGF0ZS9pdGVtcy9pdGVtcy5vcmNoZXN0cmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakUsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLDBCQUV2RDtJQUNDLDBCQUEwQjtJQUMxQjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLElBQUksQ0FDVixLQUE0QyxFQUM1QyxNQUF3QztRQUV4QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDbkMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FDeEQsQ0FBQztRQUVGLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNsQixPQUFPLElBQUksU0FBUyxDQUNsQixDQUFDLEdBQUcsWUFBWSxDQUFDLEVBQ2pCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFDbEQsS0FBSyxFQUNMLEtBQUssQ0FBQyxLQUFLLENBQ1osQ0FBQztTQUNIO1FBRUQsT0FBTyxJQUFJLFNBQVMsQ0FDbEIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxZQUFZLENBQUMsRUFDakMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUNsRCxLQUFLLEVBQ0wsTUFBTSxDQUFDLFNBQVMsQ0FDakIsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jTGlzdCB9IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcblxuaW1wb3J0IHsgQ2hlY2tsaXN0U3RhdGVPcmNoZXN0cmF0b3IgfSBmcm9tICcuLi9jaGVja2xpc3Qtc3RhdGUucnhzdGF0ZSc7XG5cbmltcG9ydCB7IExpc3RWaWV3Q2hlY2tsaXN0SXRlbU1vZGVsIH0gZnJvbSAnLi9pdGVtLm1vZGVsJztcbmltcG9ydCB7IExpc3RWaWV3Q2hlY2tsaXN0SXRlbXNMb2FkQWN0aW9uIH0gZnJvbSAnLi9sb2FkLmFjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBMaXN0Vmlld0NoZWNrbGlzdEl0ZW1zT3JjaGVzdHJhdG9yIGV4dGVuZHMgQ2hlY2tsaXN0U3RhdGVPcmNoZXN0cmF0b3I8XG4gIEFzeW5jTGlzdDxMaXN0Vmlld0NoZWNrbGlzdEl0ZW1Nb2RlbD5cbj4ge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucmVnaXN0ZXIoTGlzdFZpZXdDaGVja2xpc3RJdGVtc0xvYWRBY3Rpb24sIHRoaXMubG9hZCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWQoXG4gICAgc3RhdGU6IEFzeW5jTGlzdDxMaXN0Vmlld0NoZWNrbGlzdEl0ZW1Nb2RlbD4sXG4gICAgYWN0aW9uOiBMaXN0Vmlld0NoZWNrbGlzdEl0ZW1zTG9hZEFjdGlvblxuICApOiBBc3luY0xpc3Q8TGlzdFZpZXdDaGVja2xpc3RJdGVtTW9kZWw+IHtcbiAgICBjb25zdCBuZXdMaXN0SXRlbXMgPSBhY3Rpb24uaXRlbXMubWFwKFxuICAgICAgKGl0ZW0pID0+IG5ldyBMaXN0Vmlld0NoZWNrbGlzdEl0ZW1Nb2RlbChpdGVtLmlkLCBpdGVtKVxuICAgICk7XG5cbiAgICBpZiAoYWN0aW9uLnJlZnJlc2gpIHtcbiAgICAgIHJldHVybiBuZXcgQXN5bmNMaXN0PExpc3RWaWV3Q2hlY2tsaXN0SXRlbU1vZGVsPihcbiAgICAgICAgWy4uLm5ld0xpc3RJdGVtc10sXG4gICAgICAgIGFjdGlvbi5kYXRhQ2hhbmdlZCA/IERhdGUubm93KCkgOiBzdGF0ZS5sYXN0VXBkYXRlLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgc3RhdGUuY291bnRcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBBc3luY0xpc3Q8TGlzdFZpZXdDaGVja2xpc3RJdGVtTW9kZWw+KFxuICAgICAgWy4uLnN0YXRlLml0ZW1zLCAuLi5uZXdMaXN0SXRlbXNdLFxuICAgICAgYWN0aW9uLmRhdGFDaGFuZ2VkID8gRGF0ZS5ub3coKSA6IHN0YXRlLmxhc3RVcGRhdGUsXG4gICAgICBmYWxzZSxcbiAgICAgIGFjdGlvbi5pdGVtQ291bnRcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ export class ListViewChecklistItemsLoadAction {
2
+ constructor(items = [], refresh = false, dataChanged = true, itemCount = items.length) {
3
+ this.items = items;
4
+ this.refresh = refresh;
5
+ this.dataChanged = dataChanged;
6
+ this.itemCount = itemCount;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctY2hlY2tsaXN0L3NyYy9saWIvbW9kdWxlcy9saXN0LXZpZXctY2hlY2tsaXN0L3N0YXRlL2l0ZW1zL2xvYWQuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDM0MsWUFDUyxRQUEyQyxFQUFFLEVBQzdDLFVBQW1CLEtBQUssRUFDeEIsY0FBdUIsSUFBSSxFQUMzQixZQUFvQixLQUFLLENBQUMsTUFBTTtRQUhoQyxVQUFLLEdBQUwsS0FBSyxDQUF3QztRQUM3QyxZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsY0FBUyxHQUFULFNBQVMsQ0FBdUI7SUFDdEMsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdFZpZXdDaGVja2xpc3RJdGVtTW9kZWwgfSBmcm9tICcuL2l0ZW0ubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgTGlzdFZpZXdDaGVja2xpc3RJdGVtc0xvYWRBY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaXRlbXM6IEFycmF5PExpc3RWaWV3Q2hlY2tsaXN0SXRlbU1vZGVsPiA9IFtdLFxuICAgIHB1YmxpYyByZWZyZXNoOiBib29sZWFuID0gZmFsc2UsXG4gICAgcHVibGljIGRhdGFDaGFuZ2VkOiBib29sZWFuID0gdHJ1ZSxcbiAgICBwdWJsaWMgaXRlbUNvdW50OiBudW1iZXIgPSBpdGVtcy5sZW5ndGhcbiAgKSB7fVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtbGlzdC1idWlsZGVyLXZpZXctY2hlY2tsaXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci12aWV3LWNoZWNrbGlzdC9zcmMvc2t5dXgtbGlzdC1idWlsZGVyLXZpZXctY2hlY2tsaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19