import { Component, EventEmitter, Input, OnDestroy, OnInit, Optional, Output } from '@angular/core'; import { ScriptDataService } from '../../../core/data/processes/script-data.service'; import { Script } from '../../scripts/script.model'; import { Observable, Subscription } from 'rxjs'; import { distinctUntilChanged, filter, map, switchMap, take } from 'rxjs/operators'; import { getRemoteDataPayload, getSucceededRemoteData } from '../../../core/shared/operators'; import { PaginatedList } from '../../../core/data/paginated-list'; import { ActivatedRoute, Params, Router } from '@angular/router'; import { hasNoValue, hasValue } from '../../../shared/empty.util'; import { ControlContainer, NgForm } from '@angular/forms'; import { controlContainerFactory } from '../process-form.component'; const SCRIPT_QUERY_PARAMETER = 'script'; /** * Component used to select a script */ @Component({ selector: 'ds-scripts-select', templateUrl: './scripts-select.component.html', styleUrls: ['./scripts-select.component.scss'], viewProviders: [ { provide: ControlContainer, useFactory: controlContainerFactory, deps: [[new Optional(), NgForm]] } ] }) export class ScriptsSelectComponent implements OnInit, OnDestroy { /** * Emits the selected script when the selection changes */ @Output() select: EventEmitter