@memberjunction/ng-entity-viewer 6.2.0-edge.0 → 6.2.0-edge.1
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/aggregate-setup-dialog/aggregate-setup-dialog.component.d.ts +22 -0
- package/dist/lib/aggregate-setup-dialog/aggregate-setup-dialog.component.d.ts.map +1 -1
- package/dist/lib/aggregate-setup-dialog/aggregate-setup-dialog.component.js +57 -13
- package/dist/lib/aggregate-setup-dialog/aggregate-setup-dialog.component.js.map +1 -1
- package/dist/lib/entity-cards/entity-cards.component.d.ts +67 -5
- package/dist/lib/entity-cards/entity-cards.component.d.ts.map +1 -1
- package/dist/lib/entity-cards/entity-cards.component.js +202 -71
- package/dist/lib/entity-cards/entity-cards.component.js.map +1 -1
- package/dist/lib/entity-data-grid/entity-data-grid.component.d.ts +159 -16
- package/dist/lib/entity-data-grid/entity-data-grid.component.d.ts.map +1 -1
- package/dist/lib/entity-data-grid/entity-data-grid.component.js +446 -147
- package/dist/lib/entity-data-grid/entity-data-grid.component.js.map +1 -1
- package/dist/lib/entity-data-grid/events/grid-events.js +67 -67
- package/dist/lib/entity-data-grid/events/grid-events.js.map +1 -1
- package/dist/lib/entity-record-detail-panel/entity-record-detail-panel.component.d.ts +112 -8
- package/dist/lib/entity-record-detail-panel/entity-record-detail-panel.component.d.ts.map +1 -1
- package/dist/lib/entity-record-detail-panel/entity-record-detail-panel.component.js +245 -61
- package/dist/lib/entity-record-detail-panel/entity-record-detail-panel.component.js.map +1 -1
- package/dist/lib/entity-viewer/entity-viewer.component.d.ts +6 -0
- package/dist/lib/entity-viewer/entity-viewer.component.d.ts.map +1 -1
- package/dist/lib/entity-viewer/entity-viewer.component.js +28 -9
- package/dist/lib/entity-viewer/entity-viewer.component.js.map +1 -1
- package/dist/lib/pill/pill.component.d.ts +13 -3
- package/dist/lib/pill/pill.component.d.ts.map +1 -1
- package/dist/lib/pill/pill.component.js +34 -10
- package/dist/lib/pill/pill.component.js.map +1 -1
- package/dist/lib/quick-save-dialog/quick-save-dialog.component.d.ts +29 -3
- package/dist/lib/quick-save-dialog/quick-save-dialog.component.d.ts.map +1 -1
- package/dist/lib/quick-save-dialog/quick-save-dialog.component.js +173 -114
- package/dist/lib/quick-save-dialog/quick-save-dialog.component.js.map +1 -1
- package/dist/lib/recycle-bin/recycle-bin.component.d.ts +4 -0
- package/dist/lib/recycle-bin/recycle-bin.component.d.ts.map +1 -1
- package/dist/lib/recycle-bin/recycle-bin.component.js +10 -2
- package/dist/lib/recycle-bin/recycle-bin.component.js.map +1 -1
- package/dist/lib/utils/highlight.util.d.ts +6 -0
- package/dist/lib/utils/highlight.util.d.ts.map +1 -1
- package/dist/lib/utils/highlight.util.js +23 -11
- package/dist/lib/utils/highlight.util.js.map +1 -1
- package/dist/lib/utils/record.util.d.ts +10 -0
- package/dist/lib/utils/record.util.d.ts.map +1 -1
- package/dist/lib/utils/record.util.js +20 -4
- package/dist/lib/utils/record.util.js.map +1 -1
- package/dist/lib/view-config-panel/view-config-panel.component.d.ts +17 -1
- package/dist/lib/view-config-panel/view-config-panel.component.d.ts.map +1 -1
- package/dist/lib/view-config-panel/view-config-panel.component.js +39 -6
- package/dist/lib/view-config-panel/view-config-panel.component.js.map +1 -1
- package/dist/lib/view-selector/view-selector.component.js +2 -2
- package/dist/lib/view-types/renderers/cards-view-renderer.component.d.ts +15 -3
- package/dist/lib/view-types/renderers/cards-view-renderer.component.d.ts.map +1 -1
- package/dist/lib/view-types/renderers/cards-view-renderer.component.js +33 -5
- package/dist/lib/view-types/renderers/cards-view-renderer.component.js.map +1 -1
- package/dist/lib/view-types/renderers/grid-view-renderer.component.d.ts +70 -2
- package/dist/lib/view-types/renderers/grid-view-renderer.component.d.ts.map +1 -1
- package/dist/lib/view-types/renderers/grid-view-renderer.component.js +155 -33
- package/dist/lib/view-types/renderers/grid-view-renderer.component.js.map +1 -1
- package/dist/lib/view-types/renderers/map-view-renderer.component.d.ts +16 -2
- package/dist/lib/view-types/renderers/map-view-renderer.component.d.ts.map +1 -1
- package/dist/lib/view-types/renderers/map-view-renderer.component.js +37 -9
- package/dist/lib/view-types/renderers/map-view-renderer.component.js.map +1 -1
- package/dist/lib/view-types/view-type.contracts.d.ts +8 -0
- package/dist/lib/view-types/view-type.contracts.d.ts.map +1 -1
- package/dist/lib/view-types/view-type.contracts.js.map +1 -1
- package/dist/lib/view-workspace/view-workspace.component.d.ts +243 -25
- package/dist/lib/view-workspace/view-workspace.component.d.ts.map +1 -1
- package/dist/lib/view-workspace/view-workspace.component.js +631 -180
- package/dist/lib/view-workspace/view-workspace.component.js.map +1 -1
- package/package.json +21 -20
|
@@ -3,15 +3,23 @@ import { CompositeKey } from '@memberjunction/core';
|
|
|
3
3
|
* Build a CompositeKey from a plain record using EntityInfo PK fields.
|
|
4
4
|
* Works with both plain objects (from ResultType: 'simple') and BaseEntity instances.
|
|
5
5
|
*/
|
|
6
|
-
export function
|
|
6
|
+
export function BuildCompositeKey(record, entityInfo) {
|
|
7
7
|
return CompositeKey.FromEntityRecord(entityInfo, record);
|
|
8
8
|
}
|
|
9
|
+
/** @deprecated Use {@link BuildCompositeKey}. */
|
|
10
|
+
export function buildCompositeKey(record, entityInfo) {
|
|
11
|
+
return BuildCompositeKey(record, entityInfo);
|
|
12
|
+
}
|
|
9
13
|
/**
|
|
10
14
|
* Build a PK concatenated string matching CompositeKey.ToConcatenatedString() format.
|
|
11
15
|
* Used as a stable row identifier for selection, tracking, and map keys.
|
|
12
16
|
*/
|
|
17
|
+
export function BuildPkString(record, entityInfo) {
|
|
18
|
+
return BuildCompositeKey(record, entityInfo).ToConcatenatedString();
|
|
19
|
+
}
|
|
20
|
+
/** @deprecated Use {@link BuildPkString}. */
|
|
13
21
|
export function buildPkString(record, entityInfo) {
|
|
14
|
-
return
|
|
22
|
+
return BuildPkString(record, entityInfo);
|
|
15
23
|
}
|
|
16
24
|
/**
|
|
17
25
|
* Rewrite host-supplied column field names to the entity's OWN spelling.
|
|
@@ -31,17 +39,21 @@ export function buildPkString(record, entityInfo) {
|
|
|
31
39
|
* ones as copies — the host's own array and objects are never mutated. A name matching no field is
|
|
32
40
|
* left alone for the existing validation to reject.
|
|
33
41
|
*/
|
|
34
|
-
export function
|
|
42
|
+
export function CanonicalizeColumnFields(entityInfo, columns) {
|
|
35
43
|
return columns.map(col => {
|
|
36
44
|
const field = entityInfo.Fields.find(f => f.Name.toLowerCase() === col.field.toLowerCase());
|
|
37
45
|
return field && field.Name !== col.field ? { ...col, field: field.Name } : col;
|
|
38
46
|
});
|
|
39
47
|
}
|
|
48
|
+
/** @deprecated Use {@link CanonicalizeColumnFields}. */
|
|
49
|
+
export function canonicalizeColumnFields(entityInfo, columns) {
|
|
50
|
+
return CanonicalizeColumnFields(entityInfo, columns);
|
|
51
|
+
}
|
|
40
52
|
/**
|
|
41
53
|
* Compute the Fields array to request from RunView based on EntityInfo and optional grid state.
|
|
42
54
|
* Includes: PK fields, NameField, visible display fields, and timestamp fields.
|
|
43
55
|
*/
|
|
44
|
-
export function
|
|
56
|
+
export function ComputeFieldsList(entityInfo, gridState, hostColumnFields) {
|
|
45
57
|
const fields = new Set();
|
|
46
58
|
// Fields the HOST explicitly asked to display. Without these, a page that supplies `[Columns]`
|
|
47
59
|
// renders columns whose data was never fetched — every cell shows as empty, which reads as a
|
|
@@ -125,4 +137,8 @@ export function computeFieldsList(entityInfo, gridState, hostColumnFields) {
|
|
|
125
137
|
}
|
|
126
138
|
return Array.from(fields);
|
|
127
139
|
}
|
|
140
|
+
/** @deprecated Use {@link ComputeFieldsList}. */
|
|
141
|
+
export function computeFieldsList(entityInfo, gridState, hostColumnFields) {
|
|
142
|
+
return ComputeFieldsList(entityInfo, gridState, hostColumnFields);
|
|
143
|
+
}
|
|
128
144
|
//# sourceMappingURL=record.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.util.js","sourceRoot":"","sources":["../../../src/lib/utils/record.util.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityInfo, CompositeKey } from '@memberjunction/core';\nimport { ViewGridState } from '../types';\n\n/**\n * Build a CompositeKey from a plain record using EntityInfo PK fields.\n * Works with both plain objects (from ResultType: 'simple') and BaseEntity instances.\n */\nexport function buildCompositeKey(record: Record<string, unknown>, entityInfo: EntityInfo): CompositeKey {\n return CompositeKey.FromEntityRecord(entityInfo, record);\n}\n\n/**\n * Build a PK concatenated string matching CompositeKey.ToConcatenatedString() format.\n * Used as a stable row identifier for selection, tracking, and map keys.\n */\nexport function buildPkString(record: Record<string, unknown>, entityInfo: EntityInfo): string {\n return buildCompositeKey(record, entityInfo).ToConcatenatedString();\n}\n\n/**\n * Rewrite host-supplied column field names to the entity's OWN spelling.\n *\n * A page may reasonably write `field: 'name'` where the entity says `Name`, and the grid resolves\n * host names case-insensitively when it looks up metadata — so such a column *renders*. But the\n * spelling does not stay cosmetic: it becomes the AG Grid colDef's `field`, and therefore its\n * `colId`, and therefore the key in captured grid state and sort settings. Meanwhile the row objects\n * the grid builds are keyed by the ENTITY's spelling. Anything that addresses data or matches state\n * by that name then misses: cells resolve to undefined, the captured state drops the column, a saved\n * sort is discarded.\n *\n * Normalising once, here, is what keeps those two vocabularies from diverging — the alternative is a\n * case-insensitive comparison at every one of those sites, which is the state that produced the bug.\n *\n * Unchanged columns are returned by REFERENCE (so callers can detect a no-op cheaply), and changed\n * ones as copies — the host's own array and objects are never mutated. A name matching no field is\n * left alone for the existing validation to reject.\n */\nexport function canonicalizeColumnFields<T extends { field: string }>(\n entityInfo: EntityInfo,\n columns: readonly T[],\n): T[] {\n return columns.map(col => {\n const field = entityInfo.Fields.find(f => f.Name.toLowerCase() === col.field.toLowerCase());\n return field && field.Name !== col.field ? { ...col, field: field.Name } : col;\n });\n}\n\n/**\n * Compute the Fields array to request from RunView based on EntityInfo and optional grid state.\n * Includes: PK fields, NameField, visible display fields, and timestamp fields.\n */\nexport function computeFieldsList(\n entityInfo: EntityInfo,\n gridState?: ViewGridState | null,\n hostColumnFields?: readonly string[] | null,\n): string[] {\n const fields = new Set<string>();\n\n // Fields the HOST explicitly asked to display. Without these, a page that supplies `[Columns]`\n // renders columns whose data was never fetched — every cell shows as empty, which reads as a\n // data bug rather than a missing SELECT. They are added unconditionally (not as an alternative\n // to the branches below) because a host column list says what to SHOW, while DefaultInView and\n // the grid state say what to fetch by default; the host's columns must be a superset, not a\n // replacement. Names are validated against the entity so a stale column can't break the query.\n if (hostColumnFields?.length) {\n for (const name of hostColumnFields) {\n const field = entityInfo.Fields.find(f => f.Name.toLowerCase() === name.toLowerCase());\n // Add the ENTITY's spelling, not the host's. A page may reasonably write `field: 'name'`\n // where the entity says `Name`, and metadata lookups here are case-insensitive so the\n // column is accepted — but this list goes on the wire. On the GraphQL transport it is\n // interpolated straight into the selection set, and GraphQL field names are case\n // SENSITIVE, so the host's spelling produces `Cannot query field \"name\"` and the whole\n // view fails: an error and zero rows, not one odd column. (This Set is case-sensitive\n // too, so the two spellings would not even collapse into one entry.)\n //\n // Callers that hand this function raw host names should also run them through\n // `canonicalizeColumnFields` for the column definitions, or the rendered column will\n // address a key the fetched rows do not have.\n if (field) {\n fields.add(field.Name);\n }\n }\n }\n\n // Always include PK fields\n for (const pk of entityInfo.PrimaryKeys) {\n fields.add(pk.Name);\n }\n\n // Include NameField for display name resolution\n if (entityInfo.NameField) {\n fields.add(entityInfo.NameField.Name);\n }\n\n // Include visible fields from gridState or DefaultInView\n if (gridState?.columnSettings?.length) {\n for (const col of gridState.columnSettings) {\n if (!col.hidden) {\n fields.add(col.Name);\n }\n }\n } else {\n // First try to use DefaultInView fields\n const defaultInViewFields = entityInfo.Fields.filter(f => f.DefaultInView);\n\n if (defaultInViewFields.length > 0) {\n for (const f of defaultInViewFields) {\n fields.add(f.Name);\n }\n } else {\n // Fallback: when no DefaultInView fields are defined, include the first 10\n // non-system fields. This matches the fallback in generateAgColumnDefs()\n // which uses getDefaultFieldsFallback() to show columns even when\n // DefaultInView isn't configured.\n const fallbackFields = entityInfo.Fields\n .filter(f =>\n !f.Name.startsWith('__mj_') &&\n !(f.IsPrimaryKey && f.SQLFullType?.toLowerCase() === 'uniqueidentifier') &&\n (f.Length <= 500 || f.Length < 0) // Exclude very long text unless nvarchar(max)\n )\n .slice(0, 10);\n\n for (const f of fallbackFields) {\n fields.add(f.Name);\n }\n }\n }\n\n // Include __mj timestamp fields (commonly used for sort and display)\n fields.add('__mj_CreatedAt');\n fields.add('__mj_UpdatedAt');\n\n // Lat/lng only — never address-tagged fields. The map uses pre-geocoded\n // coords, never text-based location guessing.\n for (const f of entityInfo.Fields) {\n if (f.ExtendedType === 'GeoLatitude' || f.ExtendedType === 'GeoLongitude') {\n fields.add(f.Name);\n }\n }\n // Gated on SupportsGeoCoding — BoundaryGeoJSON is nvarchar(max), wasteful\n // to pull for grid views that won't render a map.\n if (entityInfo.SupportsGeoCoding && entityInfo.Fields.some(f => f.Name === 'BoundaryGeoJSON')) {\n fields.add('BoundaryGeoJSON');\n }\n\n return Array.from(fields);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"record.util.js","sourceRoot":"","sources":["../../../src/lib/utils/record.util.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityInfo, CompositeKey } from '@memberjunction/core';\nimport { ViewGridState } from '../types';\n\n/**\n * Build a CompositeKey from a plain record using EntityInfo PK fields.\n * Works with both plain objects (from ResultType: 'simple') and BaseEntity instances.\n */\nexport function BuildCompositeKey(record: Record<string, unknown>, entityInfo: EntityInfo): CompositeKey {\n return CompositeKey.FromEntityRecord(entityInfo, record);\n}\n\n/** @deprecated Use {@link BuildCompositeKey}. */\nexport function buildCompositeKey(record: Record<string, unknown>, entityInfo: EntityInfo): CompositeKey {\n return BuildCompositeKey(record, entityInfo);\n}\n\n/**\n * Build a PK concatenated string matching CompositeKey.ToConcatenatedString() format.\n * Used as a stable row identifier for selection, tracking, and map keys.\n */\nexport function BuildPkString(record: Record<string, unknown>, entityInfo: EntityInfo): string {\n return BuildCompositeKey(record, entityInfo).ToConcatenatedString();\n}\n\n/** @deprecated Use {@link BuildPkString}. */\nexport function buildPkString(record: Record<string, unknown>, entityInfo: EntityInfo): string {\n return BuildPkString(record, entityInfo);\n}\n\n/**\n * Rewrite host-supplied column field names to the entity's OWN spelling.\n *\n * A page may reasonably write `field: 'name'` where the entity says `Name`, and the grid resolves\n * host names case-insensitively when it looks up metadata — so such a column *renders*. But the\n * spelling does not stay cosmetic: it becomes the AG Grid colDef's `field`, and therefore its\n * `colId`, and therefore the key in captured grid state and sort settings. Meanwhile the row objects\n * the grid builds are keyed by the ENTITY's spelling. Anything that addresses data or matches state\n * by that name then misses: cells resolve to undefined, the captured state drops the column, a saved\n * sort is discarded.\n *\n * Normalising once, here, is what keeps those two vocabularies from diverging — the alternative is a\n * case-insensitive comparison at every one of those sites, which is the state that produced the bug.\n *\n * Unchanged columns are returned by REFERENCE (so callers can detect a no-op cheaply), and changed\n * ones as copies — the host's own array and objects are never mutated. A name matching no field is\n * left alone for the existing validation to reject.\n */\nexport function CanonicalizeColumnFields<T extends { field: string }>(\n entityInfo: EntityInfo,\n columns: readonly T[],\n): T[] {\n return columns.map(col => {\n const field = entityInfo.Fields.find(f => f.Name.toLowerCase() === col.field.toLowerCase());\n return field && field.Name !== col.field ? { ...col, field: field.Name } : col;\n });\n}\n\n/** @deprecated Use {@link CanonicalizeColumnFields}. */\nexport function canonicalizeColumnFields<T extends { field: string }>(\n entityInfo: EntityInfo,\n columns: readonly T[],\n): T[] {\n return CanonicalizeColumnFields(entityInfo, columns);\n}\n\n/**\n * Compute the Fields array to request from RunView based on EntityInfo and optional grid state.\n * Includes: PK fields, NameField, visible display fields, and timestamp fields.\n */\nexport function ComputeFieldsList(\n entityInfo: EntityInfo,\n gridState?: ViewGridState | null,\n hostColumnFields?: readonly string[] | null,\n): string[] {\n const fields = new Set<string>();\n\n // Fields the HOST explicitly asked to display. Without these, a page that supplies `[Columns]`\n // renders columns whose data was never fetched — every cell shows as empty, which reads as a\n // data bug rather than a missing SELECT. They are added unconditionally (not as an alternative\n // to the branches below) because a host column list says what to SHOW, while DefaultInView and\n // the grid state say what to fetch by default; the host's columns must be a superset, not a\n // replacement. Names are validated against the entity so a stale column can't break the query.\n if (hostColumnFields?.length) {\n for (const name of hostColumnFields) {\n const field = entityInfo.Fields.find(f => f.Name.toLowerCase() === name.toLowerCase());\n // Add the ENTITY's spelling, not the host's. A page may reasonably write `field: 'name'`\n // where the entity says `Name`, and metadata lookups here are case-insensitive so the\n // column is accepted — but this list goes on the wire. On the GraphQL transport it is\n // interpolated straight into the selection set, and GraphQL field names are case\n // SENSITIVE, so the host's spelling produces `Cannot query field \"name\"` and the whole\n // view fails: an error and zero rows, not one odd column. (This Set is case-sensitive\n // too, so the two spellings would not even collapse into one entry.)\n //\n // Callers that hand this function raw host names should also run them through\n // `canonicalizeColumnFields` for the column definitions, or the rendered column will\n // address a key the fetched rows do not have.\n if (field) {\n fields.add(field.Name);\n }\n }\n }\n\n // Always include PK fields\n for (const pk of entityInfo.PrimaryKeys) {\n fields.add(pk.Name);\n }\n\n // Include NameField for display name resolution\n if (entityInfo.NameField) {\n fields.add(entityInfo.NameField.Name);\n }\n\n // Include visible fields from gridState or DefaultInView\n if (gridState?.columnSettings?.length) {\n for (const col of gridState.columnSettings) {\n if (!col.hidden) {\n fields.add(col.Name);\n }\n }\n } else {\n // First try to use DefaultInView fields\n const defaultInViewFields = entityInfo.Fields.filter(f => f.DefaultInView);\n\n if (defaultInViewFields.length > 0) {\n for (const f of defaultInViewFields) {\n fields.add(f.Name);\n }\n } else {\n // Fallback: when no DefaultInView fields are defined, include the first 10\n // non-system fields. This matches the fallback in generateAgColumnDefs()\n // which uses getDefaultFieldsFallback() to show columns even when\n // DefaultInView isn't configured.\n const fallbackFields = entityInfo.Fields\n .filter(f =>\n !f.Name.startsWith('__mj_') &&\n !(f.IsPrimaryKey && f.SQLFullType?.toLowerCase() === 'uniqueidentifier') &&\n (f.Length <= 500 || f.Length < 0) // Exclude very long text unless nvarchar(max)\n )\n .slice(0, 10);\n\n for (const f of fallbackFields) {\n fields.add(f.Name);\n }\n }\n }\n\n // Include __mj timestamp fields (commonly used for sort and display)\n fields.add('__mj_CreatedAt');\n fields.add('__mj_UpdatedAt');\n\n // Lat/lng only — never address-tagged fields. The map uses pre-geocoded\n // coords, never text-based location guessing.\n for (const f of entityInfo.Fields) {\n if (f.ExtendedType === 'GeoLatitude' || f.ExtendedType === 'GeoLongitude') {\n fields.add(f.Name);\n }\n }\n // Gated on SupportsGeoCoding — BoundaryGeoJSON is nvarchar(max), wasteful\n // to pull for grid views that won't render a map.\n if (entityInfo.SupportsGeoCoding && entityInfo.Fields.some(f => f.Name === 'BoundaryGeoJSON')) {\n fields.add('BoundaryGeoJSON');\n }\n\n return Array.from(fields);\n}\n\n/** @deprecated Use {@link ComputeFieldsList}. */\nexport function computeFieldsList(\n entityInfo: EntityInfo,\n gridState?: ViewGridState | null,\n hostColumnFields?: readonly string[] | null,\n): string[] {\n return ComputeFieldsList(entityInfo, gridState, hostColumnFields);\n}\n"]}
|
|
@@ -130,6 +130,22 @@ export declare class ViewConfigPanelComponent extends BaseAngularComponent imple
|
|
|
130
130
|
* Pre-populated sharing preference from the quick save dialog (used when DefaultSaveAsNew is true)
|
|
131
131
|
*/
|
|
132
132
|
PendingNewViewIsShared: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Pre-populated traditional filter from the quick save dialog (used when DefaultSaveAsNew is
|
|
135
|
+
* true). Without it, reopening this panel from the dialog would reset the filter the user had
|
|
136
|
+
* already configured. {@link ExternalFilterState} can't carry it back: the staged filter is the
|
|
137
|
+
* very object this panel is already bound to, so that input never registers a change.
|
|
138
|
+
*/
|
|
139
|
+
PendingNewViewFilterState: CompositeFilterDescriptor | null;
|
|
140
|
+
/**
|
|
141
|
+
* Pre-populated smart-filter toggle from the quick save dialog (used when DefaultSaveAsNew is
|
|
142
|
+
* true) — the smart-mode counterpart of {@link PendingNewViewFilterState}.
|
|
143
|
+
*/
|
|
144
|
+
PendingNewViewSmartFilterEnabled: boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Pre-populated smart-filter prompt from the quick save dialog (used when DefaultSaveAsNew is true)
|
|
147
|
+
*/
|
|
148
|
+
PendingNewViewSmartFilterPrompt: string;
|
|
133
149
|
/**
|
|
134
150
|
* Emitted when user wants to duplicate the current view (F-005)
|
|
135
151
|
*/
|
|
@@ -597,6 +613,6 @@ export declare class ViewConfigPanelComponent extends BaseAngularComponent imple
|
|
|
597
613
|
*/
|
|
598
614
|
private buildAggregatesConfig;
|
|
599
615
|
static ɵfac: i0.ɵɵFactoryDeclaration<ViewConfigPanelComponent, never>;
|
|
600
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ViewConfigPanelComponent, "mj-view-config-panel", never, { "Entity": { "alias": "Entity"; "required": false; }; "ViewEntity": { "alias": "ViewEntity"; "required": false; }; "IsOpen": { "alias": "IsOpen"; "required": false; }; "CurrentGridState": { "alias": "CurrentGridState"; "required": false; }; "SampleData": { "alias": "SampleData"; "required": false; }; "ExternalFilterState": { "alias": "ExternalFilterState"; "required": false; }; "DefaultSaveAsNew": { "alias": "DefaultSaveAsNew"; "required": false; }; "PendingNewViewName": { "alias": "PendingNewViewName"; "required": false; }; "PendingNewViewDescription": { "alias": "PendingNewViewDescription"; "required": false; }; "PendingNewViewIsShared": { "alias": "PendingNewViewIsShared"; "required": false; }; "IsSaving": { "alias": "IsSaving"; "required": false; }; }, { "Close": "Close"; "Save": "Save"; "SaveDefaults": "SaveDefaults"; "Delete": "Delete"; "OpenFilterDialogRequest": "OpenFilterDialogRequest"; "Duplicate": "Duplicate"; }, never, never, false, never>;
|
|
616
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ViewConfigPanelComponent, "mj-view-config-panel", never, { "Entity": { "alias": "Entity"; "required": false; }; "ViewEntity": { "alias": "ViewEntity"; "required": false; }; "IsOpen": { "alias": "IsOpen"; "required": false; }; "CurrentGridState": { "alias": "CurrentGridState"; "required": false; }; "SampleData": { "alias": "SampleData"; "required": false; }; "ExternalFilterState": { "alias": "ExternalFilterState"; "required": false; }; "DefaultSaveAsNew": { "alias": "DefaultSaveAsNew"; "required": false; }; "PendingNewViewName": { "alias": "PendingNewViewName"; "required": false; }; "PendingNewViewDescription": { "alias": "PendingNewViewDescription"; "required": false; }; "PendingNewViewIsShared": { "alias": "PendingNewViewIsShared"; "required": false; }; "PendingNewViewFilterState": { "alias": "PendingNewViewFilterState"; "required": false; }; "PendingNewViewSmartFilterEnabled": { "alias": "PendingNewViewSmartFilterEnabled"; "required": false; }; "PendingNewViewSmartFilterPrompt": { "alias": "PendingNewViewSmartFilterPrompt"; "required": false; }; "IsSaving": { "alias": "IsSaving"; "required": false; }; }, { "Close": "Close"; "Save": "Save"; "SaveDefaults": "SaveDefaults"; "Delete": "Delete"; "OpenFilterDialogRequest": "OpenFilterDialogRequest"; "Duplicate": "Duplicate"; }, never, never, false, never>;
|
|
601
617
|
}
|
|
602
618
|
//# sourceMappingURL=view-config-panel.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-config-panel.component.d.ts","sourceRoot":"","sources":["../../../src/lib/view-config-panel/view-config-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAgB,MAAM,eAAe,CAAC;AAC1I,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,eAAe,EAA+C,MAAM,sBAAsB,CAAC;AAChH,OAAO,EACL,wBAAwB,EAExB,aAAa,EAEb,8BAA8B,IAAI,YAAY,EAC9C,iCAAiC,IAAI,eAAe,EAEpD,sCAAsC,IAAI,wBAAwB,EAClE,+BAA+B,IAAI,iBAAiB,EAGrD,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,yBAAyB,EACzB,eAAe,EAGhB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;;AAE7C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,eAAe,CAAC;IACvB,sCAAsC;IACtC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,+DAA+D;IAC/D,aAAa,EAAE,KAAK,GAAG,MAAM,CAAC;IAC9B,4DAA4D;IAC5D,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,WAAW,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC9C,+BAA+B;IAC/B,gBAAgB,EAAE,wBAAwB,GAAG,IAAI,CAAC;CACnD;AAED;;;;;;;;;;GAUG;AACH,qBAMa,wBAAyB,SAAQ,oBAAqB,YAAW,MAAM,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"view-config-panel.component.d.ts","sourceRoot":"","sources":["../../../src/lib/view-config-panel/view-config-panel.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -1182,6 +1182,22 @@ export class ViewConfigPanelComponent extends BaseAngularComponent {
|
|
|
1182
1182
|
* Pre-populated sharing preference from the quick save dialog (used when DefaultSaveAsNew is true)
|
|
1183
1183
|
*/
|
|
1184
1184
|
PendingNewViewIsShared = false;
|
|
1185
|
+
/**
|
|
1186
|
+
* Pre-populated traditional filter from the quick save dialog (used when DefaultSaveAsNew is
|
|
1187
|
+
* true). Without it, reopening this panel from the dialog would reset the filter the user had
|
|
1188
|
+
* already configured. {@link ExternalFilterState} can't carry it back: the staged filter is the
|
|
1189
|
+
* very object this panel is already bound to, so that input never registers a change.
|
|
1190
|
+
*/
|
|
1191
|
+
PendingNewViewFilterState = null;
|
|
1192
|
+
/**
|
|
1193
|
+
* Pre-populated smart-filter toggle from the quick save dialog (used when DefaultSaveAsNew is
|
|
1194
|
+
* true) — the smart-mode counterpart of {@link PendingNewViewFilterState}.
|
|
1195
|
+
*/
|
|
1196
|
+
PendingNewViewSmartFilterEnabled = false;
|
|
1197
|
+
/**
|
|
1198
|
+
* Pre-populated smart-filter prompt from the quick save dialog (used when DefaultSaveAsNew is true)
|
|
1199
|
+
*/
|
|
1200
|
+
PendingNewViewSmartFilterPrompt = '';
|
|
1185
1201
|
/**
|
|
1186
1202
|
* Emitted when user wants to duplicate the current view (F-005)
|
|
1187
1203
|
*/
|
|
@@ -1518,12 +1534,23 @@ export class ViewConfigPanelComponent extends BaseAngularComponent {
|
|
|
1518
1534
|
this.SortDirection = 'asc';
|
|
1519
1535
|
this.SortItems = [];
|
|
1520
1536
|
}
|
|
1521
|
-
|
|
1537
|
+
// Carry a filter back from the quick-save dialog when continuing a new-view flow; otherwise
|
|
1538
|
+
// start clean. Smart takes precedence, matching how a saved view's filter mode is chosen.
|
|
1539
|
+
const carryingSmartFilter = this.DefaultSaveAsNew && this.PendingNewViewSmartFilterEnabled;
|
|
1540
|
+
const carriedFilter = this.DefaultSaveAsNew && !carryingSmartFilter ? this.PendingNewViewFilterState : null;
|
|
1541
|
+
this.SmartFilterPrompt = carryingSmartFilter ? this.PendingNewViewSmartFilterPrompt : '';
|
|
1522
1542
|
this.SmartFilterExplanation = '';
|
|
1523
|
-
this.
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1543
|
+
if (carriedFilter && this.countFilters(carriedFilter) > 0) {
|
|
1544
|
+
this.FilterState = carriedFilter;
|
|
1545
|
+
this.FilterMode = 'traditional';
|
|
1546
|
+
this.SmartFilterEnabled = false;
|
|
1547
|
+
}
|
|
1548
|
+
else {
|
|
1549
|
+
this.FilterState = CreateEmptyFilter();
|
|
1550
|
+
// Default to smart mode (promote AI filtering)
|
|
1551
|
+
this.FilterMode = 'smart';
|
|
1552
|
+
this.SmartFilterEnabled = true;
|
|
1553
|
+
}
|
|
1527
1554
|
}
|
|
1528
1555
|
// Load aggregates from currentGridState if available
|
|
1529
1556
|
if (this.CurrentGridState?.aggregates?.expressions) {
|
|
@@ -2722,7 +2749,7 @@ export class ViewConfigPanelComponent extends BaseAngularComponent {
|
|
|
2722
2749
|
static ɵfac = function ViewConfigPanelComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ViewConfigPanelComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
2723
2750
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ViewConfigPanelComponent, selectors: [["mj-view-config-panel"]], hostBindings: function ViewConfigPanelComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
2724
2751
|
i0.ɵɵlistener("keydown.escape", function ViewConfigPanelComponent_keydown_escape_HostBindingHandler() { return ctx.HandleEscape(); }, i0.ɵɵresolveDocument);
|
|
2725
|
-
} }, inputs: { Entity: "Entity", ViewEntity: "ViewEntity", IsOpen: "IsOpen", CurrentGridState: "CurrentGridState", SampleData: "SampleData", ExternalFilterState: "ExternalFilterState", DefaultSaveAsNew: "DefaultSaveAsNew", PendingNewViewName: "PendingNewViewName", PendingNewViewDescription: "PendingNewViewDescription", PendingNewViewIsShared: "PendingNewViewIsShared", IsSaving: "IsSaving" }, outputs: { Close: "Close", Save: "Save", SaveDefaults: "SaveDefaults", Delete: "Delete", OpenFilterDialogRequest: "OpenFilterDialogRequest", Duplicate: "Duplicate" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 45, vars: 46, consts: [[1, "panel-backdrop"], [1, "config-panel"], ["title", "Drag to resize", 1, "resize-handle", 3, "mousedown"], [1, "resize-grip"], [1, "panel-header"], [1, "header-title"], [1, "fa-solid", "fa-sliders-h"], ["title", "Close", "aria-label", "Close panel", 1, "close-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "tab-nav"], [1, "tab-btn", 3, "click", "title"], [1, "fa-solid", "fa-columns"], [1, "fa-solid", "fa-arrow-up-wide-short"], [1, "tab-badge"], [1, "fa-solid", "fa-filter"], [1, "fa-solid", "fa-chart-simple"], [1, "tab-btn", 3, "active", "title"], [1, "panel-content"], [1, "tab-content"], [1, "format-editor"], ["Variant", "error", "Size", "sm", 1, "view-config-validation-pos"], [1, "panel-footer"], [1, "footer-left"], [1, "footer-btn", "save-btn", "primary", 3, "disabled"], [1, "footer-btn", "cancel-btn", 3, "click"], [3, "Close", "Save", "Entity", "Aggregate", "IsOpen"], ["Title", "Delete View", "DetailMessage", "This action cannot be undone. All users who have access to this view will lose it.", "ConfirmText", "Delete", "ConfirmStyle", "danger", "Icon", "fa-solid fa-trash", 3, "Confirmed", "Cancelled", "IsOpen", "Message"], ["Title", "Switch Filter Mode", "DetailMessage", "You can switch back later, but the current filter data will be lost.", "ConfirmText", "Switch", "ConfirmStyle", "primary", "Icon", "fa-solid fa-exchange-alt", 3, "Confirmed", "Cancelled", "IsOpen", "Message"], [1, "panel-backdrop", 3, "click"], [1, "fa-solid", "fa-cog"], [1, "config-section"], [1, "section-header"], [1, "fa-solid", "fa-eye"], [1, "column-count"], [1, "column-list", "visible-columns"], ["Size", "compact", "Variant", "warning", "Title", "No columns visible. Add columns from below."], [1, "fa-solid", "fa-eye-slash"], [1, "column-search"], [1, "column-list", "hidden-columns"], [1, "column-item", "hidden"], ["Size", "compact", "Variant", "success", "Title", "All columns are visible"], [1, "drop-indicator"], ["draggable", "true", 1, "column-item", 3, "dragstart", "dragover", "dragleave", "drop", "dragend"], [1, "drag-handle"], [1, "fa-solid", "fa-grip-vertical"], [1, "column-name"], [1, "fa-solid", "fa-pen-nib", "alias-indicator", 3, "title"], ["title", "Custom formatting applied", 1, "fa-solid", "fa-paintbrush", "format-indicator"], [1, "column-actions"], ["title", "Format column", 1, "action-btn", "format-btn", 3, "click"], [1, "fa-solid", "fa-paintbrush"], ["title", "Move up", 1, "action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-up"], ["title", "Move down", 1, "action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-down"], ["title", "Hide column", 1, "action-btn", "hide-btn", 3, "click"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search columns...", 3, "ngModelChange", "ngModel"], ["title", "Show column", 1, "action-btn", "show-btn", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "format-editor-header"], [1, "back-btn", 3, "click"], [1, "fa-solid", "fa-arrow-left"], [1, "format-editor-title"], [1, "format-section"], [1, "format-section-header"], [1, "fa-solid", "fa-pen-nib"], [1, "format-row"], ["type", "text", 1, "format-input", 3, "input", "value", "placeholder"], [1, "format-row", "alias-info"], [1, "format-preview-section"], [1, "preview-header"], [1, "preview-table"], [1, "preview-header-cell"], [1, "preview-cell", 3, "text-align", "font-weight", "font-style", "text-decoration", "color", "background-color"], [1, "fa-solid", "fa-hashtag"], [1, "format-select", 3, "ngModelChange", "ngModel"], ["value", "auto"], ["value", "text"], ["value", "number"], ["value", "currency"], ["value", "percent"], ["value", "date"], ["value", "datetime"], ["value", "boolean"], [1, "fa-solid", "fa-align-left"], [1, "alignment-toggle"], ["title", "Left", 1, "align-btn", 3, "click"], ["title", "Center", 1, "align-btn", 3, "click"], [1, "fa-solid", "fa-align-center"], ["title", "Right", 1, "align-btn", 3, "click"], [1, "fa-solid", "fa-align-right"], [1, "fa-solid", "fa-heading"], [1, "style-buttons"], ["title", "Bold", 1, "style-btn", 3, "click"], [1, "fa-solid", "fa-bold"], ["title", "Italic", 1, "style-btn", 3, "click"], [1, "fa-solid", "fa-italic"], ["title", "Underline", 1, "style-btn", 3, "click"], [1, "fa-solid", "fa-underline"], ["type", "color", 1, "color-input", 3, "input", "value"], [1, "fa-solid", "fa-table-cells"], [1, "format-actions"], [1, "clear-format-btn", 3, "click"], [1, "fa-solid", "fa-eraser"], [1, "muted-text"], ["title", "Clear alias", "aria-label", "Clear alias", 1, "clear-alias-btn", 3, "click"], [1, "preview-cell"], [1, "fa-solid", "fa-sliders"], ["type", "number", "min", "0", "max", "10", 1, "format-input", "small", 3, "ngModelChange", "ngModel"], ["type", "checkbox", 3, "ngModelChange", "ngModel"], ["value", "USD"], ["value", "EUR"], ["value", "GBP"], ["value", "JPY"], ["value", "CAD"], ["value", "AUD"], [1, "fa-solid", "fa-calendar"], ["value", "short"], ["value", "short-weekday"], ["value", "medium"], ["value", "medium-weekday"], ["value", "long"], ["value", "long-weekday"], [1, "fa-solid", "fa-toggle-on"], ["type", "text", "placeholder", "Yes", 1, "format-input", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", "No", 1, "format-input", 3, "ngModelChange", "ngModel"], ["value", "checkbox"], ["value", "icon"], [1, "config-section", "sorting-section"], [1, "sorting-header"], [1, "sorting-description"], ["title", "Add another sort level", 1, "add-sort-btn", 3, "click", "disabled"], ["Size", "compact", "Icon", "fa-solid fa-arrow-up-wide-short", "Title", "No sorting configured", "Message", "Click \"Add Sort Level\" to define how records should be ordered"], [1, "sort-items-list"], ["Variant", "info", "Size", "sm"], [1, "sort-drop-indicator"], ["draggable", "true", 1, "sort-item", 3, "dragstart", "dragover", "dragleave", "drop", "dragend"], [1, "sort-priority-badge"], ["title", "Drag to reorder", 1, "sort-drag-handle"], [1, "sort-field-dropdown", 3, "ngModelChange", "ngModel", "disabled"], [3, "value"], [1, "sort-direction-toggle"], ["title", "Ascending (A-Z, 1-9)", 1, "direction-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-arrow-up"], ["title", "Descending (Z-A, 9-1)", 1, "direction-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-arrow-down"], ["title", "Remove sort level", 1, "sort-remove-btn", 3, "click", "disabled"], [1, "filter-mode-selector"], [1, "filter-mode-btn", 3, "click", "disabled"], [1, "mode-icon"], [1, "fa-solid", "fa-wand-magic-sparkles"], [1, "mode-content"], [1, "mode-title"], [1, "mode-subtitle"], [1, "fa-solid", "fa-check", "mode-check"], [1, "config-section", "smart-filter-section"], [1, "config-section", "traditional-filter-section"], [1, "smart-filter-input-container"], [1, "smart-filter-icon"], ["id", "SmartFilterPrompt", "placeholder", "Describe what you're looking for...", "rows", "3", 1, "smart-filter-textarea", 3, "ngModelChange", "ngModel", "disabled"], ["Variant", "info", "Size", "sm", "Icon", "fa-solid fa-robot", 1, "view-config-alert-pos-mb"], [1, "smart-filter-examples"], [1, "examples-header"], [1, "fa-solid", "fa-lightbulb"], [1, "example-chips"], [1, "example-chip", 3, "click", "disabled"], [1, "fa-regular", "fa-calendar"], [1, "fa-solid", "fa-circle-check"], [1, "fa-solid", "fa-star"], [1, "fa-solid", "fa-clock-rotate-left"], ["Variant", "info", "Size", "sm", 1, "view-config-alert-pos"], [1, "filter-summary-container"], [1, "filter-summary"], [1, "summary-info"], [1, "summary-text", "no-filters"], [1, "summary-actions"], ["title", "Clear all filters", 1, "summary-btn", "clear-btn"], ["title", "Edit filters", 1, "summary-btn", "edit-btn", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-pen"], [1, "filter-badge"], [1, "summary-text"], ["title", "Clear all filters", 1, "summary-btn", "clear-btn", 3, "click"], [1, "config-section", "aggregates-section"], [1, "aggregates-header"], [1, "aggregates-description"], ["title", "Add a new aggregate", 1, "add-aggregate-btn", 3, "click", "disabled"], ["Size", "compact", "Icon", "fa-solid fa-chart-simple", "Title", "No aggregates configured", "Message", "Click \"Add Aggregate\" to create summary calculations"], [1, "aggregates-list"], [1, "aggregate-item", 3, "disabled"], [1, "aggregates-summary"], [1, "summary-item"], [1, "fa-solid", "fa-id-card"], [1, "fa-solid", "fa-table-columns"], [1, "aggregate-item"], [1, "agg-icon"], [1, "agg-content"], [1, "agg-label"], [1, "agg-details"], [1, "agg-type"], ["title", "AI-generated", 1, "agg-smart-badge"], [1, "agg-actions"], ["title", "Move up", 1, "agg-action-btn", 3, "click", "disabled"], ["title", "Move down", 1, "agg-action-btn", 3, "click", "disabled"], [1, "agg-action-btn", "toggle-btn", 3, "click", "disabled", "title"], ["title", "Edit", 1, "agg-action-btn", "edit-btn", 3, "click", "disabled"], ["title", "Remove", 1, "agg-action-btn", "remove-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-trash"], [1, "fa-solid", "fa-info-circle"], [1, "form-group"], ["for", "ViewName"], ["id", "ViewName", "type", "text", "placeholder", "Enter view name...", 1, "form-input", 3, "ngModelChange", "ngModel", "disabled"], [1, "validation-error"], ["for", "ViewDescription"], ["id", "ViewDescription", "placeholder", "Describe this view...", "rows", "3", 1, "form-input", "form-textarea", 3, "ngModelChange", "ngModel", "disabled"], [1, "fa-solid", "fa-share-alt"], [1, "checkbox-label"], ["type", "checkbox", 3, "ngModelChange", "ngModel", "disabled"], [1, "checkbox-text"], [1, "config-section", "danger-zone"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "delete-btn", 3, "click"], [1, "footer-btn", "save-btn", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-save"]], template: function ViewConfigPanelComponent_Template(rf, ctx) { if (rf & 1) {
|
|
2752
|
+
} }, inputs: { Entity: "Entity", ViewEntity: "ViewEntity", IsOpen: "IsOpen", CurrentGridState: "CurrentGridState", SampleData: "SampleData", ExternalFilterState: "ExternalFilterState", DefaultSaveAsNew: "DefaultSaveAsNew", PendingNewViewName: "PendingNewViewName", PendingNewViewDescription: "PendingNewViewDescription", PendingNewViewIsShared: "PendingNewViewIsShared", PendingNewViewFilterState: "PendingNewViewFilterState", PendingNewViewSmartFilterEnabled: "PendingNewViewSmartFilterEnabled", PendingNewViewSmartFilterPrompt: "PendingNewViewSmartFilterPrompt", IsSaving: "IsSaving" }, outputs: { Close: "Close", Save: "Save", SaveDefaults: "SaveDefaults", Delete: "Delete", OpenFilterDialogRequest: "OpenFilterDialogRequest", Duplicate: "Duplicate" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 45, vars: 46, consts: [[1, "panel-backdrop"], [1, "config-panel"], ["title", "Drag to resize", 1, "resize-handle", 3, "mousedown"], [1, "resize-grip"], [1, "panel-header"], [1, "header-title"], [1, "fa-solid", "fa-sliders-h"], ["title", "Close", "aria-label", "Close panel", 1, "close-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "tab-nav"], [1, "tab-btn", 3, "click", "title"], [1, "fa-solid", "fa-columns"], [1, "fa-solid", "fa-arrow-up-wide-short"], [1, "tab-badge"], [1, "fa-solid", "fa-filter"], [1, "fa-solid", "fa-chart-simple"], [1, "tab-btn", 3, "active", "title"], [1, "panel-content"], [1, "tab-content"], [1, "format-editor"], ["Variant", "error", "Size", "sm", 1, "view-config-validation-pos"], [1, "panel-footer"], [1, "footer-left"], [1, "footer-btn", "save-btn", "primary", 3, "disabled"], [1, "footer-btn", "cancel-btn", 3, "click"], [3, "Close", "Save", "Entity", "Aggregate", "IsOpen"], ["Title", "Delete View", "DetailMessage", "This action cannot be undone. All users who have access to this view will lose it.", "ConfirmText", "Delete", "ConfirmStyle", "danger", "Icon", "fa-solid fa-trash", 3, "Confirmed", "Cancelled", "IsOpen", "Message"], ["Title", "Switch Filter Mode", "DetailMessage", "You can switch back later, but the current filter data will be lost.", "ConfirmText", "Switch", "ConfirmStyle", "primary", "Icon", "fa-solid fa-exchange-alt", 3, "Confirmed", "Cancelled", "IsOpen", "Message"], [1, "panel-backdrop", 3, "click"], [1, "fa-solid", "fa-cog"], [1, "config-section"], [1, "section-header"], [1, "fa-solid", "fa-eye"], [1, "column-count"], [1, "column-list", "visible-columns"], ["Size", "compact", "Variant", "warning", "Title", "No columns visible. Add columns from below."], [1, "fa-solid", "fa-eye-slash"], [1, "column-search"], [1, "column-list", "hidden-columns"], [1, "column-item", "hidden"], ["Size", "compact", "Variant", "success", "Title", "All columns are visible"], [1, "drop-indicator"], ["draggable", "true", 1, "column-item", 3, "dragstart", "dragover", "dragleave", "drop", "dragend"], [1, "drag-handle"], [1, "fa-solid", "fa-grip-vertical"], [1, "column-name"], [1, "fa-solid", "fa-pen-nib", "alias-indicator", 3, "title"], ["title", "Custom formatting applied", 1, "fa-solid", "fa-paintbrush", "format-indicator"], [1, "column-actions"], ["title", "Format column", 1, "action-btn", "format-btn", 3, "click"], [1, "fa-solid", "fa-paintbrush"], ["title", "Move up", 1, "action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-up"], ["title", "Move down", 1, "action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-down"], ["title", "Hide column", 1, "action-btn", "hide-btn", 3, "click"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search columns...", 3, "ngModelChange", "ngModel"], ["title", "Show column", 1, "action-btn", "show-btn", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "format-editor-header"], [1, "back-btn", 3, "click"], [1, "fa-solid", "fa-arrow-left"], [1, "format-editor-title"], [1, "format-section"], [1, "format-section-header"], [1, "fa-solid", "fa-pen-nib"], [1, "format-row"], ["type", "text", 1, "format-input", 3, "input", "value", "placeholder"], [1, "format-row", "alias-info"], [1, "format-preview-section"], [1, "preview-header"], [1, "preview-table"], [1, "preview-header-cell"], [1, "preview-cell", 3, "text-align", "font-weight", "font-style", "text-decoration", "color", "background-color"], [1, "fa-solid", "fa-hashtag"], [1, "format-select", 3, "ngModelChange", "ngModel"], ["value", "auto"], ["value", "text"], ["value", "number"], ["value", "currency"], ["value", "percent"], ["value", "date"], ["value", "datetime"], ["value", "boolean"], [1, "fa-solid", "fa-align-left"], [1, "alignment-toggle"], ["title", "Left", 1, "align-btn", 3, "click"], ["title", "Center", 1, "align-btn", 3, "click"], [1, "fa-solid", "fa-align-center"], ["title", "Right", 1, "align-btn", 3, "click"], [1, "fa-solid", "fa-align-right"], [1, "fa-solid", "fa-heading"], [1, "style-buttons"], ["title", "Bold", 1, "style-btn", 3, "click"], [1, "fa-solid", "fa-bold"], ["title", "Italic", 1, "style-btn", 3, "click"], [1, "fa-solid", "fa-italic"], ["title", "Underline", 1, "style-btn", 3, "click"], [1, "fa-solid", "fa-underline"], ["type", "color", 1, "color-input", 3, "input", "value"], [1, "fa-solid", "fa-table-cells"], [1, "format-actions"], [1, "clear-format-btn", 3, "click"], [1, "fa-solid", "fa-eraser"], [1, "muted-text"], ["title", "Clear alias", "aria-label", "Clear alias", 1, "clear-alias-btn", 3, "click"], [1, "preview-cell"], [1, "fa-solid", "fa-sliders"], ["type", "number", "min", "0", "max", "10", 1, "format-input", "small", 3, "ngModelChange", "ngModel"], ["type", "checkbox", 3, "ngModelChange", "ngModel"], ["value", "USD"], ["value", "EUR"], ["value", "GBP"], ["value", "JPY"], ["value", "CAD"], ["value", "AUD"], [1, "fa-solid", "fa-calendar"], ["value", "short"], ["value", "short-weekday"], ["value", "medium"], ["value", "medium-weekday"], ["value", "long"], ["value", "long-weekday"], [1, "fa-solid", "fa-toggle-on"], ["type", "text", "placeholder", "Yes", 1, "format-input", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", "No", 1, "format-input", 3, "ngModelChange", "ngModel"], ["value", "checkbox"], ["value", "icon"], [1, "config-section", "sorting-section"], [1, "sorting-header"], [1, "sorting-description"], ["title", "Add another sort level", 1, "add-sort-btn", 3, "click", "disabled"], ["Size", "compact", "Icon", "fa-solid fa-arrow-up-wide-short", "Title", "No sorting configured", "Message", "Click \"Add Sort Level\" to define how records should be ordered"], [1, "sort-items-list"], ["Variant", "info", "Size", "sm"], [1, "sort-drop-indicator"], ["draggable", "true", 1, "sort-item", 3, "dragstart", "dragover", "dragleave", "drop", "dragend"], [1, "sort-priority-badge"], ["title", "Drag to reorder", 1, "sort-drag-handle"], [1, "sort-field-dropdown", 3, "ngModelChange", "ngModel", "disabled"], [3, "value"], [1, "sort-direction-toggle"], ["title", "Ascending (A-Z, 1-9)", 1, "direction-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-arrow-up"], ["title", "Descending (Z-A, 9-1)", 1, "direction-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-arrow-down"], ["title", "Remove sort level", 1, "sort-remove-btn", 3, "click", "disabled"], [1, "filter-mode-selector"], [1, "filter-mode-btn", 3, "click", "disabled"], [1, "mode-icon"], [1, "fa-solid", "fa-wand-magic-sparkles"], [1, "mode-content"], [1, "mode-title"], [1, "mode-subtitle"], [1, "fa-solid", "fa-check", "mode-check"], [1, "config-section", "smart-filter-section"], [1, "config-section", "traditional-filter-section"], [1, "smart-filter-input-container"], [1, "smart-filter-icon"], ["id", "SmartFilterPrompt", "placeholder", "Describe what you're looking for...", "rows", "3", 1, "smart-filter-textarea", 3, "ngModelChange", "ngModel", "disabled"], ["Variant", "info", "Size", "sm", "Icon", "fa-solid fa-robot", 1, "view-config-alert-pos-mb"], [1, "smart-filter-examples"], [1, "examples-header"], [1, "fa-solid", "fa-lightbulb"], [1, "example-chips"], [1, "example-chip", 3, "click", "disabled"], [1, "fa-regular", "fa-calendar"], [1, "fa-solid", "fa-circle-check"], [1, "fa-solid", "fa-star"], [1, "fa-solid", "fa-clock-rotate-left"], ["Variant", "info", "Size", "sm", 1, "view-config-alert-pos"], [1, "filter-summary-container"], [1, "filter-summary"], [1, "summary-info"], [1, "summary-text", "no-filters"], [1, "summary-actions"], ["title", "Clear all filters", 1, "summary-btn", "clear-btn"], ["title", "Edit filters", 1, "summary-btn", "edit-btn", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-pen"], [1, "filter-badge"], [1, "summary-text"], ["title", "Clear all filters", 1, "summary-btn", "clear-btn", 3, "click"], [1, "config-section", "aggregates-section"], [1, "aggregates-header"], [1, "aggregates-description"], ["title", "Add a new aggregate", 1, "add-aggregate-btn", 3, "click", "disabled"], ["Size", "compact", "Icon", "fa-solid fa-chart-simple", "Title", "No aggregates configured", "Message", "Click \"Add Aggregate\" to create summary calculations"], [1, "aggregates-list"], [1, "aggregate-item", 3, "disabled"], [1, "aggregates-summary"], [1, "summary-item"], [1, "fa-solid", "fa-id-card"], [1, "fa-solid", "fa-table-columns"], [1, "aggregate-item"], [1, "agg-icon"], [1, "agg-content"], [1, "agg-label"], [1, "agg-details"], [1, "agg-type"], ["title", "AI-generated", 1, "agg-smart-badge"], [1, "agg-actions"], ["title", "Move up", 1, "agg-action-btn", 3, "click", "disabled"], ["title", "Move down", 1, "agg-action-btn", 3, "click", "disabled"], [1, "agg-action-btn", "toggle-btn", 3, "click", "disabled", "title"], ["title", "Edit", 1, "agg-action-btn", "edit-btn", 3, "click", "disabled"], ["title", "Remove", 1, "agg-action-btn", "remove-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-trash"], [1, "fa-solid", "fa-info-circle"], [1, "form-group"], ["for", "ViewName"], ["id", "ViewName", "type", "text", "placeholder", "Enter view name...", 1, "form-input", 3, "ngModelChange", "ngModel", "disabled"], [1, "validation-error"], ["for", "ViewDescription"], ["id", "ViewDescription", "placeholder", "Describe this view...", "rows", "3", 1, "form-input", "form-textarea", 3, "ngModelChange", "ngModel", "disabled"], [1, "fa-solid", "fa-share-alt"], [1, "checkbox-label"], ["type", "checkbox", 3, "ngModelChange", "ngModel", "disabled"], [1, "checkbox-text"], [1, "config-section", "danger-zone"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "delete-btn", 3, "click"], [1, "footer-btn", "save-btn", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-save"]], template: function ViewConfigPanelComponent_Template(rf, ctx) { if (rf & 1) {
|
|
2726
2753
|
i0.ɵɵconditionalCreate(0, ViewConfigPanelComponent_Conditional_0_Template, 1, 0, "div", 0);
|
|
2727
2754
|
i0.ɵɵelementStart(1, "div", 1)(2, "div", 2);
|
|
2728
2755
|
i0.ɵɵlistener("mousedown", function ViewConfigPanelComponent_Template_div_mousedown_2_listener($event) { return ctx.OnResizeStart($event); });
|
|
@@ -2884,6 +2911,12 @@ export class ViewConfigPanelComponent extends BaseAngularComponent {
|
|
|
2884
2911
|
type: Input
|
|
2885
2912
|
}], PendingNewViewIsShared: [{
|
|
2886
2913
|
type: Input
|
|
2914
|
+
}], PendingNewViewFilterState: [{
|
|
2915
|
+
type: Input
|
|
2916
|
+
}], PendingNewViewSmartFilterEnabled: [{
|
|
2917
|
+
type: Input
|
|
2918
|
+
}], PendingNewViewSmartFilterPrompt: [{
|
|
2919
|
+
type: Input
|
|
2887
2920
|
}], Duplicate: [{
|
|
2888
2921
|
type: Output
|
|
2889
2922
|
}], IsSaving: [{
|