All files / src/app/components/multi-select-signals multi-select-signals.component.html

97.26% Statements 71/73
100% Branches 10/10
90% Functions 9/10
100% Lines 34/34

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71  90x   16501x         16501x 16546x       51x     16501x 45x     16501x 16501x 16501x 16501x           33047x 45x   45x 33002x 33002x 45x   45x 1x       45x         45x     33002x 16546x 16501x       390x   45x 46x 94x 2x   45x 45x 45x 33002x     45x  
<div class="toolbar-element signal-selector">
    <p-multiSelect
    class="signal-select"
    [virtualScroll]="true"
    [virtualScrollOptions]="{
        scrollHeight: '200px',
        itemSize: 25,
    }"
    [options]="signalIdsToDisplay"
    [(ngModel)]="signalIdsToPlot"
    [filter]="true"
    [filterMatchMode]="'contains'"
    placeholder="Select Signals"
    (onChange)="onChangeSelection($event.value)"
    [selectionLimit]="selectionLimit"
    [showToggleAll]="true"
    [showClear]="true"
    (onClear)="onChangeSelection([])"
    />
 
    <p-button id="savePresetButton" (click)="exportPreset.toggle($event)" icon="pi pi-file-export" [rounded]="true" size="small" [outlined]="true" [disabled]="signalIdsToPlot.length === 0" title="Save signals preset"></p-button>
    <p-button id="loadPresetButton" (click)="importPreset.toggle($event)" icon="pi pi-file-import" [rounded]="true" size="small" [outlined]="true" title="Load signals preset"></p-button>
    <p-button id="deletePresetButton" (click)="deletePreset()" icon="pi pi-times" [rounded]="true" size="small" [outlined]="true" [disabled]="selectedSignalsPreset === undefined"
        [title]="`Delete preset ${this.selectedSignalsPreset?.name}`"></p-button>
 
    <p-popover #exportPreset>
        <div class="signals-preset-popover">
            <div>
                <p-floatlabel>
                    <input pInputText class="input" id="preset_name" [(ngModel)]="newSignalsPresetName">
                    <label for="preset_name">Preset name</label>
                </p-floatlabel>
            </div>
            <p-button id="createPresetButton" (click)="saveSignalsPreset()" [disabled]="!isPresetNameValid">
                @if(this.isSignalsPresetNew) {
                    Create preset
                }
                @else {
                    Update preset
                }
            </p-button>
        </div>
    </p-popover>
 
    <p-popover #importPreset>
        <div class="signals-preset-popover">
            <p-floatlabel>
                <p-select
                    id="presetSelector"
                    class="preset-selector"
                    [options]="signalsPresets"
                    [(ngModel)]="selectedSignalsPreset"
                    [filter]="true"
                    optionLabel="name"
                    inputId="presetName">
                    <ng-template let-selectedPreset #selectedItem>
                        <div [title]="selectedPreset.signal_ids.join('\n')">{{ selectedPreset.name }}</div>
                    </ng-template>
                    <ng-template let-preset #item>
                        <div class="preset-item" [title]="preset.signal_ids.join('\n')">
                            <div>{{ preset.name }}</div>
                        </div>
                    </ng-template>
                </p-select>
                <label for="presetName">Preset name</label>
            </p-floatlabel>
            <p-button id="activatePreset" (click)="loadSignalsPreset()" [disabled]="selectedSignalsPreset === undefined">Load preset</p-button>
        </div>
    </p-popover>
</div>