@memberjunction/ng-base-forms 6.1.0-edge.5 → 6.1.0-edge.6
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/lib/chrome/form-chrome-rail-pref.d.ts +22 -0
- package/dist/lib/chrome/form-chrome-rail-pref.d.ts.map +1 -1
- package/dist/lib/chrome/form-chrome-rail-pref.js +29 -0
- package/dist/lib/chrome/form-chrome-rail-pref.js.map +1 -1
- package/dist/lib/chrome/form-chrome.d.ts +19 -0
- package/dist/lib/chrome/form-chrome.d.ts.map +1 -1
- package/dist/lib/chrome/form-chrome.js +26 -0
- package/dist/lib/chrome/form-chrome.js.map +1 -1
- package/dist/lib/container/record-form-container.component.d.ts +52 -2
- package/dist/lib/container/record-form-container.component.d.ts.map +1 -1
- package/dist/lib/container/record-form-container.component.js +485 -161
- package/dist/lib/container/record-form-container.component.js.map +1 -1
- package/dist/lib/explorer-entity-data-grid.component.d.ts +36 -0
- package/dist/lib/explorer-entity-data-grid.component.d.ts.map +1 -1
- package/dist/lib/explorer-entity-data-grid.component.js +112 -3
- package/dist/lib/explorer-entity-data-grid.component.js.map +1 -1
- package/dist/lib/field/form-field.component.d.ts +59 -0
- package/dist/lib/field/form-field.component.d.ts.map +1 -1
- package/dist/lib/field/form-field.component.js +710 -294
- package/dist/lib/field/form-field.component.js.map +1 -1
- package/dist/lib/overlays/base-form-overlay.d.ts.map +1 -1
- package/dist/lib/overlays/base-form-overlay.js +3 -1
- package/dist/lib/overlays/base-form-overlay.js.map +1 -1
- package/dist/lib/overlays/form-slide-in.component.js +10 -11
- package/dist/lib/overlays/form-slide-in.component.js.map +1 -1
- package/dist/lib/panel/collapsible-panel.component.d.ts +84 -3
- package/dist/lib/panel/collapsible-panel.component.d.ts.map +1 -1
- package/dist/lib/panel/collapsible-panel.component.js +253 -37
- package/dist/lib/panel/collapsible-panel.component.js.map +1 -1
- package/dist/lib/panel-slot/base-form-panel.d.ts +12 -0
- package/dist/lib/panel-slot/base-form-panel.d.ts.map +1 -1
- package/dist/lib/panel-slot/base-form-panel.js.map +1 -1
- package/dist/lib/related-grid-height.d.ts +48 -11
- package/dist/lib/related-grid-height.d.ts.map +1 -1
- package/dist/lib/related-grid-height.js +53 -12
- package/dist/lib/related-grid-height.js.map +1 -1
- package/dist/lib/section-indicators/form-section-indicator-coordinator.service.d.ts +80 -0
- package/dist/lib/section-indicators/form-section-indicator-coordinator.service.d.ts.map +1 -0
- package/dist/lib/section-indicators/form-section-indicator-coordinator.service.js +99 -0
- package/dist/lib/section-indicators/form-section-indicator-coordinator.service.js.map +1 -0
- package/dist/lib/section-indicators/form-section-indicators.d.ts +97 -0
- package/dist/lib/section-indicators/form-section-indicators.d.ts.map +1 -0
- package/dist/lib/section-indicators/form-section-indicators.js +132 -0
- package/dist/lib/section-indicators/form-section-indicators.js.map +1 -0
- package/dist/lib/section-manager/section-manager.component.js +2 -2
- package/dist/lib/section-manager/section-manager.component.js.map +1 -1
- package/dist/lib/toolbar/form-toolbar.component.js +4 -4
- package/dist/lib/toolbar/form-toolbar.component.js.map +1 -1
- package/dist/public-api.d.ts +2 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +25 -27
|
@@ -61,6 +61,20 @@ export declare class ExplorerEntityDataGridComponent implements AfterViewInit, O
|
|
|
61
61
|
* size to toolbar + header + rows instead of `height: 100%` of leftover / auto space.
|
|
62
62
|
*/
|
|
63
63
|
private sizedHeightPx;
|
|
64
|
+
/** Rows in the last load — re-applied when the scrollbar measurement changes. */
|
|
65
|
+
private sizedRowCount;
|
|
66
|
+
/**
|
|
67
|
+
* Height AG Grid's horizontal scrollbar currently takes INSIDE our box (0 when the
|
|
68
|
+
* columns fit, or on platforms with overlay scrollbars). Measured from the DOM after
|
|
69
|
+
* layout, never assumed — see `measureHorizontalScrollbarPx`. `undefined` until AG Grid
|
|
70
|
+
* has rendered its scroller and a measurement exists: `RelatedGridHeightPx` then falls
|
|
71
|
+
* back to its fixed `RELATED_GRID_HSCROLLBAR_PX` reserve, so an unmeasured grid on a
|
|
72
|
+
* classic-scrollbar platform never shows a clipped row before the first measurement.
|
|
73
|
+
*/
|
|
74
|
+
private scrollbarPx;
|
|
75
|
+
private _hostResizeObserver?;
|
|
76
|
+
private _scrollbarMeasureFrame;
|
|
77
|
+
private _destroyed;
|
|
64
78
|
get ResolvedHeight(): number | 'auto' | 'fit-content';
|
|
65
79
|
get hostHeightStyle(): string;
|
|
66
80
|
private shouldSizeToRows;
|
|
@@ -109,6 +123,28 @@ export declare class ExplorerEntityDataGridComponent implements AfterViewInit, O
|
|
|
109
123
|
onRowDoubleClick(event: AfterRowDoubleClickEventArgs): void;
|
|
110
124
|
onRowClick(event: AfterRowClickEventArgs): void;
|
|
111
125
|
onDataLoad(event: AfterDataLoadEventArgs): void;
|
|
126
|
+
private applySizedHeight;
|
|
127
|
+
/**
|
|
128
|
+
* Horizontal overflow comes and goes with the container width, not only with data
|
|
129
|
+
* loads (a left-nav column narrows, a panel is resized), so re-measure on host resize.
|
|
130
|
+
* Idempotent: creates the observer once, the first time this grid sizes to its rows.
|
|
131
|
+
*/
|
|
132
|
+
private ensureHostResizeObserver;
|
|
133
|
+
/**
|
|
134
|
+
* Measure two frames out: AG Grid sizes its fake scroller in its own animation
|
|
135
|
+
* frame (`FakeHScrollComp.setScrollVisible`), and ours must land after that.
|
|
136
|
+
*/
|
|
137
|
+
private scheduleScrollbarMeasure;
|
|
138
|
+
private applyScrollbarMeasurement;
|
|
139
|
+
/**
|
|
140
|
+
* The space AG Grid's horizontal scrollbar takes inside our box right now. AG Grid
|
|
141
|
+
* renders it as a "fake" scroller element it sizes to the platform scrollbar width
|
|
142
|
+
* when the columns overflow and collapses to 0 when they fit. Overlay scrollbars
|
|
143
|
+
* (macOS "show when scrolling") get `.ag-scrollbar-invisible`, which positions the
|
|
144
|
+
* element absolutely — it is drawn over the rows and takes no layout space, so it
|
|
145
|
+
* needs no budget. Returns `undefined` when the scroller has not been rendered yet.
|
|
146
|
+
*/
|
|
147
|
+
private measureHorizontalScrollbarPx;
|
|
112
148
|
/**
|
|
113
149
|
* The inner grid's "New" button bubbles up here. We re-emit as a
|
|
114
150
|
* `new-record` Navigate event so the host form (and Explorer's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explorer-entity-data-grid.component.d.ts","sourceRoot":"","sources":["../../src/lib/explorer-entity-data-grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAoD,aAAa,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAG3J,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EACH,uBAAuB,EACvB,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EAEpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;;AAGhE;;;;;GAKG;AACH,qBA4Ca,+BAAgC,YAAW,aAAa,EAAE,SAAS;IACpD,SAAS,EAAG,uBAAuB,CAAC;IAE5D,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,aAAa,CAA4D;IACjF,OAAO,CAAC,QAAQ,CAAuB;IAG9B,MAAM,EAAE,aAAa,GAAG,IAAI,CAAQ;IACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAC9C,SAAS,EAAE,OAAO,CAAQ;IAC1B,WAAW,EAAE,OAAO,CAAQ;IAErC;;;;OAIG;IACH,IAAI,oBAAoB,IAAI,OAAO,CAGlC;IAED;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,sBAAsB;IAW9B,2DAA2D;IAClD,UAAU,EAAE,OAAO,CAAQ;IACpC,2EAA2E;IAClE,aAAa,EAAE,OAAO,CAAQ;IAC9B,iBAAiB,EAAE,OAAO,CAAQ;IAClC,gBAAgB,EAAE,OAAO,CAAQ;IACjC,gBAAgB,EAAE,OAAO,CAAS;IAClC,iBAAiB,EAAE,OAAO,CAAS;IACnC,eAAe,EAAE,OAAO,CAAS;IACjC,mBAAmB,EAAE,OAAO,CAAS;IACrC,yBAAyB,EAAE,OAAO,CAAS;IAC3C,uBAAuB,EAAE,OAAO,CAAS;IACzC,cAAc,EAAE,OAAO,CAAQ;IAC/B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAU;IAC1D;;;;OAIG;IACM,SAAS,EAAE,MAAM,GAAG,IAAI,CAA+B;IACvD,aAAa,EAAE,iBAAiB,CAAM;IACtC,aAAa,EAAE,iBAAiB,CAAY;IAErD;;;OAGG;IACH,OAAO,CAAC,aAAa,CAA0C;
|
|
1
|
+
{"version":3,"file":"explorer-entity-data-grid.component.d.ts","sourceRoot":"","sources":["../../src/lib/explorer-entity-data-grid.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,6 +81,20 @@ export class ExplorerEntityDataGridComponent {
|
|
|
81
81
|
* size to toolbar + header + rows instead of `height: 100%` of leftover / auto space.
|
|
82
82
|
*/
|
|
83
83
|
sizedHeightPx = RelatedGridHeightPx(0, this.MaxHeight);
|
|
84
|
+
/** Rows in the last load — re-applied when the scrollbar measurement changes. */
|
|
85
|
+
sizedRowCount = 0;
|
|
86
|
+
/**
|
|
87
|
+
* Height AG Grid's horizontal scrollbar currently takes INSIDE our box (0 when the
|
|
88
|
+
* columns fit, or on platforms with overlay scrollbars). Measured from the DOM after
|
|
89
|
+
* layout, never assumed — see `measureHorizontalScrollbarPx`. `undefined` until AG Grid
|
|
90
|
+
* has rendered its scroller and a measurement exists: `RelatedGridHeightPx` then falls
|
|
91
|
+
* back to its fixed `RELATED_GRID_HSCROLLBAR_PX` reserve, so an unmeasured grid on a
|
|
92
|
+
* classic-scrollbar platform never shows a clipped row before the first measurement.
|
|
93
|
+
*/
|
|
94
|
+
scrollbarPx;
|
|
95
|
+
_hostResizeObserver;
|
|
96
|
+
_scrollbarMeasureFrame = 0;
|
|
97
|
+
_destroyed = false;
|
|
84
98
|
get ResolvedHeight() {
|
|
85
99
|
return this.shouldSizeToRows() ? this.sizedHeightPx : this.Height;
|
|
86
100
|
}
|
|
@@ -112,6 +126,7 @@ export class ExplorerEntityDataGridComponent {
|
|
|
112
126
|
}
|
|
113
127
|
ngAfterViewInit() {
|
|
114
128
|
this.subscribeToFormRefresh();
|
|
129
|
+
this.ensureHostResizeObserver();
|
|
115
130
|
if (!this.DeferLoadUntilVisible || typeof IntersectionObserver === 'undefined') {
|
|
116
131
|
// Deferral off or unsupported environment — preserve eager-load behavior.
|
|
117
132
|
this._hasBeenVisible = true;
|
|
@@ -131,10 +146,17 @@ export class ExplorerEntityDataGridComponent {
|
|
|
131
146
|
});
|
|
132
147
|
}
|
|
133
148
|
ngOnDestroy() {
|
|
149
|
+
this._destroyed = true;
|
|
134
150
|
this.destroy$.next();
|
|
135
151
|
this.destroy$.complete();
|
|
136
152
|
this._visibilityObserver?.disconnect();
|
|
137
153
|
this._visibilityObserver = undefined;
|
|
154
|
+
this._hostResizeObserver?.disconnect();
|
|
155
|
+
this._hostResizeObserver = undefined;
|
|
156
|
+
if (this._scrollbarMeasureFrame && typeof cancelAnimationFrame !== 'undefined') {
|
|
157
|
+
cancelAnimationFrame(this._scrollbarMeasureFrame);
|
|
158
|
+
}
|
|
159
|
+
this._scrollbarMeasureFrame = 0;
|
|
138
160
|
}
|
|
139
161
|
/**
|
|
140
162
|
* Reload this grid from the database. Used by the grid's own refresh
|
|
@@ -208,8 +230,96 @@ export class ExplorerEntityDataGridComponent {
|
|
|
208
230
|
if (!this.shouldSizeToRows()) {
|
|
209
231
|
return;
|
|
210
232
|
}
|
|
211
|
-
this.
|
|
233
|
+
this.sizedRowCount = event.loadedRowCount;
|
|
234
|
+
this.applySizedHeight();
|
|
212
235
|
this.cdr.markForCheck();
|
|
236
|
+
// The related-entity panel ancestry can become detectable after ngAfterViewInit, so
|
|
237
|
+
// make sure the observer exists by the time the first sized load happens.
|
|
238
|
+
this.ensureHostResizeObserver();
|
|
239
|
+
// AG Grid decides whether it needs a horizontal scrollbar only after it lays the new
|
|
240
|
+
// rows/columns out, so the measurement has to follow the load, not accompany it.
|
|
241
|
+
this.scheduleScrollbarMeasure();
|
|
242
|
+
}
|
|
243
|
+
applySizedHeight() {
|
|
244
|
+
this.sizedHeightPx = RelatedGridHeightPx(this.sizedRowCount, this.MaxHeight, this.scrollbarPx);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Horizontal overflow comes and goes with the container width, not only with data
|
|
248
|
+
* loads (a left-nav column narrows, a panel is resized), so re-measure on host resize.
|
|
249
|
+
* Idempotent: creates the observer once, the first time this grid sizes to its rows.
|
|
250
|
+
*/
|
|
251
|
+
ensureHostResizeObserver() {
|
|
252
|
+
if (this._hostResizeObserver || this._destroyed || !this.shouldSizeToRows() || typeof ResizeObserver === 'undefined') {
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
this.ngZone.runOutsideAngular(() => {
|
|
256
|
+
this._hostResizeObserver = new ResizeObserver(() => this.scheduleScrollbarMeasure());
|
|
257
|
+
this._hostResizeObserver.observe(this.elementRef.nativeElement);
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Measure two frames out: AG Grid sizes its fake scroller in its own animation
|
|
262
|
+
* frame (`FakeHScrollComp.setScrollVisible`), and ours must land after that.
|
|
263
|
+
*/
|
|
264
|
+
scheduleScrollbarMeasure() {
|
|
265
|
+
if (this._destroyed) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
if (typeof requestAnimationFrame === 'undefined') {
|
|
269
|
+
this.applyScrollbarMeasurement();
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
if (this._scrollbarMeasureFrame) {
|
|
273
|
+
return; // one already queued; it will read the latest layout
|
|
274
|
+
}
|
|
275
|
+
this.ngZone.runOutsideAngular(() => {
|
|
276
|
+
this._scrollbarMeasureFrame = requestAnimationFrame(() => {
|
|
277
|
+
this._scrollbarMeasureFrame = requestAnimationFrame(() => {
|
|
278
|
+
this._scrollbarMeasureFrame = 0;
|
|
279
|
+
this.applyScrollbarMeasurement();
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
applyScrollbarMeasurement() {
|
|
285
|
+
if (this._destroyed || !this.shouldSizeToRows()) {
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
const px = this.measureHorizontalScrollbarPx();
|
|
289
|
+
if (px === this.scrollbarPx) {
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
this.scrollbarPx = px;
|
|
293
|
+
// markForCheck, not detectChanges: the height lives in a HOST binding, which the
|
|
294
|
+
// parent view refreshes, so the view (and its ancestors) must be marked dirty.
|
|
295
|
+
this.ngZone.run(() => {
|
|
296
|
+
this.applySizedHeight();
|
|
297
|
+
this.cdr.markForCheck();
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* The space AG Grid's horizontal scrollbar takes inside our box right now. AG Grid
|
|
302
|
+
* renders it as a "fake" scroller element it sizes to the platform scrollbar width
|
|
303
|
+
* when the columns overflow and collapses to 0 when they fit. Overlay scrollbars
|
|
304
|
+
* (macOS "show when scrolling") get `.ag-scrollbar-invisible`, which positions the
|
|
305
|
+
* element absolutely — it is drawn over the rows and takes no layout space, so it
|
|
306
|
+
* needs no budget. Returns `undefined` when the scroller has not been rendered yet.
|
|
307
|
+
*/
|
|
308
|
+
measureHorizontalScrollbarPx() {
|
|
309
|
+
const host = this.elementRef.nativeElement;
|
|
310
|
+
const scroller = host?.querySelector('.ag-body-horizontal-scroll');
|
|
311
|
+
if (!scroller) {
|
|
312
|
+
// No scroller element yet is NOT a measurement of 0: AG Grid has not laid the grid
|
|
313
|
+
// out. Stay unmeasured so the sizing keeps the fixed reserve until it has.
|
|
314
|
+
return undefined;
|
|
315
|
+
}
|
|
316
|
+
// Watch the scroller too: its height flips 0 <-> N when AG Grid toggles the
|
|
317
|
+
// scrollbar without the host changing size. Re-observing the same target is a no-op.
|
|
318
|
+
this._hostResizeObserver?.observe(scroller);
|
|
319
|
+
if (getComputedStyle(scroller).position === 'absolute') {
|
|
320
|
+
return 0;
|
|
321
|
+
}
|
|
322
|
+
return scroller.offsetHeight;
|
|
213
323
|
}
|
|
214
324
|
/**
|
|
215
325
|
* The inner grid's "New" button bubbles up here. We re-emit as a
|
|
@@ -233,9 +343,8 @@ export class ExplorerEntityDataGridComponent {
|
|
|
233
343
|
} }, hostVars: 2, hostBindings: function ExplorerEntityDataGridComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
234
344
|
i0.ɵɵstyleProp("height", ctx.hostHeightStyle);
|
|
235
345
|
} }, inputs: { Params: "Params", NewRecordValues: "NewRecordValues", AllowLoad: "AllowLoad", ShowToolbar: "ShowToolbar", ShowSearch: "ShowSearch", ShowNewButton: "ShowNewButton", ShowRefreshButton: "ShowRefreshButton", ShowExportButton: "ShowExportButton", ShowDeleteButton: "ShowDeleteButton", ShowCompareButton: "ShowCompareButton", ShowMergeButton: "ShowMergeButton", ShowAddToListButton: "ShowAddToListButton", ShowDuplicateSearchButton: "ShowDuplicateSearchButton", ShowCommunicationButton: "ShowCommunicationButton", ShowRecycleBin: "ShowRecycleBin", Height: "Height", MaxHeight: "MaxHeight", ToolbarConfig: "ToolbarConfig", SelectionMode: "SelectionMode", DeferLoadUntilVisible: "DeferLoadUntilVisible", NavigateOnDoubleClick: "NavigateOnDoubleClick" }, outputs: { AfterRowDoubleClick: "AfterRowDoubleClick", AfterRowClick: "AfterRowClick", AfterDataLoad: "AfterDataLoad", Navigate: "Navigate" }, standalone: false, decls: 2, vars: 19, consts: [["innerGrid", ""], [3, "AfterRowDoubleClick", "AfterRowClick", "AfterDataLoad", "NewRecordTabRequested", "Params", "NewRecordValues", "AllowLoad", "ShowToolbar", "ShowSearch", "ShowNewButton", "ShowRefreshButton", "ShowExportButton", "ShowDeleteButton", "ShowCompareButton", "ShowMergeButton", "ShowAddToListButton", "ShowDuplicateSearchButton", "ShowCommunicationButton", "ShowRecycleBin", "Height", "ToolbarConfig", "SelectionMode", "AllowColumnToggle"]], template: function ExplorerEntityDataGridComponent_Template(rf, ctx) { if (rf & 1) {
|
|
236
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
|
237
346
|
i0.ɵɵelementStart(0, "mj-entity-data-grid", 1, 0);
|
|
238
|
-
i0.ɵɵlistener("AfterRowDoubleClick", function ExplorerEntityDataGridComponent_Template_mj_entity_data_grid_AfterRowDoubleClick_0_listener($event) {
|
|
347
|
+
i0.ɵɵlistener("AfterRowDoubleClick", function ExplorerEntityDataGridComponent_Template_mj_entity_data_grid_AfterRowDoubleClick_0_listener($event) { return ctx.onRowDoubleClick($event); })("AfterRowClick", function ExplorerEntityDataGridComponent_Template_mj_entity_data_grid_AfterRowClick_0_listener($event) { return ctx.onRowClick($event); })("AfterDataLoad", function ExplorerEntityDataGridComponent_Template_mj_entity_data_grid_AfterDataLoad_0_listener($event) { return ctx.onDataLoad($event); })("NewRecordTabRequested", function ExplorerEntityDataGridComponent_Template_mj_entity_data_grid_NewRecordTabRequested_0_listener($event) { return ctx.onNewRecordTabRequested($event); });
|
|
239
348
|
i0.ɵɵelementEnd();
|
|
240
349
|
} if (rf & 2) {
|
|
241
350
|
i0.ɵɵproperty("Params", ctx.Params)("NewRecordValues", ctx.NewRecordValues)("AllowLoad", ctx.EffectiveAllowLoad)("ShowToolbar", ctx.EffectiveShowToolbar)("ShowSearch", ctx.ShowSearch)("ShowNewButton", ctx.ShowNewButton)("ShowRefreshButton", ctx.ShowRefreshButton)("ShowExportButton", ctx.ShowExportButton)("ShowDeleteButton", ctx.ShowDeleteButton)("ShowCompareButton", ctx.ShowCompareButton)("ShowMergeButton", ctx.ShowMergeButton)("ShowAddToListButton", ctx.ShowAddToListButton)("ShowDuplicateSearchButton", ctx.ShowDuplicateSearchButton)("ShowCommunicationButton", ctx.ShowCommunicationButton)("ShowRecycleBin", ctx.ShowRecycleBin)("Height", ctx.ResolvedHeight)("ToolbarConfig", ctx.ToolbarConfig)("SelectionMode", ctx.SelectionMode)("AllowColumnToggle", false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explorer-entity-data-grid.component.js","sourceRoot":"","sources":["../../src/lib/explorer-entity-data-grid.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, ChangeDetectorRef, NgZone, AfterViewInit, OnDestroy, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { RunViewParams } from '@memberjunction/core';\nimport { FormRecordRefreshCoordinator } from './form-record-refresh.coordinator';\nimport {\n EntityDataGridComponent,\n AfterRowDoubleClickEventArgs,\n AfterRowClickEventArgs,\n AfterDataLoadEventArgs,\n GridToolbarConfig,\n GridSelectionMode,\n buildCompositeKey\n} from '@memberjunction/ng-entity-viewer';\nimport { EntityInfo } from '@memberjunction/core';\nimport { FormNavigationEvent } from './types/navigation-events';\nimport { RELATED_GRID_DEFAULT_MAX_PX, RelatedGridHeightPx } from './related-grid-height';\n\n/**\n * Wrapper for EntityDataGridComponent that emits navigation events on row double-click.\n * The host application subscribes to Navigate events and maps them to its routing system.\n *\n * This component is used by CodeGen for related entity grids in forms.\n */\n@Component({\n standalone: false,\n selector: 'mj-explorer-entity-data-grid',\n template: `\n <!-- Related-entity / form-embedded grid: not a saved User View, so there's no canonical\n GridState to manage — suppress the \"Manage Columns\" chooser (AllowColumnToggle=false). -->\n <mj-entity-data-grid\n #innerGrid\n [Params]=\"Params\"\n [NewRecordValues]=\"NewRecordValues\"\n [AllowLoad]=\"EffectiveAllowLoad\"\n [ShowToolbar]=\"EffectiveShowToolbar\"\n [ShowSearch]=\"ShowSearch\"\n [ShowNewButton]=\"ShowNewButton\"\n [ShowRefreshButton]=\"ShowRefreshButton\"\n [ShowExportButton]=\"ShowExportButton\"\n [ShowDeleteButton]=\"ShowDeleteButton\"\n [ShowCompareButton]=\"ShowCompareButton\"\n [ShowMergeButton]=\"ShowMergeButton\"\n [ShowAddToListButton]=\"ShowAddToListButton\"\n [ShowDuplicateSearchButton]=\"ShowDuplicateSearchButton\"\n [ShowCommunicationButton]=\"ShowCommunicationButton\"\n [ShowRecycleBin]=\"ShowRecycleBin\"\n [Height]=\"ResolvedHeight\"\n [ToolbarConfig]=\"ToolbarConfig\"\n [SelectionMode]=\"SelectionMode\"\n [AllowColumnToggle]=\"false\"\n (AfterRowDoubleClick)=\"onRowDoubleClick($event)\"\n (AfterRowClick)=\"onRowClick($event)\"\n (AfterDataLoad)=\"onDataLoad($event)\"\n (NewRecordTabRequested)=\"onNewRecordTabRequested($event)\">\n </mj-entity-data-grid>\n `,\n styles: [`\n :host {\n display: block;\n height: 100%;\n width: 100%;\n }\n `],\n host: {\n '[style.height]': 'hostHeightStyle',\n },\n})\nexport class ExplorerEntityDataGridComponent implements AfterViewInit, OnDestroy {\n @ViewChild('innerGrid') innerGrid!: EntityDataGridComponent;\n\n private elementRef = inject(ElementRef);\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private recordRefresh = inject(FormRecordRefreshCoordinator, { optional: true });\n private destroy$ = new Subject<void>();\n\n // Pass-through inputs from EntityDataGridComponent\n @Input() Params: RunViewParams | null = null;\n @Input() NewRecordValues: Record<string, unknown> = {};\n @Input() AllowLoad: boolean = true;\n @Input() ShowToolbar: boolean = true;\n\n /**\n * Existing generated forms still emit `[ShowToolbar]=\"false\"` on related\n * grids. Inside a related-entity panel we restore the toolbar so search /\n * new / export / refresh come back without waiting for CodeGen.\n */\n get EffectiveShowToolbar(): boolean {\n if (this.ShowToolbar) return true;\n return this.isInsideRelatedEntityPanel();\n }\n\n /**\n * Related-entity accordion AND left-nav panels. Accordion used to leave\n * Height='auto' (100% of an auto-sized parent) so AG Grid's viewport\n * collapsed to 0 while the toolbar still showed \"N rows\".\n */\n private isInsideRelatedEntityPanel(): boolean {\n return this.findRelatedEntityPanel() != null;\n }\n\n private findRelatedEntityPanel(): HTMLElement | null {\n let el: HTMLElement | null = this.elementRef.nativeElement?.parentElement ?? null;\n while (el) {\n if (el.tagName?.toLowerCase() === 'mj-collapsible-panel'\n && el.getAttribute('data-variant') === 'related-entity') {\n return el;\n }\n el = el.parentElement;\n }\n return null;\n }\n /** Search box on the left of the toolbar. Default true. */\n @Input() ShowSearch: boolean = true;\n /** Forwarded to the inner grid. Defaults match `<mj-entity-data-grid>`. */\n @Input() ShowNewButton: boolean = true;\n @Input() ShowRefreshButton: boolean = true;\n @Input() ShowExportButton: boolean = true;\n @Input() ShowDeleteButton: boolean = false;\n @Input() ShowCompareButton: boolean = false;\n @Input() ShowMergeButton: boolean = false;\n @Input() ShowAddToListButton: boolean = false;\n @Input() ShowDuplicateSearchButton: boolean = false;\n @Input() ShowCommunicationButton: boolean = false;\n @Input() ShowRecycleBin: boolean = true;\n @Input() Height: number | 'auto' | 'fit-content' = 'auto';\n /**\n * When the grid sizes to its rows (left-nav related panels), this is the\n * cap. Content taller than the cap scrolls inside AG Grid — it does not\n * switch to paging. `null` means grow with the rows, no cap.\n */\n @Input() MaxHeight: number | null = RELATED_GRID_DEFAULT_MAX_PX;\n @Input() ToolbarConfig: GridToolbarConfig = {};\n @Input() SelectionMode: GridSelectionMode = 'single';\n\n /**\n * Related-entity grids (accordion and left-nav) and explicit fit-content grids\n * size to toolbar + header + rows instead of `height: 100%` of leftover / auto space.\n */\n private sizedHeightPx = RelatedGridHeightPx(0, this.MaxHeight);\n\n get ResolvedHeight(): number | 'auto' | 'fit-content' {\n return this.shouldSizeToRows() ? this.sizedHeightPx : this.Height;\n }\n\n get hostHeightStyle(): string {\n return this.shouldSizeToRows() ? `${this.sizedHeightPx}px` : '100%';\n }\n\n private shouldSizeToRows(): boolean {\n return this.Height === 'fit-content' || this.isInsideRelatedEntityPanel();\n }\n\n /**\n * When true (default), the inner grid does not fetch until this component's host\n * element first scrolls into the viewport. This prevents related-entity grids on a\n * form — which are always rendered in the DOM (the collapsible panel hides them via\n * CSS, not @if) — from firing a RunView on form open while they're collapsed or below\n * the fold. The first time the panel becomes visible (scrolled into view and expanded,\n * giving the host non-zero area), the grid loads with its normal spinner.\n * Set to false to restore eager loading for consumers that always want immediate data.\n */\n @Input() DeferLoadUntilVisible: boolean = true;\n\n /** True once the host has first intersected the viewport (or deferral is disabled / unsupported). */\n private _hasBeenVisible = false;\n private _visibilityObserver?: IntersectionObserver;\n\n /**\n * Effective AllowLoad passed to the inner grid: the form's AllowLoad AND\n * (deferral disabled OR the panel has been seen at least once).\n */\n get EffectiveAllowLoad(): boolean {\n return this.AllowLoad && (!this.DeferLoadUntilVisible || this._hasBeenVisible);\n }\n\n ngAfterViewInit(): void {\n this.subscribeToFormRefresh();\n if (!this.DeferLoadUntilVisible || typeof IntersectionObserver === 'undefined') {\n // Deferral off or unsupported environment — preserve eager-load behavior.\n this._hasBeenVisible = true;\n return;\n }\n\n // Observe outside Angular so scroll churn doesn't trigger change detection;\n // we re-enter the zone only on the one-shot \"became visible\" transition.\n this.ngZone.runOutsideAngular(() => {\n this._visibilityObserver = new IntersectionObserver(\n (entries) => {\n if (entries.some(e => e.isIntersecting)) {\n this.onBecameVisible();\n }\n },\n // Small positive rootMargin pre-loads just before the panel scrolls fully into view.\n { root: null, rootMargin: '200px', threshold: 0 }\n );\n this._visibilityObserver.observe(this.elementRef.nativeElement);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this._visibilityObserver?.disconnect();\n this._visibilityObserver = undefined;\n }\n\n /**\n * Reload this grid from the database. Used by the grid's own refresh\n * button and by the parent-form refresh broadcast.\n */\n public async Refresh(): Promise<void> {\n await this.innerGrid?.Refresh();\n }\n\n private subscribeToFormRefresh(): void {\n this.recordRefresh?.Refreshed$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n void this.refreshIfLoaded();\n });\n }\n\n /**\n * Parent-form refresh fan-out: only reload grids that have already paid\n * for a RunView. Collapsed / never-seen related sections stay deferred.\n */\n private async refreshIfLoaded(): Promise<void> {\n if (!this._hasBeenVisible) {\n return;\n }\n await this.Refresh();\n }\n\n private onBecameVisible(): void {\n if (this._hasBeenVisible) {\n return;\n }\n // One-shot: once loaded we never need to observe again.\n this._visibilityObserver?.disconnect();\n this._visibilityObserver = undefined;\n this.ngZone.run(() => {\n this._hasBeenVisible = true;\n // Flip EffectiveAllowLoad → true, which drives the inner grid's AllowLoad setter to load.\n this.cdr.detectChanges();\n });\n }\n\n /**\n * When true, double-clicking a row emits a Navigate event.\n * Defaults to true.\n */\n @Input() NavigateOnDoubleClick: boolean = true;\n\n // Re-emit events for consumers who need them\n @Output() AfterRowDoubleClick = new EventEmitter<AfterRowDoubleClickEventArgs>();\n @Output() AfterRowClick = new EventEmitter<AfterRowClickEventArgs>();\n @Output() AfterDataLoad = new EventEmitter<AfterDataLoadEventArgs>();\n\n /** Emitted when a row is double-clicked and NavigateOnDoubleClick is true */\n @Output() Navigate = new EventEmitter<FormNavigationEvent>();\n\n onRowDoubleClick(event: AfterRowDoubleClickEventArgs): void {\n // Re-emit the event for any consumers\n this.AfterRowDoubleClick.emit(event);\n\n // Emit navigation event if enabled\n if (this.NavigateOnDoubleClick && event.row) {\n // Use the inner grid's resolved EntityInfo - works for both ViewID and EntityName params\n const entityInfo = this.innerGrid?.EntityInfo;\n if (!entityInfo) return;\n\n const pkey = buildCompositeKey(event.row, entityInfo);\n\n this.Navigate.emit({\n Kind: 'record',\n EntityName: entityInfo.Name,\n PrimaryKey: pkey\n });\n }\n }\n\n onRowClick(event: AfterRowClickEventArgs): void {\n // Re-emit the event for any consumers\n this.AfterRowClick.emit(event);\n }\n\n onDataLoad(event: AfterDataLoadEventArgs): void {\n this.AfterDataLoad.emit(event);\n if (!this.shouldSizeToRows()) {\n return;\n }\n this.sizedHeightPx = RelatedGridHeightPx(event.loadedRowCount, this.MaxHeight);\n this.cdr.markForCheck();\n }\n\n /**\n * The inner grid's \"New\" button bubbles up here. We re-emit as a\n * `new-record` Navigate event so the host form (and Explorer's\n * SingleRecordComponent) can call NavigationService.OpenNewEntityRecord\n * and pre-populate the foreign-key fields from NewRecordValues.\n */\n onNewRecordTabRequested(event: { entityInfo: EntityInfo; defaultValues: Record<string, unknown> }): void {\n this.Navigate.emit({\n Kind: 'new-record',\n EntityName: event.entityInfo.Name,\n DefaultValues: event.defaultValues,\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"explorer-entity-data-grid.component.js","sourceRoot":"","sources":["../../src/lib/explorer-entity-data-grid.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, ChangeDetectorRef, NgZone, AfterViewInit, OnDestroy, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { RunViewParams } from '@memberjunction/core';\nimport { FormRecordRefreshCoordinator } from './form-record-refresh.coordinator';\nimport {\n EntityDataGridComponent,\n AfterRowDoubleClickEventArgs,\n AfterRowClickEventArgs,\n AfterDataLoadEventArgs,\n GridToolbarConfig,\n GridSelectionMode,\n buildCompositeKey\n} from '@memberjunction/ng-entity-viewer';\nimport { EntityInfo } from '@memberjunction/core';\nimport { FormNavigationEvent } from './types/navigation-events';\nimport { RELATED_GRID_DEFAULT_MAX_PX, RelatedGridHeightPx } from './related-grid-height';\n\n/**\n * Wrapper for EntityDataGridComponent that emits navigation events on row double-click.\n * The host application subscribes to Navigate events and maps them to its routing system.\n *\n * This component is used by CodeGen for related entity grids in forms.\n */\n@Component({\n standalone: false,\n selector: 'mj-explorer-entity-data-grid',\n template: `\n <!-- Related-entity / form-embedded grid: not a saved User View, so there's no canonical\n GridState to manage — suppress the \"Manage Columns\" chooser (AllowColumnToggle=false). -->\n <mj-entity-data-grid\n #innerGrid\n [Params]=\"Params\"\n [NewRecordValues]=\"NewRecordValues\"\n [AllowLoad]=\"EffectiveAllowLoad\"\n [ShowToolbar]=\"EffectiveShowToolbar\"\n [ShowSearch]=\"ShowSearch\"\n [ShowNewButton]=\"ShowNewButton\"\n [ShowRefreshButton]=\"ShowRefreshButton\"\n [ShowExportButton]=\"ShowExportButton\"\n [ShowDeleteButton]=\"ShowDeleteButton\"\n [ShowCompareButton]=\"ShowCompareButton\"\n [ShowMergeButton]=\"ShowMergeButton\"\n [ShowAddToListButton]=\"ShowAddToListButton\"\n [ShowDuplicateSearchButton]=\"ShowDuplicateSearchButton\"\n [ShowCommunicationButton]=\"ShowCommunicationButton\"\n [ShowRecycleBin]=\"ShowRecycleBin\"\n [Height]=\"ResolvedHeight\"\n [ToolbarConfig]=\"ToolbarConfig\"\n [SelectionMode]=\"SelectionMode\"\n [AllowColumnToggle]=\"false\"\n (AfterRowDoubleClick)=\"onRowDoubleClick($event)\"\n (AfterRowClick)=\"onRowClick($event)\"\n (AfterDataLoad)=\"onDataLoad($event)\"\n (NewRecordTabRequested)=\"onNewRecordTabRequested($event)\">\n </mj-entity-data-grid>\n `,\n styles: [`\n :host {\n display: block;\n height: 100%;\n width: 100%;\n }\n `],\n host: {\n '[style.height]': 'hostHeightStyle',\n },\n})\nexport class ExplorerEntityDataGridComponent implements AfterViewInit, OnDestroy {\n @ViewChild('innerGrid') innerGrid!: EntityDataGridComponent;\n\n private elementRef = inject(ElementRef);\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private recordRefresh = inject(FormRecordRefreshCoordinator, { optional: true });\n private destroy$ = new Subject<void>();\n\n // Pass-through inputs from EntityDataGridComponent\n @Input() Params: RunViewParams | null = null;\n @Input() NewRecordValues: Record<string, unknown> = {};\n @Input() AllowLoad: boolean = true;\n @Input() ShowToolbar: boolean = true;\n\n /**\n * Existing generated forms still emit `[ShowToolbar]=\"false\"` on related\n * grids. Inside a related-entity panel we restore the toolbar so search /\n * new / export / refresh come back without waiting for CodeGen.\n */\n get EffectiveShowToolbar(): boolean {\n if (this.ShowToolbar) return true;\n return this.isInsideRelatedEntityPanel();\n }\n\n /**\n * Related-entity accordion AND left-nav panels. Accordion used to leave\n * Height='auto' (100% of an auto-sized parent) so AG Grid's viewport\n * collapsed to 0 while the toolbar still showed \"N rows\".\n */\n private isInsideRelatedEntityPanel(): boolean {\n return this.findRelatedEntityPanel() != null;\n }\n\n private findRelatedEntityPanel(): HTMLElement | null {\n let el: HTMLElement | null = this.elementRef.nativeElement?.parentElement ?? null;\n while (el) {\n if (el.tagName?.toLowerCase() === 'mj-collapsible-panel'\n && el.getAttribute('data-variant') === 'related-entity') {\n return el;\n }\n el = el.parentElement;\n }\n return null;\n }\n /** Search box on the left of the toolbar. Default true. */\n @Input() ShowSearch: boolean = true;\n /** Forwarded to the inner grid. Defaults match `<mj-entity-data-grid>`. */\n @Input() ShowNewButton: boolean = true;\n @Input() ShowRefreshButton: boolean = true;\n @Input() ShowExportButton: boolean = true;\n @Input() ShowDeleteButton: boolean = false;\n @Input() ShowCompareButton: boolean = false;\n @Input() ShowMergeButton: boolean = false;\n @Input() ShowAddToListButton: boolean = false;\n @Input() ShowDuplicateSearchButton: boolean = false;\n @Input() ShowCommunicationButton: boolean = false;\n @Input() ShowRecycleBin: boolean = true;\n @Input() Height: number | 'auto' | 'fit-content' = 'auto';\n /**\n * When the grid sizes to its rows (left-nav related panels), this is the\n * cap. Content taller than the cap scrolls inside AG Grid — it does not\n * switch to paging. `null` means grow with the rows, no cap.\n */\n @Input() MaxHeight: number | null = RELATED_GRID_DEFAULT_MAX_PX;\n @Input() ToolbarConfig: GridToolbarConfig = {};\n @Input() SelectionMode: GridSelectionMode = 'single';\n\n /**\n * Related-entity grids (accordion and left-nav) and explicit fit-content grids\n * size to toolbar + header + rows instead of `height: 100%` of leftover / auto space.\n */\n private sizedHeightPx = RelatedGridHeightPx(0, this.MaxHeight);\n /** Rows in the last load — re-applied when the scrollbar measurement changes. */\n private sizedRowCount = 0;\n /**\n * Height AG Grid's horizontal scrollbar currently takes INSIDE our box (0 when the\n * columns fit, or on platforms with overlay scrollbars). Measured from the DOM after\n * layout, never assumed — see `measureHorizontalScrollbarPx`. `undefined` until AG Grid\n * has rendered its scroller and a measurement exists: `RelatedGridHeightPx` then falls\n * back to its fixed `RELATED_GRID_HSCROLLBAR_PX` reserve, so an unmeasured grid on a\n * classic-scrollbar platform never shows a clipped row before the first measurement.\n */\n private scrollbarPx: number | undefined;\n private _hostResizeObserver?: ResizeObserver;\n private _scrollbarMeasureFrame = 0;\n private _destroyed = false;\n\n get ResolvedHeight(): number | 'auto' | 'fit-content' {\n return this.shouldSizeToRows() ? this.sizedHeightPx : this.Height;\n }\n\n get hostHeightStyle(): string {\n return this.shouldSizeToRows() ? `${this.sizedHeightPx}px` : '100%';\n }\n\n private shouldSizeToRows(): boolean {\n return this.Height === 'fit-content' || this.isInsideRelatedEntityPanel();\n }\n\n /**\n * When true (default), the inner grid does not fetch until this component's host\n * element first scrolls into the viewport. This prevents related-entity grids on a\n * form — which are always rendered in the DOM (the collapsible panel hides them via\n * CSS, not @if) — from firing a RunView on form open while they're collapsed or below\n * the fold. The first time the panel becomes visible (scrolled into view and expanded,\n * giving the host non-zero area), the grid loads with its normal spinner.\n * Set to false to restore eager loading for consumers that always want immediate data.\n */\n @Input() DeferLoadUntilVisible: boolean = true;\n\n /** True once the host has first intersected the viewport (or deferral is disabled / unsupported). */\n private _hasBeenVisible = false;\n private _visibilityObserver?: IntersectionObserver;\n\n /**\n * Effective AllowLoad passed to the inner grid: the form's AllowLoad AND\n * (deferral disabled OR the panel has been seen at least once).\n */\n get EffectiveAllowLoad(): boolean {\n return this.AllowLoad && (!this.DeferLoadUntilVisible || this._hasBeenVisible);\n }\n\n ngAfterViewInit(): void {\n this.subscribeToFormRefresh();\n this.ensureHostResizeObserver();\n if (!this.DeferLoadUntilVisible || typeof IntersectionObserver === 'undefined') {\n // Deferral off or unsupported environment — preserve eager-load behavior.\n this._hasBeenVisible = true;\n return;\n }\n\n // Observe outside Angular so scroll churn doesn't trigger change detection;\n // we re-enter the zone only on the one-shot \"became visible\" transition.\n this.ngZone.runOutsideAngular(() => {\n this._visibilityObserver = new IntersectionObserver(\n (entries) => {\n if (entries.some(e => e.isIntersecting)) {\n this.onBecameVisible();\n }\n },\n // Small positive rootMargin pre-loads just before the panel scrolls fully into view.\n { root: null, rootMargin: '200px', threshold: 0 }\n );\n this._visibilityObserver.observe(this.elementRef.nativeElement);\n });\n }\n\n ngOnDestroy(): void {\n this._destroyed = true;\n this.destroy$.next();\n this.destroy$.complete();\n this._visibilityObserver?.disconnect();\n this._visibilityObserver = undefined;\n this._hostResizeObserver?.disconnect();\n this._hostResizeObserver = undefined;\n if (this._scrollbarMeasureFrame && typeof cancelAnimationFrame !== 'undefined') {\n cancelAnimationFrame(this._scrollbarMeasureFrame);\n }\n this._scrollbarMeasureFrame = 0;\n }\n\n /**\n * Reload this grid from the database. Used by the grid's own refresh\n * button and by the parent-form refresh broadcast.\n */\n public async Refresh(): Promise<void> {\n await this.innerGrid?.Refresh();\n }\n\n private subscribeToFormRefresh(): void {\n this.recordRefresh?.Refreshed$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n void this.refreshIfLoaded();\n });\n }\n\n /**\n * Parent-form refresh fan-out: only reload grids that have already paid\n * for a RunView. Collapsed / never-seen related sections stay deferred.\n */\n private async refreshIfLoaded(): Promise<void> {\n if (!this._hasBeenVisible) {\n return;\n }\n await this.Refresh();\n }\n\n private onBecameVisible(): void {\n if (this._hasBeenVisible) {\n return;\n }\n // One-shot: once loaded we never need to observe again.\n this._visibilityObserver?.disconnect();\n this._visibilityObserver = undefined;\n this.ngZone.run(() => {\n this._hasBeenVisible = true;\n // Flip EffectiveAllowLoad → true, which drives the inner grid's AllowLoad setter to load.\n this.cdr.detectChanges();\n });\n }\n\n /**\n * When true, double-clicking a row emits a Navigate event.\n * Defaults to true.\n */\n @Input() NavigateOnDoubleClick: boolean = true;\n\n // Re-emit events for consumers who need them\n @Output() AfterRowDoubleClick = new EventEmitter<AfterRowDoubleClickEventArgs>();\n @Output() AfterRowClick = new EventEmitter<AfterRowClickEventArgs>();\n @Output() AfterDataLoad = new EventEmitter<AfterDataLoadEventArgs>();\n\n /** Emitted when a row is double-clicked and NavigateOnDoubleClick is true */\n @Output() Navigate = new EventEmitter<FormNavigationEvent>();\n\n onRowDoubleClick(event: AfterRowDoubleClickEventArgs): void {\n // Re-emit the event for any consumers\n this.AfterRowDoubleClick.emit(event);\n\n // Emit navigation event if enabled\n if (this.NavigateOnDoubleClick && event.row) {\n // Use the inner grid's resolved EntityInfo - works for both ViewID and EntityName params\n const entityInfo = this.innerGrid?.EntityInfo;\n if (!entityInfo) return;\n\n const pkey = buildCompositeKey(event.row, entityInfo);\n\n this.Navigate.emit({\n Kind: 'record',\n EntityName: entityInfo.Name,\n PrimaryKey: pkey\n });\n }\n }\n\n onRowClick(event: AfterRowClickEventArgs): void {\n // Re-emit the event for any consumers\n this.AfterRowClick.emit(event);\n }\n\n onDataLoad(event: AfterDataLoadEventArgs): void {\n this.AfterDataLoad.emit(event);\n if (!this.shouldSizeToRows()) {\n return;\n }\n this.sizedRowCount = event.loadedRowCount;\n this.applySizedHeight();\n this.cdr.markForCheck();\n // The related-entity panel ancestry can become detectable after ngAfterViewInit, so\n // make sure the observer exists by the time the first sized load happens.\n this.ensureHostResizeObserver();\n // AG Grid decides whether it needs a horizontal scrollbar only after it lays the new\n // rows/columns out, so the measurement has to follow the load, not accompany it.\n this.scheduleScrollbarMeasure();\n }\n\n private applySizedHeight(): void {\n this.sizedHeightPx = RelatedGridHeightPx(this.sizedRowCount, this.MaxHeight, this.scrollbarPx);\n }\n\n /**\n * Horizontal overflow comes and goes with the container width, not only with data\n * loads (a left-nav column narrows, a panel is resized), so re-measure on host resize.\n * Idempotent: creates the observer once, the first time this grid sizes to its rows.\n */\n private ensureHostResizeObserver(): void {\n if (this._hostResizeObserver || this._destroyed || !this.shouldSizeToRows() || typeof ResizeObserver === 'undefined') {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n this._hostResizeObserver = new ResizeObserver(() => this.scheduleScrollbarMeasure());\n this._hostResizeObserver.observe(this.elementRef.nativeElement);\n });\n }\n\n /**\n * Measure two frames out: AG Grid sizes its fake scroller in its own animation\n * frame (`FakeHScrollComp.setScrollVisible`), and ours must land after that.\n */\n private scheduleScrollbarMeasure(): void {\n if (this._destroyed) {\n return;\n }\n if (typeof requestAnimationFrame === 'undefined') {\n this.applyScrollbarMeasurement();\n return;\n }\n if (this._scrollbarMeasureFrame) {\n return; // one already queued; it will read the latest layout\n }\n this.ngZone.runOutsideAngular(() => {\n this._scrollbarMeasureFrame = requestAnimationFrame(() => {\n this._scrollbarMeasureFrame = requestAnimationFrame(() => {\n this._scrollbarMeasureFrame = 0;\n this.applyScrollbarMeasurement();\n });\n });\n });\n }\n\n private applyScrollbarMeasurement(): void {\n if (this._destroyed || !this.shouldSizeToRows()) {\n return;\n }\n const px = this.measureHorizontalScrollbarPx();\n if (px === this.scrollbarPx) {\n return;\n }\n this.scrollbarPx = px;\n // markForCheck, not detectChanges: the height lives in a HOST binding, which the\n // parent view refreshes, so the view (and its ancestors) must be marked dirty.\n this.ngZone.run(() => {\n this.applySizedHeight();\n this.cdr.markForCheck();\n });\n }\n\n /**\n * The space AG Grid's horizontal scrollbar takes inside our box right now. AG Grid\n * renders it as a \"fake\" scroller element it sizes to the platform scrollbar width\n * when the columns overflow and collapses to 0 when they fit. Overlay scrollbars\n * (macOS \"show when scrolling\") get `.ag-scrollbar-invisible`, which positions the\n * element absolutely — it is drawn over the rows and takes no layout space, so it\n * needs no budget. Returns `undefined` when the scroller has not been rendered yet.\n */\n private measureHorizontalScrollbarPx(): number | undefined {\n const host = this.elementRef.nativeElement as HTMLElement | null;\n const scroller = host?.querySelector<HTMLElement>('.ag-body-horizontal-scroll');\n if (!scroller) {\n // No scroller element yet is NOT a measurement of 0: AG Grid has not laid the grid\n // out. Stay unmeasured so the sizing keeps the fixed reserve until it has.\n return undefined;\n }\n // Watch the scroller too: its height flips 0 <-> N when AG Grid toggles the\n // scrollbar without the host changing size. Re-observing the same target is a no-op.\n this._hostResizeObserver?.observe(scroller);\n if (getComputedStyle(scroller).position === 'absolute') {\n return 0;\n }\n return scroller.offsetHeight;\n }\n\n /**\n * The inner grid's \"New\" button bubbles up here. We re-emit as a\n * `new-record` Navigate event so the host form (and Explorer's\n * SingleRecordComponent) can call NavigationService.OpenNewEntityRecord\n * and pre-populate the foreign-key fields from NewRecordValues.\n */\n onNewRecordTabRequested(event: { entityInfo: EntityInfo; defaultValues: Record<string, unknown> }): void {\n this.Navigate.emit({\n Kind: 'new-record',\n EntityName: event.entityInfo.Name,\n DefaultValues: event.defaultValues,\n });\n }\n}\n"]}
|
|
@@ -167,6 +167,8 @@ export declare class MjFormFieldComponent extends BaseAngularComponent implement
|
|
|
167
167
|
get IsRequiredEmpty(): boolean;
|
|
168
168
|
/** Whether the user has interacted with (changed) this field */
|
|
169
169
|
private _touched;
|
|
170
|
+
/** Set when an image upload is rejected (type/size) — shown with field validation. */
|
|
171
|
+
private imageUploadError;
|
|
170
172
|
/** Locally computed validation errors for this field */
|
|
171
173
|
private _fieldErrors;
|
|
172
174
|
/** Validation errors for this field from the best available source */
|
|
@@ -621,9 +623,34 @@ export declare class MjFormFieldComponent extends BaseAngularComponent implement
|
|
|
621
623
|
get CodeEditorLanguage(): string;
|
|
622
624
|
/** Map the field's CodeType metadata value to a CodeMirror language id. */
|
|
623
625
|
private codeTypeToLanguage;
|
|
626
|
+
/**
|
|
627
|
+
* Runtime display kind from EntityField.ExtendedType. Honored ahead of the
|
|
628
|
+
* generated `LinkType` input so PhotoURL forms still tagged LinkType=URL
|
|
629
|
+
* render as images once metadata says Image.
|
|
630
|
+
*/
|
|
631
|
+
get ExtendedDisplay(): 'image' | 'color' | 'json' | null;
|
|
632
|
+
get ImagePreviewSrc(): string | null;
|
|
633
|
+
get IsInlineImageValue(): boolean;
|
|
634
|
+
get ImageValueSizeLabel(): string;
|
|
635
|
+
get ImageMaxSizeLabel(): string;
|
|
636
|
+
/** URL box: empty for inline images so we never dump a data URI into a text input. */
|
|
637
|
+
get ImageUrlInputValue(): string;
|
|
638
|
+
get ImageUrlDisplay(): string;
|
|
639
|
+
get ColorPickerValue(): string;
|
|
640
|
+
get ColorSwatchValue(): string;
|
|
641
|
+
get JsonDisplayValue(): string;
|
|
624
642
|
/** Handle value changes coming from the embedded code editor (emits a plain string). */
|
|
625
643
|
OnCodeEditorChange(value: string): void;
|
|
626
644
|
/** Format a value for display */
|
|
645
|
+
/**
|
|
646
|
+
* Whether this field holds a DATE with no time, as opposed to a timestamp.
|
|
647
|
+
*
|
|
648
|
+
* The distinction decides which timezone the value may be rendered in, and getting it wrong
|
|
649
|
+
* moves the day. A `date` column has no time and no zone: it is a calendar day, and the only
|
|
650
|
+
* correct way to show it is in the zone it was written in. A `datetime`/`datetimeoffset` names
|
|
651
|
+
* an instant, and the correct way to show THAT is the reader's local zone.
|
|
652
|
+
*/
|
|
653
|
+
private get IsDateOnlyField();
|
|
627
654
|
FormatValue(): string;
|
|
628
655
|
ngOnChanges(changes: SimpleChanges): void;
|
|
629
656
|
ngOnDestroy(): void;
|
|
@@ -643,6 +670,18 @@ export declare class MjFormFieldComponent extends BaseAngularComponent implement
|
|
|
643
670
|
* Handle value change from a native input.
|
|
644
671
|
*/
|
|
645
672
|
OnInputChange(event: Event): void;
|
|
673
|
+
OnImageUrlInput(event: Event): void;
|
|
674
|
+
OnImageClear(): void;
|
|
675
|
+
OnImageFileSelected(event: Event): Promise<void>;
|
|
676
|
+
OnColorPickerInput(event: Event): void;
|
|
677
|
+
OnJsonBlur(): void;
|
|
678
|
+
private readFileAsDataUri;
|
|
679
|
+
private loadHtmlImage;
|
|
680
|
+
/**
|
|
681
|
+
* Re-encode a raster data URI as JPEG, shrinking dimensions/quality until it fits
|
|
682
|
+
* `maxChars`. GIF/SVG are left alone (would lose animation / vectors).
|
|
683
|
+
*/
|
|
684
|
+
private compressImageDataUriToFit;
|
|
646
685
|
/**
|
|
647
686
|
* Handle value change from a number input.
|
|
648
687
|
*/
|
|
@@ -659,6 +698,26 @@ export declare class MjFormFieldComponent extends BaseAngularComponent implement
|
|
|
659
698
|
* Get date value formatted for HTML date input.
|
|
660
699
|
*/
|
|
661
700
|
get DateInputValue(): string;
|
|
701
|
+
/**
|
|
702
|
+
* The field holds SOMETHING, and the date editor cannot show it.
|
|
703
|
+
*
|
|
704
|
+
* WHY A SEPARATE SIGNAL IS THE ONLY OPTION. `DateInputValue` returns '' for a value it cannot
|
|
705
|
+
* render, and an `<input type="date">` renders '' as an empty box — the same empty box it shows
|
|
706
|
+
* for a field that was never set. There is no string that makes the element display
|
|
707
|
+
* `not-a-date`, so the control physically cannot surface the problem itself. The most the getter
|
|
708
|
+
* can do is refuse to emit garbage; saying WHY has to happen beside it.
|
|
709
|
+
*
|
|
710
|
+
* The consequence of not saying it is not cosmetic. The field reads as "no date", and the next
|
|
711
|
+
* save writes that emptiness over whatever was actually stored — so an unreadable value becomes a
|
|
712
|
+
* destroyed one, silently, by a user who was never told anything was wrong.
|
|
713
|
+
*
|
|
714
|
+
* READ MODE ALREADY DOES THIS and needs nothing: `FormatValue()` shows `Invalid Date` for a bad
|
|
715
|
+
* Date and the raw text for a bad string. It is only the EDITOR that hides the problem, which is
|
|
716
|
+
* why this is scoped to EditMode rather than to the field.
|
|
717
|
+
*
|
|
718
|
+
* An ABSENT value is not unreadable. Empty means empty, and must never be decorated as a fault.
|
|
719
|
+
*/
|
|
720
|
+
get StoredDateIsUnreadable(): boolean;
|
|
662
721
|
static ɵfac: i0.ɵɵFactoryDeclaration<MjFormFieldComponent, never>;
|
|
663
722
|
static ɵcmp: i0.ɵɵComponentDeclaration<MjFormFieldComponent, "mj-form-field", never, { "Record": { "alias": "Record"; "required": false; }; "EditMode": { "alias": "EditMode"; "required": false; }; "FieldName": { "alias": "FieldName"; "required": false; }; "Type": { "alias": "Type"; "required": false; }; "LinkType": { "alias": "LinkType"; "required": false; }; "ShowLabel": { "alias": "ShowLabel"; "required": false; }; "FormContext": { "alias": "FormContext"; "required": false; }; "_deprecatedRecord": { "alias": "record"; "required": false; }; "_deprecatedFormContext": { "alias": "formContext"; "required": false; }; "HideWhenEmptyInReadOnlyMode": { "alias": "HideWhenEmptyInReadOnlyMode"; "required": false; }; "DisplayNameOverride": { "alias": "DisplayNameOverride"; "required": false; }; "PossibleValuesOverride": { "alias": "PossibleValuesOverride"; "required": false; }; "FKDropdownMaxWidth": { "alias": "FKDropdownMaxWidth"; "required": false; }; "FKHighlightMatches": { "alias": "FKHighlightMatches"; "required": false; }; "AllowFKCreate": { "alias": "AllowFKCreate"; "required": false; }; "FKCreatePresentation": { "alias": "FKCreatePresentation"; "required": false; }; }, { "ValueChange": "ValueChange"; "Navigate": "Navigate"; }, never, never, false, never>;
|
|
664
723
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-field.component.d.ts","sourceRoot":"","sources":["../../../src/lib/field/form-field.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAsD,SAAS,EAAE,aAAa,EAAE,SAAS,EAAyB,MAAM,eAAe,CAAC;AACvL,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAc,eAAe,EAA0D,MAAM,sBAAsB,CAAC;AAEvI,OAAO,EAAE,mBAAmB,EAA4E,MAAM,wBAAwB,CAAC;AACvI,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;;AAIjE;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,eAAe,EAAE,OAAO,CAAC;IACzB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,8GAA8G;IAC9G,eAAe,EAAE,MAAM,CAAC;IACxB,2FAA2F;IAC3F,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC;;;;OAIG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AA+BD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAOa,oBAAqB,SAAQ,oBAAqB,YAAW,SAAS,EAAE,SAAS;IAC5F,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,OAAO,CAAmC;IAElD,8CAA8C;IACrC,MAAM,EAAG,UAAU,CAAC;IAE7B,uCAAuC;IAC9B,QAAQ,UAAS;IAE1B,6DAA6D;IACpD,SAAS,SAAM;IAExB;;;;;;;OAOG;IACH,IACI,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,MAAM,GAAG,cAAc,GAAG,gBAAgB,EAOrJ;IACD,IAAI,IAAI,IAAI,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,MAAM,CAE7G;IACD,OAAO,CAAC,KAAK,CAAiH;IAE9H;;;;;;OAMG;IACM,QAAQ,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAU;IAEhE,sCAAsC;IAC7B,SAAS,UAAQ;IAE1B,0DAA0D;IACjD,WAAW,CAAC,EAAE,WAAW,CAAC;IAEnC;;;;OAIG;IACH,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAID,uCAAuC;IACvC,IAAqB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAA0B;IAElF,4CAA4C;IAC5C,IAA0B,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAA+B;IAE9G,6EAA6E;IACpE,2BAA2B,UAAQ;IAE5C,4EAA4E;IACnE,mBAAmB,SAAM;IAElC,uDAAuD;IAC9C,sBAAsB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IAExD,2CAA2C;IACjC,WAAW;mBAAiC,MAAM;kBAAY,OAAO;kBAAY,OAAO;OAAM;IAExG,uFAAuF;IAC7E,QAAQ,oCAA2C;IAI7D,kDAAkD;IAClD,IAAI,SAAS,IAAI,eAAe,GAAG,SAAS,CAE3C;IAED,6CAA6C;IAC7C,IAAI,WAAW,IAAI,MAAM,CAkBxB;IAED,uFAAuF;IACvF,IAAI,sBAAsB,IAAI,MAAM,CAEnC;IAED,0BAA0B;IAC1B,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,2EAA2E;IAC3E,IAAI,KAAK,CAAC,QAAQ,EAAE,OAAO,EAO1B;IAED,+DAA+D;IAC/D,IAAI,eAAe,IAAI,OAAO,CAG7B;IAED,4FAA4F;IAC5F,IAAI,OAAO,IAAI,OAAO,CAIrB;IAED,oDAAoD;IACpD,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,wFAAwF;IACxF,IAAI,eAAe,IAAI,OAAO,CAM7B;IAID,gEAAgE;IAChE,OAAO,CAAC,QAAQ,CAAS;IAEzB,wDAAwD;IACxD,OAAO,CAAC,YAAY,CAA6B;IAEjD,sEAAsE;IACtE,IAAI,WAAW,IAAI,mBAAmB,EAAE,CAWvC;IAED,iFAAiF;IACjF,IAAI,cAAc,IAAI,OAAO,CAG5B;IAED,+EAA+E;IAC/E,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,+EAA+E;IAC/E,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,+CAA+C;IAC/C,IAAI,aAAa,IAAI,mBAAmB,EAAE,CAGzC;IAED,iDAAiD;IACjD,IAAI,eAAe,IAAI,mBAAmB,EAAE,CAG3C;IAED;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAc1B,oEAAoE;IACpE,IAAI,eAAe,IAAI,OAAO,CAM7B;IAED,+EAA+E;IAC/E,IAAI,cAAc,IAAI,MAAM,EAAE,CAO7B;IAED,4DAA4D;IAC5D,IAAI,gBAAgB,IAAI,OAAO,CAG9B;IAED;;;;;;OAMG;IACH,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAuBjC;IAED;;;OAGG;IACH,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAID,4EAA4E;IAC5E,OAAO,CAAC,eAAe,CAAwC;IAE/D,8EAA8E;IAC9E,OAAO,CAAC,gBAAgB,CAAsB;IAE9C,2CAA2C;IAC3C,OAAO,CAAC,cAAc,CAAS;IAE/B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAkC1B,uDAAuD;IACvD,WAAW,SAAK;IAChB,YAAY,SAAK;IACjB,0FAA0F;IAC1F,gBAAgB,SAAK;IACrB,gBAAgB,SAAK;IACrB,SAAS,UAAS;IAElB;;;;;OAKG;IACM,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElD;;;;;OAKG;IACM,kBAAkB,UAAQ;IAEnC;;;;OAIG;IACM,aAAa,UAAQ;IAE9B,uFAAuF;IAC9E,oBAAoB,EAAE,QAAQ,GAAG,UAAU,CAAY;IAEhE,mDAAmD;IACnD,OAAO,CAAC,cAAc,CAA6B;IAEnD,mDAAmD;IACnD,IAAI,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BlD;IAED,2EAA2E;IAC3E,OAAO,CAAC,sBAAsB;IAyB9B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,oBAAoB;IAwB5B,4FAA4F;IAC5F,OAAO,CAAC,mBAAmB,CAA4B;IAEvD,2DAA2D;IAC3D,OAAO,CAAC,mBAAmB;IA0B3B,qCAAqC;IACrC,OAAO,CAAC,kBAAkB;IAO1B,+BAA+B;IAC/B,OAAO,CAAC,iBAAiB;IAezB,2EAA2E;IAC3E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAM;IAEjD,0CAA0C;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAM;IAEhD,qDAAqD;IACrD,aAAa,EAAE,YAAY,EAAE,CAAM;IAEnC;;;;OAIG;IACH,oBAAoB,EAAE,YAAY,GAAG,IAAI,CAAQ;IAEjD,sFAAsF;IACtF,WAAW,UAAS;IAEpB,yCAAyC;IACzC,cAAc,UAAS;IAEvB,iFAAiF;IACjF,SAAS,UAAS;IAElB,oFAAoF;IACpF,WAAW,UAAS;IAEpB,uEAAuE;IACvE,aAAa,SAAM;IAEnB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,EAAE,CAAM;IAE/B,0FAA0F;IAC1F,cAAc,EAAE,MAAM,EAAE,CAAM;IAE9B,2DAA2D;IAC3D,WAAW,SAAM;IAEjB,uFAAuF;IACvF,eAAe,UAAS;IAExB,kFAAkF;IAClF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElC,8EAA8E;IAC9E,SAAS,EAAE,KAAK,GAAG,MAAM,CAAS;IAElC,mFAAmF;IACnF,OAAO,CAAC,qBAAqB,CAAsB;IAEnD,yFAAyF;IACzF,OAAO,CAAC,YAAY,CAAuB;IAE3C;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAM;IAEtB,mCAAmC;IACnC,OAAO,CAAC,gBAAgB,CAA8C;IAEtE,6DAA6D;IAC7D,OAAO,CAAC,cAAc,CAA4B;IAElD,0FAA0F;IAC1F,OAAO,CAAC,YAAY,CAAK;IAEzB,6EAA6E;IAC7E,OAAO,CAAC,aAAa,CAA6B;IAIlD,8FAA8F;IAC9F,aAAa,SAAM;IAEnB,wEAAwE;IACxE,kBAAkB,SAAM;IAExB,6CAA6C;IAC7C,eAAe,UAAS;IAExB,mFAAmF;IACnF,SAAS,UAAS;IAElB,qFAAqF;IACrF,kBAAkB,EAAE,iBAAiB,EAAE,CAAM;IAI7C,iFAAiF;IACjF,OAAO,CAAC,YAAY,CAA8B;IAElD,iFAAiF;IACjF,OAAO,CAAC,UAAU,CAAuB;IAEzC,4DAA4D;IAC5D,OAAO,CAAC,SAAS,CAAsE;IACvF,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,WAAW,CAA6B;IAEhD,oDAAoD;IACpD,IAAI,YAAY,IAAI,MAAM,CAGzB;IAED;;;;OAIG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,4FAA4F;IAC5F,eAAe,CAAC,UAAU,EAAE,YAAY,GAAG,OAAO;IAOlD;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;;;OAIG;IACH,OAAO,CAAC,gCAAgC;IAUxC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAsCvB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAiC7B,+EAA+E;IAC/E,OAAO,KAAK,gBAAgB,GAE3B;IAED,6DAA6D;IAC7D,OAAO,KAAK,eAAe,GAE1B;IAED,sFAAsF;IACtF,OAAO,CAAC,oBAAoB;IAI5B,+FAA+F;IAC/F,OAAO,CAAC,sBAAsB;IAM9B,2DAA2D;IAC3D,OAAO,CAAC,oBAAoB;IAI5B,yFAAyF;IACzF,OAAO,CAAC,mBAAmB;IAI3B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA6B7B;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IAyBpC,0FAA0F;IAC1F,OAAO,CAAC,UAAU;IAIlB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAiCxB,yFAAyF;IACzF,OAAO,CAAC,gBAAgB;IAqCxB;;;;OAIG;IACH,OAAO,CAAC,+BAA+B;IAcvC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAavB;;;OAGG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAcvC,qEAAqE;IACrE,OAAO,CAAC,sBAAsB;IAQ9B,kFAAkF;IAClF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IASrC,sFAAsF;IACtF,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAOxC,2DAA2D;IAC3D,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO;IAIlD,yFAAyF;IACzF,IAAI,0BAA0B,IAAI,OAAO,CAExC;IAED,qFAAqF;IACrF,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAKlE,mFAAmF;IACnF,OAAO,CAAC,WAAW;IAWnB,gFAAgF;IAChF,OAAO,CAAC,oBAAoB;IAS5B,2FAA2F;IAC3F,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO;IAIpD,oFAAoF;IACpF,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO;IAIpD;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAYnE,wEAAwE;IACxE,OAAO,CAAC,mBAAmB;IAW3B,4EAA4E;IAC5E,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIzC,6EAA6E;IAC7E,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAK3C;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;IAWnE;;;;;OAKG;IACH,IAAI,qBAAqB,IAAI,MAAM,CAMlC;IAED;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAOrB,4FAA4F;IAC5F,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;IAI3D,uFAAuF;IACvF,SAAS,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIlF,wFAAwF;IACxF,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOtD,0FAA0F;IAC1F,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAY1D,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,yBAAyB;IAQjC,2CAA2C;IAC3C,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAwB7B;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAUlC;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAahC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAkB1B,0EAA0E;IAC1E,QAAQ,IAAI,IAAI;IAchB;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAkCvC,2FAA2F;IAC3F,OAAO,CAAC,0BAA0B;IASlC,kDAAkD;IAClD,cAAc,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAKjE,iEAAiE;IACjE,OAAO,CAAC,kBAAkB;IAgB1B;;;;OAIG;IACH,IAAI,WAAW,IAAI,OAAO,CAMzB;IAED,2FAA2F;IAC3F,IAAI,aAAa,IAAI,MAAM,CAI1B;IAED;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAyBtC,qEAAqE;IACrE,OAAO,CAAC,qBAAqB;IAa7B,sCAAsC;IACtC,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAoBvC,gEAAgE;IAChE,OAAO,CAAC,eAAe;IAUvB;;;;OAIG;YACW,mBAAmB;IAuDjC,iDAAiD;IACjD,qBAAqB,UAAS;IAE9B,6CAA6C;IAC7C,OAAO,CAAC,gBAAgB,CAAM;IAE9B,4DAA4D;IAC5D,IAAI,sBAAsB,IAAI,MAAM,EAAE,CAIrC;IAED,mDAAmD;IACnD,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAUpC,6BAA6B;IAC7B,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQzC,4BAA4B;IAC5B,eAAe,IAAI,IAAI;IAQvB,kDAAkD;IAClD,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAazD,oDAAoD;IACpD,kBAAkB,UAAS;IAE3B,wCAAwC;IACxC,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAcxC,wCAAwC;IACxC,mBAAmB,IAAI,IAAI;IAQ3B,uDAAuD;IACvD,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAY3D,sFAAsF;IACtF,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;;OAMG;IACH,IAAI,kBAAkB,IAAI,OAAO,CAKhC;IAED;;;;OAIG;IACH,IAAI,YAAY,IAAI,iBAAiB,CAiBpC;IAED,gGAAgG;IAChG,OAAO,CAAC,iBAAiB,CAAkC;IAE3D;;;;;OAKG;IACH,IAAI,gBAAgB,IAAI,iBAAiB,CAKxC;IAED,qFAAqF;IACrF,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,kBAAkB,CAA2B;IAErD,0FAA0F;IAC1F,OAAO,CAAC,YAAY;IAUpB;;;OAGG;IACH,IAAI,kBAAkB,IAAI,MAAM,CAQ/B;IAED,2EAA2E;IAC3E,OAAO,CAAC,kBAAkB;IAW1B,wFAAwF;IACxF,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIvC,iCAAiC;IACjC,WAAW,IAAI,MAAM;IASrB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAiDzC,WAAW,IAAI,IAAI;IAiBnB;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAuB1C;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAYzC;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAavC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAKjC;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAMlC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAKhC;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAKpC;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CAM3B;yCAn4DU,oBAAoB;2CAApB,oBAAoB;CAo4DhC"}
|
|
1
|
+
{"version":3,"file":"form-field.component.d.ts","sourceRoot":"","sources":["../../../src/lib/field/form-field.component.ts"],"names":[],"mappings":"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"}
|