public handleClick()

in desktop/src/@batch-flask/ui/abstract-list/abstract-list-base.ts [403:432]


    public handleClick(event: MouseEvent, item, activate = true) {
        this.setFocusedItem(item);

        const shiftKey = event.shiftKey;
        const ctrlKey = event.ctrlKey || event.metaKey;
        // Prevent the routerlink from being activated if we have shift or ctrl
        if (shiftKey || ctrlKey) {
            const focusedItem = this.focusedItem;
            if (!focusedItem) { return; }

            if (shiftKey) {
                this.selectTo(item.id);
            } else if (ctrlKey) {
                this.toggleSelected(item.id);
            }
            event.stopPropagation();
            event.stopImmediatePropagation();
        } else if (activate) {
            if (this.config.activable) {
                // Means the user actually selected the item
                this.activateItem(item);
            } else {
                const isSelected = this.selection.has(item.id);
                this.clearSelection();
                this.onSelectedChange(item.id, !isSelected);
            }
        } else {
            this.toggleSelected(item.id, event);
        }
    }