const DASHBOARD_PAGE_STATE_INITIAL = 'initial';
const DASHBOARD_PAGE_STATE_ACTIVE = 'active';
const DASHBOARD_PAGE_STATE_INACTIVE = 'inactive';
const DASHBOARD_PAGE_STATE_DESTROYED = 'destroyed';
const DASHBOARD_PAGE_EVENT_EDIT = 'dashboard-page-edit';
const DASHBOARD_PAGE_EVENT_WIDGET_ADD = 'dashboard-page-widget-add';
const DASHBOARD_PAGE_EVENT_WIDGET_ADD_NEW = 'dashboard-page-widget-add-new';
const DASHBOARD_PAGE_EVENT_WIDGET_DELETE = 'dashboard-page-widget-delete';
const DASHBOARD_PAGE_EVENT_WIDGET_POSITION = 'dashboard-page-widget-position';
const DASHBOARD_PAGE_EVENT_WIDGET_EDIT = 'dashboard-page-widget-edit';
const DASHBOARD_PAGE_EVENT_WIDGET_ACTIONS = 'dashboard-page-widget-actions';
const DASHBOARD_PAGE_EVENT_WIDGET_COPY = 'dashboard-page-widget-copy';
const DASHBOARD_PAGE_EVENT_WIDGET_PASTE = 'dashboard-page-widget-paste';
const DASHBOARD_PAGE_EVENT_RESERVE_HEADER_LINES = 'dashboard-page-reserve-header-lines';
static EVENT_READY = 'dashboard-page-ready';
static EVENT_REQUIRE_DATA_SOURCE = 'dashboard-page-require-data-source';
static PLACEHOLDER_DEFAULT_WIDTH = 6;
static PLACEHOLDER_DEFAULT_HEIGHT = 2;
static PLACEHOLDER_RESIZE_TRIGGER_DISTANCE = 25;
this._target = document.createElement('div');
this._dashboard_grid = target;
dashboard_pageid: data.dashboard_pageid,
display_period: data.display_period
templateid: dashboard.templateid,
dashboardid: dashboard.dashboardid
this._cell_width = cell_width;
this._cell_height = cell_height;
this._max_columns = max_columns;
this._max_rows = max_rows;
this._widget_defaults = widget_defaults;
this._is_editable = is_editable;
this._is_edit_mode = is_edit_mode;
this._csrf_token = csrf_token;
this._unique_id = unique_id;
this._state = DASHBOARD_PAGE_STATE_INITIAL;
this._widgets = new Map();