Compare commits
5 Commits
88679c0c9a
...
main
Author | SHA1 | Date | |
---|---|---|---|
|
b1db4ea590 | ||
822ddb1274 | |||
|
672dd6d4f1 | ||
|
b3ac73d903 | ||
|
f8554dd5e7 |
@@ -136,7 +136,7 @@ jobs:
|
|||||||
replace-in-files --regex='"hosturl".*' --replacement='hosturl:"http://localhost:4200",' ./cypress.config.ts
|
replace-in-files --regex='"hosturl".*' --replacement='hosturl:"http://localhost:4200",' ./cypress.config.ts
|
||||||
cat ./cypress.config.ts
|
cat ./cypress.config.ts
|
||||||
# Start frontend and run cypress
|
# Start frontend and run cypress
|
||||||
npm start & npx wait-on http://localhost:4200 && npx cypress run --browser chrome --spec "cypress/e2e/liveness.cy.ts,cypress/e2e/editor.cy.ts,cypress/e2e/excel-multi-load.cy.ts,cypress/e2e/excel.cy.ts,cypress/e2e/csv.cy.ts,cypress/e2e/filtering.cy.ts,cypress/e2e/licensing.cy.ts"
|
npx ng serve --host 0.0.0.0 --port 4200 & npx wait-on http://localhost:4200 && npx cypress run --browser chrome --spec "cypress/e2e/liveness.cy.ts,cypress/e2e/editor.cy.ts,cypress/e2e/excel-multi-load.cy.ts,cypress/e2e/excel.cy.ts,cypress/e2e/csv.cy.ts,cypress/e2e/filtering.cy.ts,cypress/e2e/licensing.cy.ts"
|
||||||
|
|
||||||
- name: Zip Cypress videos
|
- name: Zip Cypress videos
|
||||||
if: always()
|
if: always()
|
||||||
|
21
CHANGELOG.md
21
CHANGELOG.md
@@ -1,3 +1,24 @@
|
|||||||
|
## [7.1.1](https://git.datacontroller.io/dc/dc/compare/v7.1.0...v7.1.1) (2025-07-24)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **viewboxes:** hot v16 fails to load because of relative height `100%` ([672dd6d](https://git.datacontroller.io/dc/dc/commit/672dd6d4f1fda27e3706dd7caa42b45922319497))
|
||||||
|
|
||||||
|
# [7.1.0](https://git.datacontroller.io/dc/dc/compare/v7.0.3...v7.1.0) (2025-07-23)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* adapter bump ([b495c41](https://git.datacontroller.io/dc/dc/commit/b495c41626c85b7c4141d9361e4d3a826efd6c05))
|
||||||
|
* bumping CLI to 4.12.10 ([a08a717](https://git.datacontroller.io/dc/dc/commit/a08a717ca8d49e8a7d63f3fd91c6a7d42a1d6d8b))
|
||||||
|
* bumping sasjs/core and sasjs/cli ([63e9af4](https://git.datacontroller.io/dc/dc/commit/63e9af402ed65f6be4426e76ee1376a40e6ed097))
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* improving accessibility score up to 100, hot update to v16.0.1 ([71c308d](https://git.datacontroller.io/dc/dc/commit/71c308d052400ecedc03f8020a5a69471ac6b116))
|
||||||
|
|
||||||
## [7.0.3](https://git.datacontroller.io/dc/dc/compare/v7.0.2...v7.0.3) (2025-06-26)
|
## [7.0.3](https://git.datacontroller.io/dc/dc/compare/v7.0.2...v7.0.3) (2025-06-26)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -401,7 +401,7 @@
|
|||||||
[columns]="viewboxTables[viewboxTableIndex].hotTable.columns"
|
[columns]="viewboxTables[viewboxTableIndex].hotTable.columns"
|
||||||
[filters]="true"
|
[filters]="true"
|
||||||
[dropdownMenu]="viewboxTables[viewboxTableIndex].hotTable.dropdownMenu"
|
[dropdownMenu]="viewboxTables[viewboxTableIndex].hotTable.dropdownMenu"
|
||||||
[height]="viewboxTables[viewboxTableIndex].hotTable.height"
|
[height]="calculateTableHeight(viewbox)"
|
||||||
stretchH="all"
|
stretchH="all"
|
||||||
[cells]="viewboxTables[viewboxTableIndex].hotTable.cells"
|
[cells]="viewboxTables[viewboxTableIndex].hotTable.cells"
|
||||||
[maxRows]="viewboxTables[viewboxTableIndex].hotTable.maxRows"
|
[maxRows]="viewboxTables[viewboxTableIndex].hotTable.maxRows"
|
||||||
|
@@ -111,7 +111,7 @@ export class ViewboxesComponent implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
},
|
},
|
||||||
columns: [],
|
columns: [],
|
||||||
cols: [],
|
cols: [],
|
||||||
height: '100%',
|
height: 200, //WORKAROUND: Changed from '100%' to fixed pixel value because otherwize hot does not load
|
||||||
settings: {},
|
settings: {},
|
||||||
hiddenColumns: true,
|
hiddenColumns: true,
|
||||||
manualColumnMove: false,
|
manualColumnMove: false,
|
||||||
@@ -513,6 +513,11 @@ export class ViewboxesComponent implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
this.helperService.debounceCall(1000, () => {
|
this.helperService.debounceCall(1000, () => {
|
||||||
this.viewboxChanged()
|
this.viewboxChanged()
|
||||||
this.eventService.dispatchEvent('resize')
|
this.eventService.dispatchEvent('resize')
|
||||||
|
|
||||||
|
// Refresh all viewbox tables after resize
|
||||||
|
this.viewboxes.forEach((viewbox) => {
|
||||||
|
this.refreshTableAfterResize(viewbox)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -672,6 +677,11 @@ export class ViewboxesComponent implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.setAllHandleTransform()
|
this.setAllHandleTransform()
|
||||||
|
|
||||||
|
// Refresh all tables after snap to grid
|
||||||
|
this.viewboxes.forEach((viewbox) => {
|
||||||
|
this.refreshTableAfterResize(viewbox)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -713,6 +723,11 @@ export class ViewboxesComponent implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
viewbox.minimized = false
|
viewbox.minimized = false
|
||||||
|
|
||||||
this.viewboxChanged()
|
this.viewboxChanged()
|
||||||
|
|
||||||
|
// Refresh table after restoring
|
||||||
|
setTimeout(() => {
|
||||||
|
this.refreshTableAfterResize(viewbox)
|
||||||
|
}, 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
collapse(viewbox: Viewbox) {
|
collapse(viewbox: Viewbox) {
|
||||||
@@ -723,6 +738,11 @@ export class ViewboxesComponent implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
expand(viewbox: Viewbox) {
|
expand(viewbox: Viewbox) {
|
||||||
viewbox.collapsed = false
|
viewbox.collapsed = false
|
||||||
this.viewboxChanged()
|
this.viewboxChanged()
|
||||||
|
|
||||||
|
// Refresh table after expanding
|
||||||
|
setTimeout(() => {
|
||||||
|
this.refreshTableAfterResize(viewbox)
|
||||||
|
}, 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1158,6 +1178,35 @@ export class ViewboxesComponent implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* WORKAROUND: This is a workaround to calculate the height of the table since `100%`
|
||||||
|
* makes hot not load
|
||||||
|
* Calculate available height for Handsontable
|
||||||
|
* @param viewbox The viewbox to calculate height for
|
||||||
|
* @returns Available height in pixels
|
||||||
|
*/
|
||||||
|
calculateTableHeight(viewbox: Viewbox): number {
|
||||||
|
// Calculate the exact height of the content div
|
||||||
|
const dragHandleHeight = 20
|
||||||
|
const searchFormHeight = 38
|
||||||
|
// Return the exact remaining height for the table
|
||||||
|
return viewbox.height - dragHandleHeight - searchFormHeight
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refresh Handsontable instance after resize
|
||||||
|
* @param viewbox The viewbox to refresh
|
||||||
|
*/
|
||||||
|
refreshTableAfterResize(viewbox: Viewbox): void {
|
||||||
|
const hotInstance = this.getViewboxHotInstance(viewbox.id)
|
||||||
|
if (hotInstance) {
|
||||||
|
// Force the table to recalculate its dimensions
|
||||||
|
setTimeout(() => {
|
||||||
|
hotInstance.refreshDimensions()
|
||||||
|
}, 100)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param viewboxId
|
* @param viewboxId
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "dcfrontend",
|
"name": "dcfrontend",
|
||||||
"version": "7.0.3",
|
"version": "7.1.1",
|
||||||
"description": "Data Controller",
|
"description": "Data Controller",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@saithodev/semantic-release-gitea": "^2.1.0",
|
"@saithodev/semantic-release-gitea": "^2.1.0",
|
||||||
|
Reference in New Issue
Block a user