diff --git a/packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts b/packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts index 1e8803c7d47f..b1fffccf5dff 100644 --- a/packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts +++ b/packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts @@ -14,7 +14,6 @@ import { extend } from '@js/core/utils/extend'; import Form from '@js/ui/form'; import { current, isFluent } from '@js/ui/themes'; import { ExpressionUtils } from '@ts/scheduler/m_expression_utils'; -import { Semaphore } from '@ts/scheduler/r1/semaphore/index'; import { createAppointmentAdapter } from '../m_appointment_adapter'; import timeZoneUtils from '../m_utils_time_zone'; @@ -63,15 +62,12 @@ export class AppointmentForm { form: any; - // TODO: Why we need the "semaphore" in the sync code? - // We should research it and delete it if redundant - semaphore: Semaphore; + // NOTE: flag to prevent double value set during form updating + private isFormUpdating = false; constructor(scheduler) { this.scheduler = scheduler; this.form = null; - - this.semaphore = new Semaphore(); } get dxForm() { @@ -194,7 +190,7 @@ export class AppointmentForm { const dateEditor = this.form.getEditor(dateExpr); const dateValue = dateSerialization.deserializeDate(dateEditor.option('value')); - if (this.semaphore.isFree() && dateValue && value && isNeedCorrect(dateValue, value)) { + if (!this.isFormUpdating && dateValue && value && isNeedCorrect(dateValue, value)) { const duration = previousValue ? dateValue.getTime() - previousValue.getTime() : 0; dateEditor.option('value', new Date(value.getTime() + duration)); } @@ -337,7 +333,7 @@ export class AppointmentForm { const endDateEditor = this.form.getEditor(dataExprs.endDateExpr); const startDate = dateSerialization.deserializeDate(startDateEditor.option('value')); - if (this.semaphore.isFree() && startDate) { + if (!this.isFormUpdating && startDate) { if (value) { const allDayStartDate = dateUtils.trimTime(startDate); startDateEditor.option('value', new Date(allDayStartDate)); @@ -459,8 +455,7 @@ export class AppointmentForm { } updateFormData(formData) { - this.semaphore.take(); - + this.isFormUpdating = true; this.form.option('formData', formData); const dataAccessors = this.scheduler.getDataAccessors(); @@ -479,8 +474,7 @@ export class AppointmentForm { this.updateRecurrenceEditorStartDate(startDate, expr.recurrenceRuleExpr); this.setEditorsType(allDay); - - this.semaphore.release(); + this.isFormUpdating = false; } private createDateBoxEditor(dataField, colSpan, firstDayOfWeek, label, cssClass, onValueChanged) { diff --git a/packages/devextreme/js/__internal/scheduler/appointments/data_provider/m_appointment_filter.ts b/packages/devextreme/js/__internal/scheduler/appointments/data_provider/m_appointment_filter.ts index 2593c049ee71..15e3e8b657ba 100644 --- a/packages/devextreme/js/__internal/scheduler/appointments/data_provider/m_appointment_filter.ts +++ b/packages/devextreme/js/__internal/scheduler/appointments/data_provider/m_appointment_filter.ts @@ -255,11 +255,6 @@ export class AppointmentFilterBaseStrategy { }]]; } - // TODO get rid of wrapper - _createAppointmentFilter(filterOptions) { - return this._createCombinedFilter(filterOptions); - } - _filterAppointmentByResources(appointment, resources) { const checkAppointmentResourceValues = (resourceName, resourceIndex) => { const resourceGetter = this.dataAccessors.resources.getter[resourceName]; @@ -346,7 +341,7 @@ export class AppointmentFilterBaseStrategy { } filterPreparedItems(filterOptions, preparedItems) { - const combinedFilter = this._createAppointmentFilter(filterOptions); + const combinedFilter = this._createCombinedFilter(filterOptions); // @ts-expect-error return query(preparedItems) @@ -451,7 +446,7 @@ export class AppointmentFilterVirtualStrategy extends AppointmentFilterBaseStrat filterOptions.forEach((option) => { combinedFilters.length && combinedFilters.push('or'); - const filter = this._createAppointmentFilter(option); + const filter = this._createCombinedFilter(option); combinedFilters.push(filter); }); diff --git a/packages/devextreme/js/__internal/scheduler/appointments/m_appointment_collection.ts b/packages/devextreme/js/__internal/scheduler/appointments/m_appointment_collection.ts index 29aadb76fa3c..4168d7cbad79 100644 --- a/packages/devextreme/js/__internal/scheduler/appointments/m_appointment_collection.ts +++ b/packages/devextreme/js/__internal/scheduler/appointments/m_appointment_collection.ts @@ -75,7 +75,6 @@ class SchedulerAppointments extends CollectionWidget { this._virtualAppointments = {}; } - // TODO: remove when Collection moved to TS // eslint-disable-next-line @typescript-eslint/no-unused-vars option(optionName?: string, value?: any) { return super.option(...arguments); diff --git a/packages/devextreme/js/__internal/scheduler/appointments/m_view_model_generator.ts b/packages/devextreme/js/__internal/scheduler/appointments/m_view_model_generator.ts index cadc2337aca4..5f67219842a0 100644 --- a/packages/devextreme/js/__internal/scheduler/appointments/m_view_model_generator.ts +++ b/packages/devextreme/js/__internal/scheduler/appointments/m_view_model_generator.ts @@ -34,7 +34,7 @@ export class AppointmentViewModelGenerator { this.initRenderingStrategy(options); const renderingStrategy = this.getRenderingStrategy(); - const positionMap = renderingStrategy.createTaskPositionMap(appointments); // TODO - appointments are mutated inside! + const positionMap = renderingStrategy.createTaskPositionMap(appointments); // appointments are mutated inside! const shiftedViewModel = this.postProcess(appointments, positionMap); const viewModel = this.unshiftViewModelAppointmentsByViewOffset(shiftedViewModel, viewOffset); diff --git a/packages/devextreme/js/__internal/scheduler/appointments/rendering_strategies/m_strategy_agenda.ts b/packages/devextreme/js/__internal/scheduler/appointments/rendering_strategies/m_strategy_agenda.ts index a058df29930a..b99e25688687 100644 --- a/packages/devextreme/js/__internal/scheduler/appointments/rendering_strategies/m_strategy_agenda.ts +++ b/packages/devextreme/js/__internal/scheduler/appointments/rendering_strategies/m_strategy_agenda.ts @@ -193,8 +193,7 @@ class AgendaRenderingStrategy extends BaseRenderingStrategy { replaceWrongEndDate(adapter, startDate, endDate, this.cellDuration, this.dataAccessors); } - // TODO: get rid of an extra 'needClearSettings' argument - calculateRows(appointments, agendaDuration, currentDate, needClearSettings?) { + calculateRows(appointments, agendaDuration, currentDate) { this._rows = []; currentDate = dateUtils.trimTime(new Date(currentDate)); @@ -218,8 +217,6 @@ class AgendaRenderingStrategy extends BaseRenderingStrategy { this.replaceWrongAppointmentEndDate(appointment, startDate, endDate); - needClearSettings && delete appointment.settings; - const result = this.instance.getAppointmentsInstance()._processRecurrenceAppointment(appointment, index, false); appts.parts = appts.parts.concat(result.parts); appts.indexes = appts.indexes.concat(result.indexes); diff --git a/packages/devextreme/js/__internal/scheduler/m_appointment_adapter.ts b/packages/devextreme/js/__internal/scheduler/m_appointment_adapter.ts index c0ef0069eedb..d79f92a2ea1c 100644 --- a/packages/devextreme/js/__internal/scheduler/m_appointment_adapter.ts +++ b/packages/devextreme/js/__internal/scheduler/m_appointment_adapter.ts @@ -169,7 +169,7 @@ class AppointmentAdapter { source(serializeDate = false) { if (serializeDate) { - // TODO: hack for use dateSerializationFormat + // hack for use dateSerializationFormat const clonedAdapter = this.clone(); clonedAdapter.startDate = this.startDate; clonedAdapter.endDate = this.endDate; diff --git a/packages/devextreme/js/__internal/scheduler/m_loading.ts b/packages/devextreme/js/__internal/scheduler/m_loading.ts index a4210bcf27f0..19c1d11bd977 100644 --- a/packages/devextreme/js/__internal/scheduler/m_loading.ts +++ b/packages/devextreme/js/__internal/scheduler/m_loading.ts @@ -29,8 +29,7 @@ export function show(options) { } export function hide() { - // todo: hot fix for case without viewport - + // hot fix for case without viewport if (!loading) { // @ts-expect-error return new Deferred().resolve(); diff --git a/packages/devextreme/js/__internal/scheduler/m_recurrence_editor.ts b/packages/devextreme/js/__internal/scheduler/m_recurrence_editor.ts index b08fc871d1ef..038c314275d3 100644 --- a/packages/devextreme/js/__internal/scheduler/m_recurrence_editor.ts +++ b/packages/devextreme/js/__internal/scheduler/m_recurrence_editor.ts @@ -36,7 +36,7 @@ const MONTH_OF_YEAR = 'dx-recurrence-selectbox-month-of-year'; const recurrentEditorNumberBoxWidth = 70; const recurrentEditorSelectBoxWidth = 120; -const defaultRecurrenceTypeIndex = 1; // TODO default daily recurrence +const defaultRecurrenceTypeIndex = 1; // default daily recurrence const frequenciesMessages = [ /* { diff --git a/packages/devextreme/js/__internal/scheduler/m_scheduler.ts b/packages/devextreme/js/__internal/scheduler/m_scheduler.ts index b07f185b3f04..cbd9806bf819 100644 --- a/packages/devextreme/js/__internal/scheduler/m_scheduler.ts +++ b/packages/devextreme/js/__internal/scheduler/m_scheduler.ts @@ -1525,7 +1525,7 @@ class Scheduler extends Widget { this._validateKeyFieldIfAgendaExist(); } - _isDataSourceLoaded() { // TODO + _isDataSourceLoaded() { return this._dataSource && this._dataSource.isLoaded(); } @@ -1637,17 +1637,13 @@ class Scheduler extends Widget { return this._getCurrentViewOption('cellDuration'); } - _getCurrentViewType() { // TODO get rid of mapping - return this.currentViewType; - } - _renderWorkSpace(groups) { this._readyToRenderAppointments && this._toggleSmallClass(); const $workSpace = $('
').appendTo(this._mainContainer); const countConfig = this._getViewCountConfig(); - const workSpaceComponent = VIEWS_CONFIG[this._getCurrentViewType()].workSpace; + const workSpaceComponent = VIEWS_CONFIG[this.currentViewType].workSpace; const workSpaceConfig = this._workSpaceConfig(groups, countConfig); // @ts-expect-error this._workSpace = this._createComponent($workSpace, workSpaceComponent, workSpaceConfig); @@ -2236,7 +2232,7 @@ class Scheduler extends Widget { } /// #DEBUG - getAppointmentDetailsForm() { // TODO for tests + getAppointmentDetailsForm() { // for tests return this._appointmentForm.form; } /// #ENDDEBUG @@ -2647,7 +2643,6 @@ class Scheduler extends Widget { private validateOptions(): void { const currentViewOptions = { ...this.option(), - // TODO: Check it before 24.1 release // NOTE: We override this.option values here // because the old validation logic checked only current view options. // Changing it and validate all views configuration will be a BC. diff --git a/packages/devextreme/js/__internal/scheduler/m_subscribes.ts b/packages/devextreme/js/__internal/scheduler/m_subscribes.ts index f2b6b001ffa6..fb05669b30c1 100644 --- a/packages/devextreme/js/__internal/scheduler/m_subscribes.ts +++ b/packages/devextreme/js/__internal/scheduler/m_subscribes.ts @@ -126,7 +126,7 @@ const subscribes = { this.timeZoneCalculator, ); - // TODO pull out time zone converting from appointment adapter for knockout(T947938) + // pull out time zone converting from appointment adapter for knockout(T947938) const startDate = this.timeZoneCalculator.createDate(targetedAdapter.startDate, { path: 'toGrid' }); const endDate = this.timeZoneCalculator.createDate(targetedAdapter.endDate, { path: 'toGrid' }); diff --git a/packages/devextreme/js/__internal/scheduler/m_utils.ts b/packages/devextreme/js/__internal/scheduler/m_utils.ts index 8c4430ab465d..fbf50879dd12 100644 --- a/packages/devextreme/js/__internal/scheduler/m_utils.ts +++ b/packages/devextreme/js/__internal/scheduler/m_utils.ts @@ -94,7 +94,6 @@ export const utils = { component = widget._createComponent(container, componentClass, viewModel); widget[componentName] = component; } else { - // TODO: this is a workaround for setTablesSizes. Remove after CSS refactoring const $element = component.$element(); const elementStyle = $element.get(0).style; const { height } = elementStyle; diff --git a/packages/devextreme/js/__internal/scheduler/m_utils_time_zone.ts b/packages/devextreme/js/__internal/scheduler/m_utils_time_zone.ts index 07cfd2439c2e..d827ce6fb65d 100644 --- a/packages/devextreme/js/__internal/scheduler/m_utils_time_zone.ts +++ b/packages/devextreme/js/__internal/scheduler/m_utils_time_zone.ts @@ -292,7 +292,7 @@ const isEqualLocalTimeZoneByDeclaration = (timeZoneName: string, date: Date): bo return false; }; -// TODO: Getting two dates in january or june is the standard mechanism for determining that an offset has occurred. +// Getting two dates in january or june is the standard mechanism for determining that an offset has occurred. const getExtremeDates = () => { const nowDate = new Date(Date.now()); diff --git a/packages/devextreme/js/__internal/scheduler/options_validator/core/types.ts b/packages/devextreme/js/__internal/scheduler/options_validator/core/types.ts index e30d5ba7f7c9..9dd76490094b 100644 --- a/packages/devextreme/js/__internal/scheduler/options_validator/core/types.ts +++ b/packages/devextreme/js/__internal/scheduler/options_validator/core/types.ts @@ -14,6 +14,6 @@ export interface GlobalErrorHandler { throwError: (errorCode: string) => void; } -// TODO: This export just a workaround for SystemJS issue +// This export just a workaround for SystemJS issue // with ts files that contains only type definitions. export const REDUNDANT_EXPORT = undefined; diff --git a/packages/devextreme/js/__internal/scheduler/options_validator/types.ts b/packages/devextreme/js/__internal/scheduler/options_validator/types.ts index 3b0ebc8580f9..69c116b978e5 100644 --- a/packages/devextreme/js/__internal/scheduler/options_validator/types.ts +++ b/packages/devextreme/js/__internal/scheduler/options_validator/types.ts @@ -9,6 +9,6 @@ export type SchedulerValidatorNames = 'startDayHour' | 'cellDuration' | 'cellDurationAndVisibleInterval'; -// TODO: This export just a workaround for SystemJS issue +// This export just a workaround for SystemJS issue // with ts files that contains only type definitions. export const REDUNDANT_EXPORT = undefined; diff --git a/packages/devextreme/js/__internal/scheduler/r1/components/base/date_header_cell.tsx b/packages/devextreme/js/__internal/scheduler/r1/components/base/date_header_cell.tsx index 1a8fa6cbc491..d59a0673f2e7 100644 --- a/packages/devextreme/js/__internal/scheduler/r1/components/base/date_header_cell.tsx +++ b/packages/devextreme/js/__internal/scheduler/r1/components/base/date_header_cell.tsx @@ -14,7 +14,7 @@ export interface DateHeaderCellProps extends CellBaseProps { colSpan: number; isWeekDayCell: boolean; splitText: boolean; - // TODO: this is a workaround for https://github.com/DevExpress/devextreme-renovation/issues/574 + // this is a workaround for https://github.com/DevExpress/devextreme-renovation/issues/574 isTimeCellTemplate: boolean; timeCellTemplate?: JSXTemplate; dateCellTemplate?: JSXTemplate; @@ -66,7 +66,7 @@ export class DateHeaderCell extends BaseInfernoComponent { const DateCellTemplateComponent = getTemplate(dateCellTemplate); const children = useTemplate ? ( - // TODO: this is a workaround for https://github.com/DevExpress/devextreme-renovation/issues/574 + // this is a workaround for https://github.com/DevExpress/devextreme-renovation/issues/574 <> {isTimeCellTemplate && TimeCellTemplateComponent && TimeCellTemplateComponent({ diff --git a/packages/devextreme/js/__internal/scheduler/r1/semaphore/__tests__/semaphore.test.ts b/packages/devextreme/js/__internal/scheduler/r1/semaphore/__tests__/semaphore.test.ts deleted file mode 100644 index 7121a4953950..000000000000 --- a/packages/devextreme/js/__internal/scheduler/r1/semaphore/__tests__/semaphore.test.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { describe, expect, it } from '@jest/globals'; - -import { Semaphore } from '../index'; - -describe('Semaphore', () => { - it('should be free by default', () => { - const semaphore = new Semaphore(); - - expect(semaphore.isFree()) - .toBe(true); - }); - - it('should not be free if it was taken', () => { - const semaphore = new Semaphore(); - - semaphore.take(); - - expect(semaphore.isFree()) - .toBe(false); - }); - - it('should be released correctly', () => { - const semaphore = new Semaphore(); - - semaphore.take(); - semaphore.release(); - - expect(semaphore.isFree()) - .toBe(true); - }); - - it('should be free after several consecutive releases', () => { - const semaphore = new Semaphore(); - - semaphore.take(); - semaphore.release(); - semaphore.release(); - semaphore.release(); - - expect(semaphore.isFree()) - .toBe(true); - }); -}); diff --git a/packages/devextreme/js/__internal/scheduler/r1/semaphore/index.ts b/packages/devextreme/js/__internal/scheduler/r1/semaphore/index.ts deleted file mode 100644 index 246f72bf503f..000000000000 --- a/packages/devextreme/js/__internal/scheduler/r1/semaphore/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -export class Semaphore { - counter: number; - - constructor() { - this.counter = 0; - } - - isFree(): boolean { - return this.counter === 0; - } - - take(): void { - this.counter += 1; - } - - release(): void { - this.counter -= 1; - - if (this.counter < 0) { - this.counter = 0; - } - } -} diff --git a/packages/devextreme/js/__internal/scheduler/r1/types.ts b/packages/devextreme/js/__internal/scheduler/r1/types.ts index 268d09f49a05..b5ad0ad8e6ef 100644 --- a/packages/devextreme/js/__internal/scheduler/r1/types.ts +++ b/packages/devextreme/js/__internal/scheduler/r1/types.ts @@ -52,7 +52,7 @@ export interface AppointmentFilter { export interface CustomLoadDataType { data: Appointment[] } export interface AppointmentGeometry { - empty: boolean; // TODO + empty: boolean; left: number; top: number; width: number; diff --git a/packages/devextreme/js/__internal/scheduler/resources/m_utils.ts b/packages/devextreme/js/__internal/scheduler/resources/m_utils.ts index 1fc8c59c2ca7..823b303eb8eb 100644 --- a/packages/devextreme/js/__internal/scheduler/resources/m_utils.ts +++ b/packages/devextreme/js/__internal/scheduler/resources/m_utils.ts @@ -101,7 +101,6 @@ export const getPathToLeaf = (leafIndex, groups) => { return makeBranch(leaf).reverse(); }; -// TODO rework export const getCellGroups = (groupIndex, groups) => { const result: any = []; @@ -499,7 +498,7 @@ const getTransformedResourceData = (resource, data) => { text: displayGetter(item), }; - if (item.color) { // TODO for passed tests + if (item.color) { // for tests result.color = item.color; } diff --git a/packages/devextreme/js/__internal/scheduler/tooltip_strategies/m_desktop_tooltip_strategy.ts b/packages/devextreme/js/__internal/scheduler/tooltip_strategies/m_desktop_tooltip_strategy.ts index 74741d9548bf..e9f44a6022e9 100644 --- a/packages/devextreme/js/__internal/scheduler/tooltip_strategies/m_desktop_tooltip_strategy.ts +++ b/packages/devextreme/js/__internal/scheduler/tooltip_strategies/m_desktop_tooltip_strategy.ts @@ -34,7 +34,7 @@ export class DesktopTooltipStrategy extends TooltipStrategyBase { _createListOption(target, dataList) { // @ts-expect-error const result: any = super._createListOption(target, dataList); - // TODO:T724287 this condition is not covered by tests, because touch variable cannot be overridden. + // T724287 this condition is not covered by tests, because touch variable cannot be overridden. // In the future, it is necessary to cover the tests result.showScrollbar = supportUtils.touch ? 'always' : 'onHover'; return result; diff --git a/packages/devextreme/js/__internal/scheduler/workspaces/helpers/m_position_helper.ts b/packages/devextreme/js/__internal/scheduler/workspaces/helpers/m_position_helper.ts index ceb10873e7ac..4f06fb59f3ba 100644 --- a/packages/devextreme/js/__internal/scheduler/workspaces/helpers/m_position_helper.ts +++ b/packages/devextreme/js/__internal/scheduler/workspaces/helpers/m_position_helper.ts @@ -248,7 +248,6 @@ class GroupStrategyBase { let result = lastGroupRow[0].top + lastGroupRow[0].height; - // TODO remove while refactoring dual calculcations. // Should decrease allDayPanel amount due to the dual calculation corrections. if (isGroupedAllDayPanel) { result -= (groupIndex + 1) * this._getAllDayHeight(showAllDayPanel); diff --git a/packages/devextreme/js/__internal/scheduler/workspaces/m_agenda.ts b/packages/devextreme/js/__internal/scheduler/workspaces/m_agenda.ts index 831a3fcffc8a..392e7409f267 100644 --- a/packages/devextreme/js/__internal/scheduler/workspaces/m_agenda.ts +++ b/packages/devextreme/js/__internal/scheduler/workspaces/m_agenda.ts @@ -461,7 +461,6 @@ class SchedulerAgenda extends WorkSpace { } _getGroupRowHeight(groupRows) { - // TODO: hotfix if (!groupRows) { return; } diff --git a/packages/devextreme/js/__internal/scheduler/workspaces/m_virtual_scrolling.ts b/packages/devextreme/js/__internal/scheduler/workspaces/m_virtual_scrolling.ts index fe016b0bfdcb..4efee5b7cb4a 100644 --- a/packages/devextreme/js/__internal/scheduler/workspaces/m_virtual_scrolling.ts +++ b/packages/devextreme/js/__internal/scheduler/workspaces/m_virtual_scrolling.ts @@ -183,7 +183,6 @@ export class VirtualScrollingDispatcher { let cellWidth = this.options.getCellWidth(); const minCellWidth = this.options.getCellMinWidth(); - // TODO: Remove this after CSS refactoring if (!cellWidth || cellWidth < minCellWidth) { cellWidth = minCellWidth; } diff --git a/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space.ts b/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space.ts index 18e8d1868941..e0a40ce5b35a 100644 --- a/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space.ts +++ b/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space.ts @@ -97,7 +97,7 @@ interface RenderRWorkspaceOptions { const { tableCreator } = tableCreatorModule; -// TODO: The constant is needed so that the dragging is not sharp. To prevent small twitches +// The constant is needed so that the dragging is not sharp. To prevent small twitches const DRAGGING_MOUSE_FAULT = 10; // @ts-expect-error @@ -1277,7 +1277,6 @@ class SchedulerWorkSpace extends WidgetObserver { return this._dom_getDateCell(indexes); } - // TODO DOM adapter _dom_getDateCell(position) { return this._$dateTable .find(`tr:not(.${VIRTUAL_ROW_CLASS})`) @@ -1759,7 +1758,7 @@ class SchedulerWorkSpace extends WidgetObserver { scrolledRowCount += 1; } - // TODO horizontal v-scrolling + // horizontal v-scrolling const fullScrolledColumnCount = scrollableScrollLeft / cellWidth; let scrolledColumnCount = Math.floor(fullScrolledColumnCount); if (scrollableScrollLeft % cellWidth !== 0) { diff --git a/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space_month.ts b/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space_month.ts index 4b46d9cef846..f895a6c528aa 100644 --- a/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space_month.ts +++ b/packages/devextreme/js/__internal/scheduler/workspaces/m_work_space_month.ts @@ -45,8 +45,8 @@ class SchedulerWorkSpaceMonth extends SchedulerWorkSpace { }; } - // TODO: temporary fix, in the future, if we replace table layout on div layout, getCellWidth method need remove. Details in T712431 - // TODO: there is a test for this bug, when changing the layout, the test will also be useless + // temporary fix, in the future, if we replace table layout on div layout, getCellWidth method need remove. Details in T712431 + // there is a test for this bug, when changing the layout, the test will also be useless getCellWidth() { return this.cache.get('cellWidth', () => { const DAYS_IN_WEEK = 7;