yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/**
 * @file          Campaign Types Dialog
 * @author        Mehrab Kamrani (mehrab.hassan@3ds.com)
 */
import { DialogSOP } from '../../libappsop/dialogsop';
import { DropDownListSOP } from '../../libappsop/dropdownlistsop';
import { EditFieldSOP } from '../../libappsop/editfieldsop';
import { RadioButtonSOP } from '../../libappsop/radiobuttonsop';
import { DurationSelectorSOP } from '../../libappsop/durationselectorsop';
 
export class DialogCampaignType extends DialogSOP<DialogCampaignTypeFields> {
  public readonly name = 'Campaign Type';
 
  // Campaign type unit and name
  private readonly _ddlUnit = new DropDownListSOP('DropDownListUnit');
  private readonly _efName = new EditFieldSOP('EditFieldName');
 
  // Radio button selection for quantity/duration
  private readonly _rbgQuantityOrDuration = new RadioButtonSOP('RadioButtonGroupQuantityDuration');
 
  // Fields for quantity
  private readonly _efDefaultMinQty = new EditFieldSOP('EditFieldDefaultMinQty');
  private readonly _efDefaultMaxQty = new EditFieldSOP('EditFieldDefaultMaxQty');
 
  // Fields for duration
  private readonly _dsDefaultMinimumDuration = new DurationSelectorSOP('DurationSelectorMinDuration', {Days: 0, Hours: 0, Minutes: 0});
  private readonly _dsDefaultMaximumDuration = new DurationSelectorSOP('DurationSelectorMaxDuration', {Days: 0, Hours: 0, Minutes: 0});
 
  public constructor() {
    super('DialogCreateEditCampaignType');
 
    // 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._efName);
    this._uiMap.set('Unit', this._ddlUnit);
    this._uiMap.set('QuantityOrDuration', this._rbgQuantityOrDuration);
    this._uiMap.set('MinQuantity', this._efDefaultMinQty);
    this._uiMap.set('MaxQuantity', this._efDefaultMaxQty);
    this._uiMap.set('MinDuration', this._dsDefaultMinimumDuration);
    this._uiMap.set('MaxDuration', this._dsDefaultMaximumDuration);
  }
}
 
export interface DialogCampaignTypeFields {
  Name?: string;
  Unit?: string;
  QuantityOrDuration?: string;
  MinQuantity?: string;
  MaxQuantity?: string;
  MinDuration?: string;
  MaxDuration?: string;
}