@skyux/list-builder-view-checklist 5.5.0 → 5.6.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.
- package/bundles/skyux-list-builder-view-checklist.umd.js +730 -731
- package/documentation.json +266 -9424
- package/esm2015/lib/modules/list-view-checklist/list-view-checklist-item.component.js +1 -1
- package/esm2015/lib/modules/list-view-checklist/list-view-checklist-item.component.js.map +1 -1
- package/esm2015/lib/modules/list-view-checklist/list-view-checklist.component.js +11 -12
- package/esm2015/lib/modules/list-view-checklist/list-view-checklist.component.js.map +1 -1
- package/esm2015/lib/modules/list-view-checklist/list-view-checklist.module.js +2 -2
- package/esm2015/lib/modules/list-view-checklist/list-view-checklist.module.js.map +1 -1
- package/esm2015/lib/modules/list-view-checklist/state/checklist-state.rxstate.js.map +1 -1
- package/esm2015/lib/modules/list-view-checklist/state/checklist-state.state-node.js.map +1 -1
- package/esm2015/lib/modules/list-view-checklist/state/items/items.orchestrator.js +1 -1
- package/esm2015/lib/modules/list-view-checklist/state/items/items.orchestrator.js.map +1 -1
- package/esm2015/testing/list-view-checklist-fixture.js.map +1 -1
- package/fesm2015/skyux-list-builder-view-checklist-testing.js.map +1 -1
- package/fesm2015/skyux-list-builder-view-checklist.js +34 -35
- package/fesm2015/skyux-list-builder-view-checklist.js.map +1 -1
- package/lib/modules/list-view-checklist/list-view-checklist.component.d.ts +2 -2
- package/lib/modules/list-view-checklist/state/items/items.orchestrator.d.ts +1 -1
- package/package.json +14 -13
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
2
|
import { ListViewChecklistItemModel } from './state/items/item.model';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class SkyListViewChecklistItemComponent {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-view-checklist-item.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/list-view-checklist-item.component.ts","../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/list-view-checklist-item.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"list-view-checklist-item.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/list-view-checklist-item.component.ts","../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/list-view-checklist-item.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;;AAQtE,MAAM,OAAO,iCAAiC;;+HAAjC,iCAAiC;mHAAjC,iCAAiC,8FCV9C,qFAGA;4FDOa,iCAAiC;kBAN7C,SAAS;mBAAC;oBACT,QAAQ,EAAE,8BAA8B;oBACxC,WAAW,EAAE,2CAA2C;oBACxD,SAAS,EAAE,CAAC,2CAA2C,CAAC;oBACxD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;8BAGQ,IAAI;sBADV,KAAK","sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { ListViewChecklistItemModel } from './state/items/item.model';\n\n@Component({\n selector: 'sky-list-view-checklist-item',\n templateUrl: './list-view-checklist-item.component.html',\n styleUrls: ['./list-view-checklist-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyListViewChecklistItemComponent {\n @Input()\n public item: ListViewChecklistItemModel;\n}\n","<div class=\"sky-list-view-checklist-item\">\n <ng-content></ng-content>\n</div>\n"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
2
|
-
import {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, forwardRef, } from '@angular/core';
|
|
2
|
+
import { ListFilterModel, ListSelectedSetItemSelectedAction, ListSelectedSetItemsSelectedAction, ListState, ListStateDispatcher, ListToolbarSetTypeAction, ListViewComponent, } from '@skyux/list-builder';
|
|
3
3
|
import { getData, } from '@skyux/list-builder-common';
|
|
4
4
|
import { Subject } from 'rxjs';
|
|
5
5
|
import { distinctUntilChanged, map as observableMap, take, takeUntil, } from 'rxjs/operators';
|
|
6
|
-
import { ChecklistState } from './state/checklist-state.state-node';
|
|
7
|
-
import { ChecklistStateDispatcher } from './state/checklist-state.rxstate';
|
|
8
6
|
import { ChecklistStateModel } from './state/checklist-state.model';
|
|
9
|
-
import {
|
|
7
|
+
import { ChecklistStateDispatcher } from './state/checklist-state.rxstate';
|
|
8
|
+
import { ChecklistState } from './state/checklist-state.state-node';
|
|
10
9
|
import { ListViewChecklistItemModel } from './state/items/item.model';
|
|
10
|
+
import { ListViewChecklistItemsLoadAction } from './state/items/load.action';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
import * as i1 from "@skyux/list-builder";
|
|
13
13
|
import * as i2 from "./state/checklist-state.state-node";
|
|
@@ -46,9 +46,9 @@ export class SkyListViewChecklistComponent extends ListViewComponent {
|
|
|
46
46
|
let lastUpdate;
|
|
47
47
|
this.state
|
|
48
48
|
.pipe(observableMap((s) => s.items), distinctUntilChanged(), observableMap((items) => {
|
|
49
|
-
|
|
49
|
+
const dataChanged = lastUpdate === undefined || items.lastUpdate !== lastUpdate;
|
|
50
50
|
lastUpdate = items.lastUpdate;
|
|
51
|
-
|
|
51
|
+
const newItems = items.items.map((item) => {
|
|
52
52
|
return new ListViewChecklistItemModel(item.id, {
|
|
53
53
|
label: this.labelFieldSelector
|
|
54
54
|
? getData(item.data, this.labelFieldSelector)
|
|
@@ -171,7 +171,7 @@ export class SkyListViewChecklistComponent extends ListViewComponent {
|
|
|
171
171
|
if (this.search !== undefined) {
|
|
172
172
|
this.dispatcher.searchSetFunctions([this.search]);
|
|
173
173
|
}
|
|
174
|
-
|
|
174
|
+
const fieldSelectors = [];
|
|
175
175
|
if (this.labelFieldSelector) {
|
|
176
176
|
fieldSelectors.push(this.labelFieldSelector);
|
|
177
177
|
}
|
|
@@ -191,7 +191,7 @@ export class SkyListViewChecklistComponent extends ListViewComponent {
|
|
|
191
191
|
searchFunction() {
|
|
192
192
|
return (data, searchText) => {
|
|
193
193
|
if (this.labelFieldSelector !== undefined) {
|
|
194
|
-
|
|
194
|
+
const label = getData(data, this.labelFieldSelector);
|
|
195
195
|
if (label !== undefined &&
|
|
196
196
|
label !== null &&
|
|
197
197
|
label.toString().toLowerCase().indexOf(searchText) !== -1) {
|
|
@@ -199,7 +199,7 @@ export class SkyListViewChecklistComponent extends ListViewComponent {
|
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
if (this.description !== undefined) {
|
|
202
|
-
|
|
202
|
+
const description = getData(data, this.description);
|
|
203
203
|
if (description !== undefined &&
|
|
204
204
|
description !== null &&
|
|
205
205
|
description.toString().toLowerCase().indexOf(searchText) !== -1) {
|
|
@@ -232,12 +232,11 @@ export class SkyListViewChecklistComponent extends ListViewComponent {
|
|
|
232
232
|
});
|
|
233
233
|
}
|
|
234
234
|
reapplyFilter(isSelected) {
|
|
235
|
-
let self = this;
|
|
236
235
|
this.state
|
|
237
236
|
.pipe(observableMap((state) => state.filters), take(1))
|
|
238
237
|
.subscribe((filters) => {
|
|
239
238
|
filters = filters.filter((filter) => filter.name !== 'show-selected');
|
|
240
|
-
filters.push(
|
|
239
|
+
filters.push(this.getShowSelectedFilter(isSelected));
|
|
241
240
|
this.dispatcher.filtersUpdate(filters);
|
|
242
241
|
});
|
|
243
242
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-view-checklist.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/list-view-checklist.component.ts","../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/list-view-checklist.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,UAAU,EACV,KAAK,GAKN,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,SAAS,EACT,mBAAmB,EAEnB,eAAe,EACf,iCAAiC,EACjC,kCAAkC,EAClC,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAGL,OAAO,GAER,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAc,OAAO,EAAE,MAAM,MAAM,CAAC;AAE3C,OAAO,EACL,oBAAoB,EACpB,GAAG,IAAI,aAAa,EACpB,IAAI,EACJ,SAAS,GACV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAE7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;;;;;;;;AAiBtE,MAAM,OAAO,6BACX,SAAQ,iBAAiB;IAkFzB,YACE,KAAgB,EACR,UAA+B,EAC/B,cAA8B,EAC9B,mBAA6C;QAErD,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAJvB,eAAU,GAAV,UAAU,CAAqB;QAC/B,mBAAc,GAAd,cAAc,CAAgB;QAC9B,wBAAmB,GAAnB,mBAAmB,CAA0B;QA1EvD;;;;;WAKG;QAEI,WAAM,GACX,IAAI,CAAC,cAAc,EAAE,CAAC;QAExB;;;WAGG;QACH,2DAA2D;QAEpD,uBAAkB,GAAW,OAAO,CAAC;QAE5C;;;WAGG;QAEI,gBAAW,GAAW,aAAa,CAAC;QAuCnC,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QAE9B,gBAAW,GAAG,UAAU,CAAC;QAEzB,mBAAc,GAAyB,IAAI,GAAG,EAAmB,CAAC;QAElE,sBAAiB,GAAY,KAAK,CAAC;QAUzC,IAAI,UAAe,CAAC;QACpB,IAAI,CAAC,KAAK;aACP,IAAI,CACH,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAC7B,oBAAoB,EAAE,EACtB,aAAa,CAAC,CAAC,KAA+B,EAAE,EAAE;YAChD,IAAI,WAAW,GACb,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC;YAC9D,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;YAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtC,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,EAAE,EAAE;oBAC7C,KAAK,EAAE,IAAI,CAAC,kBAAkB;wBAC5B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC;wBAC7C,CAAC,CAAC,SAAS;oBACb,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC3B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC;wBACtC,CAAC,CAAC,SAAS;iBACd,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3B,IAAI,gCAAgC,CAClC,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,KAAK,CAAC,KAAK,CACZ,CACF,CAAC;QACJ,CAAC,CAAC,CACH;aACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,EAAE,CAAC;QAEf,IAAI,CAAC,KAAK;aACP,IAAI,CACH,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAChC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAC9B;aACA,SAAS,CAAC,CAAC,aAA2C,EAAE,EAAE;YACzD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;QACzD,CAAC,CAAC,CAAC;IACP,CAAC;IAhID;;;OAGG;IACH,IACI,IAAI,CAAC,KAAa;QACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IA2BD;;;;;OAKG;IACH,IACW,UAAU,CAAC,KAAa;QACjC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;SACrD;aAAM;YACL,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;SACtD;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,IACW,gBAAgB,CAAC,KAAc;QACxC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IA6DM,QAAQ;QACb,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;SACrD;QAED,+EAA+E;QAC/E,kEAAkE;QAClE,IAAI,CAAC,KAAK;aACP,IAAI,CACH,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAC/B,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAC7B,oBAAoB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CACnD;aACA,SAAS,CAAC,CAAC,OAA0B,EAAE,EAAE;YACxC,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CACrC,CAAC,MAAuB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,CAC7D,CAAC;YACF,IAAI,kBAAkB,EAAE;gBACtB,IAAI,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,KAAK,MAAM,CAAC;aAC9D;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,WAAW,CAAC,OAAsB;QACvC,IACE,OAAO,CAAC,kBAAkB,CAAC;YAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAC,YAAY;gBACtC,OAAO,CAAC,kBAAkB,CAAC,CAAC,aAAa,EAC3C;YACA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC;SAC9D;IACH,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,MAAyB;QACjD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,eAAe;QACpB,IAAI,CAAC,KAAK;aACP,IAAI,CACH,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAC3C,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,kCAAkC,CACpC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAC5B,KAAK,EACL,KAAK,CACN,CACF,CAAC;YAEF,0BAA0B;YAC1B,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAC3C;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACI,SAAS;QACd,IAAI,CAAC,KAAK;aACP,IAAI,CACH,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAC3C,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,kCAAkC,CACpC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAC5B,IAAI,EACJ,KAAK,CACN,CACF,CAAC;YAEF,0BAA0B;YAC1B,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAC3C;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,YAAY;QACjB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACnD;QAED,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC9C;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACvC;QAED,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAExD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAC5C,CAAC;IACJ,CAAC;IAEM,cAAc;QACnB,OAAO,CAAC,IAAS,EAAE,UAAkB,EAAE,EAAE;YACvC,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE;gBACzC,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACnD,IACE,KAAK,KAAK,SAAS;oBACnB,KAAK,KAAK,IAAI;oBACd,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EACzD;oBACA,OAAO,IAAI,CAAC;iBACb;aACF;YAED,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;gBAClC,IAAI,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAClD,IACE,WAAW,KAAK,SAAS;oBACzB,WAAW,KAAK,IAAI;oBACpB,WAAW,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAC/D;oBACA,OAAO,IAAI,CAAC;iBACb;aACF;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;IACJ,CAAC;IAEM,YAAY,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CACpB,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC;IAEM,gBAAgB,CAAC,IAAmB,EAAE,KAAU;QACrD,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,iCAAiC,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAC9D,CAAC;IACJ,CAAC;IAEM,oBAAoB,CAAC,IAAmB;QAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,kCAAkC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAC9D,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,UAAmB;QAC/C,OAAO,IAAI,eAAe,CAAC;YACzB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE;YAC5B,cAAc,EAAE,CAAC,KAAoB,EAAE,gBAAyB,EAAE,EAAE;gBAClE,0BAA0B;gBAC1B,IAAI,gBAAgB,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,EAAE;oBACpD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBAC1C;YACH,CAAC;YACD,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,UAAmB;QACvC,IAAI,IAAI,GAAG,IAAI,CAAC;QAEhB,IAAI,CAAC,KAAK;aACP,IAAI,CACH,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EACvC,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS,CAAC,CAAC,OAA0B,EAAE,EAAE;YACxC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,uBAAuB,CAC7B,IAAuB,EACvB,IAAuB;QAEvB,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CACtC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,CAC5C,CAAC;QACF,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CACtC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,CAC5C,CAAC;QAEF,IAAI,sBAAsB,IAAI,sBAAsB,EAAE;YACpD,OAAO,sBAAsB,CAAC,KAAK,KAAK,sBAAsB,CAAC,KAAK,CAAC;SACtE;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;2HA/VU,6BAA6B;+GAA7B,6BAA6B,+OAX7B;QACT;YACE,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC;SAC7D;QACD,cAAc;QACd,wBAAwB;QACxB,mBAAmB;KACpB,sEC9DH,k3DAwDA;4FDSa,6BAA6B;kBAfzC,SAAS;mBAAC;oBACT,QAAQ,EAAE,yBAAyB;oBACnC,WAAW,EAAE,sCAAsC;oBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;oBACnD,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,iBAAiB;4BAC1B,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,8BAA8B,CAAC;yBAC7D;wBACD,cAAc;wBACd,wBAAwB;wBACxB,mBAAmB;qBACpB;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;sMAUK,IAAI;sBADP,KAAK;gBAYC,MAAM;sBADZ,KAAK;gBAUC,kBAAkB;sBADxB,KAAK;uBAAC,OAAO;gBAQP,WAAW;sBADjB,KAAK;gBAUK,UAAU;sBADpB,KAAK;gBAuBK,gBAAgB;sBAD1B,KAAK","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n Input,\n OnDestroy,\n SimpleChanges,\n OnChanges,\n OnInit,\n} from '@angular/core';\n\nimport { SkyCheckboxChange } from '@skyux/forms';\n\nimport {\n ListState,\n ListStateDispatcher,\n ListSelectedModel,\n ListFilterModel,\n ListSelectedSetItemSelectedAction,\n ListSelectedSetItemsSelectedAction,\n ListToolbarSetTypeAction,\n ListViewComponent,\n} from '@skyux/list-builder';\n\nimport {\n AsyncItem,\n AsyncList,\n getData,\n ListItemModel,\n} from '@skyux/list-builder-common';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport {\n distinctUntilChanged,\n map as observableMap,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\nimport { ChecklistState } from './state/checklist-state.state-node';\n\nimport { ChecklistStateDispatcher } from './state/checklist-state.rxstate';\n\nimport { ChecklistStateModel } from './state/checklist-state.model';\n\nimport { ListViewChecklistItemsLoadAction } from './state/items/load.action';\n\nimport { ListViewChecklistItemModel } from './state/items/item.model';\n\n@Component({\n selector: 'sky-list-view-checklist',\n templateUrl: './list-view-checklist.component.html',\n styleUrls: ['./list-view-checklist.component.scss'],\n providers: [\n {\n provide: ListViewComponent,\n useExisting: forwardRef(() => SkyListViewChecklistComponent),\n },\n ChecklistState,\n ChecklistStateDispatcher,\n ChecklistStateModel,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyListViewChecklistComponent\n extends ListViewComponent\n implements OnInit, OnDestroy, OnChanges\n{\n /**\n * Specifies the name of the view.\n * @required\n */\n @Input()\n set name(value: string) {\n this.viewName = value;\n }\n\n /**\n * Specifies a search function to apply on the view data.\n * The default function searches view data on label, description,\n * and category if field selectors are defined for the given field.\n * @default default search function\n */\n @Input()\n public search: (data: any, searchText: string) => boolean =\n this.searchFunction();\n\n /**\n * Specifies the name of the label field selector.\n * @default \"label\"\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('label')\n public labelFieldSelector: string = 'label';\n\n /**\n * Specifies the name of the description field selector.\n * @default \"description\"\n */\n @Input()\n public description: string = 'description';\n\n /**\n * Specifies how many items users can select.\n * `\"single\"` allows users to select one item in the checklist, while `\"multiple\"`\n * allows users to select multiple items in the checklist.\n * @default \"multiple\"\n */\n @Input()\n public set selectMode(value: string) {\n this._selectMode = value;\n\n if (this.selectMode === 'multiple') {\n this.dispatcher.toolbarShowMultiselectToolbar(true);\n } else {\n this.showOnlySelected = false;\n this.dispatcher.toolbarShowMultiselectToolbar(false);\n }\n\n this.reapplyFilter(this.showOnlySelected);\n }\n\n public get selectMode(): string {\n return this._selectMode || 'multiple';\n }\n\n /**\n * Indicates whether to display selected items only.\n * @default false\n */\n @Input()\n public set showOnlySelected(value: boolean) {\n this._showOnlySelected = value;\n }\n\n public get showOnlySelected(): boolean {\n return this._showOnlySelected;\n }\n\n private ngUnsubscribe = new Subject();\n\n private _selectMode = 'multiple';\n\n private _selectedIdMap: Map<string, boolean> = new Map<string, boolean>();\n\n private _showOnlySelected: boolean = false;\n\n constructor(\n state: ListState,\n private dispatcher: ListStateDispatcher,\n private checklistState: ChecklistState,\n private checklistDispatcher: ChecklistStateDispatcher\n ) {\n super(state, 'Checklist View');\n\n let lastUpdate: any;\n this.state\n .pipe(\n observableMap((s) => s.items),\n distinctUntilChanged(),\n observableMap((items: AsyncList<ListItemModel>) => {\n let dataChanged =\n lastUpdate === undefined || items.lastUpdate !== lastUpdate;\n lastUpdate = items.lastUpdate;\n let newItems = items.items.map((item) => {\n return new ListViewChecklistItemModel(item.id, {\n label: this.labelFieldSelector\n ? getData(item.data, this.labelFieldSelector)\n : undefined,\n description: this.description\n ? getData(item.data, this.description)\n : undefined,\n });\n });\n\n this.checklistDispatcher.next(\n new ListViewChecklistItemsLoadAction(\n newItems,\n true,\n dataChanged,\n items.count\n )\n );\n })\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe();\n\n this.state\n .pipe(\n observableMap((t) => t.selected),\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe((selectedItems: AsyncItem<ListSelectedModel>) => {\n this._selectedIdMap = selectedItems.item.selectedIdMap;\n });\n }\n\n public ngOnInit() {\n if (this.selectMode === 'multiple') {\n this.dispatcher.toolbarShowMultiselectToolbar(true);\n }\n\n // If 'show-selected' filter is changed from multiselect toolbar (list-builder)\n // make sure the private variable _showOnlySelected stays in sync.\n this.state\n .pipe(\n observableMap((t) => t.filters),\n takeUntil(this.ngUnsubscribe),\n distinctUntilChanged(this.showSelectedValuesEqual)\n )\n .subscribe((filters: ListFilterModel[]) => {\n const showSelectedFilter = filters.find(\n (filter: ListFilterModel) => filter.name === 'show-selected'\n );\n if (showSelectedFilter) {\n this._showOnlySelected = showSelectedFilter.value === 'true';\n }\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (\n changes['showOnlySelected'] &&\n changes['showOnlySelected'].currentValue !==\n changes['showOnlySelected'].previousValue\n ) {\n this.reapplyFilter(changes['showOnlySelected'].currentValue);\n }\n }\n\n /**\n * @deprecated since version 3.2.0\n * Multiselect toolbar will automatically show if select mode is set to 'multiple'.\n * These methods are no longer needed, as that functionality is part of list-builder.\n */\n public changeVisibleItems(change: SkyCheckboxChange) {\n this.showOnlySelected = change.checked;\n }\n\n /**\n * @deprecated since version 3.2.0\n * Multiselect toolbar will automatically show if select mode is set to 'multiple'.\n * These methods are no longer needed, as that functionality is part of list-builder.\n */\n public clearSelections() {\n this.state\n .pipe(\n observableMap((state) => state.items.items),\n take(1)\n )\n .subscribe((items) => {\n this.dispatcher.next(\n new ListSelectedSetItemsSelectedAction(\n items.map((item) => item.id),\n false,\n false\n )\n );\n\n /* istanbul ignore else */\n if (this.showOnlySelected) {\n this.reapplyFilter(this.showOnlySelected);\n }\n });\n }\n\n /**\n * @deprecated since version 3.2.0\n * Multiselect toolbar will automatically show if select mode is set to 'multiple'.\n * These methods are no longer needed, as that functionality is part of list-builder.\n */\n public selectAll() {\n this.state\n .pipe(\n observableMap((state) => state.items.items),\n take(1)\n )\n .subscribe((items) => {\n this.dispatcher.next(\n new ListSelectedSetItemsSelectedAction(\n items.map((item) => item.id),\n true,\n false\n )\n );\n\n /* istanbul ignore else */\n if (this.showOnlySelected) {\n this.reapplyFilter(this.showOnlySelected);\n }\n });\n }\n\n public onViewActive() {\n if (this.search !== undefined) {\n this.dispatcher.searchSetFunctions([this.search]);\n }\n\n let fieldSelectors: Array<string> = [];\n if (this.labelFieldSelector) {\n fieldSelectors.push(this.labelFieldSelector);\n }\n\n if (this.description) {\n fieldSelectors.push(this.description);\n }\n\n this.dispatcher.searchSetFieldSelectors(fieldSelectors);\n\n this.dispatcher.next(new ListToolbarSetTypeAction('search'));\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n get items(): Observable<ListViewChecklistItemModel[]> {\n return this.checklistState.pipe(\n observableMap((state) => state.items.items)\n );\n }\n\n public searchFunction() {\n return (data: any, searchText: string) => {\n if (this.labelFieldSelector !== undefined) {\n let label = getData(data, this.labelFieldSelector);\n if (\n label !== undefined &&\n label !== null &&\n label.toString().toLowerCase().indexOf(searchText) !== -1\n ) {\n return true;\n }\n }\n\n if (this.description !== undefined) {\n let description = getData(data, this.description);\n if (\n description !== undefined &&\n description !== null &&\n description.toString().toLowerCase().indexOf(searchText) !== -1\n ) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n public itemSelected(id: string): Observable<boolean> {\n return this.state.pipe(\n observableMap((state) => state.selected.item.selectedIdMap.get(id))\n );\n }\n\n public setItemSelection(item: ListItemModel, event: any) {\n this.dispatcher.next(\n new ListSelectedSetItemSelectedAction(item.id, event.checked)\n );\n }\n\n public singleSelectRowClick(item: ListItemModel) {\n this.dispatcher.next(\n new ListSelectedSetItemsSelectedAction([item.id], true, true)\n );\n }\n\n private getShowSelectedFilter(isSelected: boolean) {\n return new ListFilterModel({\n name: 'show-selected',\n value: isSelected.toString(),\n filterFunction: (model: ListItemModel, showOnlySelected: boolean) => {\n /* istanbul ignore else */\n if (showOnlySelected.toString() !== false.toString()) {\n return this._selectedIdMap.get(model.id);\n }\n },\n defaultValue: false.toString(),\n });\n }\n\n private reapplyFilter(isSelected: boolean) {\n let self = this;\n\n this.state\n .pipe(\n observableMap((state) => state.filters),\n take(1)\n )\n .subscribe((filters: ListFilterModel[]) => {\n filters = filters.filter((filter) => filter.name !== 'show-selected');\n filters.push(self.getShowSelectedFilter(isSelected));\n this.dispatcher.filtersUpdate(filters);\n });\n }\n\n private showSelectedValuesEqual(\n prev: ListFilterModel[],\n next: ListFilterModel[]\n ) {\n const prevShowSelectedFilter = prev.find(\n (filter) => filter.name === 'show-selected'\n );\n const nextShowSelectedFilter = next.find(\n (filter) => filter.name === 'show-selected'\n );\n\n if (prevShowSelectedFilter && nextShowSelectedFilter) {\n return prevShowSelectedFilter.value === nextShowSelectedFilter.value;\n }\n\n return true;\n }\n}\n","<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"]}
|
|
1
|
+
{"version":3,"file":"list-view-checklist.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/list-view-checklist.component.ts","../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/list-view-checklist.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,KAAK,EAKL,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,EAEf,iCAAiC,EACjC,kCAAkC,EAClC,SAAS,EACT,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIL,OAAO,GACR,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAc,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EACL,oBAAoB,EACpB,GAAG,IAAI,aAAa,EACpB,IAAI,EACJ,SAAS,GACV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;;;;;;;;AAiB7E,MAAM,OAAO,6BACX,SAAQ,iBAAiB;IAkFzB,YACE,KAAgB,EACR,UAA+B,EAC/B,cAA8B,EAC9B,mBAA6C;QAErD,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAJvB,eAAU,GAAV,UAAU,CAAqB;QAC/B,mBAAc,GAAd,cAAc,CAAgB;QAC9B,wBAAmB,GAAnB,mBAAmB,CAA0B;QA1EvD;;;;;WAKG;QAEI,WAAM,GACX,IAAI,CAAC,cAAc,EAAE,CAAC;QAExB;;;WAGG;QACH,2DAA2D;QAEpD,uBAAkB,GAAG,OAAO,CAAC;QAEpC;;;WAGG;QAEI,gBAAW,GAAG,aAAa,CAAC;QAuC3B,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QAE9B,gBAAW,GAAG,UAAU,CAAC;QAEzB,mBAAc,GAAyB,IAAI,GAAG,EAAmB,CAAC;QAElE,sBAAiB,GAAG,KAAK,CAAC;QAUhC,IAAI,UAAe,CAAC;QACpB,IAAI,CAAC,KAAK;aACP,IAAI,CACH,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAC7B,oBAAoB,EAAE,EACtB,aAAa,CAAC,CAAC,KAA+B,EAAE,EAAE;YAChD,MAAM,WAAW,GACf,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC;YAC9D,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;YAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxC,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,EAAE,EAAE;oBAC7C,KAAK,EAAE,IAAI,CAAC,kBAAkB;wBAC5B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC;wBAC7C,CAAC,CAAC,SAAS;oBACb,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC3B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC;wBACtC,CAAC,CAAC,SAAS;iBACd,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3B,IAAI,gCAAgC,CAClC,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,KAAK,CAAC,KAAK,CACZ,CACF,CAAC;QACJ,CAAC,CAAC,CACH;aACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,EAAE,CAAC;QAEf,IAAI,CAAC,KAAK;aACP,IAAI,CACH,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAChC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAC9B;aACA,SAAS,CAAC,CAAC,aAA2C,EAAE,EAAE;YACzD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;QACzD,CAAC,CAAC,CAAC;IACP,CAAC;IAhID;;;OAGG;IACH,IACI,IAAI,CAAC,KAAa;QACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IA2BD;;;;;OAKG;IACH,IACW,UAAU,CAAC,KAAa;QACjC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;SACrD;aAAM;YACL,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;SACtD;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,IACW,gBAAgB,CAAC,KAAc;QACxC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IA6DM,QAAQ;QACb,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;SACrD;QAED,+EAA+E;QAC/E,kEAAkE;QAClE,IAAI,CAAC,KAAK;aACP,IAAI,CACH,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAC/B,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAC7B,oBAAoB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CACnD;aACA,SAAS,CAAC,CAAC,OAA0B,EAAE,EAAE;YACxC,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CACrC,CAAC,MAAuB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,CAC7D,CAAC;YACF,IAAI,kBAAkB,EAAE;gBACtB,IAAI,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,KAAK,MAAM,CAAC;aAC9D;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,WAAW,CAAC,OAAsB;QACvC,IACE,OAAO,CAAC,kBAAkB,CAAC;YAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAC,YAAY;gBACtC,OAAO,CAAC,kBAAkB,CAAC,CAAC,aAAa,EAC3C;YACA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC;SAC9D;IACH,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,MAAyB;QACjD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,eAAe;QACpB,IAAI,CAAC,KAAK;aACP,IAAI,CACH,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAC3C,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,kCAAkC,CACpC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAC5B,KAAK,EACL,KAAK,CACN,CACF,CAAC;YAEF,0BAA0B;YAC1B,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAC3C;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACI,SAAS;QACd,IAAI,CAAC,KAAK;aACP,IAAI,CACH,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAC3C,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,kCAAkC,CACpC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAC5B,IAAI,EACJ,KAAK,CACN,CACF,CAAC;YAEF,0BAA0B;YAC1B,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAC3C;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,YAAY;QACjB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACnD;QAED,MAAM,cAAc,GAAkB,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC9C;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACvC;QAED,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAExD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAC5C,CAAC;IACJ,CAAC;IAEM,cAAc;QACnB,OAAO,CAAC,IAAS,EAAE,UAAkB,EAAE,EAAE;YACvC,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE;gBACzC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACrD,IACE,KAAK,KAAK,SAAS;oBACnB,KAAK,KAAK,IAAI;oBACd,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EACzD;oBACA,OAAO,IAAI,CAAC;iBACb;aACF;YAED,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;gBAClC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACpD,IACE,WAAW,KAAK,SAAS;oBACzB,WAAW,KAAK,IAAI;oBACpB,WAAW,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAC/D;oBACA,OAAO,IAAI,CAAC;iBACb;aACF;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;IACJ,CAAC;IAEM,YAAY,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CACpB,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC;IAEM,gBAAgB,CAAC,IAAmB,EAAE,KAAU;QACrD,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,iCAAiC,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAC9D,CAAC;IACJ,CAAC;IAEM,oBAAoB,CAAC,IAAmB;QAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,kCAAkC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAC9D,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,UAAmB;QAC/C,OAAO,IAAI,eAAe,CAAC;YACzB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE;YAC5B,cAAc,EAAE,CAAC,KAAoB,EAAE,gBAAyB,EAAE,EAAE;gBAClE,0BAA0B;gBAC1B,IAAI,gBAAgB,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,EAAE;oBACpD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBAC1C;YACH,CAAC;YACD,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,UAAmB;QACvC,IAAI,CAAC,KAAK;aACP,IAAI,CACH,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EACvC,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS,CAAC,CAAC,OAA0B,EAAE,EAAE;YACxC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,uBAAuB,CAC7B,IAAuB,EACvB,IAAuB;QAEvB,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CACtC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,CAC5C,CAAC;QACF,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CACtC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,CAC5C,CAAC;QAEF,IAAI,sBAAsB,IAAI,sBAAsB,EAAE;YACpD,OAAO,sBAAsB,CAAC,KAAK,KAAK,sBAAsB,CAAC,KAAK,CAAC;SACtE;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;2HA7VU,6BAA6B;+GAA7B,6BAA6B,+OAX7B;QACT;YACE,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC;SAC7D;QACD,cAAc;QACd,wBAAwB;QACxB,mBAAmB;KACpB,sECtDH,k3DAwDA;4FDCa,6BAA6B;kBAfzC,SAAS;mBAAC;oBACT,QAAQ,EAAE,yBAAyB;oBACnC,WAAW,EAAE,sCAAsC;oBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;oBACnD,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,iBAAiB;4BAC1B,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,8BAA8B,CAAC;yBAC7D;wBACD,cAAc;wBACd,wBAAwB;wBACxB,mBAAmB;qBACpB;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;sMAUK,IAAI;sBADP,KAAK;gBAYC,MAAM;sBADZ,KAAK;gBAUC,kBAAkB;sBADxB,KAAK;uBAAC,OAAO;gBAQP,WAAW;sBADjB,KAAK;gBAUK,UAAU;sBADpB,KAAK;gBAuBK,gBAAgB;sBAD1B,KAAK","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n forwardRef,\n} from '@angular/core';\nimport { SkyCheckboxChange } from '@skyux/forms';\nimport {\n ListFilterModel,\n ListSelectedModel,\n ListSelectedSetItemSelectedAction,\n ListSelectedSetItemsSelectedAction,\n ListState,\n ListStateDispatcher,\n ListToolbarSetTypeAction,\n ListViewComponent,\n} from '@skyux/list-builder';\nimport {\n AsyncItem,\n AsyncList,\n ListItemModel,\n getData,\n} from '@skyux/list-builder-common';\n\nimport { Observable, Subject } from 'rxjs';\nimport {\n distinctUntilChanged,\n map as observableMap,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\nimport { ChecklistStateModel } from './state/checklist-state.model';\nimport { ChecklistStateDispatcher } from './state/checklist-state.rxstate';\nimport { ChecklistState } from './state/checklist-state.state-node';\nimport { ListViewChecklistItemModel } from './state/items/item.model';\nimport { ListViewChecklistItemsLoadAction } from './state/items/load.action';\n\n@Component({\n selector: 'sky-list-view-checklist',\n templateUrl: './list-view-checklist.component.html',\n styleUrls: ['./list-view-checklist.component.scss'],\n providers: [\n {\n provide: ListViewComponent,\n useExisting: forwardRef(() => SkyListViewChecklistComponent),\n },\n ChecklistState,\n ChecklistStateDispatcher,\n ChecklistStateModel,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyListViewChecklistComponent\n extends ListViewComponent\n implements OnInit, OnDestroy, OnChanges\n{\n /**\n * Specifies the name of the view.\n * @required\n */\n @Input()\n set name(value: string) {\n this.viewName = value;\n }\n\n /**\n * Specifies a search function to apply on the view data.\n * The default function searches view data on label, description,\n * and category if field selectors are defined for the given field.\n * @default default search function\n */\n @Input()\n public search: (data: any, searchText: string) => boolean =\n this.searchFunction();\n\n /**\n * Specifies the name of the label field selector.\n * @default \"label\"\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('label')\n public labelFieldSelector = 'label';\n\n /**\n * Specifies the name of the description field selector.\n * @default \"description\"\n */\n @Input()\n public description = 'description';\n\n /**\n * Specifies how many items users can select.\n * `\"single\"` allows users to select one item in the checklist, while `\"multiple\"`\n * allows users to select multiple items in the checklist.\n * @default \"multiple\"\n */\n @Input()\n public set selectMode(value: string) {\n this._selectMode = value;\n\n if (this.selectMode === 'multiple') {\n this.dispatcher.toolbarShowMultiselectToolbar(true);\n } else {\n this.showOnlySelected = false;\n this.dispatcher.toolbarShowMultiselectToolbar(false);\n }\n\n this.reapplyFilter(this.showOnlySelected);\n }\n\n public get selectMode(): string {\n return this._selectMode || 'multiple';\n }\n\n /**\n * Indicates whether to display selected items only.\n * @default false\n */\n @Input()\n public set showOnlySelected(value: boolean) {\n this._showOnlySelected = value;\n }\n\n public get showOnlySelected(): boolean {\n return this._showOnlySelected;\n }\n\n private ngUnsubscribe = new Subject();\n\n private _selectMode = 'multiple';\n\n private _selectedIdMap: Map<string, boolean> = new Map<string, boolean>();\n\n private _showOnlySelected = false;\n\n constructor(\n state: ListState,\n private dispatcher: ListStateDispatcher,\n private checklistState: ChecklistState,\n private checklistDispatcher: ChecklistStateDispatcher\n ) {\n super(state, 'Checklist View');\n\n let lastUpdate: any;\n this.state\n .pipe(\n observableMap((s) => s.items),\n distinctUntilChanged(),\n observableMap((items: AsyncList<ListItemModel>) => {\n const dataChanged =\n lastUpdate === undefined || items.lastUpdate !== lastUpdate;\n lastUpdate = items.lastUpdate;\n const newItems = items.items.map((item) => {\n return new ListViewChecklistItemModel(item.id, {\n label: this.labelFieldSelector\n ? getData(item.data, this.labelFieldSelector)\n : undefined,\n description: this.description\n ? getData(item.data, this.description)\n : undefined,\n });\n });\n\n this.checklistDispatcher.next(\n new ListViewChecklistItemsLoadAction(\n newItems,\n true,\n dataChanged,\n items.count\n )\n );\n })\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe();\n\n this.state\n .pipe(\n observableMap((t) => t.selected),\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe((selectedItems: AsyncItem<ListSelectedModel>) => {\n this._selectedIdMap = selectedItems.item.selectedIdMap;\n });\n }\n\n public ngOnInit() {\n if (this.selectMode === 'multiple') {\n this.dispatcher.toolbarShowMultiselectToolbar(true);\n }\n\n // If 'show-selected' filter is changed from multiselect toolbar (list-builder)\n // make sure the private variable _showOnlySelected stays in sync.\n this.state\n .pipe(\n observableMap((t) => t.filters),\n takeUntil(this.ngUnsubscribe),\n distinctUntilChanged(this.showSelectedValuesEqual)\n )\n .subscribe((filters: ListFilterModel[]) => {\n const showSelectedFilter = filters.find(\n (filter: ListFilterModel) => filter.name === 'show-selected'\n );\n if (showSelectedFilter) {\n this._showOnlySelected = showSelectedFilter.value === 'true';\n }\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (\n changes['showOnlySelected'] &&\n changes['showOnlySelected'].currentValue !==\n changes['showOnlySelected'].previousValue\n ) {\n this.reapplyFilter(changes['showOnlySelected'].currentValue);\n }\n }\n\n /**\n * @deprecated since version 3.2.0\n * Multiselect toolbar will automatically show if select mode is set to 'multiple'.\n * These methods are no longer needed, as that functionality is part of list-builder.\n */\n public changeVisibleItems(change: SkyCheckboxChange) {\n this.showOnlySelected = change.checked;\n }\n\n /**\n * @deprecated since version 3.2.0\n * Multiselect toolbar will automatically show if select mode is set to 'multiple'.\n * These methods are no longer needed, as that functionality is part of list-builder.\n */\n public clearSelections() {\n this.state\n .pipe(\n observableMap((state) => state.items.items),\n take(1)\n )\n .subscribe((items) => {\n this.dispatcher.next(\n new ListSelectedSetItemsSelectedAction(\n items.map((item) => item.id),\n false,\n false\n )\n );\n\n /* istanbul ignore else */\n if (this.showOnlySelected) {\n this.reapplyFilter(this.showOnlySelected);\n }\n });\n }\n\n /**\n * @deprecated since version 3.2.0\n * Multiselect toolbar will automatically show if select mode is set to 'multiple'.\n * These methods are no longer needed, as that functionality is part of list-builder.\n */\n public selectAll() {\n this.state\n .pipe(\n observableMap((state) => state.items.items),\n take(1)\n )\n .subscribe((items) => {\n this.dispatcher.next(\n new ListSelectedSetItemsSelectedAction(\n items.map((item) => item.id),\n true,\n false\n )\n );\n\n /* istanbul ignore else */\n if (this.showOnlySelected) {\n this.reapplyFilter(this.showOnlySelected);\n }\n });\n }\n\n public onViewActive() {\n if (this.search !== undefined) {\n this.dispatcher.searchSetFunctions([this.search]);\n }\n\n const fieldSelectors: Array<string> = [];\n if (this.labelFieldSelector) {\n fieldSelectors.push(this.labelFieldSelector);\n }\n\n if (this.description) {\n fieldSelectors.push(this.description);\n }\n\n this.dispatcher.searchSetFieldSelectors(fieldSelectors);\n\n this.dispatcher.next(new ListToolbarSetTypeAction('search'));\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n get items(): Observable<ListViewChecklistItemModel[]> {\n return this.checklistState.pipe(\n observableMap((state) => state.items.items)\n );\n }\n\n public searchFunction() {\n return (data: any, searchText: string) => {\n if (this.labelFieldSelector !== undefined) {\n const label = getData(data, this.labelFieldSelector);\n if (\n label !== undefined &&\n label !== null &&\n label.toString().toLowerCase().indexOf(searchText) !== -1\n ) {\n return true;\n }\n }\n\n if (this.description !== undefined) {\n const description = getData(data, this.description);\n if (\n description !== undefined &&\n description !== null &&\n description.toString().toLowerCase().indexOf(searchText) !== -1\n ) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n public itemSelected(id: string): Observable<boolean> {\n return this.state.pipe(\n observableMap((state) => state.selected.item.selectedIdMap.get(id))\n );\n }\n\n public setItemSelection(item: ListItemModel, event: any) {\n this.dispatcher.next(\n new ListSelectedSetItemSelectedAction(item.id, event.checked)\n );\n }\n\n public singleSelectRowClick(item: ListItemModel) {\n this.dispatcher.next(\n new ListSelectedSetItemsSelectedAction([item.id], true, true)\n );\n }\n\n private getShowSelectedFilter(isSelected: boolean) {\n return new ListFilterModel({\n name: 'show-selected',\n value: isSelected.toString(),\n filterFunction: (model: ListItemModel, showOnlySelected: boolean) => {\n /* istanbul ignore else */\n if (showOnlySelected.toString() !== false.toString()) {\n return this._selectedIdMap.get(model.id);\n }\n },\n defaultValue: false.toString(),\n });\n }\n\n private reapplyFilter(isSelected: boolean) {\n this.state\n .pipe(\n observableMap((state) => state.filters),\n take(1)\n )\n .subscribe((filters: ListFilterModel[]) => {\n filters = filters.filter((filter) => filter.name !== 'show-selected');\n filters.push(this.getShowSelectedFilter(isSelected));\n this.dispatcher.filtersUpdate(filters);\n });\n }\n\n private showSelectedValuesEqual(\n prev: ListFilterModel[],\n next: ListFilterModel[]\n ) {\n const prevShowSelectedFilter = prev.find(\n (filter) => filter.name === 'show-selected'\n );\n const nextShowSelectedFilter = next.find(\n (filter) => filter.name === 'show-selected'\n );\n\n if (prevShowSelectedFilter && nextShowSelectedFilter) {\n return prevShowSelectedFilter.value === nextShowSelectedFilter.value;\n }\n\n return true;\n }\n}\n","<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"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
3
|
import { FormsModule } from '@angular/forms';
|
|
4
4
|
import { SkyCheckboxModule } from '@skyux/forms';
|
|
5
|
-
import { SkyListViewChecklistComponent } from './list-view-checklist.component';
|
|
6
5
|
import { SkyListViewChecklistItemComponent } from './list-view-checklist-item.component';
|
|
6
|
+
import { SkyListViewChecklistComponent } from './list-view-checklist.component';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class SkyListViewChecklistModule {
|
|
9
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-view-checklist.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/list-view-checklist.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"list-view-checklist.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/list-view-checklist.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;;AAUhF,MAAM,OAAO,0BAA0B;;wHAA1B,0BAA0B;yHAA1B,0BAA0B,iBANnC,6BAA6B;QAC7B,iCAAiC,aAEzB,YAAY,EAAE,WAAW,EAAE,iBAAiB,aAC5C,6BAA6B,EAAE,iCAAiC;yHAE/D,0BAA0B,YAH5B,CAAC,YAAY,EAAE,WAAW,EAAE,iBAAiB,CAAC;4FAG5C,0BAA0B;kBARtC,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,6BAA6B;wBAC7B,iCAAiC;qBAClC;oBACD,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,iBAAiB,CAAC;oBACvD,OAAO,EAAE,CAAC,6BAA6B,EAAE,iCAAiC,CAAC;iBAC5E","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyCheckboxModule } from '@skyux/forms';\n\nimport { SkyListViewChecklistItemComponent } from './list-view-checklist-item.component';\nimport { SkyListViewChecklistComponent } from './list-view-checklist.component';\n\n@NgModule({\n declarations: [\n SkyListViewChecklistComponent,\n SkyListViewChecklistItemComponent,\n ],\n imports: [CommonModule, FormsModule, SkyCheckboxModule],\n exports: [SkyListViewChecklistComponent, SkyListViewChecklistItemComponent],\n})\nexport class SkyListViewChecklistModule {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checklist-state.rxstate.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/state/checklist-state.rxstate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"checklist-state.rxstate.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/state/checklist-state.rxstate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;;AAKhF,MAAM,OAAO,wBAAyB,SAAQ,eAAqC;;sHAAtE,wBAAwB;0HAAxB,wBAAwB;4FAAxB,wBAAwB;kBADpC,UAAU;;AAGX,MAAM,OAAO,0BAA8B,SAAQ,iBAGlD;CAAG","sourcesContent":["import { Injectable } from '@angular/core';\nimport { StateDispatcher, StateOrchestrator } from '@skyux/list-builder-common';\n\nimport { ChecklistStateAction } from './checklist-state-action.type';\n\n@Injectable()\nexport class ChecklistStateDispatcher extends StateDispatcher<ChecklistStateAction> {}\n\nexport class ChecklistStateOrchestrator<T> extends StateOrchestrator<\n T,\n ChecklistStateAction\n> {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checklist-state.state-node.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/state/checklist-state.state-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"checklist-state.state-node.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/state/checklist-state.state-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;;;;AAGhF,MAAM,OAAO,cAAe,SAAQ,SAA8B;IAChE,YACE,YAAiC,EACjC,UAAoC;QAEpC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAEhC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC,KAAK,EAAE,CAAC;IACrE,CAAC;;4GARU,cAAc;gHAAd,cAAc;4FAAd,cAAc;kBAD1B,UAAU","sourcesContent":["import { Injectable } from '@angular/core';\nimport { StateNode } from '@skyux/list-builder-common';\n\nimport { ChecklistStateModel } from './checklist-state.model';\nimport { ChecklistStateDispatcher } from './checklist-state.rxstate';\nimport { ListViewChecklistItemsOrchestrator } from './items/items.orchestrator';\n\n@Injectable()\nexport class ChecklistState extends StateNode<ChecklistStateModel> {\n constructor(\n initialState: ChecklistStateModel,\n dispatcher: ChecklistStateDispatcher\n ) {\n super(initialState, dispatcher);\n\n this.register('items', ListViewChecklistItemsOrchestrator).begin();\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChecklistStateOrchestrator } from '../checklist-state.rxstate';
|
|
2
1
|
import { AsyncList } from '@skyux/list-builder-common';
|
|
2
|
+
import { ChecklistStateOrchestrator } from '../checklist-state.rxstate';
|
|
3
3
|
import { ListViewChecklistItemModel } from './item.model';
|
|
4
4
|
import { ListViewChecklistItemsLoadAction } from './load.action';
|
|
5
5
|
export class ListViewChecklistItemsOrchestrator extends ChecklistStateOrchestrator {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"items.orchestrator.js","sourceRoot":"","sources":["../../../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/state/items/items.orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"items.orchestrator.js","sourceRoot":"","sources":["../../../../../../../../../../libs/components/list-builder-view-checklist/src/lib/modules/list-view-checklist/state/items/items.orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAEjE,MAAM,OAAO,kCAAmC,SAAQ,0BAEvD;IACC,0BAA0B;IAC1B;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,CAAC,gCAAgC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAEO,IAAI,CACV,KAA4C,EAC5C,MAAwC;QAExC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CACnC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CACxD,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,OAAO,IAAI,SAAS,CAClB,CAAC,GAAG,YAAY,CAAC,EACjB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAClD,KAAK,EACL,KAAK,CAAC,KAAK,CACZ,CAAC;SACH;QAED,OAAO,IAAI,SAAS,CAClB,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,YAAY,CAAC,EACjC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAClD,KAAK,EACL,MAAM,CAAC,SAAS,CACjB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { AsyncList } from '@skyux/list-builder-common';\n\nimport { ChecklistStateOrchestrator } from '../checklist-state.rxstate';\n\nimport { ListViewChecklistItemModel } from './item.model';\nimport { ListViewChecklistItemsLoadAction } from './load.action';\n\nexport class ListViewChecklistItemsOrchestrator extends ChecklistStateOrchestrator<\n AsyncList<ListViewChecklistItemModel>\n> {\n /* istanbul ignore next */\n constructor() {\n super();\n this.register(ListViewChecklistItemsLoadAction, this.load);\n }\n\n private load(\n state: AsyncList<ListViewChecklistItemModel>,\n action: ListViewChecklistItemsLoadAction\n ): AsyncList<ListViewChecklistItemModel> {\n const newListItems = action.items.map(\n (item) => new ListViewChecklistItemModel(item.id, item)\n );\n\n if (action.refresh) {\n return new AsyncList<ListViewChecklistItemModel>(\n [...newListItems],\n action.dataChanged ? Date.now() : state.lastUpdate,\n false,\n state.count\n );\n }\n\n return new AsyncList<ListViewChecklistItemModel>(\n [...state.items, ...newListItems],\n action.dataChanged ? Date.now() : state.lastUpdate,\n false,\n action.itemCount\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-view-checklist-fixture.js","sourceRoot":"","sources":["../../../../../../libs/components/list-builder-view-checklist/testing/src/list-view-checklist-fixture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list-view-checklist-fixture.js","sourceRoot":"","sources":["../../../../../../libs/components/list-builder-view-checklist/testing/src/list-view-checklist-fixture.ts"],"names":[],"mappings":"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","sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkyListViewChecklistItem } from './list-view-checklist-item';\n\nconst MULTI_SELECT_EL_SELECTOR = By.css('.sky-checkbox-wrapper > input');\nconst SINGLE_SELECT_EL_SELECTOR = By.css(\n '.sky-list-view-checklist-single-button'\n);\n\n/**\n * Allows interaction with a SKY UX list view checklist component.\n */\nexport class SkyListViewChecklistFixture {\n private debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-list-view-checklist'\n );\n }\n\n /**\n * Gets an item at the specified index.\n * @param index The item's index.\n */\n public getItem(index: number): SkyListViewChecklistItem {\n const selectWrapperEl = this.getSelectWrapperEl(index);\n const selectEl = this.getSelectEl(index);\n\n return {\n label: SkyAppTestUtility.getText(\n selectWrapperEl.query(By.css('div.sky-emphasized'))\n ),\n description: SkyAppTestUtility.getText(\n selectWrapperEl.query(By.css('div:not(.sky-emphasized)'))\n ),\n selected: this.isChecked(selectEl),\n };\n }\n\n /**\n * Selects the item at the specified index.\n * @param index The item's index.\n */\n public selectItem(index: number) {\n const selectEl = this.getSelectEl(index);\n\n if (!this.isChecked(selectEl)) {\n selectEl.nativeElement.click();\n }\n }\n\n /**\n * Deselects the item at the specified index.\n * @param index The item's index.\n */\n public deselectItem(index: number) {\n const selectEl = this.getSelectEl(index);\n\n if (selectEl.nativeElement.tagName === 'BUTTON') {\n throw new Error(`Items cannot be deselected in single select mode.`);\n }\n\n if (this.isChecked(selectEl)) {\n selectEl.nativeElement.click();\n }\n }\n\n private getItemEl(index: number): DebugElement {\n const itemEls = this.debugEl.queryAll(\n By.css('sky-list-view-checklist-item')\n );\n\n const itemEl = itemEls[index];\n\n if (!itemEl) {\n throw new Error(`No item exists at index ${index}.`);\n }\n\n return itemEl;\n }\n\n private getSelectEl(index: number): DebugElement {\n const itemEl = this.getItemEl(index);\n\n const checkboxEl = itemEl.query(MULTI_SELECT_EL_SELECTOR);\n\n if (checkboxEl) {\n return checkboxEl;\n }\n\n // Assume the list is in single-select mode.\n return itemEl.query(SINGLE_SELECT_EL_SELECTOR);\n }\n\n private getSelectWrapperEl(index: number): DebugElement {\n const itemEl = this.getItemEl(index);\n\n const itemWrapperEl = itemEl.query(By.css('sky-checkbox-label'));\n\n if (itemWrapperEl) {\n return itemWrapperEl;\n }\n\n // Assume the list is in single-select mode.\n return itemEl.query(SINGLE_SELECT_EL_SELECTOR);\n }\n\n private isChecked(selectEl: DebugElement): boolean {\n const el = selectEl.nativeElement;\n\n if (el.tagName === 'INPUT') {\n return el.checked;\n }\n\n // Assume the list is in single-select mode.\n return el.getAttribute('aria-checked') === 'true';\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-list-builder-view-checklist-testing.js","sources":["../../../../../libs/components/list-builder-view-checklist/testing/src/list-view-checklist-fixture.ts","../../../../../libs/components/list-builder-view-checklist/testing/src/skyux-list-builder-view-checklist-testing.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"skyux-list-builder-view-checklist-testing.js","sources":["../../../../../libs/components/list-builder-view-checklist/testing/src/list-view-checklist-fixture.ts","../../../../../libs/components/list-builder-view-checklist/testing/src/skyux-list-builder-view-checklist-testing.ts"],"sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkyListViewChecklistItem } from './list-view-checklist-item';\n\nconst MULTI_SELECT_EL_SELECTOR = By.css('.sky-checkbox-wrapper > input');\nconst SINGLE_SELECT_EL_SELECTOR = By.css(\n '.sky-list-view-checklist-single-button'\n);\n\n/**\n * Allows interaction with a SKY UX list view checklist component.\n */\nexport class SkyListViewChecklistFixture {\n private debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-list-view-checklist'\n );\n }\n\n /**\n * Gets an item at the specified index.\n * @param index The item's index.\n */\n public getItem(index: number): SkyListViewChecklistItem {\n const selectWrapperEl = this.getSelectWrapperEl(index);\n const selectEl = this.getSelectEl(index);\n\n return {\n label: SkyAppTestUtility.getText(\n selectWrapperEl.query(By.css('div.sky-emphasized'))\n ),\n description: SkyAppTestUtility.getText(\n selectWrapperEl.query(By.css('div:not(.sky-emphasized)'))\n ),\n selected: this.isChecked(selectEl),\n };\n }\n\n /**\n * Selects the item at the specified index.\n * @param index The item's index.\n */\n public selectItem(index: number) {\n const selectEl = this.getSelectEl(index);\n\n if (!this.isChecked(selectEl)) {\n selectEl.nativeElement.click();\n }\n }\n\n /**\n * Deselects the item at the specified index.\n * @param index The item's index.\n */\n public deselectItem(index: number) {\n const selectEl = this.getSelectEl(index);\n\n if (selectEl.nativeElement.tagName === 'BUTTON') {\n throw new Error(`Items cannot be deselected in single select mode.`);\n }\n\n if (this.isChecked(selectEl)) {\n selectEl.nativeElement.click();\n }\n }\n\n private getItemEl(index: number): DebugElement {\n const itemEls = this.debugEl.queryAll(\n By.css('sky-list-view-checklist-item')\n );\n\n const itemEl = itemEls[index];\n\n if (!itemEl) {\n throw new Error(`No item exists at index ${index}.`);\n }\n\n return itemEl;\n }\n\n private getSelectEl(index: number): DebugElement {\n const itemEl = this.getItemEl(index);\n\n const checkboxEl = itemEl.query(MULTI_SELECT_EL_SELECTOR);\n\n if (checkboxEl) {\n return checkboxEl;\n }\n\n // Assume the list is in single-select mode.\n return itemEl.query(SINGLE_SELECT_EL_SELECTOR);\n }\n\n private getSelectWrapperEl(index: number): DebugElement {\n const itemEl = this.getItemEl(index);\n\n const itemWrapperEl = itemEl.query(By.css('sky-checkbox-label'));\n\n if (itemWrapperEl) {\n return itemWrapperEl;\n }\n\n // Assume the list is in single-select mode.\n return itemEl.query(SINGLE_SELECT_EL_SELECTOR);\n }\n\n private isChecked(selectEl: DebugElement): boolean {\n const el = selectEl.nativeElement;\n\n if (el.tagName === 'INPUT') {\n return el.checked;\n }\n\n // Assume the list is in single-select mode.\n return el.getAttribute('aria-checked') === 'true';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Component, ChangeDetectionStrategy, Input, forwardRef, NgModule } from '@angular/core';
|
|
3
1
|
import * as i6 from '@angular/common';
|
|
4
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Component, ChangeDetectionStrategy, Input, Injectable, forwardRef, NgModule } from '@angular/core';
|
|
5
5
|
import { FormsModule } from '@angular/forms';
|
|
6
6
|
import * as i5 from '@skyux/forms';
|
|
7
7
|
import { SkyCheckboxModule } from '@skyux/forms';
|
|
@@ -11,6 +11,32 @@ import { AsyncList, StateDispatcher, StateOrchestrator, StateNode, getData } fro
|
|
|
11
11
|
import { Subject } from 'rxjs';
|
|
12
12
|
import { map, distinctUntilChanged, takeUntil, take } from 'rxjs/operators';
|
|
13
13
|
|
|
14
|
+
class ListViewChecklistItemModel {
|
|
15
|
+
constructor(id, data) {
|
|
16
|
+
this.id = id;
|
|
17
|
+
if (data) {
|
|
18
|
+
this.label = data.label;
|
|
19
|
+
this.description = data.description;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
class SkyListViewChecklistItemComponent {
|
|
25
|
+
}
|
|
26
|
+
SkyListViewChecklistItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListViewChecklistItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
SkyListViewChecklistItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", 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 });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListViewChecklistItemComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{
|
|
31
|
+
selector: 'sky-list-view-checklist-item',
|
|
32
|
+
templateUrl: './list-view-checklist-item.component.html',
|
|
33
|
+
styleUrls: ['./list-view-checklist-item.component.scss'],
|
|
34
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
35
|
+
}]
|
|
36
|
+
}], propDecorators: { item: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}] } });
|
|
39
|
+
|
|
14
40
|
class ChecklistStateModel {
|
|
15
41
|
constructor() {
|
|
16
42
|
this.items = new AsyncList();
|
|
@@ -27,16 +53,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
27
53
|
class ChecklistStateOrchestrator extends StateOrchestrator {
|
|
28
54
|
}
|
|
29
55
|
|
|
30
|
-
class ListViewChecklistItemModel {
|
|
31
|
-
constructor(id, data) {
|
|
32
|
-
this.id = id;
|
|
33
|
-
if (data) {
|
|
34
|
-
this.label = data.label;
|
|
35
|
-
this.description = data.description;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
56
|
class ListViewChecklistItemsLoadAction {
|
|
41
57
|
constructor(items = [], refresh = false, dataChanged = true, itemCount = items.length) {
|
|
42
58
|
this.items = items;
|
|
@@ -73,22 +89,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
73
89
|
type: Injectable
|
|
74
90
|
}], ctorParameters: function () { return [{ type: ChecklistStateModel }, { type: ChecklistStateDispatcher }]; } });
|
|
75
91
|
|
|
76
|
-
class SkyListViewChecklistItemComponent {
|
|
77
|
-
}
|
|
78
|
-
SkyListViewChecklistItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListViewChecklistItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
79
|
-
SkyListViewChecklistItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", 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 });
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListViewChecklistItemComponent, decorators: [{
|
|
81
|
-
type: Component,
|
|
82
|
-
args: [{
|
|
83
|
-
selector: 'sky-list-view-checklist-item',
|
|
84
|
-
templateUrl: './list-view-checklist-item.component.html',
|
|
85
|
-
styleUrls: ['./list-view-checklist-item.component.scss'],
|
|
86
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
87
|
-
}]
|
|
88
|
-
}], propDecorators: { item: [{
|
|
89
|
-
type: Input
|
|
90
|
-
}] } });
|
|
91
|
-
|
|
92
92
|
class SkyListViewChecklistComponent extends ListViewComponent {
|
|
93
93
|
constructor(state, dispatcher, checklistState, checklistDispatcher) {
|
|
94
94
|
super(state, 'Checklist View');
|
|
@@ -120,9 +120,9 @@ class SkyListViewChecklistComponent extends ListViewComponent {
|
|
|
120
120
|
let lastUpdate;
|
|
121
121
|
this.state
|
|
122
122
|
.pipe(map((s) => s.items), distinctUntilChanged(), map((items) => {
|
|
123
|
-
|
|
123
|
+
const dataChanged = lastUpdate === undefined || items.lastUpdate !== lastUpdate;
|
|
124
124
|
lastUpdate = items.lastUpdate;
|
|
125
|
-
|
|
125
|
+
const newItems = items.items.map((item) => {
|
|
126
126
|
return new ListViewChecklistItemModel(item.id, {
|
|
127
127
|
label: this.labelFieldSelector
|
|
128
128
|
? getData(item.data, this.labelFieldSelector)
|
|
@@ -245,7 +245,7 @@ class SkyListViewChecklistComponent extends ListViewComponent {
|
|
|
245
245
|
if (this.search !== undefined) {
|
|
246
246
|
this.dispatcher.searchSetFunctions([this.search]);
|
|
247
247
|
}
|
|
248
|
-
|
|
248
|
+
const fieldSelectors = [];
|
|
249
249
|
if (this.labelFieldSelector) {
|
|
250
250
|
fieldSelectors.push(this.labelFieldSelector);
|
|
251
251
|
}
|
|
@@ -265,7 +265,7 @@ class SkyListViewChecklistComponent extends ListViewComponent {
|
|
|
265
265
|
searchFunction() {
|
|
266
266
|
return (data, searchText) => {
|
|
267
267
|
if (this.labelFieldSelector !== undefined) {
|
|
268
|
-
|
|
268
|
+
const label = getData(data, this.labelFieldSelector);
|
|
269
269
|
if (label !== undefined &&
|
|
270
270
|
label !== null &&
|
|
271
271
|
label.toString().toLowerCase().indexOf(searchText) !== -1) {
|
|
@@ -273,7 +273,7 @@ class SkyListViewChecklistComponent extends ListViewComponent {
|
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
275
|
if (this.description !== undefined) {
|
|
276
|
-
|
|
276
|
+
const description = getData(data, this.description);
|
|
277
277
|
if (description !== undefined &&
|
|
278
278
|
description !== null &&
|
|
279
279
|
description.toString().toLowerCase().indexOf(searchText) !== -1) {
|
|
@@ -306,12 +306,11 @@ class SkyListViewChecklistComponent extends ListViewComponent {
|
|
|
306
306
|
});
|
|
307
307
|
}
|
|
308
308
|
reapplyFilter(isSelected) {
|
|
309
|
-
let self = this;
|
|
310
309
|
this.state
|
|
311
310
|
.pipe(map((state) => state.filters), take(1))
|
|
312
311
|
.subscribe((filters) => {
|
|
313
312
|
filters = filters.filter((filter) => filter.name !== 'show-selected');
|
|
314
|
-
filters.push(
|
|
313
|
+
filters.push(this.getShowSelectedFilter(isSelected));
|
|
315
314
|
this.dispatcher.filtersUpdate(filters);
|
|
316
315
|
});
|
|
317
316
|
}
|