text: /**
   * DevExtreme (esm/ui/gantt/ui.gantt.view.js)
   * Version: 21.2.5
   * Build date: Mon Jan 17 2022
   *
   * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
   * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
   */
  import $ from "../../core/renderer";
  import Widget from "../widget/ui.widget";
  import {
      getGanttViewCore
  } from "./gantt_importer";
  import {
      TaskAreaContainer
  } from "./ui.gantt.task.area.container";
  import dateLocalization from "../../localization/date";
  import {
      isDefined
  } from "../../core/utils/type";
  import messageLocalization from "../../localization/message";
  import {
      format
  } from "../../core/utils/string";
  export class GanttView extends Widget {
      _init() {
          super._init();
          this._onSelectionChanged = this._createActionByOption("onSelectionChanged");
          this._onScroll = this._createActionByOption("onScroll");
          this._onDialogShowing = this._createActionByOption("onDialogShowing");
          this._onPopupMenuShowing = this._createActionByOption("onPopupMenuShowing");
          this._onPopupMenuHiding = this._createActionByOption("onPopupMenuHiding");
          this._expandAll = this._createActionByOption("onExpandAll");
          this._collapseAll = this._createActionByOption("onCollapseAll");
          this._taskClick = this._createActionByOption("onTaskClick");
          this._taskDblClick = this._createActionByOption("onTaskDblClick");
          this._onAdjustControl = this._createActionByOption("onAdjustControl")
      }
      _initMarkup() {
          var GanttView = getGanttViewCore();
          this._ganttViewCore = new GanttView(this.$element().get(0), this, {
              showResources: this.option("showResources"),
              showDependencies: this.option("showDependencies"),
              taskTitlePosition: this._getTaskTitlePosition(this.option("taskTitlePosition")),
              firstDayOfWeek: this._getFirstDayOfWeek(this.option("firstDayOfWeek")),
              allowSelectTask: this.option("allowSelection"),
              startDateRange: this.option("startDateRange"),
              endDateRange: this.option("endDateRange"),
              editing: this._parseEditingSettings(this.option("editing")),
              validation: this.option("validation"),
              stripLines: {
                  stripLines: this.option("stripLines")
              },
              areHorizontalBordersEnabled: this.option("showRowLines"),
              areAlternateRowsEnabled: false,
              viewType: this._getViewTypeByScaleType(this.option("scaleType")),
              viewTypeRange: this._parseViewTypeRangeSettings(this.option("scaleTypeRange")),
              cultureInfo: this._getCultureInfo(),
              taskTooltipContentTemplate: this.option("taskTooltipContentTemplate"),
              taskProgressTooltipContentTemplate: this.option("taskProgressTooltipContentTemplate"),
              taskTimeTooltipContentTemplate: this.option("taskTimeTooltipContentTemplate"),
              taskContentTemplate: this.option("taskContentTemplate"),
              sieve: this.option("sieve")
          });
          this._selectTask(this.option("selectedRowKey"));
          this.updateBarItemsState()
      }
      _getFirstDayOfWeek(value) {
          return isDefined(value) ? value : dateLocalization.firstDayOfWeekIndex()
      }
      getTaskAreaContainer() {
          return this._ganttViewCore.getTaskAreaContainer()
      }
      getBarManager() {
          return this._ganttViewCore.barManager
      }
      executeCoreCommand(id) {
          var command = this._ganttViewCore.getCommandByKey(id);
          if (command) {
              command.execute()
          }
      }
      changeTaskExpanded(id, value) {
          this._ganttViewCore.changeTaskExpanded(id, value)
      }
      updateView() {
          this._ganttViewCore.updateView()
      }
      updateBarItemsState() {
          this._ganttViewCore.barManager.updateItemsState([])
      }
      setWidth(value) {
          this._ganttViewCore.setWidth(value)
      }
      _selectTask(id) {
          this._ganttViewCore.selectTaskById(id)
      }
      _update(keepExpandState) {
          var _this$_ganttViewCore;
          null === (_this$_ganttViewCore = this._ganttViewCore) || void 0 === _this$_ganttViewCore ? void 0 : _this$_ganttViewCore.updateWithDataReload(keepExpandState)
      }
      _getCultureInfo() {
          return {
              monthNames: dateLocalization.getMonthNames("wide"),
              dayNames: dateLocalization.getDayNames("wide"),
              abbrMonthNames: dateLocalization.getMonthNames("abbreviated"),
              abbrDayNames: dateLocalization.getDayNames("abbreviated"),
              quarterNames: this._getQuarterNames(),
              amText: dateLocalization.getPeriodNames()[0],
              pmText: dateLocalization.getPeriodNames()[1]
          }
      }
      _getQuarterNames() {
          var quarterFormat = messageLocalization.format("dxGantt-quarter");
          if (!quarterFormat) {
              return dateLocalization.getQuarterNames()
          }
          return [format(quarterFormat, 1), format(quarterFormat, 2), format(quarterFormat, 3), format(quarterFormat, 4)]
      }
      _getTaskTitlePosition(value) {
          switch (value) {
              case "outside":
                  return 1;
              case "none":
                  return 2;
              default:
                  return 0
          }
      }
      _getViewTypeByScaleType(scaleType) {
          switch (scaleType) {
              case "minutes":
                  return 0;
              case "hours":
                  return 1;
              case "days":
                  return 3;
              case "weeks":
                  return 4;
              case "months":
                  return 5;
              case "quarters":
                  return 6;
              case "years":
                  return 7;
              default:
                  return
          }
      }
      _parseEditingSettings(value) {
          return {
              enabled: value.enabled,
              allowDependencyDelete: value.allowDependencyDeleting,
              allowDependencyInsert: value.allowDependencyAdding,
              allowTaskDelete: value.allowTaskDeleting,
              allowTaskInsert: value.allowTaskAdding,
              allowTaskUpdate: value.allowTaskUpdating,
              allowResourceDelete: value.allowResourceDeleting,
              allowResourceInsert: value.allowResourceAdding,
              allowResourceUpdate: value.allowResourceUpdating,
              allowTaskResourceUpdate: value.allowTaskResourceUpdating
          }
      }
      _parseViewTypeRangeSettings(value) {
          return {
              min: this._getViewTypeByScaleType(value.min),
              max: this._getViewTypeByScaleType(value.max)
          }
      }
      _optionChanged(args) {
          switch (args.name) {
              case "width":
                  super._optionChanged(args);
                  this._ganttViewCore.setWidth(args.value);
                  break;
              case "height":
                  this._ganttViewCore.setHeight(args.value);
                  break;
              case "tasks":
              case "dependencies":
              case "resources":
              case "resourceAssignments":
                  this._sieveOptions = void 0;
                  this._update(true);
                  break;
              case "showResources":
                  this._ganttViewCore.setShowResources(args.value);
                  break;
              case "showDependencies":
                  this._ganttViewCore.setShowDependencies(args.value);
                  break;
              case "taskTitlePosition":
                  this._ganttViewCore.setTaskTitlePosition(this._getTaskTitlePosition(args.value));
                  break;
              case "firstDayOfWeek":
                  this._ganttViewCore.setFirstDayOfWeek(this._getFirstDayOfWeek(args.value));
                  break;
              case "startDateRange":
                  this._ganttViewCore.setStartDateRange(args.value);
                  break;
              case "endDateRange":
                  this._ganttViewCore.setEndDateRange(args.value);
                  break;
              case "allowSelection":
                  this._ganttViewCore.setAllowSelection(args.value);
                  break;
              case "selectedRowKey":
                  this._selectTask(args.value);
                  break;
              case "editing":
                  this._ganttViewCore.setEditingSettings(this._parseEditingSettings(args.value));
                  break;
              case "validation":
                  this._ganttViewCore.setValidationSettings(args.value);
                  this._update(true);
                  break;
              case "showRowLines":
                  this._ganttViewCore.setRowLinesVisible(args.value);
                  break;
              case "scaleType":
                  this._ganttViewCore.setViewType(this._getViewTypeByScaleType(args.value));
                  break;
              case "scaleTypeRange":
                  this._ganttViewCore.setViewTypeRange(this._getViewTypeByScaleType(args.value.min), this._getViewTypeByScaleType(args.value.max));
                  break;
              case "stripLines":
                  this._ganttViewCore.setStripLines({
                      stripLines: args.value
                  });
                  break;
              case "taskTooltipContentTemplate":
                  this._ganttViewCore.setTaskTooltipContentTemplate(args.value);
                  break;
              case "taskProgressTooltipContentTemplate":
                  this._ganttViewCore.setTaskProgressTooltipContentTemplate(args.value);
                  break;
              case "taskTimeTooltipContentTemplate":
                  this._ganttViewCore.setTaskTimeTooltipContentTemplate(args.value);
                  break;
              case "taskContentTemplate":
                  this._ganttViewCore.setTaskContentTemplate(args.value);
                  break;
              case "sieve":
                  this._sortAndFilter(args.value);
                  break;
              default:
                  super._optionChanged(args)
          }
      }
      get bars() {
          return this.option("bars")
      }
      getRowHeight() {
          return this.option("rowHeight")
      }
      getHeaderHeight() {
          return this.option("headerHeight")
      }
      getGanttTasksData() {
          var tasks = this.option("tasks");
          var sieveOptions = this.getSieveOptions();
          if (null !== sieveOptions && void 0 !== sieveOptions && sieveOptions.sievedItems && null !== sieveOptions && void 0 !== sieveOptions && sieveOptions.sieveColumn) {
              return sieveOptions.sievedItems
          }
          return tasks
      }
      _sortAndFilter(args) {
          this._sieveOptions = args;
          this._update(true);
          var selectedRowKey = this.option("selectedRowKey");
          this._selectTask(selectedRowKey)
      }
      getSieveOptions() {
          return this._sieveOptions
      }
      getGanttDependenciesData() {
          return this.option("dependencies")
      }
      getGanttResourcesData() {
          return this.option("resources")
      }
      getGanttResourceAssignmentsData() {
          return this.option("resourceAssignments")
      }
      getGanttWorkTimeRules() {
          return null
      }
      getExternalTaskAreaContainer(element) {
          if (!this._taskAreaContainer) {
              this._taskAreaContainer = new TaskAreaContainer(element, this)
          }
          return this._taskAreaContainer
      }
      prepareExternalTaskAreaContainer(element, info) {
          if (null !== info && void 0 !== info && info.height) {
              this._taskAreaContainer._scrollView.option("height", info.height)
          }
      }
      changeGanttTaskSelection(id, selected) {
          this._onSelectionChanged({
              id: id,
              selected: selected
          })
      }
      onGanttScroll(scrollTop) {
          this._onScroll({
              scrollTop: scrollTop
          })
      }
      showDialog(name, parameters, callback, afterClosing) {
          this._onDialogShowing({
              name: name,
              parameters: parameters,
              callback: callback,
              afterClosing: afterClosing
          })
      }
      getModelChangesListener() {
          return this.option("modelChangesListener")
      }
      getExportInfo() {
          return this.option("exportInfo")
      }
      showPopupMenu(info) {
          this._onPopupMenuShowing(info)
      }
      hidePopupMenu(info) {
          this._onPopupMenuHiding(info)
      }
      getMainElement() {
          return this.option("mainElement").get(0)
      }
      adjustControl() {
          this._onAdjustControl()
      }
      getRequireFirstLoadParentAutoCalc() {
          return this.option("validation.autoUpdateParentTasks")
      }
      collapseAll() {
          this._collapseAll()
      }
      expandAll() {
          this._expandAll()
      }
      onTaskClick(key, event) {
          this._taskClick({
              key: key,
              event: event
          });
          return true
      }
      onTaskDblClick(key, event) {
          return this._taskDblClick({
              key: key,
              event: event
          })
      }
      onGanttViewContextMenu(event, key, type) {
          return true
      }
      getFormattedDateText(date) {
          var result = "";
          if (date) {
              var datePart = dateLocalization.format(date, "shortDate");
              var timePart = dateLocalization.format(date, "hh:mm");
              result = datePart + " " + timePart
          }
          return result
      }
      destroyTemplate(container) {
          $(container).empty()
      }
      getTreeListTableStyle() {
          return this.callExportHelperMethod("getTreeListTableStyle")
      }
      getTreeListColCount() {
          return this.callExportHelperMethod("getTreeListColCount")
      }
      getTreeListHeaderInfo(colIndex) {
          return this.callExportHelperMethod("getTreeListHeaderInfo", colIndex)
      }
      getTreeListCellInfo(rowIndex, colIndex) {
          return this.callExportHelperMethod("getTreeListCellInfo", rowIndex, colIndex)
      }
      callExportHelperMethod(methodName) {
          var helper = this.option("exportHelper");
          for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
              args[_key - 1] = arguments[_key]
          }
          return helper[methodName](...args)
      }
  }
  