@khester/create-dynamics-app 3.4.0 → 3.4.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/dist/artifacts/registry.d.ts.map +1 -1
- package/dist/artifacts/registry.js +15 -1
- package/dist/artifacts/registry.js.map +1 -1
- package/package.json +4 -3
- package/templates/grid-customizer/README.md +9 -7
- package/templates/grid-customizer/dev/harness/MockGrid.tsx +31 -12
- package/templates/grid-customizer/dev/harness/dataverse.ts +145 -11
- package/templates/grid-customizer/{{componentName}}/customizers/CellEditorOverrides.tsx +50 -23
- package/templates/grid-customizer/{{componentName}}/types.ts +61 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/artifacts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAGlB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AA8JpB;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/artifacts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAGlB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AA8JpB;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,kBAAkB,EA0iBzC,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEtE;AAED,wBAAgB,kBAAkB,IAAI,kBAAkB,EAAE,CAEzD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAW1E,CAAC"}
|
|
@@ -484,7 +484,21 @@ export const ARTIFACTS = [
|
|
|
484
484
|
// It is now a control-type="virtual" PCF control on the platform-served React 16.14.0
|
|
485
485
|
// + Fluent 8.121.1, in the nested `<componentName>/` layout, with pcfconfig.json,
|
|
486
486
|
// featureconfig.json and .eslintrc.json.
|
|
487
|
-
|
|
487
|
+
//
|
|
488
|
+
// 3.1.1 — contract corrections (#309, released in create-dynamics-app 3.4.1). `stopEditing`
|
|
489
|
+
// was typed `(cancel?: boolean)`; the boolean is `suppressNavigateAfterEdit` and stopEditing
|
|
490
|
+
// IS the commit. Both override maps key on `CustomRendererType || dataType`, both handlers
|
|
491
|
+
// take an undocumented third argument, and `charPress` is delivered as `keyPress`. A patch
|
|
492
|
+
// because nothing gained a capability — but it changes a signature user code compiles
|
|
493
|
+
// against, so the artifact version records it.
|
|
494
|
+
//
|
|
495
|
+
// 3.1.2 — the dev harness classified columns from `AttributeType` alone, which carries no
|
|
496
|
+
// `Format`: Email/URL/Phone columns were dispatched as 'Text', every DateOnly column as
|
|
497
|
+
// 'DateAndTime', and multi-select choice columns (AttributeType 'Virtual') as 'Text'. So the
|
|
498
|
+
// harness exercised the wrong override handler — the one failure mode it exists to prevent.
|
|
499
|
+
// Now resolved from AttributeTypeName + a per-type Format cast, against a live-org measured
|
|
500
|
+
// table. Patch: no new capability, and the emitted control is unchanged.
|
|
501
|
+
templateVersion: '3.1.2',
|
|
488
502
|
available: true,
|
|
489
503
|
},
|
|
490
504
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/artifacts/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/artifacts/registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@khester/create-dynamics-app",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Unified CLI to scaffold Dynamics 365 / Power Platform artifacts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -23,10 +23,11 @@
|
|
|
23
23
|
"test:e2e": "tsc --noEmit -p tsconfig.e2e.json && vitest run --config vitest.e2e.config.ts",
|
|
24
24
|
"typecheck": "tsc --noEmit",
|
|
25
25
|
"lint": "eslint src --ext .ts,.tsx",
|
|
26
|
-
"clean": "rimraf dist tsconfig.tsbuildinfo"
|
|
26
|
+
"clean": "rimraf dist tsconfig.tsbuildinfo",
|
|
27
|
+
"check:published-templates": "node scripts/check-published-template-drift.mjs"
|
|
27
28
|
},
|
|
28
29
|
"dependencies": {
|
|
29
|
-
"@dataverse-kit/export-engine": "^1.34.
|
|
30
|
+
"@dataverse-kit/export-engine": "^1.34.4",
|
|
30
31
|
"@khester/dynamics-ui-components": "^1.0.0",
|
|
31
32
|
"chalk": "^5.3.0",
|
|
32
33
|
"commander": "^11.1.0",
|
|
@@ -25,8 +25,8 @@ npm run build # pcf-scripts build → out/controls/{{componentName}}/
|
|
|
25
25
|
`npm start` (the stock `pcf-scripts` harness) will load the control and show a **blank
|
|
26
26
|
canvas**. That is correct, not a bug: the harness has no OneGrid, so nothing ever calls the
|
|
27
27
|
overrides. `npm run dev` runs a stand-in grid that calls the RENDERER overrides exactly as the platform
|
|
28
|
-
does. (Edit mode dispatches the editor overrides by the same rules
|
|
29
|
-
|
|
28
|
+
does. (Edit mode dispatches the editor overrides by the same rules; see Edit mode below for what
|
|
29
|
+
it does and does not prove.)
|
|
30
30
|
|
|
31
31
|
## Local development
|
|
32
32
|
|
|
@@ -64,11 +64,13 @@ With the shipped config nothing is opted in, so every cell falls through to a pl
|
|
|
64
64
|
a column logical name in **Progress columns** and that column's `Decimal` cells become the
|
|
65
65
|
clamped `SpinButton` from `CellEditorOverrides.tsx` instead.
|
|
66
66
|
|
|
67
|
-
> ⚠️ **What edit mode does
|
|
68
|
-
> `
|
|
69
|
-
>
|
|
70
|
-
>
|
|
71
|
-
>
|
|
67
|
+
> ⚠️ **What edit mode does and does not prove.** The **naming** is settled: `defaultProps.onChange`
|
|
68
|
+
> *is* `editorParams.onCellValueChanged` — one function, two names. But it **stages** a value;
|
|
69
|
+
> **`stopEditing` is what commits** (`getValue()` → `saveNewValue()` → `setDataValue`). So calling
|
|
70
|
+
> `onChange` alone defers the commit to the end of the edit session, while also calling
|
|
71
|
+
> `stopEditing()` flushes immediately — a real behavioural difference under cancel. Edit mode
|
|
72
|
+
> shows you the handler is reached, keyed and narrowed; it cannot show you commit timing, and it
|
|
73
|
+
> cannot show the Dataverse round-trip.
|
|
72
74
|
|
|
73
75
|
## Customizing it
|
|
74
76
|
|
|
@@ -15,7 +15,7 @@ import type {
|
|
|
15
15
|
* to customize during local development.
|
|
16
16
|
*
|
|
17
17
|
* ★ Its whole value is that it calls the overrides EXACTLY the way the real grid does:
|
|
18
|
-
* - looks the handler up by
|
|
18
|
+
* - looks the handler up by `CustomRendererType || ColumnDataType`, never by logical name;
|
|
19
19
|
* - passes `(CellRendererProps, GetRendererParams)`, with `colDefs` + `columnIndex` so a
|
|
20
20
|
* handler can narrow to one column;
|
|
21
21
|
* - treats a `null`/`undefined` return as "use the default renderer" rather than as an
|
|
@@ -30,16 +30,17 @@ import type {
|
|
|
30
30
|
* without it that half of the contract had never been executed anywhere — the map shipped
|
|
31
31
|
* empty, the only example lived in a docblock, and "it typechecks" was the whole of its
|
|
32
32
|
* coverage. Edit mode dispatches editors by the same rules as renderers:
|
|
33
|
-
* - keyed by `ColumnDataType
|
|
33
|
+
* - keyed by `CustomRendererType || ColumnDataType` (never by column NAME);
|
|
34
34
|
* - `(CellEditorProps, GetEditorParams)`, with `colDefs` + `columnIndex` for narrowing;
|
|
35
35
|
* - `undefined` means "use the platform's own editor", NOT "render nothing".
|
|
36
36
|
* ⚠️ The double-click GESTURE is the harness's own invention — the platform also has a
|
|
37
|
-
* type-to-edit path that seeds `
|
|
37
|
+
* type-to-edit path that seeds `keyPress`, which this never populates.
|
|
38
38
|
*
|
|
39
|
-
* ⚠️ What it CANNOT tell you:
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
39
|
+
* ⚠️ What it CANNOT tell you: COMMIT TIMING. In the platform, `onChange` only stages a value and
|
|
40
|
+
* `stopEditing` flushes it (`getValue()` → `saveNewValue()` → `setDataValue`); this harness
|
|
41
|
+
* commits straight to its own row data on `onChange`, so it cannot show you the difference
|
|
42
|
+
* between deferring to session end and flushing immediately — nor the Dataverse round-trip.
|
|
43
|
+
* Edit mode proves the map is reached, keyed and narrowed. Nothing more.
|
|
43
44
|
*/
|
|
44
45
|
|
|
45
46
|
/** One column of the fake grid: the platform's `ColumnDefinition` plus a display width. */
|
|
@@ -50,8 +51,13 @@ export interface HarnessColumn {
|
|
|
50
51
|
width?: number;
|
|
51
52
|
/** Per-column editability. The platform sets this from metadata/security, not per grid. */
|
|
52
53
|
editable?: boolean;
|
|
54
|
+
/** ★ Takes PRECEDENCE over `dataType` in the override lookup, exactly as the platform does. */
|
|
55
|
+
customRendererType?: string;
|
|
53
56
|
}
|
|
54
57
|
|
|
58
|
+
/** Stand-in for the platform's localized strings — the undocumented third handler argument. */
|
|
59
|
+
const HARNESS_LOCALIZED_STRINGS: Record<string, unknown> = {};
|
|
60
|
+
|
|
55
61
|
/** One cell: the raw value the platform would pass, and the text it would have painted. */
|
|
56
62
|
export interface HarnessCell {
|
|
57
63
|
raw: unknown;
|
|
@@ -126,6 +132,8 @@ export const MockGrid: React.FC<MockGridProps> = ({
|
|
|
126
132
|
name: c.name,
|
|
127
133
|
displayName: c.displayName,
|
|
128
134
|
dataType: c.dataType,
|
|
135
|
+
// Surfaced so a handler narrowing through colDefs sees what the LOOKUP used.
|
|
136
|
+
CustomRendererType: c.customRendererType,
|
|
129
137
|
isPrimary: i === 0,
|
|
130
138
|
}));
|
|
131
139
|
|
|
@@ -186,8 +194,13 @@ export const MockGrid: React.FC<MockGridProps> = ({
|
|
|
186
194
|
rowData: { __rec_id: String(rowIndex) },
|
|
187
195
|
};
|
|
188
196
|
|
|
189
|
-
|
|
190
|
-
|
|
197
|
+
// ★ Composite key, as the platform does: `CustomRendererType || dataType`.
|
|
198
|
+
// Keying on dataType alone silently misses a column that declares one.
|
|
199
|
+
const rKey = (col.customRendererType || col.dataType) as ColumnDataType;
|
|
200
|
+
const handler = overrides[rKey];
|
|
201
|
+
// ★ Third argument: the platform passes its localized strings. Undocumented,
|
|
202
|
+
// but a handler that reads it must not receive `undefined` here by accident.
|
|
203
|
+
const custom = handler ? handler(props, params, HARNESS_LOCALIZED_STRINGS) : undefined;
|
|
191
204
|
|
|
192
205
|
let content: React.ReactNode;
|
|
193
206
|
if (isEditing) {
|
|
@@ -200,10 +213,15 @@ export const MockGrid: React.FC<MockGridProps> = ({
|
|
|
200
213
|
rowHeight,
|
|
201
214
|
columnDataType: col.dataType,
|
|
202
215
|
isRequired: false,
|
|
203
|
-
charPress
|
|
216
|
+
// ★ `keyPress` is what the platform delivers; `charPress` is not sent.
|
|
217
|
+
keyPress: null,
|
|
204
218
|
// The documented commit path. The harness treats it as authoritative and
|
|
205
219
|
// writes straight through to the row data.
|
|
206
220
|
onChange: commit,
|
|
221
|
+
// The platform surfaces the flush on the props too. Without it, a handler
|
|
222
|
+
// following the docs and calling `defaultProps.onStopEditing?.()` would hit a
|
|
223
|
+
// silent no-op here — editor never closes, nothing commits.
|
|
224
|
+
onStopEditing: () => stopEditing(),
|
|
207
225
|
};
|
|
208
226
|
const editorParams: GetEditorParams = {
|
|
209
227
|
colDefs,
|
|
@@ -214,9 +232,10 @@ export const MockGrid: React.FC<MockGridProps> = ({
|
|
|
214
232
|
rowData: { __rec_id: String(rowIndex) },
|
|
215
233
|
stopEditing,
|
|
216
234
|
};
|
|
217
|
-
const
|
|
235
|
+
const eKey = (col.customRendererType || col.dataType) as ColumnDataType;
|
|
236
|
+
const editorHandler = editorOverrides?.[eKey];
|
|
218
237
|
const customEditor = editorHandler
|
|
219
|
-
? editorHandler(editorProps, editorParams)
|
|
238
|
+
? editorHandler(editorProps, editorParams, HARNESS_LOCALIZED_STRINGS)
|
|
220
239
|
: undefined;
|
|
221
240
|
|
|
222
241
|
content = (
|
|
@@ -13,8 +13,10 @@ import type { HarnessColumn, HarnessRow } from './MockGrid';
|
|
|
13
13
|
* value cannot work — a Currency and a Decimal are both `number` over the wire, a Picklist
|
|
14
14
|
* and an Integer are both `number`, a DateOnly and a DateAndTime are both strings — so the
|
|
15
15
|
* harness would exercise the wrong handler (or none) and tell you nothing. It therefore
|
|
16
|
-
* reads the real
|
|
17
|
-
*
|
|
16
|
+
* reads the real column classification from entity metadata, the same one the platform uses when
|
|
17
|
+
* it decides which override to call. ⚠️ That is `AttributeTypeName` + `Format` — NOT `AttributeType`
|
|
18
|
+
* alone, which carries no Format and cannot separate Email/URL/Phone from Text, DateOnly from
|
|
19
|
+
* DateAndTime, or a multi-select choice column from any other `Virtual` attribute.
|
|
18
20
|
*
|
|
19
21
|
* All calls go through the same-origin `/api/data` proxy in `vite.config.ts`, which injects
|
|
20
22
|
* the bearer token server-side — no token ever reaches the browser. READ-ONLY: the harness
|
|
@@ -23,7 +25,15 @@ import type { HarnessColumn, HarnessRow } from './MockGrid';
|
|
|
23
25
|
|
|
24
26
|
export type { HttpError } from '@dataverse-kit/pcf-dev-harness/shell';
|
|
25
27
|
|
|
26
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* What the grid contract calls a column, keyed by Dataverse's `AttributeTypeCode`.
|
|
30
|
+
*
|
|
31
|
+
* ⚠️ `AttributeType` ALONE is not sufficient, and three entries here were wrong until
|
|
32
|
+
* 2026-08-11 because of it — see `FORMAT_TO_COLUMN_TYPE` and `resolveColumnType` below.
|
|
33
|
+
* `AttributeType` carries no `Format`, so it cannot separate `Email`/`URL`/`Phone` from
|
|
34
|
+
* `Text`, nor `DateOnly` from `DateAndTime`; and a multi-select choice column reports
|
|
35
|
+
* `Virtual`, which this table used to map to `Text`.
|
|
36
|
+
*/
|
|
27
37
|
const ATTRIBUTE_TYPE_TO_COLUMN_TYPE: Readonly<Record<string, ColumnDataType>> = {
|
|
28
38
|
// The three that actually drive this template's overrides.
|
|
29
39
|
Picklist: 'OptionSet',
|
|
@@ -37,17 +47,78 @@ const ATTRIBUTE_TYPE_TO_COLUMN_TYPE: Readonly<Record<string, ColumnDataType>> =
|
|
|
37
47
|
// is dispatched correctly without touching this file.
|
|
38
48
|
Integer: 'Integer',
|
|
39
49
|
BigInt: 'Integer',
|
|
40
|
-
String: 'Text',
|
|
50
|
+
String: 'Text', // refined by Format — see FORMAT_TO_COLUMN_TYPE
|
|
41
51
|
Memo: 'TextArea',
|
|
42
|
-
DateTime: 'DateAndTime',
|
|
52
|
+
DateTime: 'DateAndTime', // refined by Format — a DateOnly column keys 'DateOnly'
|
|
43
53
|
Lookup: 'Lookup',
|
|
44
54
|
Customer: 'Customer',
|
|
45
55
|
Owner: 'Owner',
|
|
46
|
-
Virtual:
|
|
56
|
+
// ⚠️ `Virtual` covers MORE than multi-select: ImageType and FileType are Virtual too, and
|
|
57
|
+
// 'Image' is both a ColumnDataType member and a live generator key — so an image column is
|
|
58
|
+
// still classified 'Text' here and will exercise the wrong handler. NOT measured, so it is
|
|
59
|
+
// recorded rather than guessed at; measure before mapping it (cf. TickerSymbol).
|
|
60
|
+
Virtual: 'Text', // refined by AttributeTypeName — MultiSelectPicklistType keys 'MultiSelectPicklist'
|
|
47
61
|
Uniqueidentifier: 'Text',
|
|
48
62
|
EntityName: 'Text',
|
|
49
63
|
};
|
|
50
64
|
|
|
65
|
+
/**
|
|
66
|
+
* ★★ `Format` → `ColumnDataType`, **measured against a live org** (`orge2e285aa`, 2026-08-11) by
|
|
67
|
+
* binding a diagnostic customizer that renders the key OneGrid dispatched under into the cell.
|
|
68
|
+
* This is not inferred from the union's member names.
|
|
69
|
+
*
|
|
70
|
+
* ```
|
|
71
|
+
* String Format=Text -> Text Memo Format=TextArea -> TextArea
|
|
72
|
+
* String Format=Email -> Email DateTime DateOnly -> DateOnly
|
|
73
|
+
* String Format=Url -> URL DateTime DateAndTime -> DateAndTime
|
|
74
|
+
* String Format=Phone -> Phone MultiSelectPicklist -> MultiSelectPicklist
|
|
75
|
+
* String Format=TickerSymbol -> Text ★ NOT 'Ticker'
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* ★ **`TickerSymbol` is why this table is measured rather than derived.** `Ticker` IS a member of
|
|
79
|
+
* `ColumnDataType`, so the obvious mapping — `TickerSymbol → 'Ticker'` — is the one any reasonable
|
|
80
|
+
* person would write. The platform dispatches those columns as **`Text`**. Every other format in
|
|
81
|
+
* the set mapped to the name you would guess; this one did not, and nothing short of asking the
|
|
82
|
+
* platform would have revealed it. Absent formats therefore fall back to the `AttributeType`
|
|
83
|
+
* mapping rather than being guessed from their name.
|
|
84
|
+
*
|
|
85
|
+
* ⚠️ `PhoneticGuide` is a real `Format` (on `yominame`) and is deliberately absent: it was not
|
|
86
|
+
* measured, so it falls back to `Text` via `AttributeType` instead of being guessed at.
|
|
87
|
+
*/
|
|
88
|
+
const FORMAT_TO_COLUMN_TYPE: Readonly<Record<string, ColumnDataType>> = {
|
|
89
|
+
Email: 'Email',
|
|
90
|
+
Url: 'URL',
|
|
91
|
+
Phone: 'Phone',
|
|
92
|
+
TextArea: 'TextArea',
|
|
93
|
+
DateOnly: 'DateOnly',
|
|
94
|
+
DateAndTime: 'DateAndTime',
|
|
95
|
+
// ⚠️ `Text` is deliberately ABSENT. A String with Format=Text already resolves to 'Text' via
|
|
96
|
+
// AttributeType, and a **Memo** with Format=Text (a real maker choice — MemoFormatName offers
|
|
97
|
+
// Text or RichText) must resolve to 'TextArea', which only the AttributeType fallback gets
|
|
98
|
+
// right. Adding `Text: 'Text'` here silently reclassifies every rich-text/notes column.
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* The platform's classification for one column.
|
|
103
|
+
*
|
|
104
|
+
* Precedence, and each step exists because a real column needs it:
|
|
105
|
+
* 1. `AttributeTypeName` for the **Virtual** case — a multi-select choice column reports
|
|
106
|
+
* `AttributeType: 'Virtual'` and `AttributeTypeName.Value: 'MultiSelectPicklistType'`. The
|
|
107
|
+
* legacy `AttributeType` enum has no `MultiSelectPicklist` member at all, so a test against it
|
|
108
|
+
* never matches. (Same trap as the option-set metadata cast in `pcf-field`.)
|
|
109
|
+
* 2. `Format`, which separates Email/URL/Phone from Text and DateOnly from DateAndTime.
|
|
110
|
+
* 3. `AttributeType`, for everything whose type alone is decisive.
|
|
111
|
+
*/
|
|
112
|
+
function resolveColumnType(meta: AttributeMetadata | undefined): ColumnDataType {
|
|
113
|
+
if (!meta) return 'Text';
|
|
114
|
+
if (meta.AttributeTypeName?.Value === 'MultiSelectPicklistType') return 'MultiSelectPicklist';
|
|
115
|
+
// Only `Format` is ever populated here: `fetchColumnTypes` merges the cast read in under
|
|
116
|
+
// that name, and `FormatName` cannot come back from the uncast collection (it 400s).
|
|
117
|
+
const format = meta.Format;
|
|
118
|
+
if (format && FORMAT_TO_COLUMN_TYPE[format]) return FORMAT_TO_COLUMN_TYPE[format];
|
|
119
|
+
return ATTRIBUTE_TYPE_TO_COLUMN_TYPE[meta.AttributeType] ?? 'Text';
|
|
120
|
+
}
|
|
121
|
+
|
|
51
122
|
/**
|
|
52
123
|
* ★ Lookup-typed columns are mapped above but cannot be LOADED by this harness. Dataverse
|
|
53
124
|
* requires the `_<name>_value` form in `$select` for a lookup, while the metadata call wants
|
|
@@ -60,9 +131,66 @@ const ATTRIBUTE_TYPE_TO_COLUMN_TYPE: Readonly<Record<string, ColumnDataType>> =
|
|
|
60
131
|
interface AttributeMetadata {
|
|
61
132
|
LogicalName: string;
|
|
62
133
|
AttributeType: string;
|
|
134
|
+
/** Present only on the derived types, via a cast — see `fetchAttributeFormats`. */
|
|
135
|
+
Format?: string;
|
|
136
|
+
FormatName?: { Value: string };
|
|
137
|
+
AttributeTypeName?: { Value: string };
|
|
63
138
|
DisplayName?: { UserLocalizedLabel?: { Label?: string } | null } | null;
|
|
64
139
|
}
|
|
65
140
|
|
|
141
|
+
/**
|
|
142
|
+
* `LogicalName` → `Format`, for the attribute types that have one.
|
|
143
|
+
*
|
|
144
|
+
* ★★ **`Format` and `FormatName` are NOT properties of `AttributeMetadata`.** Selecting either on
|
|
145
|
+
* the uncast `/Attributes` collection is a **400**, not a silent `undefined` — the platform's own
|
|
146
|
+
* words: *"Could not find a property named 'FormatName' on type
|
|
147
|
+
* 'Microsoft.Dynamics.CRM.AttributeMetadata'."* They exist only on the derived types, reached
|
|
148
|
+
* through a cast. (A declared property is not a fetched one; the TypeScript interface above
|
|
149
|
+
* declares both, and declaring them is what makes the mistake look wired.)
|
|
150
|
+
*
|
|
151
|
+
* ⚠️ **Which property differs BY TYPE, and getting it uniform is a 400:**
|
|
152
|
+
* ```
|
|
153
|
+
* String / Memo -> FormatName (Format also present, same values)
|
|
154
|
+
* DateTime -> Format ONLY; FormatName does not exist and 400s
|
|
155
|
+
* ```
|
|
156
|
+
*
|
|
157
|
+
* Three COLLECTION-level casts merged by `LogicalName` — 3 requests for the whole table, not the
|
|
158
|
+
* per-attribute N+1 a naive version would do. Never throws: a metadata enrichment that fails must
|
|
159
|
+
* not fail the grid, it just falls back to the `AttributeType` mapping.
|
|
160
|
+
*/
|
|
161
|
+
async function fetchAttributeFormats(logicalName: string): Promise<Map<string, string>> {
|
|
162
|
+
const casts: [string, 'FormatName' | 'Format'][] = [
|
|
163
|
+
['StringAttributeMetadata', 'FormatName'],
|
|
164
|
+
['MemoAttributeMetadata', 'FormatName'],
|
|
165
|
+
['DateTimeAttributeMetadata', 'Format'],
|
|
166
|
+
];
|
|
167
|
+
const out = new Map<string, string>();
|
|
168
|
+
await Promise.all(
|
|
169
|
+
casts.map(async ([castType, prop]) => {
|
|
170
|
+
try {
|
|
171
|
+
const res = await apiFetch(
|
|
172
|
+
`/api/data/v9.2/EntityDefinitions(LogicalName='${logicalName}')/Attributes/Microsoft.Dynamics.CRM.${castType}?$select=LogicalName,${prop}`,
|
|
173
|
+
);
|
|
174
|
+
if (!res.ok) {
|
|
175
|
+
// ★ Not silent: losing this read reverts every date column to 'DateAndTime' and every
|
|
176
|
+
// Email/URL/Phone column to 'Text' — i.e. back to the exact bug this function fixes,
|
|
177
|
+
// in a harness whose only job is to report the key the platform would dispatch.
|
|
178
|
+
console.warn(`[harness] ${castType} format read failed (HTTP ${res.status}); columns of this type fall back to their AttributeType classification.`);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const body = (await res.json()) as { value?: AttributeMetadata[] };
|
|
182
|
+
for (const a of body.value ?? []) {
|
|
183
|
+
const v = prop === 'FormatName' ? a.FormatName?.Value : a.Format;
|
|
184
|
+
if (v) out.set(a.LogicalName, v);
|
|
185
|
+
}
|
|
186
|
+
} catch (err) {
|
|
187
|
+
console.warn(`[harness] ${castType} format read threw; falling back to AttributeType.`, err);
|
|
188
|
+
}
|
|
189
|
+
}),
|
|
190
|
+
);
|
|
191
|
+
return out;
|
|
192
|
+
}
|
|
193
|
+
|
|
66
194
|
/** OData annotation carrying the text the platform itself would paint in the cell. */
|
|
67
195
|
const FORMATTED = '@OData.Community.Display.V1.FormattedValue';
|
|
68
196
|
|
|
@@ -94,22 +222,28 @@ async function fetchColumnTypes(
|
|
|
94
222
|
logicalName: string,
|
|
95
223
|
fields: string[],
|
|
96
224
|
): Promise<HarnessColumn[]> {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
225
|
+
// ★ `AttributeTypeName` IS selectable on the uncast collection (unlike Format) — it is what
|
|
226
|
+
// separates a multi-select choice column from every other `Virtual` attribute.
|
|
227
|
+
const params = new URLSearchParams({
|
|
228
|
+
$select: 'LogicalName,AttributeType,AttributeTypeName,DisplayName',
|
|
229
|
+
});
|
|
230
|
+
const [res, formats] = await Promise.all([
|
|
231
|
+
apiFetch(`/api/data/v9.2/EntityDefinitions(LogicalName='${logicalName}')/Attributes?${params}`),
|
|
232
|
+
fetchAttributeFormats(logicalName),
|
|
233
|
+
]);
|
|
101
234
|
if (!res.ok) throw await toHttpError(res);
|
|
102
235
|
const body = (await res.json()) as { value?: AttributeMetadata[] };
|
|
103
236
|
|
|
104
237
|
const byName = new Map((body.value ?? []).map((a) => [a.LogicalName, a]));
|
|
105
238
|
return fields.map((f, i) => {
|
|
106
239
|
const meta = byName.get(f);
|
|
240
|
+
const format = formats.get(f);
|
|
107
241
|
return {
|
|
108
242
|
name: f,
|
|
109
243
|
displayName: meta?.DisplayName?.UserLocalizedLabel?.Label ?? f,
|
|
110
244
|
// An unknown or missing attribute falls back to Text — it then renders through the
|
|
111
245
|
// default path, which is the honest outcome for a column we cannot classify.
|
|
112
|
-
dataType: (meta &&
|
|
246
|
+
dataType: resolveColumnType(meta && format ? { ...meta, Format: format } : meta),
|
|
113
247
|
width: i === 0 ? 220 : 160,
|
|
114
248
|
};
|
|
115
249
|
});
|
|
@@ -15,15 +15,32 @@ import { PROGRESS_COLUMNS, PROGRESS_MAX, toNumber } from './config';
|
|
|
15
15
|
* renderer, a wrong editor WRITES BAD DATA rather than merely looking wrong. Only `Decimal` is
|
|
16
16
|
* registered here, and only for the columns you opt in.
|
|
17
17
|
*
|
|
18
|
-
* ⚠️ **
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
18
|
+
* ⚠️ **Commit semantics — PARTIALLY resolved, and an earlier revision of this comment got the
|
|
19
|
+
* central point backwards.** Corrected 2026-08-09 after review re-read the bundle one level
|
|
20
|
+
* deeper. What the platform actually does:
|
|
21
|
+
*
|
|
22
|
+
* ```js
|
|
23
|
+
* // the editor wrapper OneGrid registers with ag-Grid
|
|
24
|
+
* _onCellValueChanged = e => { this.value = e }; // STAGES. No write.
|
|
25
|
+
* getValue = () => this.value; // read back at STOP time
|
|
26
|
+
* // ending the session:
|
|
27
|
+
* takeValueFromCellEditor() -> getValue() -> saveNewValue() -> rowNode.setDataValue(…)
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* ★★ `defaultProps.onChange` IS `editorParams.onCellValueChanged` (one function, two names) —
|
|
31
|
+
* that part was right. But it **stages**; it does not commit. **`stopEditing` is the flush.**
|
|
32
|
+
*
|
|
33
|
+
* ★★ Therefore the two conventions in this repo are **NOT equivalent**, and the earlier claim
|
|
34
|
+
* that they were is withdrawn:
|
|
35
|
+
* - `onChange` alone (this file) — defers the commit to whenever the grid ends the session;
|
|
36
|
+
* a cancel discards it.
|
|
37
|
+
* - `onChange` + `editorParams.stopEditing()` (export-engine's PA-grid emitter) — commits
|
|
38
|
+
* immediately and deterministically.
|
|
39
|
+
* Which is *wanted* depends on whether an in-progress edit should survive a cancel. Reconciling
|
|
40
|
+
* them is a real open question, not a style difference.
|
|
41
|
+
*
|
|
42
|
+
* ⚠️ Still unobserved: the Dataverse round-trip at the end of the save queue, AND the timing
|
|
43
|
+
* difference above under a real cancel. The dev harness cannot show either.
|
|
27
44
|
*/
|
|
28
45
|
|
|
29
46
|
/** Per-instance knobs, mirroring `RendererOptions` so the harness can retarget the same map. */
|
|
@@ -50,7 +67,11 @@ export function createCellEditorOverrides(options: EditorOptions = {}): CellEdit
|
|
|
50
67
|
// default, so a scaffold that has not been configured registers this handler and then
|
|
51
68
|
// falls through on every cell — the editor path is inert until you opt a column in, which
|
|
52
69
|
// is the conservative default for something that writes.
|
|
53
|
-
Decimal: (
|
|
70
|
+
Decimal: (
|
|
71
|
+
defaultProps: CellEditorProps,
|
|
72
|
+
editorParams: GetEditorParams,
|
|
73
|
+
customizerLocalizedStrings?: Record<string, unknown>,
|
|
74
|
+
) => {
|
|
54
75
|
const name = columnName(editorParams);
|
|
55
76
|
if (!name || !progressColumns.includes(name)) return undefined;
|
|
56
77
|
|
|
@@ -61,21 +82,22 @@ export function createCellEditorOverrides(options: EditorOptions = {}): CellEdit
|
|
|
61
82
|
//
|
|
62
83
|
// Do not add `onValidate`: Fluent v8's SpinButton calls `onValidate(entered)` and then
|
|
63
84
|
// feeds the result through `useControllableValue`, which calls `onChange` as well — so a
|
|
64
|
-
// single committed edit fires this twice
|
|
65
|
-
//
|
|
66
|
-
//
|
|
85
|
+
// single committed edit fires this handler twice. ⚠️ The measured [100, 100] was measured
|
|
86
|
+
// in THIS TEMPLATE'S HARNESS, which commits straight through on `onChange`; against the
|
|
87
|
+
// platform — which only STAGES on `onChange` — the second call is an idempotent
|
|
88
|
+
// re-assignment, not a second write. The prohibition still stands (firing a user callback
|
|
89
|
+
// twice per edit is wrong regardless, and Fluent's built-in validation already clamps, so
|
|
90
|
+
// `onValidate` buys nothing), but not for the reason first recorded.
|
|
67
91
|
//
|
|
68
|
-
//
|
|
69
|
-
//
|
|
92
|
+
// (Calling `editorParams.onCellValueChanged` as well is redundant, not harmful — it is the
|
|
93
|
+
// same function. An earlier revision called that a "double write"; it is an idempotent
|
|
94
|
+
// re-assignment.)
|
|
70
95
|
//
|
|
71
|
-
//
|
|
72
|
-
//
|
|
73
|
-
//
|
|
74
|
-
//
|
|
75
|
-
//
|
|
76
|
-
// undocumented contract (`onChange` followed by `editorParams.stopEditing()`, and empty →
|
|
77
|
-
// `onChange(null)`). They disagree; whoever verifies against a live editable grid should
|
|
78
|
-
// settle both at once.
|
|
96
|
+
// ★ `onChange` IS `editorParams.onCellValueChanged` (one function, two names), and it
|
|
97
|
+
// STAGES rather than writes — the platform flushes on `stopEditing`. So this handler
|
|
98
|
+
// defers its commit to the end of the edit session. export-engine's emitter instead
|
|
99
|
+
// calls `stopEditing()` to flush immediately; that is a real behavioural difference
|
|
100
|
+
// under cancel, not a style choice. See the header.
|
|
79
101
|
const commit = (raw?: string): void => {
|
|
80
102
|
// Empty means "clear the cell", not "re-commit what was there" — matching the
|
|
81
103
|
// export-engine emitter. Without this a user can never blank an opted-in column.
|
|
@@ -89,6 +111,11 @@ export function createCellEditorOverrides(options: EditorOptions = {}): CellEdit
|
|
|
89
111
|
|
|
90
112
|
return (
|
|
91
113
|
<SpinButton
|
|
114
|
+
// Consumes the undocumented third argument, so the declared arity is load-bearing and
|
|
115
|
+
// a test can detect it being dropped. Falls back when the platform sends nothing.
|
|
116
|
+
ariaLabel={
|
|
117
|
+
(customizerLocalizedStrings?.percentEditorLabel as string | undefined) ?? 'Percent complete'
|
|
118
|
+
}
|
|
92
119
|
min={0}
|
|
93
120
|
max={PROGRESS_MAX}
|
|
94
121
|
step={5}
|
|
@@ -22,7 +22,11 @@ export interface PAOneGridCustomizer {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
* ★ Keyed by
|
|
25
|
+
* ★ Keyed by `CustomRendererType || ColumnDataType` — never by column logical name.
|
|
26
|
+
*
|
|
27
|
+
* ⚠️ The `CustomRendererType` half is a HAZARD, not a feature: a column declaring one is looked
|
|
28
|
+
* up under that string FIRST, so a `Decimal:` entry silently never fires for it — and the closed
|
|
29
|
+
* `ColumnDataType` union gives you no way to register under it. Identical for editors.
|
|
26
30
|
*
|
|
27
31
|
* A `{ statuscode: renderer }` entry silently never fires — `statuscode` is not a
|
|
28
32
|
* `ColumnDataType`. To scope a renderer to one column, register under its data type and
|
|
@@ -35,14 +39,39 @@ export type CellRendererOverrides = {
|
|
|
35
39
|
[dataType in ColumnDataType]?: (
|
|
36
40
|
props: CellRendererProps,
|
|
37
41
|
rendererParams: GetRendererParams,
|
|
42
|
+
localizedStrings?: Record<string, unknown>,
|
|
38
43
|
) => React.ReactElement | null | undefined;
|
|
39
44
|
};
|
|
40
45
|
|
|
41
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* Same fall-through rule as `CellRendererOverrides`, and — contrary to what this file said
|
|
48
|
+
* before 2026-08-09 — the SAME keying. Both maps are looked up as:
|
|
49
|
+
*
|
|
50
|
+
* ```js
|
|
51
|
+
* overrides[colDef.CustomRendererType || colDef.dataType]
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* ⚠️ **A column declaring a `CustomRendererType` is looked up under THAT STRING FIRST**, so a
|
|
55
|
+
* `Decimal:` entry silently never fires for it — the exact silent-miss class these docs exist to
|
|
56
|
+
* prevent. You cannot currently register under one: the map is keyed by the closed
|
|
57
|
+
* `ColumnDataType` union. A hazard to know about, not a feature to use.
|
|
58
|
+
*
|
|
59
|
+
* Both handlers also receive an undocumented THIRD argument — renderers get
|
|
60
|
+
* `props.localizedStrings`, editors get `customizerLocalizedStrings`. Different prop names, same
|
|
61
|
+
* idea. Typed loosely; Microsoft publishes no shape for either.
|
|
62
|
+
*
|
|
63
|
+
* ★ SOURCE for everything below: Microsoft's shipped OneGrid bundle, read 2026-08-09.
|
|
64
|
+
* https://content.powerapps.com/resource/uci-infra-web/controlsAssets/PowerAppsOneGrid.1D7C81F.js
|
|
65
|
+
* ⚠️ That filename is CONTENT-HASHED and rotates with every platform update — there is no
|
|
66
|
+
* unhashed alias (the bare name 404s). To re-derive it: open any model-driven grid, then
|
|
67
|
+
* `document.querySelector('script[src*=PowerAppsOneGrid]').src`. Search terms that still
|
|
68
|
+
* locate the logic: `customCellEditor`, `_customCellRenderer`, `takeValueFromCellEditor`.
|
|
69
|
+
*/
|
|
42
70
|
export type CellEditorOverrides = {
|
|
43
71
|
[dataType in ColumnDataType]?: (
|
|
44
72
|
defaultProps: CellEditorProps,
|
|
45
73
|
editorParams: GetEditorParams,
|
|
74
|
+
customizerLocalizedStrings?: Record<string, unknown>,
|
|
46
75
|
) => React.ReactElement | null | undefined;
|
|
47
76
|
};
|
|
48
77
|
|
|
@@ -90,9 +119,38 @@ export interface CellEditorProps {
|
|
|
90
119
|
readonly isRTLMode?: boolean;
|
|
91
120
|
readonly rowHeight?: number;
|
|
92
121
|
readonly isRequired?: boolean;
|
|
122
|
+
/** ⚠️ Not delivered under this name — the platform's props literal carries `keyPress`. */
|
|
93
123
|
readonly charPress?: string | null;
|
|
124
|
+
/** What the platform actually passes for type-to-edit. */
|
|
125
|
+
readonly keyPress?: string | null;
|
|
94
126
|
readonly columnDataType?: ColumnDataType;
|
|
127
|
+
/**
|
|
128
|
+
* ★★ THE SAME FUNCTION AS `GetEditorParams.onCellValueChanged` — the platform builds these
|
|
129
|
+
* props as `{ …, onChange: m }` where `m = editorParams.onCellValueChanged`. One reference,
|
|
130
|
+
* two names.
|
|
131
|
+
*
|
|
132
|
+
* ★★ **It STAGES a value; it does not write one.** The editor wrapper is literally
|
|
133
|
+
* `_onCellValueChanged = e => { this.value = e }`, and ag-Grid reads it back through
|
|
134
|
+
* `getValue()` only when the edit session ends. Calling it twice is an idempotent
|
|
135
|
+
* re-assignment — noisy, not damaging. (An earlier revision called that a "double write".
|
|
136
|
+
* That was wrong, and so was the claim below it that `stopEditing` is inert.)
|
|
137
|
+
*/
|
|
95
138
|
readonly onChange: (newValue: unknown) => void;
|
|
139
|
+
/**
|
|
140
|
+
* Also surfaced as `GetEditorParams.stopEditing`.
|
|
141
|
+
*
|
|
142
|
+
* ★★ **THIS is the commit.** Ending the session runs `takeValueFromCellEditor()` →
|
|
143
|
+
* `getValue()` → `saveNewValue()` → `rowNode.setDataValue(…)`. Until it happens, whatever
|
|
144
|
+
* `onChange` staged is uncommitted, and a cancel discards it.
|
|
145
|
+
*
|
|
146
|
+
* ⚠️ The boolean is **NOT** `cancel` — it is `suppressNavigateAfterEdit`. `stopEditing(true)`
|
|
147
|
+
* still COMMITS; it only skips post-edit navigation. ⚠️ **A customizer has NO cancel hook.**
|
|
148
|
+
* ag-Grid would consult the editor's `isCancelAfterEnd()`, but the editor here is OneGrid's own
|
|
149
|
+
* wrapper, which does not implement one — your element renders *inside* it with no way to
|
|
150
|
+
* install one. The only cancel is the platform's own Escape handler. Anything wiring
|
|
151
|
+
* `stopEditing(true)` to Escape is committing, not cancelling.
|
|
152
|
+
*/
|
|
153
|
+
readonly onStopEditing?: (suppressNavigateAfterEdit?: boolean) => void;
|
|
96
154
|
}
|
|
97
155
|
|
|
98
156
|
export interface GetEditorParams {
|
|
@@ -100,7 +158,7 @@ export interface GetEditorParams {
|
|
|
100
158
|
readonly columnIndex: number;
|
|
101
159
|
readonly onCellValueChanged: (newValue: unknown) => void;
|
|
102
160
|
readonly rowData?: RowData;
|
|
103
|
-
readonly stopEditing: (
|
|
161
|
+
readonly stopEditing: (suppressNavigateAfterEdit?: boolean) => void;
|
|
104
162
|
}
|
|
105
163
|
|
|
106
164
|
export interface GetHeaderParams {
|