@adaptabletools/adaptable-mcp 0.1.0-canary.1 → 0.1.0-canary.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/data/changes/21-22.json +542 -0
- package/data/changes/22-23.json +639 -0
- package/data/changes/23-24.json +1874 -0
- package/data/manifest.snapshot.json +28 -10
- package/data/templates/angular/src/app/adaptableOptions.ts +40 -0
- package/data/templates/angular/src/app/agGridModules.ts +7 -0
- package/data/templates/angular/src/app/app.component.ts +66 -0
- package/data/templates/angular/src/app/app.module.ts +14 -0
- package/data/templates/angular/src/app/columnDefs.ts +121 -0
- package/data/templates/angular/src/app/gridOptions.ts +32 -0
- package/data/templates/angular/src/app/onAdaptableReady.ts +11 -0
- package/data/templates/angular/src/app/rowData.ts +851 -0
- package/data/templates/angular/src/app/styles.css +50 -0
- package/data/templates/angular/src/index.html +17 -0
- package/data/templates/angular/src/main.ts +18 -0
- package/data/templates/angular/src/polyfills.ts +1 -0
- package/data/templates/angular/tsconfig.json +16 -0
- package/data/templates/manifest.json +406 -0
- package/data/templates/react/src/App.tsx +71 -0
- package/data/templates/react/src/adaptableOptions.ts +40 -0
- package/data/templates/react/src/agGridModules.ts +7 -0
- package/data/templates/react/src/columnDefs.ts +121 -0
- package/data/templates/react/src/gridOptions.ts +32 -0
- package/data/templates/react/src/index.tsx +8 -0
- package/data/templates/react/src/onAdaptableReady.ts +11 -0
- package/data/templates/react/src/rowData.ts +851 -0
- package/data/templates/react/src/styles.css +50 -0
- package/data/templates/react/tsconfig.json +9 -0
- package/data/templates/vanilla/index.html +18 -0
- package/data/templates/vanilla/src/adaptableOptions.ts +40 -0
- package/data/templates/vanilla/src/agGridModules.ts +7 -0
- package/data/templates/vanilla/src/columnDefs.ts +121 -0
- package/data/templates/vanilla/src/gridOptions.ts +32 -0
- package/data/templates/vanilla/src/index.ts +41 -0
- package/data/templates/vanilla/src/onAdaptableReady.ts +11 -0
- package/data/templates/vanilla/src/rowData.ts +851 -0
- package/data/templates/vanilla/src/styles.css +50 -0
- package/data/templates/vanilla/tsconfig.json +14 -0
- package/data/templates/vue/.babelrc +3 -0
- package/data/templates/vue/public/index.html +19 -0
- package/data/templates/vue/src/App.vue +35 -0
- package/data/templates/vue/src/adaptableOptions.ts +40 -0
- package/data/templates/vue/src/agGridModules.ts +7 -0
- package/data/templates/vue/src/columnDefs.ts +121 -0
- package/data/templates/vue/src/gridOptions.ts +32 -0
- package/data/templates/vue/src/main.ts +6 -0
- package/data/templates/vue/src/onAdaptableReady.ts +11 -0
- package/data/templates/vue/src/rowData.ts +851 -0
- package/data/templates/vue/src/shims-vue.d.ts +6 -0
- package/data/templates/vue/src/styles.css +50 -0
- package/data/templates/vue/tsconfig.json +30 -0
- package/dist/bin.js +7 -0
- package/dist/bin.js.map +1 -1
- package/dist/cli/index.js +8 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/anonymise/anonymise.js +315 -0
- package/dist/core/anonymise/anonymise.js.map +1 -0
- package/dist/core/anonymise/capabilities.js +94 -0
- package/dist/core/anonymise/capabilities.js.map +1 -0
- package/dist/core/aql/capabilities.js +339 -0
- package/dist/core/aql/capabilities.js.map +1 -0
- package/dist/core/aql/check.js +204 -0
- package/dist/core/aql/check.js.map +1 -0
- package/dist/core/aql/engine.js +92 -0
- package/dist/core/aql/engine.js.map +1 -0
- package/dist/core/aql/functions.js +108 -0
- package/dist/core/aql/functions.js.map +1 -0
- package/dist/core/aql/migrate.js +62 -0
- package/dist/core/aql/migrate.js.map +1 -0
- package/dist/core/capabilities.js +9 -3
- package/dist/core/capabilities.js.map +1 -1
- package/dist/core/changes/capabilities.js +92 -0
- package/dist/core/changes/capabilities.js.map +1 -0
- package/dist/core/changes/changes.js +101 -0
- package/dist/core/changes/changes.js.map +1 -0
- package/dist/core/changes/grep.js +183 -0
- package/dist/core/changes/grep.js.map +1 -0
- package/dist/core/changes/records.js +172 -0
- package/dist/core/changes/records.js.map +1 -0
- package/dist/core/changes/render-md.js +101 -0
- package/dist/core/changes/render-md.js.map +1 -0
- package/dist/core/changes/with-docs.js +86 -0
- package/dist/core/changes/with-docs.js.map +1 -0
- package/dist/core/compat/capabilities.js +1 -1
- package/dist/core/compat/capabilities.js.map +1 -1
- package/dist/core/context/capabilities.js +1 -1
- package/dist/core/context/capabilities.js.map +1 -1
- package/dist/core/convert/capabilities.js +86 -0
- package/dist/core/convert/capabilities.js.map +1 -0
- package/dist/core/convert/coldefs.js +313 -0
- package/dist/core/convert/coldefs.js.map +1 -0
- package/dist/core/docs/cache.js +1 -1
- package/dist/core/docs/capabilities.js +1 -5
- package/dist/core/docs/capabilities.js.map +1 -1
- package/dist/core/docs/hosts.js +2 -2
- package/dist/core/docs/hosts.js.map +1 -1
- package/dist/core/extract/imports.js +163 -0
- package/dist/core/extract/imports.js.map +1 -0
- package/dist/core/extract/input.js +140 -0
- package/dist/core/extract/input.js.map +1 -0
- package/dist/core/extract/line-map.js +90 -0
- package/dist/core/extract/line-map.js.map +1 -0
- package/dist/core/extract/ts-literal.js +963 -0
- package/dist/core/extract/ts-literal.js.map +1 -0
- package/dist/core/migrate/capabilities.js +143 -0
- package/dist/core/migrate/capabilities.js.map +1 -0
- package/dist/core/migrate/leftovers.js +119 -0
- package/dist/core/migrate/leftovers.js.map +1 -0
- package/dist/core/migrate/state.js +295 -0
- package/dist/core/migrate/state.js.map +1 -0
- package/dist/core/packages/cache.js +2 -1
- package/dist/core/packages/cache.js.map +1 -1
- package/dist/core/register.js +8 -0
- package/dist/core/register.js.map +1 -1
- package/dist/core/scaffold/capabilities.js +434 -0
- package/dist/core/scaffold/capabilities.js.map +1 -0
- package/dist/core/scaffold/generate.js +409 -0
- package/dist/core/scaffold/generate.js.map +1 -0
- package/dist/core/scaffold/infer.js +441 -0
- package/dist/core/scaffold/infer.js.map +1 -0
- package/dist/core/scaffold/overlay.js +290 -0
- package/dist/core/scaffold/overlay.js.map +1 -0
- package/dist/core/scaffold/readers/csv.js +146 -0
- package/dist/core/scaffold/readers/csv.js.map +1 -0
- package/dist/core/scaffold/readers/dataset.js +53 -0
- package/dist/core/scaffold/readers/dataset.js.map +1 -0
- package/dist/core/scaffold/readers/index.js +62 -0
- package/dist/core/scaffold/readers/index.js.map +1 -0
- package/dist/core/scaffold/readers/json.js +101 -0
- package/dist/core/scaffold/readers/json.js.map +1 -0
- package/dist/core/scaffold/readers/xlsx.js +81 -0
- package/dist/core/scaffold/readers/xlsx.js.map +1 -0
- package/dist/core/scaffold/suggestions.js +57 -0
- package/dist/core/scaffold/suggestions.js.map +1 -0
- package/dist/core/scaffold/templates.js +59 -0
- package/dist/core/scaffold/templates.js.map +1 -0
- package/dist/core/setup/audit.js +91 -0
- package/dist/core/setup/audit.js.map +1 -0
- package/dist/core/setup/capabilities.js +80 -0
- package/dist/core/setup/capabilities.js.map +1 -0
- package/dist/core/setup/context.js +118 -0
- package/dist/core/setup/context.js.map +1 -0
- package/dist/core/setup/rules/cell-data-type.js +40 -0
- package/dist/core/setup/rules/cell-data-type.js.map +1 -0
- package/dist/core/setup/rules/coldef-ownership.js +67 -0
- package/dist/core/setup/rules/coldef-ownership.js.map +1 -0
- package/dist/core/setup/rules/css-import.js +34 -0
- package/dist/core/setup/rules/css-import.js.map +1 -0
- package/dist/core/setup/rules/direct-grid.js +42 -0
- package/dist/core/setup/rules/direct-grid.js.map +1 -0
- package/dist/core/setup/rules/index.js +53 -0
- package/dist/core/setup/rules/index.js.map +1 -0
- package/dist/core/setup/rules/licence-literal.js +23 -0
- package/dist/core/setup/rules/licence-literal.js.map +1 -0
- package/dist/core/setup/rules/modules.js +86 -0
- package/dist/core/setup/rules/modules.js.map +1 -0
- package/dist/core/setup/rules/react-stable-refs.js +20 -0
- package/dist/core/setup/rules/react-stable-refs.js.map +1 -0
- package/dist/core/setup/rules/ready-hook.js +33 -0
- package/dist/core/setup/rules/ready-hook.js.map +1 -0
- package/dist/core/setup/rules/required-options.js +43 -0
- package/dist/core/setup/rules/required-options.js.map +1 -0
- package/dist/core/setup/rules/rule.js +10 -0
- package/dist/core/setup/rules/rule.js.map +1 -0
- package/dist/core/setup/rules/version-skew.js +65 -0
- package/dist/core/setup/rules/version-skew.js.map +1 -0
- package/dist/core/state/capabilities.js +78 -0
- package/dist/core/state/capabilities.js.map +1 -0
- package/dist/core/state/check.js +216 -0
- package/dist/core/state/check.js.map +1 -0
- package/dist/core/state/columns.js +130 -0
- package/dist/core/state/columns.js.map +1 -0
- package/dist/core/state/did-you-mean.js +83 -0
- package/dist/core/state/did-you-mean.js.map +1 -0
- package/dist/core/state/expressions.js +170 -0
- package/dist/core/state/expressions.js.map +1 -0
- package/dist/core/state/known-names.js +96 -0
- package/dist/core/state/known-names.js.map +1 -0
- package/dist/core/state/rules/aql-legacy-shape.js +42 -0
- package/dist/core/state/rules/aql-legacy-shape.js.map +1 -0
- package/dist/core/state/rules/aql-missing.js +21 -0
- package/dist/core/state/rules/aql-missing.js.map +1 -0
- package/dist/core/state/rules/aql-syntax.js +77 -0
- package/dist/core/state/rules/aql-syntax.js.map +1 -0
- package/dist/core/state/rules/calculated-settings.js +23 -0
- package/dist/core/state/rules/calculated-settings.js.map +1 -0
- package/dist/core/state/rules/column-id-exists.js +29 -0
- package/dist/core/state/rules/column-id-exists.js.map +1 -0
- package/dist/core/state/rules/dashboard-module-names.js +31 -0
- package/dist/core/state/rules/dashboard-module-names.js.map +1 -0
- package/dist/core/state/rules/dashboard-toolbar-names.js +48 -0
- package/dist/core/state/rules/dashboard-toolbar-names.js.map +1 -0
- package/dist/core/state/rules/format-column-pivot-display-format.js +43 -0
- package/dist/core/state/rules/format-column-pivot-display-format.js.map +1 -0
- package/dist/core/state/rules/helpers.js +39 -0
- package/dist/core/state/rules/helpers.js.map +1 -0
- package/dist/core/state/rules/index.js +80 -0
- package/dist/core/state/rules/index.js.map +1 -0
- package/dist/core/state/rules/layout-column-refs.js +60 -0
- package/dist/core/state/rules/layout-column-refs.js.map +1 -0
- package/dist/core/state/rules/layout-current-exists.js +27 -0
- package/dist/core/state/rules/layout-current-exists.js.map +1 -0
- package/dist/core/state/rules/layout-non-empty.js +32 -0
- package/dist/core/state/rules/layout-non-empty.js.map +1 -0
- package/dist/core/state/rules/rule.js +2 -0
- package/dist/core/state/rules/rule.js.map +1 -0
- package/dist/core/state/rules/scope-column-refs.js +32 -0
- package/dist/core/state/rules/scope-column-refs.js.map +1 -0
- package/dist/core/state/rules/scope-shape.js +61 -0
- package/dist/core/state/rules/scope-shape.js.map +1 -0
- package/dist/core/state/rules/state-unique-name.js +40 -0
- package/dist/core/state/rules/state-unique-name.js.map +1 -0
- package/dist/core/state/rules/state-unknown-section.js +30 -0
- package/dist/core/state/rules/state-unknown-section.js.map +1 -0
- package/dist/core/state/rules/type-discriminator.js +70 -0
- package/dist/core/state/rules/type-discriminator.js.map +1 -0
- package/dist/core/state/type-check.js +349 -83
- package/dist/core/state/type-check.js.map +1 -1
- package/dist/mcp/index.js +104 -16
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/server.js +110 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/skills/adaptable-debug/SKILL.md +145 -0
- package/dist/skills/adaptable-debug/VERSION.md +1 -0
- package/dist/skills/adaptable-debug/references/_shared/agents-snippet.md +3 -0
- package/dist/skills/adaptable-debug/references/_shared/capabilities.md +35 -0
- package/dist/skills/adaptable-debug/references/_shared/conversation.md +20 -0
- package/dist/skills/adaptable-debug/references/_shared/docs-protocol.md +36 -0
- package/dist/skills/adaptable-debug/references/_shared/grounding.md +54 -0
- package/dist/skills/adaptable-debug/references/_shared/guards.md +20 -0
- package/dist/skills/adaptable-debug/references/_shared/validation-loop.md +42 -0
- package/dist/skills/adaptable-debug/references/devtools-api.md +36 -0
- package/dist/skills/adaptable-debug/references/feedback-template.md +36 -0
- package/dist/skills/adaptable-debug/references/symptoms.md +37 -0
- package/dist/skills/adaptable-debug/references/ticket-template.md +50 -0
- package/dist/skills/adaptable-dev/SKILL.md +97 -0
- package/dist/skills/adaptable-dev/VERSION.md +1 -0
- package/dist/skills/adaptable-dev/references/_shared/agents-snippet.md +3 -0
- package/dist/skills/adaptable-dev/references/_shared/capabilities.md +35 -0
- package/dist/skills/adaptable-dev/references/_shared/conversation.md +20 -0
- package/dist/skills/adaptable-dev/references/_shared/docs-protocol.md +36 -0
- package/dist/skills/adaptable-dev/references/_shared/grounding.md +54 -0
- package/dist/skills/adaptable-dev/references/_shared/guards.md +20 -0
- package/dist/skills/adaptable-dev/references/_shared/validation-loop.md +42 -0
- package/dist/skills/adaptable-dev/references/recommendations.md +93 -0
- package/dist/skills/adaptable-setup/SKILL.md +158 -0
- package/dist/skills/adaptable-setup/VERSION.md +1 -0
- package/dist/skills/adaptable-setup/references/_shared/agents-snippet.md +3 -0
- package/dist/skills/adaptable-setup/references/_shared/capabilities.md +35 -0
- package/dist/skills/adaptable-setup/references/_shared/conversation.md +20 -0
- package/dist/skills/adaptable-setup/references/_shared/docs-protocol.md +36 -0
- package/dist/skills/adaptable-setup/references/_shared/grounding.md +54 -0
- package/dist/skills/adaptable-setup/references/_shared/guards.md +20 -0
- package/dist/skills/adaptable-setup/references/_shared/validation-loop.md +42 -0
- package/dist/skills/adaptable-setup/references/paths.md +45 -0
- package/dist/skills/adaptable-upgrade/SKILL.md +269 -0
- package/dist/skills/adaptable-upgrade/VERSION.md +1 -0
- package/dist/skills/adaptable-upgrade/references/_shared/agents-snippet.md +3 -0
- package/dist/skills/adaptable-upgrade/references/_shared/capabilities.md +35 -0
- package/dist/skills/adaptable-upgrade/references/_shared/conversation.md +20 -0
- package/dist/skills/adaptable-upgrade/references/_shared/docs-protocol.md +36 -0
- package/dist/skills/adaptable-upgrade/references/_shared/grounding.md +54 -0
- package/dist/skills/adaptable-upgrade/references/_shared/guards.md +20 -0
- package/dist/skills/adaptable-upgrade/references/_shared/validation-loop.md +42 -0
- package/dist/skills/adaptable-upgrade/references/apply-order.md +171 -0
- package/dist/skills/adaptable-upgrade/references/plan-preamble.md +151 -0
- package/dist/skills/adaptable-upgrade/scripts/adaptable.mjs +24 -0
- package/package.json +11 -5
- package/dist/core/state/rules.js +0 -417
- package/dist/core/state/rules.js.map +0 -1
|
@@ -0,0 +1,1874 @@
|
|
|
1
|
+
{
|
|
2
|
+
"from": 23,
|
|
3
|
+
"to": 24,
|
|
4
|
+
"builtFrom": {
|
|
5
|
+
"releaseNote": "support/version-240-release-note",
|
|
6
|
+
"sourceSha256": "c0f8671c160ff9cc38b048dcabb2ad25812efaf23064881ed8e52bbfaea4e3bc"
|
|
7
|
+
},
|
|
8
|
+
"records": [
|
|
9
|
+
{
|
|
10
|
+
"id": "deployment-team-sharing",
|
|
11
|
+
"area": "deployment",
|
|
12
|
+
"type": "BEHAVIOUR",
|
|
13
|
+
"title": "Team Sharing roll-out",
|
|
14
|
+
"rows": [
|
|
15
|
+
{
|
|
16
|
+
"item": "Team Sharing roll-out",
|
|
17
|
+
"before": "v.23 and v.24 clients read the same shared store",
|
|
18
|
+
"after": "every client that reads the store upgrades together; persistMigratedSharedEntities decides whether migrated entities are written back",
|
|
19
|
+
"autoMigrated": "n/a"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"search": [],
|
|
23
|
+
"always": true,
|
|
24
|
+
"note": "Plan the release so every client of a shared store moves to v.24 at once.",
|
|
25
|
+
"docs": "support/version-240-release-note#chg-deployment-team-sharing"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "deployment-duplicate-names",
|
|
29
|
+
"area": "deployment",
|
|
30
|
+
"type": "BEHAVIOUR",
|
|
31
|
+
"title": "Duplicate Names in persisted State",
|
|
32
|
+
"rows": [
|
|
33
|
+
{
|
|
34
|
+
"item": "Duplicate Names in persisted State",
|
|
35
|
+
"before": "objects of one Module may share a Name",
|
|
36
|
+
"after": "when Tags are converted, duplicates are renamed Name (2), Name (3), … on the first v.24 load",
|
|
37
|
+
"autoMigrated": "partial"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"search": [],
|
|
41
|
+
"always": true,
|
|
42
|
+
"note": "Rename duplicates in the store beforehand where you can reach it; otherwise expect the renames in the console.",
|
|
43
|
+
"docs": "support/version-240-release-note#chg-deployment-duplicate-names"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "packages-upgrade-24",
|
|
47
|
+
"area": "packages",
|
|
48
|
+
"type": "BREAKING",
|
|
49
|
+
"title": "AG Grid",
|
|
50
|
+
"rows": [
|
|
51
|
+
{
|
|
52
|
+
"item": "AG Grid",
|
|
53
|
+
"before": "35.3 (23.0) / 36.2 (23.1)",
|
|
54
|
+
"after": "36.2 (ag-grid-enterprise@>=36.2.0); ag-stack@>=36.2.0 only if reported as a missing peer",
|
|
55
|
+
"autoMigrated": "n/a"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"item": "@adaptabletools/* versions",
|
|
59
|
+
"before": "23.x",
|
|
60
|
+
"after": "all on the same 24.x",
|
|
61
|
+
"autoMigrated": "n/a"
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"search": [],
|
|
65
|
+
"always": true,
|
|
66
|
+
"note": "Bump every @adaptabletools/* package to the same 24.x and AG Grid to 36.2 (use the ag-update skill for AG Grid); add ag-stack only if the package manager reports a missing peer.",
|
|
67
|
+
"docs": "support/version-240-release-note#chg-packages-upgrade-24"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "packages-angular-20",
|
|
71
|
+
"area": "packages",
|
|
72
|
+
"type": "BREAKING",
|
|
73
|
+
"title": "Angular wrapper",
|
|
74
|
+
"rows": [
|
|
75
|
+
{
|
|
76
|
+
"item": "Angular wrapper",
|
|
77
|
+
"before": "Angular >=18.2.14 (23.0)",
|
|
78
|
+
"after": "Angular >=20 (@adaptabletools/adaptable-angular-aggrid)",
|
|
79
|
+
"autoMigrated": "n/a"
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"search": [
|
|
83
|
+
"@adaptabletools/adaptable-angular-aggrid"
|
|
84
|
+
],
|
|
85
|
+
"always": false,
|
|
86
|
+
"note": "Projects on 23.1 or later already run Angular 20; from 23.0 or older, upgrade the application to Angular 20 first.",
|
|
87
|
+
"docs": "support/version-240-release-note#chg-packages-angular-20"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "packages-notes-module",
|
|
91
|
+
"area": "packages",
|
|
92
|
+
"type": "BREAKING",
|
|
93
|
+
"title": "Notes implementation",
|
|
94
|
+
"rows": [
|
|
95
|
+
{
|
|
96
|
+
"item": "Notes implementation",
|
|
97
|
+
"before": "AdapTable's own popup and indicator",
|
|
98
|
+
"after": "AG Grid Cell Notes — register NotesModule (or AllEnterpriseModule)",
|
|
99
|
+
"autoMigrated": "n/a"
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"search": [
|
|
103
|
+
"noteOptions",
|
|
104
|
+
"noteApi",
|
|
105
|
+
"AdaptableNote",
|
|
106
|
+
"'Note'"
|
|
107
|
+
],
|
|
108
|
+
"always": false,
|
|
109
|
+
"note": "Add NotesModule (or AllEnterpriseModule) to ModuleRegistry.registerModules.",
|
|
110
|
+
"docs": "support/version-240-release-note#chg-packages-notes-module"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "css-notes-styling",
|
|
114
|
+
"area": "css",
|
|
115
|
+
"type": "BREAKING",
|
|
116
|
+
"title": "Note popup class",
|
|
117
|
+
"rows": [
|
|
118
|
+
{
|
|
119
|
+
"item": "Note popup class",
|
|
120
|
+
"before": ".ab-NotePopup",
|
|
121
|
+
"after": "removed — AG Grid renders the editor; style it with AG Grid's --ag-note-popup-* variables or Theming API parameters",
|
|
122
|
+
"autoMigrated": "n/a"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"item": "Note popup variables",
|
|
126
|
+
"before": "--ab-cmp-note-popup-*",
|
|
127
|
+
"after": "still defined, no longer read",
|
|
128
|
+
"autoMigrated": "n/a"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"item": "Note indicator colour",
|
|
132
|
+
"before": "--ab-CellNote-triangle-color, --ab-CellComment-CellNote-triangle-color",
|
|
133
|
+
"after": "AG Grid --ag-note-indicator-color, per Note Type on .ab-NoteType- (e.g. .ab--theme-dark .ab-NoteType-Info { … })",
|
|
134
|
+
"autoMigrated": "n/a"
|
|
135
|
+
}
|
|
136
|
+
],
|
|
137
|
+
"search": [
|
|
138
|
+
"ab-NotePopup",
|
|
139
|
+
"--ab-CellNote-triangle-color",
|
|
140
|
+
"--ab-cmp-note-popup",
|
|
141
|
+
"--ab-CellComment-CellNote-triangle-color"
|
|
142
|
+
],
|
|
143
|
+
"always": false,
|
|
144
|
+
"note": "Delete rules that target .ab-NotePopup; colour indicators per Note Type with --ag-note-indicator-color on the .ab-NoteType-* classes.",
|
|
145
|
+
"docs": "support/version-240-release-note#chg-css-notes-styling"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "css-color-swatch-palette",
|
|
149
|
+
"area": "css",
|
|
150
|
+
"type": "BREAKING",
|
|
151
|
+
"title": "Swatch colour variables",
|
|
152
|
+
"rows": [
|
|
153
|
+
{
|
|
154
|
+
"item": "Swatch colour variables",
|
|
155
|
+
"before": "--ab-color-swatch-1 … --ab-color-swatch-20",
|
|
156
|
+
"after": "--ab-color-palette-13 … --ab-color-palette-32 (same colours); the swatch variables are not defined, so var(--ab-color-swatch-N) resolves to nothing — saved styles in State are migrated (see Colour Picker)",
|
|
157
|
+
"autoMigrated": "n/a"
|
|
158
|
+
}
|
|
159
|
+
],
|
|
160
|
+
"search": [
|
|
161
|
+
"--ab-color-swatch-"
|
|
162
|
+
],
|
|
163
|
+
"always": false,
|
|
164
|
+
"note": "Replace every --ab-color-swatch-N with --ab-color-palette-{N+12} in theme CSS, initialState styles and code.",
|
|
165
|
+
"docs": "support/version-240-release-note#chg-css-color-swatch-palette"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"id": "css-component-variables",
|
|
169
|
+
"area": "css",
|
|
170
|
+
"type": "BREAKING",
|
|
171
|
+
"title": "Component variables",
|
|
172
|
+
"rows": [
|
|
173
|
+
{
|
|
174
|
+
"item": "Component variables",
|
|
175
|
+
"before": "--ab-cmp-listgroupitem*, --ab-cmp-column-tag*, --ab-cmp-entity-rules-editor__background-color",
|
|
176
|
+
"after": "removed — target the elements' .ab-* classes (AdapTable's CSS is in the adaptable cascade layer, so an unlayered rule wins without !important)",
|
|
177
|
+
"autoMigrated": "n/a"
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
"search": [
|
|
181
|
+
"--ab-cmp-listgroupitem",
|
|
182
|
+
"--ab-cmp-column-tag",
|
|
183
|
+
"--ab-cmp-entity-rules-editor"
|
|
184
|
+
],
|
|
185
|
+
"always": false,
|
|
186
|
+
"note": "Delete the overrides and restyle those elements through their .ab-* classes.",
|
|
187
|
+
"docs": "support/version-240-release-note#chg-css-component-variables"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"id": "css-colour-input-classes",
|
|
191
|
+
"area": "css",
|
|
192
|
+
"type": "BREAKING",
|
|
193
|
+
"title": "Colour input classes",
|
|
194
|
+
"rows": [
|
|
195
|
+
{
|
|
196
|
+
"item": "Colour input classes",
|
|
197
|
+
"before": ".ab-ColorPicker-swatch, .ab-ColorPicker-range, .ab-OptionalColorPicker-empty",
|
|
198
|
+
"after": "removed — the Colour Picker popover replaces the browser colour input; configure it with userInterfaceOptions.colourPickerOptions",
|
|
199
|
+
"autoMigrated": "n/a"
|
|
200
|
+
}
|
|
201
|
+
],
|
|
202
|
+
"search": [
|
|
203
|
+
"ab-ColorPicker-swatch",
|
|
204
|
+
"ab-ColorPicker-range",
|
|
205
|
+
"ab-OptionalColorPicker-empty"
|
|
206
|
+
],
|
|
207
|
+
"always": false,
|
|
208
|
+
"note": "Delete rules that target those classes; configure the Colour Picker with userInterfaceOptions.colourPickerOptions.",
|
|
209
|
+
"docs": "support/version-240-release-note#chg-css-colour-input-classes"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"id": "packages-bundler-resolver-settings",
|
|
213
|
+
"area": "packages",
|
|
214
|
+
"type": "BREAKING",
|
|
215
|
+
"title": "Parcel 2",
|
|
216
|
+
"rows": [
|
|
217
|
+
{
|
|
218
|
+
"item": "Parcel 2",
|
|
219
|
+
"before": "no settings",
|
|
220
|
+
"after": "\"@parcel/resolver-default\": { \"packageExports\": true } in the project package.json",
|
|
221
|
+
"autoMigrated": "n/a"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"item": "CodeSandbox",
|
|
225
|
+
"before": "no settings",
|
|
226
|
+
"after": "alias entries for #prehydration/tabs/indicator and #prehydration/slider/thumb — see Bundlers & CodeSandbox",
|
|
227
|
+
"autoMigrated": "n/a"
|
|
228
|
+
}
|
|
229
|
+
],
|
|
230
|
+
"search": [
|
|
231
|
+
"\"parcel\"",
|
|
232
|
+
"@parcel/",
|
|
233
|
+
"codesandbox"
|
|
234
|
+
],
|
|
235
|
+
"always": false,
|
|
236
|
+
"note": "Only Parcel 2 and CodeSandbox need settings; Vite, webpack 5, Next and Node resolve exports and imports already.",
|
|
237
|
+
"docs": "support/version-240-release-note#chg-packages-bundler-resolver-settings"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"id": "packages-nocode-removed",
|
|
241
|
+
"area": "packages",
|
|
242
|
+
"type": "BREAKING",
|
|
243
|
+
"title": "No Code",
|
|
244
|
+
"rows": [
|
|
245
|
+
{
|
|
246
|
+
"item": "No Code",
|
|
247
|
+
"before": "@adaptabletools/adaptable-plugin-nocode-aggrid, AdaptableNoCodeWizard, AdaptableWizardView, React AdaptableOptionsWizardView",
|
|
248
|
+
"after": "removed — build the Grid in the project",
|
|
249
|
+
"autoMigrated": "n/a"
|
|
250
|
+
}
|
|
251
|
+
],
|
|
252
|
+
"search": [
|
|
253
|
+
"@adaptabletools/adaptable-plugin-nocode-aggrid",
|
|
254
|
+
"AdaptableNoCodeWizard",
|
|
255
|
+
"AdaptableWizardView",
|
|
256
|
+
"AdaptableOptionsWizardView",
|
|
257
|
+
"AdaptableNoCodeWizardOptions"
|
|
258
|
+
],
|
|
259
|
+
"always": false,
|
|
260
|
+
"note": "Remove the dependency and every import of those symbols; build the Grid in the project.",
|
|
261
|
+
"docs": "support/version-240-release-note#chg-packages-nocode-removed"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"id": "aql-pre-24-syntax",
|
|
265
|
+
"area": "aql",
|
|
266
|
+
"type": "BREAKING",
|
|
267
|
+
"title": "Aggregation call",
|
|
268
|
+
"rows": [
|
|
269
|
+
{
|
|
270
|
+
"item": "Aggregation call",
|
|
271
|
+
"before": "SUM([PnL], GROUP_BY([Ccy]))",
|
|
272
|
+
"after": "SUM{[PnL], GROUP_BY([Ccy])}",
|
|
273
|
+
"autoMigrated": "yes"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"item": "Cumulative",
|
|
277
|
+
"before": "CUMUL(SUM([PnL]), OVER([Date]))",
|
|
278
|
+
"after": "SUM{[PnL], CUMULATIVE([Date])}",
|
|
279
|
+
"autoMigrated": "yes"
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"item": "Window",
|
|
283
|
+
"before": "RANK(OVER([Date]), GROUP_BY([Ccy]))",
|
|
284
|
+
"after": "RANK{OVER([Date]), GROUP_BY([Ccy])}",
|
|
285
|
+
"autoMigrated": "yes"
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"item": "Quantile",
|
|
289
|
+
"before": "QUANT([Price], 4)",
|
|
290
|
+
"after": "QUANT{[Price], 4}",
|
|
291
|
+
"autoMigrated": "yes"
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"item": "Time window",
|
|
295
|
+
"before": "TIMEFRAME('5m')",
|
|
296
|
+
"after": "WITHIN(5m)",
|
|
297
|
+
"autoMigrated": "yes"
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"item": "Duration literal",
|
|
301
|
+
"before": "TIMEFRAME('5m') (quoted)",
|
|
302
|
+
"after": "5m (unquoted duration)",
|
|
303
|
+
"autoMigrated": "yes"
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"item": "Column reference function",
|
|
307
|
+
"before": "COL('Price')",
|
|
308
|
+
"after": "[Price]",
|
|
309
|
+
"autoMigrated": "yes"
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"item": "Scope stand-in",
|
|
313
|
+
"before": "$SCOPE()",
|
|
314
|
+
"after": "$SCOPE",
|
|
315
|
+
"autoMigrated": "yes"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"item": "All-rows clause",
|
|
319
|
+
"before": "GRID()",
|
|
320
|
+
"after": "ALL_ROWS()",
|
|
321
|
+
"autoMigrated": "yes"
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"item": "Observable count",
|
|
325
|
+
"before": "ROW_CHANGE(COUNT([qty], 3), TIMEFRAME('5m'))",
|
|
326
|
+
"after": "CHANGE_COUNT{[qty], WITHIN(5m)} >= 3",
|
|
327
|
+
"autoMigrated": "yes"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"item": "Observable high (row)",
|
|
331
|
+
"before": "ROW_CHANGE(MAX([Price]), TIMEFRAME('20s'))",
|
|
332
|
+
"after": "[Price] >= HIGHEST{[Price], WITHIN(20s)}",
|
|
333
|
+
"autoMigrated": "yes"
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"item": "Observable high (grid)",
|
|
337
|
+
"before": "GRID_CHANGE(MAX([Cost]), TIMEFRAME('1h'))",
|
|
338
|
+
"after": "[Cost] >= HIGHEST{[Cost], WITHIN(1h), ALL_ROWS()}",
|
|
339
|
+
"autoMigrated": "yes"
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"item": "Rows added (count)",
|
|
343
|
+
"before": "ROW_ADDED(2, TIMEFRAME('20s'))",
|
|
344
|
+
"after": "ROWS_ADDED{WITHIN(20s)} >= 2",
|
|
345
|
+
"autoMigrated": "yes"
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"item": "Row added / removed (event)",
|
|
349
|
+
"before": "ROW_ADDED() / ROW_REMOVED()",
|
|
350
|
+
"after": "Row Change Alert (Type: 'RowChange', trigger Added / Removed)",
|
|
351
|
+
"autoMigrated": "yes"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"item": "Dual-name paren vs brace",
|
|
355
|
+
"before": "SUM([a], [b]) always one meaning",
|
|
356
|
+
"after": "SUM([a], [b]) is Standard (this row); SUM{[PnL]} is Aggregation",
|
|
357
|
+
"autoMigrated": "yes"
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"item": "Inclusive range",
|
|
361
|
+
"before": "[col] BETWEEN (lo, hi) / BETWEEN([col], lo, hi)",
|
|
362
|
+
"after": "([col] >= lo AND [col] <= hi)",
|
|
363
|
+
"autoMigrated": "yes"
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"item": "Exclusive range",
|
|
367
|
+
"before": "NOT ([col] BETWEEN (lo, hi))",
|
|
368
|
+
"after": "([col] hi)",
|
|
369
|
+
"autoMigrated": "yes"
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"item": "Null literal",
|
|
373
|
+
"before": "NULL()",
|
|
374
|
+
"after": "NULL",
|
|
375
|
+
"autoMigrated": "yes"
|
|
376
|
+
}
|
|
377
|
+
],
|
|
378
|
+
"search": [
|
|
379
|
+
"TIMEFRAME(",
|
|
380
|
+
"ROW_CHANGE(",
|
|
381
|
+
"GRID_CHANGE(",
|
|
382
|
+
"ROW_ADDED(",
|
|
383
|
+
"ROW_REMOVED(",
|
|
384
|
+
"COL(",
|
|
385
|
+
"$SCOPE()",
|
|
386
|
+
"GRID()",
|
|
387
|
+
"CUMUL(",
|
|
388
|
+
" BETWEEN ",
|
|
389
|
+
"NULL()"
|
|
390
|
+
],
|
|
391
|
+
"always": false,
|
|
392
|
+
"note": "Run `adaptable migrate expression` on each string kept outside State (API calls, config files, server rules); State literals are rewritten by `migrate state` and at load.",
|
|
393
|
+
"docs": "support/version-240-release-note#chg-aql-pre-24-syntax"
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"id": "state-legacy-shapes",
|
|
397
|
+
"area": "state",
|
|
398
|
+
"type": "DEPRECATED",
|
|
399
|
+
"title": "Expression wrapper",
|
|
400
|
+
"rows": [
|
|
401
|
+
{
|
|
402
|
+
"item": "Expression wrapper",
|
|
403
|
+
"before": "Rule: { BooleanExpression: '[Price] > 100' } (also Query, ScalarExpression, AggregatedExpression, …)",
|
|
404
|
+
"after": "Rule: '[Price] > 100' (plain string)",
|
|
405
|
+
"autoMigrated": "yes"
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"item": "Calculated Column text",
|
|
409
|
+
"before": "CalculatedColumn.Query (wrapper or string)",
|
|
410
|
+
"after": "CalculatedColumn.Expression (string)",
|
|
411
|
+
"autoMigrated": "yes"
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"item": "Report row query",
|
|
415
|
+
"before": "Report.Query",
|
|
416
|
+
"after": "Report.Expression",
|
|
417
|
+
"autoMigrated": "yes"
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"item": "Named Query text",
|
|
421
|
+
"before": "wrapper object",
|
|
422
|
+
"after": "NamedQuery.Expression (string)",
|
|
423
|
+
"autoMigrated": "yes"
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
"item": "Named Query return",
|
|
427
|
+
"before": "always boolean",
|
|
428
|
+
"after": "NamedQuery.ReturnType ('boolean' when omitted)",
|
|
429
|
+
"autoMigrated": "yes"
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"item": "Calculated Column kind",
|
|
433
|
+
"before": "inferred only",
|
|
434
|
+
"after": "CalculatedColumn.Type (Standard / Observable / Aggregated / Cumulative / Quantile / Window)",
|
|
435
|
+
"autoMigrated": "yes"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"item": "Alert kind",
|
|
439
|
+
"before": "inferred only",
|
|
440
|
+
"after": "AlertDefinition.Type (DataChange / RelativeChange / Validation / RowChange / Aggregation / Observable / Scheduled)",
|
|
441
|
+
"autoMigrated": "yes"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"item": "Flashing Cell kind",
|
|
445
|
+
"before": "inferred only",
|
|
446
|
+
"after": "FlashingCellDefinition.Type (Change / Observable)",
|
|
447
|
+
"autoMigrated": "yes"
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"item": "Alert / Flashing Cell / Format Column / Plus Minus rule",
|
|
451
|
+
"before": "{ Predicates } or query wrapper",
|
|
452
|
+
"after": "Rule string",
|
|
453
|
+
"autoMigrated": "yes"
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"item": "Badge condition",
|
|
457
|
+
"before": "BadgeStyleDefinition.Predicate",
|
|
458
|
+
"after": "Rule string",
|
|
459
|
+
"autoMigrated": "yes"
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"item": "Column Filter",
|
|
463
|
+
"before": "ColumnFilter.Predicates + PredicatesOperator",
|
|
464
|
+
"after": "ColumnFilter.Expression (complete) or ColumnFilter.PreferredFilter (UI seed)",
|
|
465
|
+
"autoMigrated": "yes"
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"item": "Column Filter seed names",
|
|
469
|
+
"before": "friendly names (GreaterThan, Contains, …)",
|
|
470
|
+
"after": "AQL operators (GT, CONTAINS, …)",
|
|
471
|
+
"autoMigrated": "yes"
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"item": "Grid Filter",
|
|
475
|
+
"before": "Layout.GridFilter.Expression (string; leftover AQL)",
|
|
476
|
+
"after": "same property; AQL rewritten",
|
|
477
|
+
"autoMigrated": "yes"
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"item": "Wrapper key BooleanExpression",
|
|
481
|
+
"before": "{ BooleanExpression: '…' }",
|
|
482
|
+
"after": "{ Expression: '…' } then unwrapped to the string",
|
|
483
|
+
"autoMigrated": "yes"
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
"item": "Wrapper key ScalarExpression",
|
|
487
|
+
"before": "{ ScalarExpression: '…' }",
|
|
488
|
+
"after": "{ Expression: '…' } then unwrapped to the string",
|
|
489
|
+
"autoMigrated": "yes"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"item": "Wrapper key AggregatedBooleanExpression",
|
|
493
|
+
"before": "{ AggregatedBooleanExpression: '…' }",
|
|
494
|
+
"after": "{ AggregatedExpression: '…' } then unwrapped to the string",
|
|
495
|
+
"autoMigrated": "yes"
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"item": "Wrapper key AggregatedScalarExpression",
|
|
499
|
+
"before": "{ AggregatedScalarExpression: '…' }",
|
|
500
|
+
"after": "{ AggregatedExpression: '…' } then unwrapped to the string",
|
|
501
|
+
"autoMigrated": "yes"
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"item": "Badge intermediate",
|
|
505
|
+
"before": "BadgeStyleDefinition.Expression (query wrapper)",
|
|
506
|
+
"after": "BadgeStyleDefinition.Rule (string)",
|
|
507
|
+
"autoMigrated": "yes"
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
"item": "Note time",
|
|
511
|
+
"before": "AdaptableNote.Timestamp",
|
|
512
|
+
"after": "CreatedAt / UpdatedAt",
|
|
513
|
+
"autoMigrated": "yes"
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
"item": "Alert object shape",
|
|
517
|
+
"before": "one object; kind inferred from Rule",
|
|
518
|
+
"after": "discriminated union: RuleBasedAlertDefinition (Rule: string) / RowChangeAlertDefinition (RowChangeTrigger, optional Rule) / ScheduledAlertDefinition (Schedule, no Rule)",
|
|
519
|
+
"autoMigrated": "yes"
|
|
520
|
+
}
|
|
521
|
+
],
|
|
522
|
+
"search": [
|
|
523
|
+
"BooleanExpression:",
|
|
524
|
+
"ScalarExpression:",
|
|
525
|
+
"AggregatedBooleanExpression:",
|
|
526
|
+
"AggregatedScalarExpression:",
|
|
527
|
+
"ObservableExpression:",
|
|
528
|
+
"\"BooleanExpression\":",
|
|
529
|
+
"\"ScalarExpression\":",
|
|
530
|
+
" Predicates:",
|
|
531
|
+
" Predicate:",
|
|
532
|
+
"\"Predicates\":",
|
|
533
|
+
"\"Predicate\":",
|
|
534
|
+
"PredicatesOperator",
|
|
535
|
+
" Query:"
|
|
536
|
+
],
|
|
537
|
+
"always": false,
|
|
538
|
+
"note": "State loads as is; rewrite the initialState literals with `adaptable migrate state` so the source matches v.24.",
|
|
539
|
+
"docs": "support/version-240-release-note#chg-state-legacy-shapes"
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"id": "state-color-swatch",
|
|
543
|
+
"area": "state",
|
|
544
|
+
"type": "DEPRECATED",
|
|
545
|
+
"title": "Swatch colour in a style",
|
|
546
|
+
"rows": [
|
|
547
|
+
{
|
|
548
|
+
"item": "Swatch colour in a style",
|
|
549
|
+
"before": "var(--ab-color-swatch-N)",
|
|
550
|
+
"after": "var(--ab-color-palette-{N+12})",
|
|
551
|
+
"autoMigrated": "yes"
|
|
552
|
+
}
|
|
553
|
+
],
|
|
554
|
+
"search": [
|
|
555
|
+
"--ab-color-swatch-"
|
|
556
|
+
],
|
|
557
|
+
"always": false,
|
|
558
|
+
"note": "Saved styles are rewritten at load; rename the variable in initialState literals yourself.",
|
|
559
|
+
"docs": "support/version-240-release-note#chg-state-color-swatch"
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
"id": "state-layout-tag-conversion",
|
|
563
|
+
"area": "state",
|
|
564
|
+
"type": "BEHAVIOUR",
|
|
565
|
+
"title": "Layout membership",
|
|
566
|
+
"rows": [
|
|
567
|
+
{
|
|
568
|
+
"item": "Layout membership",
|
|
569
|
+
"before": "Object Tags (when autoCheckTagsForLayouts)",
|
|
570
|
+
"after": "Layout.LayoutExtensions (LayoutExtension per Layout)",
|
|
571
|
+
"autoMigrated": "yes"
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"item": "Layout membership — duplicate names",
|
|
575
|
+
"before": "several objects of one Module with the same Name and different Tags",
|
|
576
|
+
"after": "renamed Name (2), Name (3), … so each can be referenced by Name; update name lookups",
|
|
577
|
+
"autoMigrated": "partial"
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
"item": "Layout membership — unmatched Tags",
|
|
581
|
+
"before": "objects whose Tags matched no Layout were hidden in every Layout",
|
|
582
|
+
"after": "apply in every Layout; suspend or delete them if they should stay hidden",
|
|
583
|
+
"autoMigrated": "no"
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"item": "Layout membership — Reports / Free Text Columns",
|
|
587
|
+
"before": "Tags with a Layout name",
|
|
588
|
+
"after": "cannot be extended; apply in every Layout (move Layout-specific behaviour to application logic, e.g. on LayoutChanged)",
|
|
589
|
+
"autoMigrated": "no"
|
|
590
|
+
}
|
|
591
|
+
],
|
|
592
|
+
"search": [
|
|
593
|
+
"autoCheckTagsForLayouts"
|
|
594
|
+
],
|
|
595
|
+
"always": false,
|
|
596
|
+
"note": "Give every object extended into a Layout a unique Name before the first v.24 load, then check the console for renamed and unconverted objects.",
|
|
597
|
+
"docs": "support/version-240-release-note#chg-state-layout-tag-conversion"
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
"id": "state-custom-predicate-rules",
|
|
601
|
+
"area": "state",
|
|
602
|
+
"type": "BREAKING",
|
|
603
|
+
"title": "Custom Predicate rules",
|
|
604
|
+
"rows": [
|
|
605
|
+
{
|
|
606
|
+
"item": "Custom Predicate rules",
|
|
607
|
+
"before": "Predicates with a custom id",
|
|
608
|
+
"after": "no Expression equivalent",
|
|
609
|
+
"autoMigrated": "no"
|
|
610
|
+
}
|
|
611
|
+
],
|
|
612
|
+
"search": [
|
|
613
|
+
"customPredicateDefs"
|
|
614
|
+
],
|
|
615
|
+
"always": false,
|
|
616
|
+
"note": "Re-create the emptied rules as Expressions that call the customStandardFunctions replacing the Predicates.",
|
|
617
|
+
"docs": "support/version-240-release-note#chg-state-custom-predicate-rules"
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
"id": "state-percent-change",
|
|
621
|
+
"area": "state",
|
|
622
|
+
"type": "BREAKING",
|
|
623
|
+
"title": "PercentChange Predicate",
|
|
624
|
+
"rows": [
|
|
625
|
+
{
|
|
626
|
+
"item": "PercentChange Predicate",
|
|
627
|
+
"before": "PredicateId: 'PercentChange'",
|
|
628
|
+
"after": "no boolean equivalent (PERCENT_CHANGE is numeric)",
|
|
629
|
+
"autoMigrated": "no"
|
|
630
|
+
}
|
|
631
|
+
],
|
|
632
|
+
"search": [
|
|
633
|
+
"'PercentChange'",
|
|
634
|
+
"\"PercentChange\""
|
|
635
|
+
],
|
|
636
|
+
"always": false,
|
|
637
|
+
"note": "Re-author each rule as `PERCENT_CHANGE([col]) > n` or as a Relative Change Alert.",
|
|
638
|
+
"docs": "support/version-240-release-note#chg-state-percent-change"
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
"id": "state-unconverted-expressions",
|
|
642
|
+
"area": "state",
|
|
643
|
+
"type": "BREAKING",
|
|
644
|
+
"title": "Unparseable Expression",
|
|
645
|
+
"rows": [
|
|
646
|
+
{
|
|
647
|
+
"item": "Unparseable Expression",
|
|
648
|
+
"before": "leftover spelling",
|
|
649
|
+
"after": "left unchanged; logged; invalid in the UI",
|
|
650
|
+
"autoMigrated": "no"
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
"item": "Unconvertible Observable Alert",
|
|
654
|
+
"before": "leftover ROW_CHANGE / GRID_CHANGE",
|
|
655
|
+
"after": "IsSuspended: true, Name suffixed (needs migration)",
|
|
656
|
+
"autoMigrated": "partial"
|
|
657
|
+
}
|
|
658
|
+
],
|
|
659
|
+
"search": [
|
|
660
|
+
"ROW_CHANGE(",
|
|
661
|
+
"GRID_CHANGE("
|
|
662
|
+
],
|
|
663
|
+
"always": false,
|
|
664
|
+
"note": "Re-author the rule with the v.24 Observable functions, then un-suspend the Alert and remove the (needs migration) suffix.",
|
|
665
|
+
"docs": "support/version-240-release-note#chg-state-unconverted-expressions"
|
|
666
|
+
},
|
|
667
|
+
{
|
|
668
|
+
"id": "options-predicate-options",
|
|
669
|
+
"area": "options",
|
|
670
|
+
"type": "BREAKING",
|
|
671
|
+
"title": "Predicate Options object",
|
|
672
|
+
"rows": [
|
|
673
|
+
{
|
|
674
|
+
"item": "Predicate Options object",
|
|
675
|
+
"before": "predicateOptions",
|
|
676
|
+
"after": "removed — use expressionOptions",
|
|
677
|
+
"autoMigrated": "n/a"
|
|
678
|
+
},
|
|
679
|
+
{
|
|
680
|
+
"item": "Case sensitivity",
|
|
681
|
+
"before": "predicateOptions.caseSensitivePredicates",
|
|
682
|
+
"after": "expressionOptions.caseSensitiveExpressions",
|
|
683
|
+
"autoMigrated": "n/a"
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
"item": "Date IN granularity",
|
|
687
|
+
"before": "predicateOptions.evaluateInPredicateUsingTime",
|
|
688
|
+
"after": "expressionOptions.evaluateDatesUsingTime",
|
|
689
|
+
"autoMigrated": "n/a"
|
|
690
|
+
}
|
|
691
|
+
],
|
|
692
|
+
"search": [
|
|
693
|
+
"predicateOptions",
|
|
694
|
+
"caseSensitivePredicates",
|
|
695
|
+
"evaluateInPredicateUsingTime"
|
|
696
|
+
],
|
|
697
|
+
"always": false,
|
|
698
|
+
"note": "Move the settings to expressionOptions, then delete the predicateOptions object.",
|
|
699
|
+
"docs": "support/version-240-release-note#chg-options-predicate-options"
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
"id": "options-custom-predicate-defs",
|
|
703
|
+
"area": "options",
|
|
704
|
+
"type": "BREAKING",
|
|
705
|
+
"title": "Custom Predicates",
|
|
706
|
+
"rows": [
|
|
707
|
+
{
|
|
708
|
+
"item": "Custom Predicates",
|
|
709
|
+
"before": "predicateOptions.customPredicateDefs",
|
|
710
|
+
"after": "expressionOptions.customStandardFunctions (set returnType: 'boolean'; see Custom Predicates to Functions)",
|
|
711
|
+
"autoMigrated": "n/a"
|
|
712
|
+
}
|
|
713
|
+
],
|
|
714
|
+
"search": [
|
|
715
|
+
"customPredicateDefs",
|
|
716
|
+
"AdaptablePredicateDef",
|
|
717
|
+
"PredicateDefInput",
|
|
718
|
+
"PredicateDefHandlerContext",
|
|
719
|
+
"PredicateDefToStringParams",
|
|
720
|
+
"PredicateModuleScope"
|
|
721
|
+
],
|
|
722
|
+
"always": false,
|
|
723
|
+
"note": "Re-author each Predicate as a customStandardFunctions entry with returnType 'boolean', using the field map in Custom Predicates to Functions.",
|
|
724
|
+
"docs": "support/version-240-release-note#chg-options-custom-predicate-defs"
|
|
725
|
+
},
|
|
726
|
+
{
|
|
727
|
+
"id": "options-custom-standard-functions",
|
|
728
|
+
"area": "options",
|
|
729
|
+
"type": "BREAKING",
|
|
730
|
+
"title": "Custom scalar / boolean functions",
|
|
731
|
+
"rows": [
|
|
732
|
+
{
|
|
733
|
+
"item": "Custom scalar / boolean functions",
|
|
734
|
+
"before": "customScalarFunctions and customBooleanFunctions",
|
|
735
|
+
"after": "customStandardFunctions — returnType required; handler is (args, context) with accessor-based context (getRowData(), getColumnValue(id), …); category values 'strings' / 'maths' / 'dates' / 'special' → 'text' / 'numeric' / 'date' / 'general'",
|
|
736
|
+
"autoMigrated": "n/a"
|
|
737
|
+
},
|
|
738
|
+
{
|
|
739
|
+
"item": "Custom aggregations",
|
|
740
|
+
"before": "customAggregatedFunctions (called with parentheses)",
|
|
741
|
+
"after": "customAggregatedFunctions (called with braces: MY_AGG{[col]})",
|
|
742
|
+
"autoMigrated": "n/a"
|
|
743
|
+
}
|
|
744
|
+
],
|
|
745
|
+
"search": [
|
|
746
|
+
"customScalarFunctions",
|
|
747
|
+
"customBooleanFunctions",
|
|
748
|
+
"dataChangedEvent",
|
|
749
|
+
"evaluateCustomQueryVariable",
|
|
750
|
+
"whereClauseFunctions"
|
|
751
|
+
],
|
|
752
|
+
"always": false,
|
|
753
|
+
"note": "Merge both maps into customStandardFunctions, add returnType to every entry and move handlers to the accessor-based context.",
|
|
754
|
+
"docs": "support/version-240-release-note#chg-options-custom-standard-functions"
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
"id": "options-query-variables",
|
|
758
|
+
"area": "options",
|
|
759
|
+
"type": "BREAKING",
|
|
760
|
+
"title": "Query variables",
|
|
761
|
+
"rows": [
|
|
762
|
+
{
|
|
763
|
+
"item": "Query variables",
|
|
764
|
+
"before": "customQueryVariables (object map)",
|
|
765
|
+
"after": "queryVariables (array of { name, value, description? })",
|
|
766
|
+
"autoMigrated": "n/a"
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
"item": "Variable resolver context",
|
|
770
|
+
"before": "CustomQueryVariableContext",
|
|
771
|
+
"after": "QueryVariableContext",
|
|
772
|
+
"autoMigrated": "n/a"
|
|
773
|
+
}
|
|
774
|
+
],
|
|
775
|
+
"search": [
|
|
776
|
+
"customQueryVariables",
|
|
777
|
+
"CustomQueryVariableContext"
|
|
778
|
+
],
|
|
779
|
+
"always": false,
|
|
780
|
+
"docs": "support/version-240-release-note#chg-options-query-variables"
|
|
781
|
+
},
|
|
782
|
+
{
|
|
783
|
+
"id": "options-function-allow-lists",
|
|
784
|
+
"area": "options",
|
|
785
|
+
"type": "BREAKING",
|
|
786
|
+
"title": "Function allow-lists",
|
|
787
|
+
"rows": [
|
|
788
|
+
{
|
|
789
|
+
"item": "Function allow-lists",
|
|
790
|
+
"before": "systemBooleanFunctions, systemScalarFunctions, systemObservableFunctions, systemAggregatedBooleanFunctions, systemAggregatedScalarFunctions, moduleExpressionFunctions",
|
|
791
|
+
"after": "isExpressionFunctionAvailable (shows / hides only; cannot re-order the operator list)",
|
|
792
|
+
"autoMigrated": "n/a"
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
"item": "Filter Predicate allow-lists",
|
|
796
|
+
"before": "systemFilterPredicates (and similar)",
|
|
797
|
+
"after": "isExpressionFunctionAvailable (and per-function isAvailable)",
|
|
798
|
+
"autoMigrated": "n/a"
|
|
799
|
+
}
|
|
800
|
+
],
|
|
801
|
+
"search": [
|
|
802
|
+
"systemBooleanFunctions",
|
|
803
|
+
"systemScalarFunctions",
|
|
804
|
+
"systemObservableFunctions",
|
|
805
|
+
"systemAggregatedBooleanFunctions",
|
|
806
|
+
"systemAggregatedScalarFunctions",
|
|
807
|
+
"moduleExpressionFunctions",
|
|
808
|
+
"ModuleExpressionFunctions",
|
|
809
|
+
"systemFilterPredicates",
|
|
810
|
+
"systemAlertPredicates",
|
|
811
|
+
"systemFormatColumnPredicates",
|
|
812
|
+
"systemFlashingCellPredicates",
|
|
813
|
+
"systemBadgeStylePredicates",
|
|
814
|
+
"SystemPredicatesContext",
|
|
815
|
+
"BooleanFunctionName",
|
|
816
|
+
"ObservableFunctionName"
|
|
817
|
+
],
|
|
818
|
+
"always": false,
|
|
819
|
+
"note": "Replace the lists with one isExpressionFunctionAvailable callback that returns context.defaultAvailability except for the functions to hide.",
|
|
820
|
+
"docs": "support/version-240-release-note#chg-options-function-allow-lists"
|
|
821
|
+
},
|
|
822
|
+
{
|
|
823
|
+
"id": "options-column-filter-keys",
|
|
824
|
+
"area": "options",
|
|
825
|
+
"type": "BREAKING",
|
|
826
|
+
"title": "Default Column Filter keys",
|
|
827
|
+
"rows": [
|
|
828
|
+
{
|
|
829
|
+
"item": "Default Column Filter keys",
|
|
830
|
+
"before": "GreaterThan, Equals, Contains, StartsWith, Blanks, After, On, …",
|
|
831
|
+
"after": "GT, EQ, CONTAINS, STARTS_WITH, IS_BLANK, GT, IS_SAME_DAY, … (see Column Filter Keys)",
|
|
832
|
+
"autoMigrated": "n/a"
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
"item": "Default Column Filter context",
|
|
836
|
+
"before": "DefaultPredicateFilterContext",
|
|
837
|
+
"after": "DefaultFilterExpressionContext",
|
|
838
|
+
"autoMigrated": "n/a"
|
|
839
|
+
},
|
|
840
|
+
{
|
|
841
|
+
"item": "Quick Filter wildcards",
|
|
842
|
+
"before": "quickFilterWildcards keyed on any Predicate",
|
|
843
|
+
"after": "keys limited to EQ, NEQ, LT, LTE, GT, GTE, IN; other wildcards move to the function's shortcuts",
|
|
844
|
+
"autoMigrated": "n/a"
|
|
845
|
+
}
|
|
846
|
+
],
|
|
847
|
+
"search": [
|
|
848
|
+
"defaultNumericColumnFilter",
|
|
849
|
+
"defaultTextColumnFilter",
|
|
850
|
+
"defaultDateColumnFilter",
|
|
851
|
+
"defaultArrayColumnFilter",
|
|
852
|
+
"quickFilterWildcards",
|
|
853
|
+
"DefaultPredicateFilterContext"
|
|
854
|
+
],
|
|
855
|
+
"always": false,
|
|
856
|
+
"note": "Replace each Predicate key with its operator from Column Filter Keys; quickFilterWildcards keys are limited to the comparison operators.",
|
|
857
|
+
"docs": "support/version-240-release-note#chg-options-column-filter-keys"
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
"id": "options-custom-in-filter-values",
|
|
861
|
+
"area": "options",
|
|
862
|
+
"type": "BREAKING",
|
|
863
|
+
"title": "IN Filter custom values",
|
|
864
|
+
"rows": [
|
|
865
|
+
{
|
|
866
|
+
"item": "IN Filter custom values",
|
|
867
|
+
"before": "customInFilterValues item with a Predicate id in value",
|
|
868
|
+
"after": "{ label, expressionFunction: 'IS_BLANK' } ('Blanks' → IS_BLANK, 'Positive' → IS_POSITIVE, …) — value is always a literal cell value",
|
|
869
|
+
"autoMigrated": "n/a"
|
|
870
|
+
}
|
|
871
|
+
],
|
|
872
|
+
"search": [
|
|
873
|
+
"customInFilterValues"
|
|
874
|
+
],
|
|
875
|
+
"always": false,
|
|
876
|
+
"note": "Replace items whose value is a Predicate id with { label, expressionFunction }; items with real cell values stay.",
|
|
877
|
+
"docs": "support/version-240-release-note#chg-options-custom-in-filter-values"
|
|
878
|
+
},
|
|
879
|
+
{
|
|
880
|
+
"id": "options-grid-filter-editors",
|
|
881
|
+
"area": "options",
|
|
882
|
+
"type": "BREAKING",
|
|
883
|
+
"title": "Grid Filter editors",
|
|
884
|
+
"rows": [
|
|
885
|
+
{
|
|
886
|
+
"item": "Grid Filter editors",
|
|
887
|
+
"before": "filterOptions.gridFilterOptions.availableFilterEditors",
|
|
888
|
+
"after": "expressionOptions.editorOptions.availableEditors / defaultEditor (gridFilterOptions removed)",
|
|
889
|
+
"autoMigrated": "n/a"
|
|
890
|
+
}
|
|
891
|
+
],
|
|
892
|
+
"search": [
|
|
893
|
+
"gridFilterOptions",
|
|
894
|
+
"availableFilterEditors",
|
|
895
|
+
"GridFilterEditors"
|
|
896
|
+
],
|
|
897
|
+
"always": false,
|
|
898
|
+
"note": "Move the list to expressionOptions.editorOptions.availableEditors and delete gridFilterOptions.",
|
|
899
|
+
"docs": "support/version-240-release-note#chg-options-grid-filter-editors"
|
|
900
|
+
},
|
|
901
|
+
{
|
|
902
|
+
"id": "options-new-defaults",
|
|
903
|
+
"area": "options",
|
|
904
|
+
"type": "BEHAVIOUR",
|
|
905
|
+
"title": "New option defaults",
|
|
906
|
+
"rows": [
|
|
907
|
+
{
|
|
908
|
+
"item": "Expression editor default",
|
|
909
|
+
"before": "Expression Editor opened first",
|
|
910
|
+
"after": "expressionOptions.editorOptions.defaultEditor defaults to 'QueryBuilder'",
|
|
911
|
+
"autoMigrated": "n/a"
|
|
912
|
+
},
|
|
913
|
+
{
|
|
914
|
+
"item": "Batched Alerts default",
|
|
915
|
+
"before": "one Alert per changed cell",
|
|
916
|
+
"after": "alertOptions.consolidateBatchAlerts defaults to true (set false to restore)",
|
|
917
|
+
"autoMigrated": "n/a"
|
|
918
|
+
},
|
|
919
|
+
{
|
|
920
|
+
"item": "Aggregated Calculated Column refresh",
|
|
921
|
+
"before": "synchronous on every row change",
|
|
922
|
+
"after": "calculatedColumnOptions.aggregatedColumnRowChangeThrottle defaults to 300 ms (set 0 to restore)",
|
|
923
|
+
"autoMigrated": "n/a"
|
|
924
|
+
}
|
|
925
|
+
],
|
|
926
|
+
"search": [],
|
|
927
|
+
"always": true,
|
|
928
|
+
"note": "Accept the new defaults or restore v.23 behaviour per row: defaultEditor 'ExpressionEditor', consolidateBatchAlerts false, aggregatedColumnRowChangeThrottle 0.",
|
|
929
|
+
"docs": "support/version-240-release-note#chg-options-new-defaults"
|
|
930
|
+
},
|
|
931
|
+
{
|
|
932
|
+
"id": "options-note-options",
|
|
933
|
+
"area": "options",
|
|
934
|
+
"type": "BREAKING",
|
|
935
|
+
"title": "Notes open trigger",
|
|
936
|
+
"rows": [
|
|
937
|
+
{
|
|
938
|
+
"item": "Notes open trigger",
|
|
939
|
+
"before": "noteOptions.showNoteAction",
|
|
940
|
+
"after": "AG Grid noteTrigger ('hover' / 'click')",
|
|
941
|
+
"autoMigrated": "n/a"
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
"item": "Notes close button",
|
|
945
|
+
"before": "noteOptions.showPopupCloseButton",
|
|
946
|
+
"after": "removed (AG Grid owns the Note editor)",
|
|
947
|
+
"autoMigrated": "n/a"
|
|
948
|
+
},
|
|
949
|
+
{
|
|
950
|
+
"item": "Notes AG Grid module",
|
|
951
|
+
"before": "not required",
|
|
952
|
+
"after": "register AG Grid NotesModule",
|
|
953
|
+
"autoMigrated": "n/a"
|
|
954
|
+
}
|
|
955
|
+
],
|
|
956
|
+
"search": [
|
|
957
|
+
"showNoteAction",
|
|
958
|
+
"showPopupCloseButton"
|
|
959
|
+
],
|
|
960
|
+
"always": false,
|
|
961
|
+
"note": "Delete both properties; set AG Grid's noteTrigger ('hover' or 'click') to keep the open behaviour.",
|
|
962
|
+
"docs": "support/version-240-release-note#chg-options-note-options"
|
|
963
|
+
},
|
|
964
|
+
{
|
|
965
|
+
"id": "options-note-context-menu",
|
|
966
|
+
"area": "options",
|
|
967
|
+
"type": "BEHAVIOUR",
|
|
968
|
+
"title": "Notes context menu items",
|
|
969
|
+
"rows": [
|
|
970
|
+
{
|
|
971
|
+
"item": "Notes context menu items",
|
|
972
|
+
"before": "AdapTable items with category: 'Note'",
|
|
973
|
+
"after": "AG Grid's 'note' item — a customContextMenu that filters AdapTable items must add it from context.defaultAgGridMenuStructure",
|
|
974
|
+
"autoMigrated": "n/a"
|
|
975
|
+
}
|
|
976
|
+
],
|
|
977
|
+
"search": [
|
|
978
|
+
"customContextMenu"
|
|
979
|
+
],
|
|
980
|
+
"always": false,
|
|
981
|
+
"note": "A customContextMenu that keeps only AdapTable items must add AG Grid's 'note' item from context.defaultAgGridMenuStructure.",
|
|
982
|
+
"docs": "support/version-240-release-note#chg-options-note-context-menu"
|
|
983
|
+
},
|
|
984
|
+
{
|
|
985
|
+
"id": "options-always-show-in-dashboard",
|
|
986
|
+
"area": "options",
|
|
987
|
+
"type": "BREAKING",
|
|
988
|
+
"title": "Settings Panel dashboard button",
|
|
989
|
+
"rows": [
|
|
990
|
+
{
|
|
991
|
+
"item": "Settings Panel dashboard button",
|
|
992
|
+
"before": "settingsPanelOptions.alwaysShowInDashboard",
|
|
993
|
+
"after": "removed — Dashboard always provides an icon",
|
|
994
|
+
"autoMigrated": "n/a"
|
|
995
|
+
}
|
|
996
|
+
],
|
|
997
|
+
"search": [
|
|
998
|
+
"alwaysShowInDashboard"
|
|
999
|
+
],
|
|
1000
|
+
"always": false,
|
|
1001
|
+
"note": "Delete the property; no replacement is needed.",
|
|
1002
|
+
"docs": "support/version-240-release-note#chg-options-always-show-in-dashboard"
|
|
1003
|
+
},
|
|
1004
|
+
{
|
|
1005
|
+
"id": "options-settings-panel-display-options",
|
|
1006
|
+
"area": "options",
|
|
1007
|
+
"type": "DEPRECATED",
|
|
1008
|
+
"title": "Settings Panel icons / descriptions",
|
|
1009
|
+
"rows": [
|
|
1010
|
+
{
|
|
1011
|
+
"item": "Settings Panel icons / descriptions",
|
|
1012
|
+
"before": "top-level showModuleIcons, showModuleDescriptions",
|
|
1013
|
+
"after": "settingsPanelOptions.displayOptions.* (top-level keys still accepted, deprecated)",
|
|
1014
|
+
"autoMigrated": "n/a"
|
|
1015
|
+
}
|
|
1016
|
+
],
|
|
1017
|
+
"search": [
|
|
1018
|
+
"showModuleIcons",
|
|
1019
|
+
"showModuleDescriptions"
|
|
1020
|
+
],
|
|
1021
|
+
"always": false,
|
|
1022
|
+
"note": "Move both flags under settingsPanelOptions.displayOptions.",
|
|
1023
|
+
"docs": "support/version-240-release-note#chg-options-settings-panel-display-options"
|
|
1024
|
+
},
|
|
1025
|
+
{
|
|
1026
|
+
"id": "options-settings-panel-title-icon",
|
|
1027
|
+
"area": "options",
|
|
1028
|
+
"type": "BEHAVIOUR",
|
|
1029
|
+
"title": "Settings Panel title default",
|
|
1030
|
+
"rows": [
|
|
1031
|
+
{
|
|
1032
|
+
"item": "Settings Panel title default",
|
|
1033
|
+
"before": "'Settings Panel'",
|
|
1034
|
+
"after": "adaptableId when meaningful, otherwise 'Grid Settings'",
|
|
1035
|
+
"autoMigrated": "n/a"
|
|
1036
|
+
},
|
|
1037
|
+
{
|
|
1038
|
+
"item": "Settings Panel icon default",
|
|
1039
|
+
"before": "ConfigurationIcon",
|
|
1040
|
+
"after": "userInterfaceOptions.applicationIcon when set, else ConfigurationIcon",
|
|
1041
|
+
"autoMigrated": "n/a"
|
|
1042
|
+
}
|
|
1043
|
+
],
|
|
1044
|
+
"search": [
|
|
1045
|
+
"'Settings Panel'",
|
|
1046
|
+
"ConfigurationIcon"
|
|
1047
|
+
],
|
|
1048
|
+
"always": true,
|
|
1049
|
+
"note": "Set settingsPanelOptions.title 'Settings Panel' and icon 'ConfigurationIcon' to keep the v.23 appearance.",
|
|
1050
|
+
"docs": "support/version-240-release-note#chg-options-settings-panel-title-icon"
|
|
1051
|
+
},
|
|
1052
|
+
{
|
|
1053
|
+
"id": "options-manage-state-hidden",
|
|
1054
|
+
"area": "options",
|
|
1055
|
+
"type": "BEHAVIOUR",
|
|
1056
|
+
"title": "Manage State panel",
|
|
1057
|
+
"rows": [
|
|
1058
|
+
{
|
|
1059
|
+
"item": "Manage State panel",
|
|
1060
|
+
"before": "visible by default",
|
|
1061
|
+
"after": "hidden until StateManagement is entitled Full",
|
|
1062
|
+
"autoMigrated": "n/a"
|
|
1063
|
+
}
|
|
1064
|
+
],
|
|
1065
|
+
"search": [],
|
|
1066
|
+
"always": true,
|
|
1067
|
+
"note": "Entitle StateManagement as Full in entitlementOptions.moduleEntitlements to show the panel.",
|
|
1068
|
+
"docs": "support/version-240-release-note#chg-options-manage-state-hidden"
|
|
1069
|
+
},
|
|
1070
|
+
{
|
|
1071
|
+
"id": "options-grid-info-tabs",
|
|
1072
|
+
"area": "options",
|
|
1073
|
+
"type": "BEHAVIOUR",
|
|
1074
|
+
"title": "Grid Info tabs default",
|
|
1075
|
+
"rows": [
|
|
1076
|
+
{
|
|
1077
|
+
"item": "Grid Info tabs default",
|
|
1078
|
+
"before": "settingsPanelOptions.gridInfoTabs defaults to ['Grid Options', 'Grid Summary', 'Grid State']",
|
|
1079
|
+
"after": "defaults to ['Grid Summary', 'Layout', 'Grid State', 'Grid Options']; an explicit gridInfoTabs list shows only the tabs it names, so it hides the new Layout tab",
|
|
1080
|
+
"autoMigrated": "n/a"
|
|
1081
|
+
}
|
|
1082
|
+
],
|
|
1083
|
+
"search": [
|
|
1084
|
+
"gridInfoTabs"
|
|
1085
|
+
],
|
|
1086
|
+
"always": false,
|
|
1087
|
+
"note": "Add 'Layout' to an explicit gridInfoTabs array to show the new tab, or leave the option unset.",
|
|
1088
|
+
"docs": "support/version-240-release-note#chg-options-grid-info-tabs"
|
|
1089
|
+
},
|
|
1090
|
+
{
|
|
1091
|
+
"id": "options-column-header-every-column",
|
|
1092
|
+
"area": "options",
|
|
1093
|
+
"type": "BEHAVIOUR",
|
|
1094
|
+
"title": "Column header callback",
|
|
1095
|
+
"rows": [
|
|
1096
|
+
{
|
|
1097
|
+
"item": "Column header callback",
|
|
1098
|
+
"before": "columnOptions.columnHeader skipped when the Layout had a caption",
|
|
1099
|
+
"after": "called for every column; return context.layoutSpecificHeaderName when set to honour captions",
|
|
1100
|
+
"autoMigrated": "n/a"
|
|
1101
|
+
}
|
|
1102
|
+
],
|
|
1103
|
+
"search": [
|
|
1104
|
+
"columnHeader"
|
|
1105
|
+
],
|
|
1106
|
+
"always": false,
|
|
1107
|
+
"note": "Return context.layoutSpecificHeaderName when it is set to keep honouring Layout captions, or context.colDefHeaderName to fall back to the AG Grid header.",
|
|
1108
|
+
"docs": "support/version-240-release-note#chg-options-column-header-every-column"
|
|
1109
|
+
},
|
|
1110
|
+
{
|
|
1111
|
+
"id": "options-modal-container",
|
|
1112
|
+
"area": "options",
|
|
1113
|
+
"type": "BEHAVIOUR",
|
|
1114
|
+
"title": "Modal container",
|
|
1115
|
+
"rows": [
|
|
1116
|
+
{
|
|
1117
|
+
"item": "Modal container",
|
|
1118
|
+
"before": "containerOptions.modalContainer named the popup element",
|
|
1119
|
+
"after": "hosts the Settings Panel and Wizards; when set it overrides settingsPanelOptions.popupType / wizardOptions.popupType",
|
|
1120
|
+
"autoMigrated": "n/a"
|
|
1121
|
+
}
|
|
1122
|
+
],
|
|
1123
|
+
"search": [
|
|
1124
|
+
"modalContainer"
|
|
1125
|
+
],
|
|
1126
|
+
"always": false,
|
|
1127
|
+
"note": "Keep modalContainer only if the Settings Panel and Wizards should render in that element; otherwise remove it so popupType applies.",
|
|
1128
|
+
"docs": "support/version-240-release-note#chg-options-modal-container"
|
|
1129
|
+
},
|
|
1130
|
+
{
|
|
1131
|
+
"id": "options-action-column-controls",
|
|
1132
|
+
"area": "options",
|
|
1133
|
+
"type": "BREAKING",
|
|
1134
|
+
"title": "Action Column content",
|
|
1135
|
+
"rows": [
|
|
1136
|
+
{
|
|
1137
|
+
"item": "Action Column content",
|
|
1138
|
+
"before": "actionColumnButton",
|
|
1139
|
+
"after": "controls (array; each entry has type)",
|
|
1140
|
+
"autoMigrated": "n/a"
|
|
1141
|
+
},
|
|
1142
|
+
{
|
|
1143
|
+
"item": "Action Column chrome",
|
|
1144
|
+
"before": "actionColumnSettings",
|
|
1145
|
+
"after": "settings",
|
|
1146
|
+
"autoMigrated": "n/a"
|
|
1147
|
+
},
|
|
1148
|
+
{
|
|
1149
|
+
"item": "Action Column command type",
|
|
1150
|
+
"before": "ActionButtonCommand",
|
|
1151
|
+
"after": "ActionCommand",
|
|
1152
|
+
"autoMigrated": "n/a"
|
|
1153
|
+
},
|
|
1154
|
+
{
|
|
1155
|
+
"item": "Action Column overflow",
|
|
1156
|
+
"before": "displayMode, dropdownLabel",
|
|
1157
|
+
"after": "menu control + settings.overflow",
|
|
1158
|
+
"autoMigrated": "n/a"
|
|
1159
|
+
},
|
|
1160
|
+
{
|
|
1161
|
+
"item": "Action Column style",
|
|
1162
|
+
"before": "buttonStyle",
|
|
1163
|
+
"after": "style",
|
|
1164
|
+
"autoMigrated": "n/a"
|
|
1165
|
+
},
|
|
1166
|
+
{
|
|
1167
|
+
"item": "Action Column handlers",
|
|
1168
|
+
"before": "(button, context) => …",
|
|
1169
|
+
"after": "(context) => …",
|
|
1170
|
+
"autoMigrated": "n/a"
|
|
1171
|
+
}
|
|
1172
|
+
],
|
|
1173
|
+
"search": [
|
|
1174
|
+
"actionColumnButton",
|
|
1175
|
+
"ActionColumnButton",
|
|
1176
|
+
"actionColumnSettings",
|
|
1177
|
+
"ActionButtonCommand",
|
|
1178
|
+
"ActionColumnDisplayMode",
|
|
1179
|
+
"buttonStyle",
|
|
1180
|
+
"dropdownLabel"
|
|
1181
|
+
],
|
|
1182
|
+
"always": false,
|
|
1183
|
+
"note": "Rewrite each Action Column as a controls array plus a settings object; see Action Columns.",
|
|
1184
|
+
"docs": "support/version-240-release-note#chg-options-action-column-controls"
|
|
1185
|
+
},
|
|
1186
|
+
{
|
|
1187
|
+
"id": "options-layout-tag-options",
|
|
1188
|
+
"area": "options",
|
|
1189
|
+
"type": "BREAKING",
|
|
1190
|
+
"title": "Layout Tags",
|
|
1191
|
+
"rows": [
|
|
1192
|
+
{
|
|
1193
|
+
"item": "Layout Tags",
|
|
1194
|
+
"before": "layoutTagOptions.isObjectExtendedInLayout, autoGenerateTagsForLayouts",
|
|
1195
|
+
"after": "deprecated / unused — use Layout.LayoutExtensions",
|
|
1196
|
+
"autoMigrated": "n/a"
|
|
1197
|
+
},
|
|
1198
|
+
{
|
|
1199
|
+
"item": "Layout Tag auto-check",
|
|
1200
|
+
"before": "layoutTagOptions.autoCheckTagsForLayouts",
|
|
1201
|
+
"after": "deprecated; still read only to auto-migrate Tags into LayoutExtensions",
|
|
1202
|
+
"autoMigrated": "n/a"
|
|
1203
|
+
}
|
|
1204
|
+
],
|
|
1205
|
+
"search": [
|
|
1206
|
+
"layoutTagOptions",
|
|
1207
|
+
"isObjectExtendedInLayout",
|
|
1208
|
+
"autoGenerateTagsForLayouts",
|
|
1209
|
+
"autoCheckTagsForLayouts"
|
|
1210
|
+
],
|
|
1211
|
+
"always": false,
|
|
1212
|
+
"note": "Keep autoCheckTagsForLayouts true for the first v.24 loads so Tags become LayoutExtensions, then remove layoutTagOptions.",
|
|
1213
|
+
"docs": "support/version-240-release-note#chg-options-layout-tag-options"
|
|
1214
|
+
},
|
|
1215
|
+
{
|
|
1216
|
+
"id": "options-state-functions",
|
|
1217
|
+
"area": "options",
|
|
1218
|
+
"type": "BREAKING",
|
|
1219
|
+
"title": "State function state type",
|
|
1220
|
+
"rows": [
|
|
1221
|
+
{
|
|
1222
|
+
"item": "State function state type",
|
|
1223
|
+
"before": "stateOptions.saveState / persistState / applyState / loadState typed as AdaptableState or any",
|
|
1224
|
+
"after": "AdaptablePersistentState (see State Options)",
|
|
1225
|
+
"autoMigrated": "n/a"
|
|
1226
|
+
},
|
|
1227
|
+
{
|
|
1228
|
+
"item": "saveState return",
|
|
1229
|
+
"before": "any (returning nothing was accepted - and persisted undefined)",
|
|
1230
|
+
"after": "AdaptablePersistentState - must return the state to persist",
|
|
1231
|
+
"autoMigrated": "n/a"
|
|
1232
|
+
},
|
|
1233
|
+
{
|
|
1234
|
+
"item": "applyState state",
|
|
1235
|
+
"before": "any",
|
|
1236
|
+
"after": "Partial in and out",
|
|
1237
|
+
"autoMigrated": "n/a"
|
|
1238
|
+
},
|
|
1239
|
+
{
|
|
1240
|
+
"item": "loadState result",
|
|
1241
|
+
"before": "Promise",
|
|
1242
|
+
"after": "Promise | null | void>",
|
|
1243
|
+
"autoMigrated": "n/a"
|
|
1244
|
+
},
|
|
1245
|
+
{
|
|
1246
|
+
"item": "persistState / clearState result",
|
|
1247
|
+
"before": "Promise",
|
|
1248
|
+
"after": "Promise (resolved value is ignored)",
|
|
1249
|
+
"autoMigrated": "n/a"
|
|
1250
|
+
},
|
|
1251
|
+
{
|
|
1252
|
+
"item": "Custom storage format",
|
|
1253
|
+
"before": "add top-level keys in saveState, strip them in applyState",
|
|
1254
|
+
"after": "wrap in persistState, unwrap in loadState; custom data goes in Application State",
|
|
1255
|
+
"autoMigrated": "n/a"
|
|
1256
|
+
}
|
|
1257
|
+
],
|
|
1258
|
+
"search": [
|
|
1259
|
+
"saveState",
|
|
1260
|
+
"applyState",
|
|
1261
|
+
"persistState",
|
|
1262
|
+
"loadState",
|
|
1263
|
+
"clearState",
|
|
1264
|
+
"state.Internal",
|
|
1265
|
+
"state.Popup",
|
|
1266
|
+
"state.Comment",
|
|
1267
|
+
"state.Plugins"
|
|
1268
|
+
],
|
|
1269
|
+
"always": false,
|
|
1270
|
+
"note": "Follow State Options: saveState returns the state, applyState takes a Partial persistent state, and custom storage data moves to persistState / loadState or Application State.",
|
|
1271
|
+
"docs": "support/version-240-release-note#chg-options-state-functions"
|
|
1272
|
+
},
|
|
1273
|
+
{
|
|
1274
|
+
"id": "options-color-palette",
|
|
1275
|
+
"area": "options",
|
|
1276
|
+
"type": "BREAKING",
|
|
1277
|
+
"title": "Colour Picker palette",
|
|
1278
|
+
"rows": [
|
|
1279
|
+
{
|
|
1280
|
+
"item": "Colour Picker palette",
|
|
1281
|
+
"before": "userInterfaceOptions.colorPalette (deprecated)",
|
|
1282
|
+
"after": "removed — override --ab-color-palette-* in theme CSS",
|
|
1283
|
+
"autoMigrated": "n/a"
|
|
1284
|
+
}
|
|
1285
|
+
],
|
|
1286
|
+
"search": [
|
|
1287
|
+
"colorPalette"
|
|
1288
|
+
],
|
|
1289
|
+
"always": false,
|
|
1290
|
+
"note": "Move the colours into theme CSS as --ab-color-palette-N overrides and remove colorPalette.",
|
|
1291
|
+
"docs": "support/version-240-release-note#chg-options-color-palette"
|
|
1292
|
+
},
|
|
1293
|
+
{
|
|
1294
|
+
"id": "api-predicate-api",
|
|
1295
|
+
"area": "api",
|
|
1296
|
+
"type": "BREAKING",
|
|
1297
|
+
"title": "Predicate API",
|
|
1298
|
+
"rows": [
|
|
1299
|
+
{
|
|
1300
|
+
"item": "Predicate API",
|
|
1301
|
+
"before": "adaptableApi.predicateApi",
|
|
1302
|
+
"after": "removed — use adaptableApi.expressionApi",
|
|
1303
|
+
"autoMigrated": "n/a"
|
|
1304
|
+
},
|
|
1305
|
+
{
|
|
1306
|
+
"item": "Predicate evaluate / label",
|
|
1307
|
+
"before": "predicateApi.handle* / predicateToString",
|
|
1308
|
+
"after": "evaluate / display the Expression string (expressionApi.evaluateStandardExpression, filterRowNodes, …)",
|
|
1309
|
+
"autoMigrated": "n/a"
|
|
1310
|
+
}
|
|
1311
|
+
],
|
|
1312
|
+
"search": [
|
|
1313
|
+
"predicateApi",
|
|
1314
|
+
"PredicateApi",
|
|
1315
|
+
"predicateToString",
|
|
1316
|
+
"getFlashingCellPredicateDefsForScope"
|
|
1317
|
+
],
|
|
1318
|
+
"always": false,
|
|
1319
|
+
"note": "Evaluate or display the Expression string with expressionApi; Rules are plain strings.",
|
|
1320
|
+
"docs": "support/version-240-release-note#chg-api-predicate-api"
|
|
1321
|
+
},
|
|
1322
|
+
{
|
|
1323
|
+
"id": "api-get-predicate-options",
|
|
1324
|
+
"area": "api",
|
|
1325
|
+
"type": "BREAKING",
|
|
1326
|
+
"title": "Predicate Options getter",
|
|
1327
|
+
"rows": [
|
|
1328
|
+
{
|
|
1329
|
+
"item": "Predicate Options getter",
|
|
1330
|
+
"before": "optionsApi.getPredicateOptions",
|
|
1331
|
+
"after": "removed — optionsApi.getExpressionOptions",
|
|
1332
|
+
"autoMigrated": "n/a"
|
|
1333
|
+
}
|
|
1334
|
+
],
|
|
1335
|
+
"search": [
|
|
1336
|
+
"getPredicateOptions"
|
|
1337
|
+
],
|
|
1338
|
+
"always": false,
|
|
1339
|
+
"docs": "support/version-240-release-note#chg-api-get-predicate-options"
|
|
1340
|
+
},
|
|
1341
|
+
{
|
|
1342
|
+
"id": "api-column-filter-predicates",
|
|
1343
|
+
"area": "api",
|
|
1344
|
+
"type": "BREAKING",
|
|
1345
|
+
"title": "Set Column Filter by Predicate",
|
|
1346
|
+
"rows": [
|
|
1347
|
+
{
|
|
1348
|
+
"item": "Set Column Filter by Predicate",
|
|
1349
|
+
"before": "columnFilterApi.setColumnFilterForColumn(col, predicate)",
|
|
1350
|
+
"after": "columnFilterApi.setColumnFilters([{ ColumnId, Expression }])",
|
|
1351
|
+
"autoMigrated": "n/a"
|
|
1352
|
+
},
|
|
1353
|
+
{
|
|
1354
|
+
"item": "Column Filter def lists",
|
|
1355
|
+
"before": "columnFilterApi.getColumnFilterDefs",
|
|
1356
|
+
"after": "removed — read getColumnFilters() / Expression metadata",
|
|
1357
|
+
"autoMigrated": "n/a"
|
|
1358
|
+
},
|
|
1359
|
+
{
|
|
1360
|
+
"item": "Filter Predicate defs",
|
|
1361
|
+
"before": "columnFilterApi.getFilterPredicateDefsForColumn / getFilterPredicateDefsForColumnId",
|
|
1362
|
+
"after": "removed — operator metadata via Expression Function pools",
|
|
1363
|
+
"autoMigrated": "n/a"
|
|
1364
|
+
},
|
|
1365
|
+
{
|
|
1366
|
+
"item": "Blanks in IN filter values",
|
|
1367
|
+
"before": "columnFilterApi.addBlanksToInFilterValues",
|
|
1368
|
+
"after": "removed — use customInFilterValues with expressionFunction: 'IS_BLANK'",
|
|
1369
|
+
"autoMigrated": "n/a"
|
|
1370
|
+
}
|
|
1371
|
+
],
|
|
1372
|
+
"search": [
|
|
1373
|
+
"setColumnFilterForColumn",
|
|
1374
|
+
"getColumnFilterDefs",
|
|
1375
|
+
"getFilterPredicateDefsForColumn",
|
|
1376
|
+
"addBlanksToInFilterValues"
|
|
1377
|
+
],
|
|
1378
|
+
"always": false,
|
|
1379
|
+
"note": "Set Column Filters as Expressions with setColumnFilters([{ ColumnId, Expression }]) and read them with getColumnFilters().",
|
|
1380
|
+
"docs": "support/version-240-release-note#chg-api-column-filter-predicates"
|
|
1381
|
+
},
|
|
1382
|
+
{
|
|
1383
|
+
"id": "api-filter-state-ast",
|
|
1384
|
+
"area": "api",
|
|
1385
|
+
"type": "BREAKING",
|
|
1386
|
+
"title": "Filter state for servers",
|
|
1387
|
+
"rows": [
|
|
1388
|
+
{
|
|
1389
|
+
"item": "Filter state for servers",
|
|
1390
|
+
"before": "stateApi.getAdaptableFilterState().columnFilterDefs (Predicate ids)",
|
|
1391
|
+
"after": "removed — columnFilters[].Expression plus gridFilterAST; parse a Column Filter with expressionApi.getASTForExpression(expression)",
|
|
1392
|
+
"autoMigrated": "n/a"
|
|
1393
|
+
},
|
|
1394
|
+
{
|
|
1395
|
+
"item": "External evaluation context",
|
|
1396
|
+
"before": "EvaluateExpressionExternallyContext.predicates",
|
|
1397
|
+
"after": "removed — read context.expression in evaluateAdaptableQLExternally",
|
|
1398
|
+
"autoMigrated": "n/a"
|
|
1399
|
+
}
|
|
1400
|
+
],
|
|
1401
|
+
"search": [
|
|
1402
|
+
"columnFilterDefs",
|
|
1403
|
+
"getAdaptableFilterState",
|
|
1404
|
+
"EvaluateExpressionExternallyContext",
|
|
1405
|
+
"context.predicates"
|
|
1406
|
+
],
|
|
1407
|
+
"always": false,
|
|
1408
|
+
"note": "Send gridFilterAST and getASTForExpression output to the server instead of Predicate ids; see the Server Filtering note below the table.",
|
|
1409
|
+
"docs": "support/version-240-release-note#chg-api-filter-state-ast"
|
|
1410
|
+
},
|
|
1411
|
+
{
|
|
1412
|
+
"id": "api-expression-validity-checks",
|
|
1413
|
+
"area": "api",
|
|
1414
|
+
"type": "BREAKING",
|
|
1415
|
+
"title": "Boolean Expression check",
|
|
1416
|
+
"rows": [
|
|
1417
|
+
{
|
|
1418
|
+
"item": "Boolean Expression check",
|
|
1419
|
+
"before": "expressionApi.isValidBooleanExpression",
|
|
1420
|
+
"after": "expressionApi.isValidScalarExpression (boolean-predicate check)",
|
|
1421
|
+
"autoMigrated": "n/a"
|
|
1422
|
+
},
|
|
1423
|
+
{
|
|
1424
|
+
"item": "Aggregated Expression check",
|
|
1425
|
+
"before": "expressionApi.isValidAggregatedBooleanExpression / isValidAggregatedScalarExpression",
|
|
1426
|
+
"after": "expressionApi.isValidAggregatedExpression",
|
|
1427
|
+
"autoMigrated": "n/a"
|
|
1428
|
+
},
|
|
1429
|
+
{
|
|
1430
|
+
"item": "Observable Expression check",
|
|
1431
|
+
"before": "expressionApi.isValidObservableExpression",
|
|
1432
|
+
"after": "removed — Observable calls are ordinary scalar Expressions; use isValidScalarExpression / isValidValueExpression",
|
|
1433
|
+
"autoMigrated": "n/a"
|
|
1434
|
+
}
|
|
1435
|
+
],
|
|
1436
|
+
"search": [
|
|
1437
|
+
"isValidBooleanExpression",
|
|
1438
|
+
"isValidAggregatedBooleanExpression",
|
|
1439
|
+
"isValidAggregatedScalarExpression",
|
|
1440
|
+
"isValidObservableExpression"
|
|
1441
|
+
],
|
|
1442
|
+
"always": false,
|
|
1443
|
+
"docs": "support/version-240-release-note#chg-api-expression-validity-checks"
|
|
1444
|
+
},
|
|
1445
|
+
{
|
|
1446
|
+
"id": "api-query-expression-accessors",
|
|
1447
|
+
"area": "api",
|
|
1448
|
+
"type": "BREAKING",
|
|
1449
|
+
"title": "Query / Rule accessor",
|
|
1450
|
+
"rows": [
|
|
1451
|
+
{
|
|
1452
|
+
"item": "Query / Rule accessor",
|
|
1453
|
+
"before": "expressionApi.getAdaptableQueryExpression(query)",
|
|
1454
|
+
"after": "removed — Rule / Expression are strings; use them directly",
|
|
1455
|
+
"autoMigrated": "n/a"
|
|
1456
|
+
},
|
|
1457
|
+
{
|
|
1458
|
+
"item": "Friendly-name Expression",
|
|
1459
|
+
"before": "expressionApi.getAdaptableQueryExpressionWithColumnFriendlyNames(query)",
|
|
1460
|
+
"after": "expressionApi.getExpressionWithColumnFriendlyNames(expression) (string only)",
|
|
1461
|
+
"autoMigrated": "n/a"
|
|
1462
|
+
}
|
|
1463
|
+
],
|
|
1464
|
+
"search": [
|
|
1465
|
+
"getAdaptableQueryExpression"
|
|
1466
|
+
],
|
|
1467
|
+
"always": false,
|
|
1468
|
+
"docs": "support/version-240-release-note#chg-api-query-expression-accessors"
|
|
1469
|
+
},
|
|
1470
|
+
{
|
|
1471
|
+
"id": "api-expression-helpers",
|
|
1472
|
+
"area": "api",
|
|
1473
|
+
"type": "BREAKING",
|
|
1474
|
+
"title": "Expression API helpers",
|
|
1475
|
+
"rows": [
|
|
1476
|
+
{
|
|
1477
|
+
"item": "Expression kind",
|
|
1478
|
+
"before": "inferred ad hoc",
|
|
1479
|
+
"after": "expressionApi.getExpressionKind(expression)",
|
|
1480
|
+
"autoMigrated": "n/a"
|
|
1481
|
+
},
|
|
1482
|
+
{
|
|
1483
|
+
"item": "Date-time comparisons",
|
|
1484
|
+
"before": "Predicate Options / shouldEvaluateInUsingTime",
|
|
1485
|
+
"after": "expressionApi.shouldEvaluateDatesUsingTime(column)",
|
|
1486
|
+
"autoMigrated": "n/a"
|
|
1487
|
+
},
|
|
1488
|
+
{
|
|
1489
|
+
"item": "Case sensitivity",
|
|
1490
|
+
"before": "Predicate Options",
|
|
1491
|
+
"after": "expressionApi.useCaseSensitivity()",
|
|
1492
|
+
"autoMigrated": "n/a"
|
|
1493
|
+
},
|
|
1494
|
+
{
|
|
1495
|
+
"item": "Leftover Expression string",
|
|
1496
|
+
"before": "n/a",
|
|
1497
|
+
"after": "expressionApi.migratePreV24Expression(expression, { expressionKind? })",
|
|
1498
|
+
"autoMigrated": "n/a"
|
|
1499
|
+
}
|
|
1500
|
+
],
|
|
1501
|
+
"search": [
|
|
1502
|
+
"shouldEvaluateInUsingTime"
|
|
1503
|
+
],
|
|
1504
|
+
"always": false,
|
|
1505
|
+
"note": "Use expressionApi.shouldEvaluateDatesUsingTime, useCaseSensitivity, getExpressionKind and migratePreV24Expression.",
|
|
1506
|
+
"docs": "support/version-240-release-note#chg-api-expression-helpers"
|
|
1507
|
+
},
|
|
1508
|
+
{
|
|
1509
|
+
"id": "api-layout-extended-config",
|
|
1510
|
+
"area": "api",
|
|
1511
|
+
"type": "BREAKING",
|
|
1512
|
+
"title": "Object getter config",
|
|
1513
|
+
"rows": [
|
|
1514
|
+
{
|
|
1515
|
+
"item": "Object getter config",
|
|
1516
|
+
"before": "getAlertDefinitions(config: LayoutExtendedConfig) + the other per-Module getters",
|
|
1517
|
+
"after": "no argument — always every object; per-Layout objects via layoutApi.getLayoutExtensions(layoutName)",
|
|
1518
|
+
"autoMigrated": "n/a"
|
|
1519
|
+
},
|
|
1520
|
+
{
|
|
1521
|
+
"item": "Format Column getters",
|
|
1522
|
+
"before": "getFormatColumns(config: FormatColumnConfig)",
|
|
1523
|
+
"after": "getFormatColumns() / getActiveFormatColumns() / getSuspendedFormatColumns() take no config (no includeSuspended, includeReadOnly, target); filter on IsReadOnly / Target yourself",
|
|
1524
|
+
"autoMigrated": "n/a"
|
|
1525
|
+
}
|
|
1526
|
+
],
|
|
1527
|
+
"search": [
|
|
1528
|
+
"LayoutExtendedConfig",
|
|
1529
|
+
"includeLayoutNotExtendedObjects",
|
|
1530
|
+
"extendedLayoutName",
|
|
1531
|
+
"FormatColumnConfig"
|
|
1532
|
+
],
|
|
1533
|
+
"always": false,
|
|
1534
|
+
"note": "Drop the config argument; read State for every object and layoutApi.getLayoutExtensions(layoutName) for one Layout's objects.",
|
|
1535
|
+
"docs": "support/version-240-release-note#chg-api-layout-extended-config"
|
|
1536
|
+
},
|
|
1537
|
+
{
|
|
1538
|
+
"id": "api-extended-layout",
|
|
1539
|
+
"area": "api",
|
|
1540
|
+
"type": "BEHAVIOUR",
|
|
1541
|
+
"title": "Layout contents",
|
|
1542
|
+
"rows": [
|
|
1543
|
+
{
|
|
1544
|
+
"item": "Layout contents",
|
|
1545
|
+
"before": "layoutApi.getExtendedLayoutByName included global objects",
|
|
1546
|
+
"after": "returns only objects explicitly extended into that Layout",
|
|
1547
|
+
"autoMigrated": "n/a"
|
|
1548
|
+
},
|
|
1549
|
+
{
|
|
1550
|
+
"item": "Replace Layout extensions",
|
|
1551
|
+
"before": "layoutApi.createOrUpdateExtendedLayout added to the existing set",
|
|
1552
|
+
"after": "replaces the objects extended into the Layout",
|
|
1553
|
+
"autoMigrated": "n/a"
|
|
1554
|
+
},
|
|
1555
|
+
{
|
|
1556
|
+
"item": "Layout extension helpers",
|
|
1557
|
+
"before": "via Tags / layoutTagOptions",
|
|
1558
|
+
"after": "getLayoutExtensions, setLayoutExtensions, addObjectToLayout, removeObjectFromLayout, getLayoutsForObject, setLayoutsForObject, renameLayout",
|
|
1559
|
+
"autoMigrated": "n/a"
|
|
1560
|
+
}
|
|
1561
|
+
],
|
|
1562
|
+
"search": [
|
|
1563
|
+
"getExtendedLayoutByName",
|
|
1564
|
+
"createOrUpdateExtendedLayout"
|
|
1565
|
+
],
|
|
1566
|
+
"always": false,
|
|
1567
|
+
"note": "Merge global objects yourself when reading, and pass the existing extensions back to createOrUpdateExtendedLayout.",
|
|
1568
|
+
"docs": "support/version-240-release-note#chg-api-extended-layout"
|
|
1569
|
+
},
|
|
1570
|
+
{
|
|
1571
|
+
"id": "api-load-user-state-async",
|
|
1572
|
+
"area": "api",
|
|
1573
|
+
"type": "BEHAVIOUR",
|
|
1574
|
+
"title": "Load user State",
|
|
1575
|
+
"rows": [
|
|
1576
|
+
{
|
|
1577
|
+
"item": "Load user State",
|
|
1578
|
+
"before": "stateApi.loadUserState(state) returned void",
|
|
1579
|
+
"after": "returns Promise — await it before reading State",
|
|
1580
|
+
"autoMigrated": "n/a"
|
|
1581
|
+
},
|
|
1582
|
+
{
|
|
1583
|
+
"item": "Persist State result",
|
|
1584
|
+
"before": "stateApi.persistAdaptableState() resolved AdaptableState",
|
|
1585
|
+
"after": "resolves AdaptablePersistentState",
|
|
1586
|
+
"autoMigrated": "n/a"
|
|
1587
|
+
},
|
|
1588
|
+
{
|
|
1589
|
+
"item": "Open Grid Filter editor",
|
|
1590
|
+
"before": "gridFilterApi.openUIEditorForGridFilter(expression)",
|
|
1591
|
+
"after": "argument ignored — call setGridFilterExpression(expression) first",
|
|
1592
|
+
"autoMigrated": "n/a"
|
|
1593
|
+
}
|
|
1594
|
+
],
|
|
1595
|
+
"search": [
|
|
1596
|
+
"loadUserState",
|
|
1597
|
+
"persistAdaptableState",
|
|
1598
|
+
"openUIEditorForGridFilter"
|
|
1599
|
+
],
|
|
1600
|
+
"always": false,
|
|
1601
|
+
"note": "Await loadUserState before reading State; call setGridFilterExpression before openUIEditorForGridFilter.",
|
|
1602
|
+
"docs": "support/version-240-release-note#chg-api-load-user-state-async"
|
|
1603
|
+
},
|
|
1604
|
+
{
|
|
1605
|
+
"id": "api-migrate-adaptable-state-generic",
|
|
1606
|
+
"area": "api",
|
|
1607
|
+
"type": "BEHAVIOUR",
|
|
1608
|
+
"title": "Manual State migration",
|
|
1609
|
+
"rows": [
|
|
1610
|
+
{
|
|
1611
|
+
"item": "Manual State migration",
|
|
1612
|
+
"before": "AdaptableUpgradeHelper.migrateAdaptableState(state: AdaptableState, config): AdaptableState",
|
|
1613
|
+
"after": "generic: migrateAdaptableState >(state: T, config): T - also accepts the applyState state",
|
|
1614
|
+
"autoMigrated": "n/a"
|
|
1615
|
+
}
|
|
1616
|
+
],
|
|
1617
|
+
"search": [
|
|
1618
|
+
"migrateAdaptableState"
|
|
1619
|
+
],
|
|
1620
|
+
"always": false,
|
|
1621
|
+
"note": "Pass the applyState state straight through; no cast is needed.",
|
|
1622
|
+
"docs": "support/version-240-release-note#chg-api-migrate-adaptable-state-generic"
|
|
1623
|
+
},
|
|
1624
|
+
{
|
|
1625
|
+
"id": "api-get-color-palette",
|
|
1626
|
+
"area": "api",
|
|
1627
|
+
"type": "BREAKING",
|
|
1628
|
+
"title": "Colour Picker palette",
|
|
1629
|
+
"rows": [
|
|
1630
|
+
{
|
|
1631
|
+
"item": "Colour Picker palette",
|
|
1632
|
+
"before": "userInterfaceApi.getColorPalette()",
|
|
1633
|
+
"after": "removed — the palette is the theme's --ab-color-palette-* CSS variables",
|
|
1634
|
+
"autoMigrated": "n/a"
|
|
1635
|
+
}
|
|
1636
|
+
],
|
|
1637
|
+
"search": [
|
|
1638
|
+
"getColorPalette"
|
|
1639
|
+
],
|
|
1640
|
+
"always": false,
|
|
1641
|
+
"note": "Read --ab-color-palette-N from CSS, or reference var(--ab-color-palette-N) directly.",
|
|
1642
|
+
"docs": "support/version-240-release-note#chg-api-get-color-palette"
|
|
1643
|
+
},
|
|
1644
|
+
{
|
|
1645
|
+
"id": "objects-predicate-types",
|
|
1646
|
+
"area": "objects",
|
|
1647
|
+
"type": "BREAKING",
|
|
1648
|
+
"title": "Predicate types",
|
|
1649
|
+
"rows": [
|
|
1650
|
+
{
|
|
1651
|
+
"item": "Predicate types",
|
|
1652
|
+
"before": "AdaptablePredicate, AdaptablePredicateDef, SystemPredicateDefs",
|
|
1653
|
+
"after": "removed — Expressions + Expression Functions",
|
|
1654
|
+
"autoMigrated": "n/a"
|
|
1655
|
+
},
|
|
1656
|
+
{
|
|
1657
|
+
"item": "Per-Module rule types",
|
|
1658
|
+
"before": "AdaptableColumnPredicate, ColumnFilterPredicate, AlertDefinitionPredicate, AlertRule, FormatColumnPredicate, FormatColumnRule, BadgeStylePredicate, FlashingCellDefinitionPredicate, FlashingCellRule, PredicatesOperator",
|
|
1659
|
+
"after": "removed — Rule / Expression are string",
|
|
1660
|
+
"autoMigrated": "n/a"
|
|
1661
|
+
}
|
|
1662
|
+
],
|
|
1663
|
+
"search": [
|
|
1664
|
+
"AdaptablePredicate",
|
|
1665
|
+
"SystemPredicateDefs",
|
|
1666
|
+
"PredicateId",
|
|
1667
|
+
"AdaptableColumnPredicate",
|
|
1668
|
+
"AlertDefinitionPredicate",
|
|
1669
|
+
"FormatColumnPredicate",
|
|
1670
|
+
"BadgeStylePredicate",
|
|
1671
|
+
"FlashingCellDefinitionPredicate",
|
|
1672
|
+
"AlertRule",
|
|
1673
|
+
"FormatColumnRule",
|
|
1674
|
+
"FlashingCellRule",
|
|
1675
|
+
"PredicatesOperator",
|
|
1676
|
+
".Predicates",
|
|
1677
|
+
".Predicate?.",
|
|
1678
|
+
".Predicate."
|
|
1679
|
+
],
|
|
1680
|
+
"always": false,
|
|
1681
|
+
"note": "Build Expression strings instead of Predicate objects (see the Predicate map) and read .Expression / .Rule instead of .Predicates / .Predicate.",
|
|
1682
|
+
"docs": "support/version-240-release-note#chg-objects-predicate-types"
|
|
1683
|
+
},
|
|
1684
|
+
{
|
|
1685
|
+
"id": "objects-adaptable-query",
|
|
1686
|
+
"area": "objects",
|
|
1687
|
+
"type": "BREAKING",
|
|
1688
|
+
"title": "Query Wrapper",
|
|
1689
|
+
"rows": [
|
|
1690
|
+
{
|
|
1691
|
+
"item": "Query Wrapper",
|
|
1692
|
+
"before": "AdaptableQuery ({ BooleanExpression | ScalarExpression | … })",
|
|
1693
|
+
"after": "removed as a current type; leftover wrappers are LegacyAdaptableQuery; Rule / Expression are string",
|
|
1694
|
+
"autoMigrated": "n/a"
|
|
1695
|
+
},
|
|
1696
|
+
{
|
|
1697
|
+
"item": "Query sub-types",
|
|
1698
|
+
"before": "AdaptableBooleanQuery, AdaptableScalarQuery, AdaptableObservableQuery, AdaptableAggregatedBooleanQuery, AdaptableAggregatedScalarQuery, AdaptableAlertQuery, AdaptableCalculatedColumnQuery, isReactiveQuery",
|
|
1699
|
+
"after": "removed",
|
|
1700
|
+
"autoMigrated": "n/a"
|
|
1701
|
+
}
|
|
1702
|
+
],
|
|
1703
|
+
"search": [
|
|
1704
|
+
"AdaptableQuery",
|
|
1705
|
+
"BooleanQuery",
|
|
1706
|
+
"ScalarQuery",
|
|
1707
|
+
"ObservableQuery",
|
|
1708
|
+
"AdaptableAlertQuery",
|
|
1709
|
+
"AdaptableCalculatedColumnQuery",
|
|
1710
|
+
"isReactiveQuery",
|
|
1711
|
+
".BooleanExpression",
|
|
1712
|
+
".ScalarExpression",
|
|
1713
|
+
".AggregatedBooleanExpression",
|
|
1714
|
+
".AggregatedScalarExpression",
|
|
1715
|
+
".ObservableExpression",
|
|
1716
|
+
".Query?.",
|
|
1717
|
+
".Query."
|
|
1718
|
+
],
|
|
1719
|
+
"always": false,
|
|
1720
|
+
"note": "Type the values as string and read report.Expression, calculatedColumn.Expression and namedQuery.Expression directly.",
|
|
1721
|
+
"docs": "support/version-240-release-note#chg-objects-adaptable-query"
|
|
1722
|
+
},
|
|
1723
|
+
{
|
|
1724
|
+
"id": "objects-alert-definition-union",
|
|
1725
|
+
"area": "objects",
|
|
1726
|
+
"type": "BREAKING",
|
|
1727
|
+
"title": "Alert Definition",
|
|
1728
|
+
"rows": [
|
|
1729
|
+
{
|
|
1730
|
+
"item": "Alert Definition",
|
|
1731
|
+
"before": "one AlertDefinition with optional / inferred kind",
|
|
1732
|
+
"after": "AlertDefinition = RuleBasedAlertDefinition | RowChangeAlertDefinition | ScheduledAlertDefinition",
|
|
1733
|
+
"autoMigrated": "n/a"
|
|
1734
|
+
}
|
|
1735
|
+
],
|
|
1736
|
+
"search": [
|
|
1737
|
+
"AlertDefinition"
|
|
1738
|
+
],
|
|
1739
|
+
"always": false,
|
|
1740
|
+
"note": "Set Type when creating Alerts and narrow on Type before reading Rule or Schedule.",
|
|
1741
|
+
"docs": "support/version-240-release-note#chg-objects-alert-definition-union"
|
|
1742
|
+
},
|
|
1743
|
+
{
|
|
1744
|
+
"id": "objects-column-filter-def",
|
|
1745
|
+
"area": "objects",
|
|
1746
|
+
"type": "BREAKING",
|
|
1747
|
+
"title": "Column Filter def",
|
|
1748
|
+
"rows": [
|
|
1749
|
+
{
|
|
1750
|
+
"item": "Column Filter def",
|
|
1751
|
+
"before": "ColumnFilterDef",
|
|
1752
|
+
"after": "removed — Column Filters carry Expression",
|
|
1753
|
+
"autoMigrated": "n/a"
|
|
1754
|
+
}
|
|
1755
|
+
],
|
|
1756
|
+
"search": [
|
|
1757
|
+
"ColumnFilterDef"
|
|
1758
|
+
],
|
|
1759
|
+
"always": false,
|
|
1760
|
+
"docs": "support/version-240-release-note#chg-objects-column-filter-def"
|
|
1761
|
+
},
|
|
1762
|
+
{
|
|
1763
|
+
"id": "objects-grid-filter-options",
|
|
1764
|
+
"area": "objects",
|
|
1765
|
+
"type": "BREAKING",
|
|
1766
|
+
"title": "Grid Filter options",
|
|
1767
|
+
"rows": [
|
|
1768
|
+
{
|
|
1769
|
+
"item": "Grid Filter options",
|
|
1770
|
+
"before": "GridFilterOptions",
|
|
1771
|
+
"after": "removed — see expressionOptions.editorOptions",
|
|
1772
|
+
"autoMigrated": "n/a"
|
|
1773
|
+
}
|
|
1774
|
+
],
|
|
1775
|
+
"search": [
|
|
1776
|
+
"GridFilterOptions"
|
|
1777
|
+
],
|
|
1778
|
+
"always": false,
|
|
1779
|
+
"docs": "support/version-240-release-note#chg-objects-grid-filter-options"
|
|
1780
|
+
},
|
|
1781
|
+
{
|
|
1782
|
+
"id": "objects-filter-contexts",
|
|
1783
|
+
"area": "objects",
|
|
1784
|
+
"type": "BREAKING",
|
|
1785
|
+
"title": "Filter contexts",
|
|
1786
|
+
"rows": [
|
|
1787
|
+
{
|
|
1788
|
+
"item": "Filter contexts",
|
|
1789
|
+
"before": "DefaultPredicateFilterContext, CustomQueryVariableContext",
|
|
1790
|
+
"after": "DefaultFilterExpressionContext, QueryVariableContext",
|
|
1791
|
+
"autoMigrated": "n/a"
|
|
1792
|
+
}
|
|
1793
|
+
],
|
|
1794
|
+
"search": [
|
|
1795
|
+
"DefaultPredicateFilterContext",
|
|
1796
|
+
"CustomQueryVariableContext"
|
|
1797
|
+
],
|
|
1798
|
+
"always": false,
|
|
1799
|
+
"docs": "support/version-240-release-note#chg-objects-filter-contexts"
|
|
1800
|
+
},
|
|
1801
|
+
{
|
|
1802
|
+
"id": "objects-layout-tag-contexts",
|
|
1803
|
+
"area": "objects",
|
|
1804
|
+
"type": "DEPRECATED",
|
|
1805
|
+
"title": "Layout Tag contexts",
|
|
1806
|
+
"rows": [
|
|
1807
|
+
{
|
|
1808
|
+
"item": "Layout Tag contexts",
|
|
1809
|
+
"before": "LayoutExtendedContext, AutoGenerateTagsForLayoutsContext",
|
|
1810
|
+
"after": "deprecated with layoutTagOptions",
|
|
1811
|
+
"autoMigrated": "n/a"
|
|
1812
|
+
}
|
|
1813
|
+
],
|
|
1814
|
+
"search": [
|
|
1815
|
+
"LayoutExtendedContext",
|
|
1816
|
+
"AutoGenerateTagsForLayoutsContext"
|
|
1817
|
+
],
|
|
1818
|
+
"always": false,
|
|
1819
|
+
"docs": "support/version-240-release-note#chg-objects-layout-tag-contexts"
|
|
1820
|
+
},
|
|
1821
|
+
{
|
|
1822
|
+
"id": "objects-extended-layout-object",
|
|
1823
|
+
"area": "objects",
|
|
1824
|
+
"type": "BREAKING",
|
|
1825
|
+
"title": "Extended Layout items",
|
|
1826
|
+
"rows": [
|
|
1827
|
+
{
|
|
1828
|
+
"item": "Extended Layout items",
|
|
1829
|
+
"before": "ExtendedLayout.Extensions items typed LayoutExtension",
|
|
1830
|
+
"after": "ExtendedLayoutObject ({ Module, Object }); LayoutExtension now means the State entry { LayoutName, Alert?, FormatColumn?, … }",
|
|
1831
|
+
"autoMigrated": "n/a"
|
|
1832
|
+
}
|
|
1833
|
+
],
|
|
1834
|
+
"search": [
|
|
1835
|
+
"ExtendedLayout",
|
|
1836
|
+
"LayoutExtensionObject",
|
|
1837
|
+
"LayoutExtensionModule"
|
|
1838
|
+
],
|
|
1839
|
+
"always": false,
|
|
1840
|
+
"note": "Re-type ExtendedLayout.Extensions items as ExtendedLayoutObject.",
|
|
1841
|
+
"docs": "support/version-240-release-note#chg-objects-extended-layout-object"
|
|
1842
|
+
},
|
|
1843
|
+
{
|
|
1844
|
+
"id": "objects-state-function-types",
|
|
1845
|
+
"area": "objects",
|
|
1846
|
+
"type": "BREAKING",
|
|
1847
|
+
"title": "State function types",
|
|
1848
|
+
"rows": [
|
|
1849
|
+
{
|
|
1850
|
+
"item": "State function types",
|
|
1851
|
+
"before": "AdaptableSaveStateFunction, AdaptablePersistStateFunction, AdaptableLoadStateFunction, AdaptableApplyStateFunction on AdaptableState / any",
|
|
1852
|
+
"after": "same names, typed on AdaptablePersistentState (see State Options)",
|
|
1853
|
+
"autoMigrated": "n/a"
|
|
1854
|
+
},
|
|
1855
|
+
{
|
|
1856
|
+
"item": "State function config",
|
|
1857
|
+
"before": "AdaptableStateFunctionConfig.previousState: AdaptableState",
|
|
1858
|
+
"after": "previousState: AdaptablePersistentState",
|
|
1859
|
+
"autoMigrated": "n/a"
|
|
1860
|
+
}
|
|
1861
|
+
],
|
|
1862
|
+
"search": [
|
|
1863
|
+
"AdaptableSaveStateFunction",
|
|
1864
|
+
"AdaptablePersistStateFunction",
|
|
1865
|
+
"AdaptableLoadStateFunction",
|
|
1866
|
+
"AdaptableApplyStateFunction",
|
|
1867
|
+
"AdaptableStateFunctionConfig"
|
|
1868
|
+
],
|
|
1869
|
+
"always": false,
|
|
1870
|
+
"note": "Re-annotate standalone state functions against AdaptablePersistentState; see State Options.",
|
|
1871
|
+
"docs": "support/version-240-release-note#chg-objects-state-function-types"
|
|
1872
|
+
}
|
|
1873
|
+
]
|
|
1874
|
+
}
|