File
Index
Properties
|
|
Methods
|
|
Inputs
|
|
Outputs
|
|
Methods
handleSelection
|
handleSelection(event: Event)
|
|
Parameters :
Name |
Type |
Optional |
event |
Event
|
No
|
|
selectControl
|
Default value : new UntypedFormControl('DEFAULT')
|
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { UntypedFormControl } from '@angular/forms';
export interface PolicyPreset {
name: string;
content: string;
}
const PRESETS: PolicyPreset[] = [
{
name: 'Allow All',
content: `
*,,view,allow
*,,edit,allow
`
},
{
name: 'Read Only',
content: `
*,,view,allow
*,,edit,deny
`
},
{
name: 'Deny All',
content: `
*,,view,deny
*,,edit,deny
`
}
];
@Component({
// eslint-disable-next-line @angular-eslint/component-selector
selector: 'presets',
templateUrl: './presets.component.html',
styleUrls: ['./presets.component.scss'],
standalone: false
})
export class PresetsComponent {
@Input() presets: PolicyPreset[] = PRESETS;
@Output() presetSelected = new EventEmitter();
selectControl = new UntypedFormControl('DEFAULT');
handleSelection(event: Event) {
event.preventDefault();
event.stopPropagation();
const content = (event.target as HTMLSelectElement).value;
(event.target as HTMLSelectElement).selectedIndex = 0;
if (content !== 'DEFAULT') {
this.presetSelected.emit(content);
}
}
}
<select class="inspector-select" (change)="handleSelection($event)" [formControl]="selectControl">
<option [selected]="selectControl.value === 'DEFAULT'" hidden value="DEFAULT">
Select Preset
</option>
<option
*ngFor="let preset of presets"
[value]="preset.content"
[selected]="selectControl.value === preset.content"
>
{{ preset.name }}
</option>
</select>
@use '../../inspector.shared' as *;
:host {
display: inline-block;
}
Legend
Html element with directive