Description: tsc workaround
Author: Yadd <yadd@debian.org>
Forwarded: not-needed
Last-Update: 2024-04-27

--- a/bqplot/js/src/Axis.ts
+++ b/bqplot/js/src/Axis.ts
@@ -912,8 +912,10 @@
       let div = 1000;
       if (Math.floor(diff / div) === 0) {
         //diff is less than a second
+// @ts-ignore
         if (d3.utcSecond(date) < date) {
           return format_millisecond(date);
+// @ts-ignore
         } else if (d3.utcMinute(date) < date) {
           return format_second(date);
         } else {
@@ -921,6 +923,7 @@
         }
       } else if (Math.floor(diff / (div *= 60)) === 0) {
         //diff is less than a minute
+// @ts-ignore
         if (d3.utcMinute(date) < date) {
           return format_second(date);
         } else {
@@ -928,6 +931,7 @@
         }
       } else if (Math.floor(diff / (div *= 60)) === 0) {
         // diff is less than an hour
+// @ts-ignore
         if (d3.utcHour(date) < date) {
           return format_minute(date);
         } else {
@@ -935,6 +939,7 @@
         }
       } else if (Math.floor(diff / (div *= 24)) === 0) {
         //diff is less than a day
+// @ts-ignore
         if (d3.utcDay(date) < date) {
           return format_hour(date);
         } else {
@@ -942,6 +947,7 @@
         }
       } else if (Math.floor(diff / (div *= 27)) === 0) {
         //diff is less than a month
+// @ts-ignore
         if (d3.utcMonth(date) < date) {
           return format_day(date);
         } else {
@@ -949,6 +955,7 @@
         }
       } else if (Math.floor(diff / (div *= 12)) === 0) {
         //diff is less than a year
+// @ts-ignore
         if (d3.utcMonth(date) < date) {
           return format_day(date);
         } else {
@@ -956,8 +963,10 @@
         }
       } else {
         //diff is more than a year
+// @ts-ignore
         if (d3.utcMonth(date) < date) {
           return format_day(date);
+// @ts-ignore
         } else if (d3.utcYear(date) < date) {
           return format_month(date);
         } else {
--- a/bqplot/js/src/Figure.ts
+++ b/bqplot/js/src/Figure.ts
@@ -1119,6 +1119,7 @@
       // extract all CSS variables, and generate a piece of css to define the variables
       const cssVariables = cssCode.match(/(--\w[\w-]*)/g) || [];
       const cssVariableCode =
+// @ts-ignore
         cssVariables.reduce((cssCode, variable) => {
           const value = computedStyle.getPropertyValue(variable);
           return `${cssCode}\n\t${variable}: ${value};`;
--- a/bqplot/js/src/Map.ts
+++ b/bqplot/js/src/Map.ts
@@ -381,9 +381,11 @@
     this.model.set('selected', []);
     this.touch();
     this.highlight_g.selectAll('.selected').remove();
+// @ts-ignore
     d3.select(this.d3el.node().parentNode)
       .selectAll('path')
       .classed('selected', false);
+// @ts-ignore
     d3.select(this.d3el.node().parentNode)
       .selectAll('path')
       .classed('hovered', false);
--- a/js/cellrenderer.ts
+++ b/js/cellrenderer.ts
@@ -75,6 +75,7 @@
 
     this.updateRenderer();
 
+// @ts-ignore
     this.on('renderer-needs-update', this.updateRenderer.bind(this));
   }
 
@@ -125,6 +126,7 @@
         ...processors,
       };
 
+// @ts-ignore
       this.trigger('renderer-needs-update');
     });
   }
@@ -145,6 +147,7 @@
 
     this.renderer = this.createRenderer(options);
 
+// @ts-ignore
     this.trigger('renderer-changed');
   }
 
@@ -156,6 +159,7 @@
    * @return The PromiseLike to update the processor view.
    */
   protected updateProcessor(name: string): any {
+// @ts-ignore
     const processor: any = this.model.get(name);
 
     if (Scalar.isScalar(processor)) {
@@ -163,7 +167,9 @@
     }
 
     // Assuming it is an VegaExprModel or a Scale model
+// @ts-ignore
     this.listenTo(processor, 'change', () => {
+// @ts-ignore
       this.trigger('renderer-needs-update');
     });
 
@@ -303,6 +309,7 @@
       this.model.on_some_change(
         ['missing', 'format_type'],
         () => {
+// @ts-ignore
           this.trigger('renderer-needs-update');
         },
         this,
@@ -324,6 +331,7 @@
       let formattedValue: string;
 
       if (config.value === null) {
+// @ts-ignore
         formattedValue = this.model.get('missing');
       } else {
         const formattingRule = this.process('format', config, null);
@@ -331,6 +339,7 @@
         if (formattingRule === null) {
           formattedValue = String(config.value);
         } else {
+// @ts-ignore
           if (this.model.get('format_type') == 'time') {
             formattedValue = String(
               d3TimeFormat.timeFormat(formattingRule)(new Date(config.value)),
--- a/js/datagrid.ts
+++ b/js/datagrid.ts
@@ -166,14 +166,19 @@
     this.updateDataSync = this.updateDataSync.bind(this);
     this.syncTransformState = this.syncTransformState.bind(this);
 
+// @ts-ignore
     this.on('change:_data', this.updateData.bind(this));
+// @ts-ignore
     this.on('change:_transforms', this.updateTransforms.bind(this));
+// @ts-ignore
     this.on('change:selection_mode', this.updateSelectionModel, this);
+// @ts-ignore
     this.on('change:selections', this.updateSelections, this);
     this.updateData();
     this.updateTransforms();
     this.updateSelectionModel();
 
+// @ts-ignore
     this.on('msg:custom', (content) => {
       if (content.event_type === 'cell-changed') {
         this.data_model.setModelData(
@@ -198,6 +203,7 @@
         break;
       case 'cell-edit-event':
         // Update data in widget model
+// @ts-ignore
         const newData = this.get('_data') as DataSource;
         newData.data[msg.column][msg.row] = msg.value;
         this.set('_data', newData);
@@ -239,6 +245,7 @@
     this.data_model.dataSync.connect(this.updateDataSync);
 
     this.updateTransforms();
+// @ts-ignore
     this.trigger('data-model-changed');
     this.updateSelectionModel();
   }
@@ -247,6 +254,7 @@
     if (this.selectionModel) {
       this.selectionModel.clear();
     }
+// @ts-ignore
     this.data_model.replaceTransforms(this.get('_transforms'));
   }
 
@@ -255,6 +263,7 @@
       this.selectionModel.clear();
     }
 
+// @ts-ignore
     const selectionMode = this.get('selection_mode');
 
     if (selectionMode === 'none') {
@@ -266,6 +275,7 @@
       dataModel: this.data_model,
     });
     this.selectionModel.selectionMode = selectionMode;
+// @ts-ignore
     this.trigger('selection-model-changed');
 
     this.selectionModel.changed.connect(
@@ -335,6 +345,7 @@
 
     this.synchingWithKernel = true;
 
+// @ts-ignore
     const selections = this.get('selections');
     this.selectionModel.clear();
 
@@ -354,6 +365,7 @@
   }
 
   get data(): DataSource {
+// @ts-ignore
     return this.get('_data');
   }
 
@@ -486,6 +498,7 @@
   render(): Promise<void> {
     this.el.classList.add('datagrid-container');
     window.addEventListener('resize', this.manageResizeEvent);
+// @ts-ignore
     this.once('remove', () => {
       window.removeEventListener('resize', this.manageResizeEvent);
     });
@@ -507,16 +520,24 @@
 
     this.grid = new FeatherGrid({
       defaultSizes: {
+// @ts-ignore
         rowHeight: this.model.get('base_row_size'),
+// @ts-ignore
         columnWidth: this.model.get('base_column_size'),
+// @ts-ignore
         rowHeaderWidth: this.model.get('base_row_header_size'),
+// @ts-ignore
         columnHeaderHeight: this.model.get('base_column_header_size'),
       },
+// @ts-ignore
       headerVisibility: this.model.get('header_visibility'),
+// @ts-ignore
       style: grid_style,
     });
 
+// @ts-ignore
     this.grid.columnWidths = this.model.get('column_widths');
+// @ts-ignore
     this.grid.editable = this.model.get('editable');
     // this.default_renderer must be created after setting grid.isLightTheme
     // for proper color variable initialization
@@ -556,37 +577,49 @@
     // argument to model.send() function in the model class.
     this.model._view_callbacks = this.callbacks();
 
+// @ts-ignore
     this.model.on('data-model-changed', () => {
       this.grid.dataModel = this.model.data_model;
       this.handleColumnAutoFit();
     });
 
+// @ts-ignore
     this.model.on('change:base_row_size', () => {
+// @ts-ignore
       this.grid.baseRowSize = this.model.get('base_row_size');
     });
 
+// @ts-ignore
     this.model.on('change:base_column_size', () => {
+// @ts-ignore
       this.grid.baseColumnSize = this.model.get('base_column_size');
     });
 
+// @ts-ignore
     this.model.on('change:column_widths', () => {
       this.grid.columnWidths = this.model.get('column_widths');
     });
 
+// @ts-ignore
     this.model.on('change:base_row_header_size', () => {
+// @ts-ignore
       this.grid.baseRowHeaderSize = this.model.get('base_row_header_size');
     });
 
+// @ts-ignore
     this.model.on('change:base_column_header_size', () => {
+// @ts-ignore
       this.grid.baseColumnHeaderSize = this.model.get(
         'base_column_header_size',
       );
     });
 
+// @ts-ignore
     this.model.on('change:header_visibility', () => {
       this.grid.headerVisibility = this.model.get('header_visibility');
     });
 
+// @ts-ignore
     this.model.on_some_change(
       [
         'corner_renderer',
@@ -603,11 +636,15 @@
       this,
     );
 
+// @ts-ignore
     this.model.on('selection-model-changed', () => {
       this.grid.selectionModel = this.model.selectionModel;
     });
+// @ts-ignore
 
+// @ts-ignore
     this.model.on('change:editable', () => {
+// @ts-ignore
       this.grid.editable = this.model.get('editable');
     });
 
@@ -619,6 +656,7 @@
       this,
     );
 
+// @ts-ignore
     if (this.model.get('auto_fit_columns')) {
       this.handleColumnAutoFit();
     }
@@ -632,14 +670,17 @@
 
   private handleColumnAutoFit() {
     // Check whether we need to auto-fit or revert to base size.
+// @ts-ignore
     const shouldAutoFit = this.model.get('auto_fit_columns');
     if (!shouldAutoFit) {
+// @ts-ignore
       this.grid.baseColumnSize = this.model.get('base_column_size');
       // Terminate call here if not auto-fitting.
       return;
     }
 
     // Retrieve user-defined auto-fit params
+// @ts-ignore
     let { area, padding, numCols } = this.model.get('auto_fit_params');
 
     // Data validation on params
@@ -654,27 +695,33 @@
   private updateRenderers() {
     // Unlisten to previous renderers
     if (this.default_renderer) {
+// @ts-ignore
       this.stopListening(this.default_renderer, 'renderer-changed');
     }
     if (this.header_renderer) {
+// @ts-ignore
       this.stopListening(this.header_renderer, 'renderer-changed');
     }
     if (this.corner_renderer) {
+// @ts-ignore
       this.stopListening(this.corner_renderer, 'renderer-changed');
     }
     for (const key in this.renderers) {
+// @ts-ignore
       this.stopListening(this.renderers[key], 'renderer-changed');
     }
 
     // And create views for new renderers
     const promises = [];
 
+// @ts-ignore
     const default_renderer = this.model.get('default_renderer');
     promises.push(
       this.create_child_view(default_renderer).then(
         (defaultRendererView: any) => {
           this.default_renderer = defaultRendererView;
 
+// @ts-ignore
           this.listenTo(
             this.default_renderer,
             'renderer-changed',
@@ -684,6 +731,7 @@
       ),
     );
 
+// @ts-ignore
     const corner_renderer = this.model.get('corner_renderer');
     if (corner_renderer) {
       promises.push(
@@ -691,6 +739,7 @@
           (cornerRendererView: any) => {
             this.corner_renderer = cornerRendererView;
 
+// @ts-ignore
             this.listenTo(
               this.corner_renderer,
               'renderer-changed',
@@ -701,6 +750,7 @@
       );
     }
 
+// @ts-ignore
     const header_renderer = this.model.get('header_renderer');
     if (header_renderer) {
       promises.push(
@@ -708,6 +758,7 @@
           (headerRendererView: any) => {
             this.header_renderer = headerRendererView;
 
+// @ts-ignore
             this.listenTo(
               this.header_renderer,
               'renderer-changed',
@@ -720,6 +771,7 @@
 
     const renderer_promises: Dict<Promise<any>> = {};
     _.each(
+// @ts-ignore
       this.model.get('renderers'),
       (model: CellRendererModel, key: string) => {
         renderer_promises[key] = this.create_child_view(model);
@@ -731,6 +783,7 @@
           this.renderers = rendererViews;
 
           for (const key in rendererViews) {
+// @ts-ignore
             this.listenTo(
               rendererViews[key],
               'renderer-changed',
@@ -775,6 +828,7 @@
       });
     }
 
+// @ts-ignore
     const hasHeaderRenderer = this.model.get('header_renderer') !== null;
     let columnHeaderRenderer = null;
     if (this.header_renderer && hasHeaderRenderer) {
--- a/js/feathergrid.ts
+++ b/js/feathergrid.ts
@@ -474,6 +474,7 @@
 
     // Resetting grid style if theme changes.
     if (this.backboneModel) {
+// @ts-ignore
       this.grid.style = this.backboneModel.get('grid_style');
     }
     // Always apply FeatherGrid Theme
@@ -861,6 +862,7 @@
     // been passed for the former.
     let hasCornerRenderer = false;
     if (this.backboneModel) {
+// @ts-ignore
       hasCornerRenderer = this.backboneModel.get('corner_renderer') !== null;
     }
 
--- a/js/vegaexpr.ts
+++ b/js/vegaexpr.ts
@@ -49,6 +49,7 @@
     this._codegen = vegaExpressions.codegen(codegen_params);
 
     this.updateFunction();
+// @ts-ignore
     this.on('change:value', this.updateFunction.bind(this));
   }
 
@@ -91,6 +92,7 @@
 
   private updateFunction() {
     let parsedValue: ParsedVegaExpr = this._codegen(
+// @ts-ignore
       vegaExpressions.parse(this.get('value')),
     );
 
--- a/tests/js/datagrid.test.ts
+++ b/tests/js/datagrid.test.ts
@@ -48,6 +48,7 @@
     grid.model.set('_data', testData.set2.data);
 
     return new Promise<void>((resolve, reject) => {
+// @ts-ignore
       grid.model.on('msg:custom', (content) => {
         if (content.event_type === 'cell-changed') {
           expect(content.row).toBe(row);
@@ -255,6 +256,7 @@
       const widgetManager = new MockWidgetManager();
       const comm = new MockComm();
       const gridModel = new DataGridModel(
+// @ts-ignore
         { ...options.modelAttributes, _data: options.data },
         {
           model_id: 'testModel',
