| import { PanelBase } from '../../libappbase/panelbase'; | 
| import { ButtonSOP } from '../../libappsop/buttonsop'; | 
| import { CheckboxSOP } from '../../libappsop/checkboxsop'; | 
| import { DialogSOP } from '../../libappsop/dialogsop'; | 
| import { DropDownListSOP } from '../../libappsop/dropdownlistsop'; | 
| import { RadioButtonSOP } from '../../libappsop/radiobuttonsop'; | 
|   | 
| export interface DialogSmartPlanFields { | 
|   BtnSavePreferencesEnabled?: string; | 
|   BtnRestoreDefaultEnabled?: string; | 
|   Strategy?: string; | 
|   OverrideLockedPlan?: string; | 
|   LimitUnits?: string; | 
|   OnlyPlanOneStepUpstream?: string; | 
|   SmartPlanDirection?: string; | 
| } | 
|   | 
| export class DialogSmartPlan extends DialogSOP<DialogSmartPlanFields> { | 
|   public static readonly title = 'Smart Plan'; | 
|   public static readonly btnSavePreferences = 'Save my preferences'; | 
|   public static readonly btnRestoreDafault = 'Restore default'; | 
|   public pnlAdvanced = new PanelBase('PanelAdvaned'); | 
|   public btnSavePreferences = new ButtonSOP('btnSavePreferences'); | 
|   public btnRestoreDefault = new ButtonSOP('btnRestoreDefault'); | 
|   public ddlStrategy = new DropDownListSOP('DropDownListStrategy'); | 
|   public cbOverrideLockedPlan = new CheckboxSOP('CheckboxOverrideManual'); | 
|   public cbLimitUnits = new CheckboxSOP('CheckboxIsSelectedUnits'); | 
|   public cbOnlyPlanOneStepUpstream = new CheckboxSOP('CheckboxOnlyPlanOneStepUpstream'); | 
|   public rbSmartPlanDirection = new RadioButtonSOP('RadioButtonGroupSmartPlanDirection'); | 
|   | 
|   public constructor() { | 
|     super('DialogSmartPlan', 'btnOK', 'btnCancel'); | 
|   | 
|     // Set UI element mapping to pair the UI name to the UI element for use in DialogSOP to find the UI object to set value or verify value | 
|     // This prevents each new Dialog to duplicate code just to set/verify UI element value | 
|     this._uiMap.set('BtnSavePreferencesEnabled', this.btnSavePreferences); | 
|     this._uiMap.set('BtnRestoreDefaultEnabled', this.btnRestoreDefault); | 
|     this._uiMap.set('Strategy', this.ddlStrategy); | 
|     this._uiMap.set('OverrideLockedPlan', this.cbOverrideLockedPlan); | 
|     this._uiMap.set('LimitUnits', this.cbLimitUnits); | 
|     this._uiMap.set('SmartPlanDirection', this.rbSmartPlanDirection); | 
|     this._uiMap.set('OnlyPlanOneStepUpstream', this.cbOnlyPlanOneStepUpstream); | 
|   } | 
|   | 
|   /** | 
|    * Open Advanced panel, select Smart Plan direction and click Ok button | 
|    * | 
|    * @param smartPlanDirection Smart Plan direction value to be selected | 
|    */ | 
|   public async selectSmartPlanDirection(smartPlanDirection: string): Promise<void> { | 
|     await this.pnlAdvanced.switchTo(); | 
|     await this.rbSmartPlanDirection.checkOnRadioButton(smartPlanDirection); | 
|     await this.clickOK(); | 
|   } | 
| } | 
|   | 
| export enum DialogSmartPlanDirectionRadioButton { | 
|   Upstream = 'Upstream', | 
|   Downstream = 'Downstream', | 
|   MiddleOut = 'Middle-out', | 
| } |