| import { PanelGeneral, PanelManageContents } from '.'; | 
| import { DialogSOP } from '../../../libappsop/dialogsop'; | 
|   | 
| export interface DialogOptimizerPuzzlesField { | 
|   Name?: string; | 
|   Description?: string; | 
| } | 
|   | 
| export class DialogOptimizerPuzzles extends DialogSOP<DialogOptimizerPuzzlesField> { | 
|   public static readonly title = 'Optimizer Puzzles'; | 
|   | 
|   public panelManageContents = new PanelManageContents(); | 
|   public panelGeneral = new PanelGeneral(); | 
|   | 
|   public constructor() { | 
|     super('DialogCreateEditOptimizerPuzzle'); | 
|   | 
|     // 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('Name', this.panelGeneral.efName); | 
|     this._uiMap.set('Description', this.panelGeneral.efDescription); | 
|   } | 
| } | 
|   | 
| /** | 
|  * Expected tooltip for OK button when disabled. | 
|  */ | 
| export const okButtonDisabledTooltip = { | 
|   // Partial prefix indicates precondition defined partially thus use partial match when verifying. | 
|   mustHaveName: (): string => 'Optimizer puzzle must have a name.', | 
|   nameMustUnique: (): string => 'Optimizer puzzle must be unique by name.', | 
| }; |