UNPKG

systelab-components

Version:

systelab-components is a set of components that use wide accepted and adopted standard technologies like Angular and Bootstrap, as well as other popular libraries. Please read the ATTRIBUTION.md file for a complete list of dependencies.

73 lines 9.64 kB
export class TwoListItem { constructor(displayName, colId, isSelected, isVisible) { this.displayName = displayName; this.colId = colId; this.isSelected = isSelected; this.isVisible = isVisible; } } export class CurrentSelectionStatus { constructor(available, visible) { this.available = available; this.visible = visible; } selectAvailable(element, filteredList, isShiftKey, isControlKey) { this.clear(this.visible); this.select(this.available, element, filteredList, isShiftKey, isControlKey); } selectVisible(element, filteredList, isShiftKey, isControlKey) { this.clear(this.available); this.select(this.visible, element, filteredList, isShiftKey, isControlKey); } clearAll() { this.clear(this.available); this.clear(this.visible); } select(selectedList, element, filteredList, isShiftKey, isControlKey) { if (selectedList.length > 0 && isShiftKey) { this.selectRange(selectedList, element, filteredList); } else { this.selectSingle(selectedList, element, isControlKey); } } selectRange(selectedList, element, filteredList) { const indexOfLastSelected = filteredList.indexOf(selectedList[0]); const indexOfSelected = filteredList.indexOf(element); this.clear(selectedList); if (indexOfLastSelected < indexOfSelected) { for (let i = indexOfLastSelected; i <= indexOfSelected; i++) { filteredList[i].isSelected = true; selectedList.push(filteredList[i]); } } else { for (let i = indexOfLastSelected; i >= indexOfSelected; i--) { filteredList[i].isSelected = true; selectedList.push(filteredList[i]); } } } selectSingle(selectedList, element, isControlKey) { element.isSelected = !element.isSelected; if (selectedList.length === 0 || (selectedList.length > 0 && isControlKey)) { if (element.isSelected) { selectedList.push(element); } else { selectedList.splice(selectedList.indexOf(element), 1); } } else { this.clear(selectedList); if (element.isSelected) { selectedList.push(element); } } } clear(list) { list.forEach(element => element.isSelected = false); list.splice(0); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWxpc3QtdXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3lzdGVsYWItY29tcG9uZW50cy9zcmMvbGliL3R3b2xpc3QvdHdvLWxpc3QtdXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQW1CLFdBQW1CLEVBQVMsS0FBYSxFQUFTLFVBQW1CLEVBQVMsU0FBa0I7UUFBaEcsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBUztRQUFTLGNBQVMsR0FBVCxTQUFTLENBQVM7SUFDbkgsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFtQixTQUE2QixFQUFTLE9BQTJCO1FBQWpFLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7SUFDcEYsQ0FBQztJQUVNLGVBQWUsQ0FBQyxPQUFvQixFQUFFLFlBQWdDLEVBQUUsVUFBbUIsRUFBRSxZQUFxQjtRQUN2SCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFvQixFQUFFLFlBQWdDLEVBQUUsVUFBbUIsRUFBRSxZQUFxQjtRQUNySCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU8sTUFBTSxDQUNaLFlBQWdDLEVBQ2hDLE9BQW9CLEVBQ3BCLFlBQWdDLEVBQ2hDLFVBQW1CLEVBQ25CLFlBQXFCO1FBRXJCLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksVUFBVSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztTQUN2RDthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxZQUFnQyxFQUFFLE9BQW9CLEVBQUUsWUFBZ0M7UUFDMUcsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV6QixJQUFJLG1CQUFtQixHQUFHLGVBQWUsRUFBRTtZQUN6QyxLQUFLLElBQUksQ0FBQyxHQUFHLG1CQUFtQixFQUFFLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNELFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3BDO1NBQ0Y7YUFBTTtZQUNMLEtBQUssSUFBSSxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDM0QsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ2xDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEM7U0FDRjtJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsWUFBZ0MsRUFBRSxPQUFvQixFQUFFLFlBQXFCO1FBQ2hHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3pDLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxZQUFZLENBQUMsRUFBRTtZQUMxRSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7Z0JBQ3RCLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDNUI7aUJBQU07Z0JBQ0wsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3ZEO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDekIsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUN0QixZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzVCO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLElBQXdCO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFR3b0xpc3RJdGVtIHtcbiAgY29uc3RydWN0b3IocHVibGljIGRpc3BsYXlOYW1lOiBzdHJpbmcsIHB1YmxpYyBjb2xJZDogc3RyaW5nLCBwdWJsaWMgaXNTZWxlY3RlZDogYm9vbGVhbiwgcHVibGljIGlzVmlzaWJsZTogYm9vbGVhbikge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDdXJyZW50U2VsZWN0aW9uU3RhdHVzIHtcbiAgY29uc3RydWN0b3IocHVibGljIGF2YWlsYWJsZTogQXJyYXk8VHdvTGlzdEl0ZW0+LCBwdWJsaWMgdmlzaWJsZTogQXJyYXk8VHdvTGlzdEl0ZW0+KSB7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QXZhaWxhYmxlKGVsZW1lbnQ6IFR3b0xpc3RJdGVtLCBmaWx0ZXJlZExpc3Q6IEFycmF5PFR3b0xpc3RJdGVtPiwgaXNTaGlmdEtleTogYm9vbGVhbiwgaXNDb250cm9sS2V5OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhcih0aGlzLnZpc2libGUpO1xuICAgIHRoaXMuc2VsZWN0KHRoaXMuYXZhaWxhYmxlLCBlbGVtZW50LCBmaWx0ZXJlZExpc3QsIGlzU2hpZnRLZXksIGlzQ29udHJvbEtleSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0VmlzaWJsZShlbGVtZW50OiBUd29MaXN0SXRlbSwgZmlsdGVyZWRMaXN0OiBBcnJheTxUd29MaXN0SXRlbT4sIGlzU2hpZnRLZXk6IGJvb2xlYW4sIGlzQ29udHJvbEtleTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2xlYXIodGhpcy5hdmFpbGFibGUpO1xuICAgIHRoaXMuc2VsZWN0KHRoaXMudmlzaWJsZSwgZWxlbWVudCwgZmlsdGVyZWRMaXN0LCBpc1NoaWZ0S2V5LCBpc0NvbnRyb2xLZXkpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXIodGhpcy5hdmFpbGFibGUpO1xuICAgIHRoaXMuY2xlYXIodGhpcy52aXNpYmxlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0KFxuICAgIHNlbGVjdGVkTGlzdDogQXJyYXk8VHdvTGlzdEl0ZW0+LFxuICAgIGVsZW1lbnQ6IFR3b0xpc3RJdGVtLFxuICAgIGZpbHRlcmVkTGlzdDogQXJyYXk8VHdvTGlzdEl0ZW0+LFxuICAgIGlzU2hpZnRLZXk6IGJvb2xlYW4sXG4gICAgaXNDb250cm9sS2V5OiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGlmIChzZWxlY3RlZExpc3QubGVuZ3RoID4gMCAmJiBpc1NoaWZ0S2V5KSB7XG4gICAgICB0aGlzLnNlbGVjdFJhbmdlKHNlbGVjdGVkTGlzdCwgZWxlbWVudCwgZmlsdGVyZWRMaXN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RTaW5nbGUoc2VsZWN0ZWRMaXN0LCBlbGVtZW50LCBpc0NvbnRyb2xLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0UmFuZ2Uoc2VsZWN0ZWRMaXN0OiBBcnJheTxUd29MaXN0SXRlbT4sIGVsZW1lbnQ6IFR3b0xpc3RJdGVtLCBmaWx0ZXJlZExpc3Q6IEFycmF5PFR3b0xpc3RJdGVtPikge1xuICAgIGNvbnN0IGluZGV4T2ZMYXN0U2VsZWN0ZWQgPSBmaWx0ZXJlZExpc3QuaW5kZXhPZihzZWxlY3RlZExpc3RbMF0pO1xuICAgIGNvbnN0IGluZGV4T2ZTZWxlY3RlZCA9IGZpbHRlcmVkTGlzdC5pbmRleE9mKGVsZW1lbnQpO1xuXG4gICAgdGhpcy5jbGVhcihzZWxlY3RlZExpc3QpO1xuXG4gICAgaWYgKGluZGV4T2ZMYXN0U2VsZWN0ZWQgPCBpbmRleE9mU2VsZWN0ZWQpIHtcbiAgICAgIGZvciAobGV0IGkgPSBpbmRleE9mTGFzdFNlbGVjdGVkOyBpIDw9IGluZGV4T2ZTZWxlY3RlZDsgaSsrKSB7XG4gICAgICAgIGZpbHRlcmVkTGlzdFtpXS5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgc2VsZWN0ZWRMaXN0LnB1c2goZmlsdGVyZWRMaXN0W2ldKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChsZXQgaSA9IGluZGV4T2ZMYXN0U2VsZWN0ZWQ7IGkgPj0gaW5kZXhPZlNlbGVjdGVkOyBpLS0pIHtcbiAgICAgICAgZmlsdGVyZWRMaXN0W2ldLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICBzZWxlY3RlZExpc3QucHVzaChmaWx0ZXJlZExpc3RbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0U2luZ2xlKHNlbGVjdGVkTGlzdDogQXJyYXk8VHdvTGlzdEl0ZW0+LCBlbGVtZW50OiBUd29MaXN0SXRlbSwgaXNDb250cm9sS2V5OiBib29sZWFuKSB7XG4gICAgZWxlbWVudC5pc1NlbGVjdGVkID0gIWVsZW1lbnQuaXNTZWxlY3RlZDtcbiAgICBpZiAoc2VsZWN0ZWRMaXN0Lmxlbmd0aCA9PT0gMCB8fCAoc2VsZWN0ZWRMaXN0Lmxlbmd0aCA+IDAgJiYgaXNDb250cm9sS2V5KSkge1xuICAgICAgaWYgKGVsZW1lbnQuaXNTZWxlY3RlZCkge1xuICAgICAgICBzZWxlY3RlZExpc3QucHVzaChlbGVtZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGVjdGVkTGlzdC5zcGxpY2Uoc2VsZWN0ZWRMaXN0LmluZGV4T2YoZWxlbWVudCksIDEpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsZWFyKHNlbGVjdGVkTGlzdCk7XG4gICAgICBpZiAoZWxlbWVudC5pc1NlbGVjdGVkKSB7XG4gICAgICAgIHNlbGVjdGVkTGlzdC5wdXNoKGVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2xlYXIobGlzdDogQXJyYXk8VHdvTGlzdEl0ZW0+KSB7XG4gICAgbGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4gZWxlbWVudC5pc1NlbGVjdGVkID0gZmFsc2UpO1xuICAgIGxpc3Quc3BsaWNlKDApO1xuICB9XG59XG4iXX0=