| import { Form } from '../../e2elib/lib/src/pageobjects/form.component'; | 
| import { MatrixEditorSOP } from '../../libappsop/matrixeditorsop'; | 
| import { QUtils } from '../../e2elib/lib/src/main/qutils.class'; | 
| import { DialogSmartPlan } from '../dialogs/dialog.smartplan'; | 
| import { DataMatrixProductPlanningAttributeName } from '../data/data.supplyplanning'; | 
|   | 
| export class FormProductPlanning extends Form { | 
|   public meProductPlanning = new MatrixEditorProductPlanning(); | 
|   | 
|   public constructor() { | 
|     super('FormPlanning'); | 
|   } | 
|   | 
|   /** | 
|    * Get background color of demand cell for the product in the period | 
|    * | 
|    * @param productID Product name or index of row | 
|    * @param date Date in string format: dd-Mon-yyyy eg: 1-Jan-2020 | 
|    */ | 
|   public async getDemandBackgroundColor(productID: string | number, date: string): Promise<string> { | 
|     const cell = await this.meProductPlanning.getCell(productID, DataMatrixProductPlanningAttributeName.TotalDemand, date); | 
|     return QUtils.getCssStyle(cell.element, 'background-color'); | 
|   } | 
| } | 
|   | 
| export class MatrixEditorProductPlanning extends MatrixEditorSOP<DialogSmartPlan> { | 
|   public static readonly title = 'Product plannings'; | 
|   | 
|   public constructor() { | 
|     super('MatrixEditorProductPlanning', 'matrixeditorContextMenuProductPlanning', new DialogSmartPlan()); | 
|   } | 
|   | 
|   /** | 
|    * Set total supply value on the specific cell | 
|    * | 
|    * @param rowID Product name or index of row | 
|    * @param date Date in string format: dd-Mon-yyyy eg: 1-Jan-2020 - Column | 
|    * @param value Value to be set | 
|    */ | 
|   public async setTotalSupply(rowID: string | number, date: string, value: number): Promise<void> { | 
|     const cell = await this.getCell(rowID, DataMatrixProductPlanningAttributeName.TotalSupply, date); | 
|     await cell.sendInput(value.toString()); | 
|   } | 
|   | 
|   /** | 
|    * Open and return Smart Plan dialog by rightclick on desired cell and choosing Smart Plan context menu item | 
|    * | 
|    * @param rowID Product name or index of row | 
|    * @param date Date in string format: dd-Mon-yyyy eg: 1-Jan-2020 | 
|    * @returns Dialog Smart Plan | 
|    */ | 
|   public async startSettingSmartPlanDirection(rowID: string | number, date: string): Promise<DialogSmartPlan> { | 
|     const [dlg] = await this.rightClickCellSelectContextmenu(MatrixEditorProductPlanningContextMenuItem.SmartPlan, rowID, DataMatrixProductPlanningAttributeName.TotalSupply, date); | 
|     return dlg; | 
|   } | 
| } | 
|   | 
| export enum MatrixEditorProductPlanningContextMenuItem { | 
|   SmartPlan = 'MenuSmartPlan', | 
| } |