@memberjunction/ng-resource-permissions 6.1.0-edge.0 → 6.1.0-edge.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"available-resources.component.d.ts","sourceRoot":"","sources":["../../src/lib/available-resources.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,eAAe,EAAW,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAA4B,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAErG,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EACL,MAAM,EACN,cAAc,EAEd,cAAc,EAGd,mBAAmB,EACnB,qBAAqB,EAErB,KAAK,KAAK,EACX,MAAM,mBAAmB,CAAC;;AAK3B;;GAEG;AACH,qBAMa,2BAA6B,SAAQ,oBAAqB,YAAW,aAAa;IAClF,IAAI,EAAG,QAAQ,CAAC;IAChB,cAAc,EAAG,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,QAAQ,GAAG,UAAU,CAAY;IAEzD;;OAEG;IACM,YAAY,EAAE,MAAM,CAAM;IAE1B,iBAAiB,EAAE,YAAY,EAAE,CAAM;IACtC,gBAAgB,+BAAsC;IAEzD,gBAAgB,EAAE,eAAe,EAAE,CAAM;IAGzC,UAAU,EAAE,MAAM,EAAE,CAAM;IAC1B,aAAa,EAAE,MAAM,CAI1B;IACK,kBAAkB,EAAE,mBAAmB,CAI5C;IAGK,SAAS,EAAE,KAAK,CAAmD;IAC1E,OAAO,CAAC,OAAO,CAAwB;IAEhC,QAAQ,GAAI,QAAQ,cAAc,CAAC,YAAY,CAAC,KAAG,MAAM,CAE9D;IAEK,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAKxC,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAWrD,mBAAmB,EAAE,0BAA0B,EAAE,CAAM;IACvD,SAAS,EAAE,YAAY,EAAE,CAAM;IAChC,eAAe;IAIrB;;OAEG;IACU,OAAO;IAmEpB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,iBAAiB;yCAlJhB,2BAA2B;2CAA3B,2BAA2B;CA6JvC"}
1
+ {"version":3,"file":"available-resources.component.d.ts","sourceRoot":"","sources":["../../src/lib/available-resources.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,eAAe,EAAW,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAA4B,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAErG,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAGrE,OAAO,EACL,MAAM,EACN,cAAc,EAEd,cAAc,EAGd,mBAAmB,EACnB,qBAAqB,EAErB,KAAK,KAAK,EACX,MAAM,mBAAmB,CAAC;;AAK3B;;GAEG;AACH,qBAMa,2BAA6B,SAAQ,oBAAqB,YAAW,aAAa;IAClF,IAAI,EAAG,QAAQ,CAAC;IAChB,cAAc,EAAG,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,QAAQ,GAAG,UAAU,CAAY;IAEzD;;OAEG;IACM,YAAY,EAAE,MAAM,CAAM;IAE1B,iBAAiB,EAAE,YAAY,EAAE,CAAM;IACtC,gBAAgB,+BAAsC;IAEzD,gBAAgB,EAAE,eAAe,EAAE,CAAM;IAGzC,UAAU,EAAE,MAAM,EAAE,CAAM;IAC1B,aAAa,EAAE,MAAM,CAI1B;IACK,kBAAkB,EAAE,mBAAmB,CAI5C;IAGK,SAAS,EAAE,KAAK,CAAmD;IAC1E,OAAO,CAAC,OAAO,CAAwB;IAEhC,QAAQ,GAAI,QAAQ,cAAc,CAAC,YAAY,CAAC,KAAG,MAAM,CAE9D;IAEK,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAKxC,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAWrD,mBAAmB,EAAE,0BAA0B,EAAE,CAAM;IACvD,SAAS,EAAE,YAAY,EAAE,CAAM;IAChC,eAAe;IAIrB;;OAEG;IACU,OAAO;IAmEpB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,iBAAiB;yCAlJhB,2BAA2B;2CAA3B,2BAA2B;CA6JvC"}
@@ -5,6 +5,7 @@ import { UUIDsEqual } from '@memberjunction/global';
5
5
  import { ResourceData } from '@memberjunction/core-entities';
6
6
  import { BaseAngularComponent } from '@memberjunction/ng-base-types';
7
7
  import { MJ_AG_GRID_THEME_PARAMS } from '@memberjunction/ng-shared-generic';
8
+ import { FormatSimpleRowCell } from './format-cell';
8
9
  import { ModuleRegistry, AllCommunityModule, themeAlpine } from 'ag-grid-community';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "ag-grid-angular";
@@ -141,7 +142,7 @@ export class AvailableResourcesComponent extends BaseAngularComponent {
141
142
  cols.push({
142
143
  headerName: col.DisplayNameOrName,
143
144
  valueGetter: (params) => {
144
- return params.data?.Configuration?.[col.Name] ?? '';
145
+ return FormatSimpleRowCell(params.data?.Configuration?.[col.Name]);
145
146
  }
146
147
  });
147
148
  }
@@ -185,5 +186,5 @@ export class AvailableResourcesComponent extends BaseAngularComponent {
185
186
  }], SelectionChanged: [{
186
187
  type: Output
187
188
  }] }); })();
188
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AvailableResourcesComponent, { className: "AvailableResourcesComponent", filePath: "src/lib/available-resources.component.ts", lineNumber: 33 }); })();
189
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AvailableResourcesComponent, { className: "AvailableResourcesComponent", filePath: "src/lib/available-resources.component.ts", lineNumber: 34 }); })();
189
190
  //# sourceMappingURL=available-resources.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"available-resources.component.js","sourceRoot":"","sources":["../../src/lib/available-resources.component.ts","../../src/lib/available-resources.component.html"],"names":[],"mappings":"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","sourcesContent":["import { AfterViewInit, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { EntityFieldInfo, RunView, UserInfo } from '@memberjunction/core';\nimport { ResourcePermissionEngine, MJResourcePermissionEntity } from '@memberjunction/core-entities';\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { MJ_AG_GRID_THEME_PARAMS } from '@memberjunction/ng-shared-generic';\nimport {\n ColDef,\n GridReadyEvent,\n GridApi,\n GetRowIdParams,\n ModuleRegistry,\n AllCommunityModule,\n RowSelectionOptions,\n SelectionChangedEvent,\n themeAlpine,\n type Theme\n} from 'ag-grid-community';\n\n// Register AG Grid modules\nModuleRegistry.registerModules([AllCommunityModule]);\n\n/**\n * This component displays a list of available resources for a user for a specific Resource Type.\n */\n@Component({\n standalone: false,\n selector: 'mj-available-resources',\n templateUrl: './available-resources.component.html',\n styleUrls: ['./available-resources.component.css']\n})\nexport class AvailableResourcesComponent extends BaseAngularComponent implements AfterViewInit {\n @Input() User!: UserInfo;\n @Input() ResourceTypeID!: string;\n @Input() ResourceExtraFilter?: string;\n @Input() SelectionMode: 'Single' | 'Multiple' = 'Single';\n\n /**\n * Optional, comma-delimited list of field names to provide extra columns here to display in the grid. These columns will be displayed after the Name of the resource\n */\n @Input() ExtraColumns: string = \"\";\n\n @Input() SelectedResources: ResourceData[] = [];\n @Output() SelectionChanged = new EventEmitter<ResourceData[]>();\n\n public gridExtraColumns: EntityFieldInfo[] = [];\n\n // AG Grid configuration\n public ColumnDefs: ColDef[] = [];\n public DefaultColDef: ColDef = {\n sortable: true,\n resizable: true,\n filter: false\n };\n public RowSelectionConfig: RowSelectionOptions = {\n mode: 'singleRow',\n checkboxes: false,\n enableClickSelection: true\n };\n // Themed from the shared --mj-* token params so this grid follows light/dark and\n // the org brand overlay, matching the main entity/query grids.\n public GridTheme: Theme = themeAlpine.withParams(MJ_AG_GRID_THEME_PARAMS);\n private gridApi: GridApi | null = null;\n\n public getRowId = (params: GetRowIdParams<ResourceData>): string => {\n return params.data.ResourceRecordID;\n };\n\n public onGridReady(event: GridReadyEvent): void {\n this.gridApi = event.api;\n this.applyPreselection();\n }\n\n public onSelectionChange(event: SelectionChangedEvent): void {\n const selectedRows = event.api.getSelectedRows() as ResourceData[];\n this.SelectedResources.splice(0, this.SelectedResources.length); // empty the array\n selectedRows.forEach((item) => {\n this.SelectedResources.push(item);\n });\n\n // now bubble up the event\n this.SelectionChanged.emit(this.SelectedResources);\n }\n\n public resourcePermissions: MJResourcePermissionEntity[] = [];\n public resources: ResourceData[] = [];\n async ngAfterViewInit() {\n await this.Refresh();\n }\n\n /**\n * This method will refresh the contents of the component based on the current state of the component.\n */\n public async Refresh() {\n if (!this.User) {\n throw new Error('User is a required property for the AvailableResourcesDialogComponent');\n }\n\n // now we can get the permissions for the specified resource\n this.resourcePermissions = ResourcePermissionEngine.Instance.GetUserAvailableResources(this.User, this.ResourceTypeID);\n if (this.resourcePermissions.length === 0) {\n this.resources = [];\n }\n else {\n const rt = ResourcePermissionEngine.Instance.ResourceTypes.find(rt => UUIDsEqual(rt.ID, this.ResourceTypeID));\n if (!rt || !rt.EntityID)\n throw new Error(`Resource Type ${this.ResourceTypeID} not found`);\n\n const p = this.ProviderToUse;\n const entity = p.Entities.find(e => UUIDsEqual(e.ID, rt.EntityID));\n if (!entity || !entity.NameField)\n throw new Error(`Entity ${rt.EntityID} not found, or no Name field defined`);\n const rv = new RunView(this.RunViewToUse);\n const nameField = entity.NameField;\n if (this.ExtraColumns && this.ExtraColumns.length > 0) {\n /// split the comma delim string and for each item find it in the EntityFields collection\n const extraColumns = this.ExtraColumns.split(',');\n this.gridExtraColumns = [];\n extraColumns.forEach((ec) => {\n const field = entity.Fields.find((f) => f.Name.trim().toLowerCase() === ec.trim().toLowerCase());\n if (field)\n this.gridExtraColumns.push(field);\n });\n }\n\n // Build column definitions after we know the extra columns\n this.buildColumnDefs();\n\n const extraFilter = this.ResourceExtraFilter ? ` AND (${this.ResourceExtraFilter})` : '';\n const result = await rv.RunView({\n EntityName: entity.Name,\n ExtraFilter: `(ID in (${this.resourcePermissions.map((r) => `'${r.ResourceRecordID}'`).join(',')})${extraFilter})`,\n OrderBy: nameField.Name\n })\n if (!result || !result.Success)\n throw new Error(`Error running view for entity ${entity.Name}`);\n\n // only return rows where we have a record in result.Results\n this.resources = result.Results.map((r) => {\n return new ResourceData({\n ResourceRecordID: r.ID,\n Name: r[nameField.Name],\n ResourceTypeID: this.ResourceTypeID,\n ResourceType: rt.Name,\n Configuration: r // pass the whole resource record into configuration so it is accessible as desired\n });\n });\n\n // Update selection mode based on input\n this.RowSelectionConfig = {\n mode: this.SelectionMode.toLowerCase() === 'single' ? 'singleRow' : 'multiRow',\n checkboxes: false,\n enableClickSelection: true\n };\n\n // Re-apply preselection after data loads\n this.applyPreselection();\n }\n }\n\n private buildColumnDefs(): void {\n const cols: ColDef[] = [\n { field: 'Name', headerName: 'Name', width: 225 }\n ];\n\n for (const col of this.gridExtraColumns) {\n cols.push({\n headerName: col.DisplayNameOrName,\n valueGetter: (params) => {\n return params.data?.Configuration?.[col.Name] ?? '';\n }\n });\n }\n\n this.ColumnDefs = cols;\n }\n\n private applyPreselection(): void {\n if (!this.gridApi || this.SelectedResources.length === 0) return;\n this.gridApi.forEachNode((node) => {\n const isSelected = this.SelectedResources.some(\n (r) => UUIDsEqual(r.ResourceRecordID, node.data?.ResourceRecordID)\n );\n if (isSelected) {\n node.setSelected(true);\n }\n });\n }\n}\n","<div class=\"container\">\n @if (User) {\n <ag-grid-angular\n class=\"resources-grid\"\n [theme]=\"GridTheme\"\n [rowData]=\"resources\"\n [columnDefs]=\"ColumnDefs\"\n [defaultColDef]=\"DefaultColDef\"\n [rowSelection]=\"RowSelectionConfig\"\n [getRowId]=\"getRowId\"\n (selectionChanged)=\"onSelectionChange($event)\"\n (gridReady)=\"onGridReady($event)\"\n style=\"width: 100%; height: 400px;\">\n </ag-grid-angular>\n }\n </div>\n"]}
1
+ {"version":3,"file":"available-resources.component.js","sourceRoot":"","sources":["../../src/lib/available-resources.component.ts","../../src/lib/available-resources.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EAAmB,OAAO,EAAY,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAA8B,MAAM,+BAA+B,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAKL,cAAc,EACd,kBAAkB,EAGlB,WAAW,EAEZ,MAAM,mBAAmB,CAAC;;;;;ICjBnB,0CAUwC;IADpC,AADA,oOAAoB,gCAAyB,KAAC,yMACjC,0BAAmB,KAAC;IAErC,iBAAkB;;;IAJd,AADA,AADA,AADA,AADA,AADA,wCAAmB,6BACE,iCACI,uCACM,2CACI,6BACd;;ADYjC,2BAA2B;AAC3B,cAAc,CAAC,eAAe,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAErD;;GAEG;AAOH,MAAM,OAAO,2BAA6B,SAAQ,oBAAoB;IACzD,IAAI,CAAY;IAChB,cAAc,CAAU;IACxB,mBAAmB,CAAU;IAC7B,aAAa,GAA0B,QAAQ,CAAC;IAEzD;;OAEG;IACM,YAAY,GAAW,EAAE,CAAC;IAE1B,iBAAiB,GAAmB,EAAE,CAAC;IACtC,gBAAgB,GAAG,IAAI,YAAY,EAAkB,CAAC;IAEzD,gBAAgB,GAAsB,EAAE,CAAC;IAEhD,wBAAwB;IACjB,UAAU,GAAa,EAAE,CAAC;IAC1B,aAAa,GAAW;QAC3B,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,KAAK;KAChB,CAAC;IACK,kBAAkB,GAAwB;QAC7C,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,KAAK;QACjB,oBAAoB,EAAE,IAAI;KAC7B,CAAC;IACF,iFAAiF;IACjF,+DAA+D;IACxD,SAAS,GAAU,WAAW,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAClE,OAAO,GAAmB,IAAI,CAAC;IAEhC,QAAQ,GAAG,CAAC,MAAoC,EAAU,EAAE;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACxC,CAAC,CAAC;IAEK,WAAW,CAAC,KAAqB;QACpC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAEM,iBAAiB,CAAC,KAA4B;QACjD,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,EAAoB,CAAC;QACnE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB;QACnF,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACvD,CAAC;IAEM,mBAAmB,GAAiC,EAAE,CAAC;IACvD,SAAS,GAAmB,EAAE,CAAC;IACtC,KAAK,CAAC,eAAe;QACjB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO;QAChB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC7F,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC,mBAAmB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACvH,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACxB,CAAC;aACI,CAAC;YACF,MAAM,EAAE,GAAG,wBAAwB,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YAC9G,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ;gBACnB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,cAAc,YAAY,CAAC,CAAC;YAEtE,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;YAC7B,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,QAAQ,sCAAsC,CAAC,CAAC;YACjF,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YACnC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpD,yFAAyF;gBACzF,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC3B,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;oBACxB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;oBACjG,IAAI,KAAK;wBACL,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;YACP,CAAC;YAED,2DAA2D;YAC3D,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC;gBAC5B,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,WAAW,EAAE,WAAW,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,GAAG;gBAClH,OAAO,EAAE,SAAS,CAAC,IAAI;aAC1B,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC1B,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAEpE,4DAA4D;YAC5D,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACtC,OAAO,IAAI,YAAY,CAAC;oBACpB,gBAAgB,EAAE,CAAC,CAAC,EAAE;oBACtB,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;oBACvB,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,YAAY,EAAE,EAAE,CAAC,IAAI;oBACrB,aAAa,EAAE,CAAC,CAAC,mFAAmF;iBACvG,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,uCAAuC;YACvC,IAAI,CAAC,kBAAkB,GAAG;gBACtB,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;gBAC9E,UAAU,EAAE,KAAK;gBACjB,oBAAoB,EAAE,IAAI;aAC7B,CAAC;YAEF,yCAAyC;YACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IAEO,eAAe;QACnB,MAAM,IAAI,GAAa;YACnB,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;SACpD,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC;gBACN,UAAU,EAAE,GAAG,CAAC,iBAAiB;gBACjC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;oBACpB,OAAO,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvE,CAAC;aACJ,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEO,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CACrE,CAAC;YACF,IAAI,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;yRA5JQ,2BAA2B,yBAA3B,2BAA2B;6DAA3B,2BAA2B;YCjCxC,8BAAuB;YACnB,yGAAY;YAcd,iBAAM;;YAdJ,cAaC;YAbD,mCAaC;;;iFDmBQ,2BAA2B;cANvC,SAAS;6BACI,KAAK,YACP,wBAAwB;;kBAK/B,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBAKL,KAAK;;kBAEL,KAAK;;kBACL,MAAM;;kFAZE,2BAA2B","sourcesContent":["import { AfterViewInit, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { EntityFieldInfo, RunView, UserInfo } from '@memberjunction/core';\nimport { ResourcePermissionEngine, MJResourcePermissionEntity } from '@memberjunction/core-entities';\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { MJ_AG_GRID_THEME_PARAMS } from '@memberjunction/ng-shared-generic';\nimport { FormatSimpleRowCell } from './format-cell';\nimport {\n ColDef,\n GridReadyEvent,\n GridApi,\n GetRowIdParams,\n ModuleRegistry,\n AllCommunityModule,\n RowSelectionOptions,\n SelectionChangedEvent,\n themeAlpine,\n type Theme\n} from 'ag-grid-community';\n\n// Register AG Grid modules\nModuleRegistry.registerModules([AllCommunityModule]);\n\n/**\n * This component displays a list of available resources for a user for a specific Resource Type.\n */\n@Component({\n standalone: false,\n selector: 'mj-available-resources',\n templateUrl: './available-resources.component.html',\n styleUrls: ['./available-resources.component.css']\n})\nexport class AvailableResourcesComponent extends BaseAngularComponent implements AfterViewInit {\n @Input() User!: UserInfo;\n @Input() ResourceTypeID!: string;\n @Input() ResourceExtraFilter?: string;\n @Input() SelectionMode: 'Single' | 'Multiple' = 'Single';\n\n /**\n * Optional, comma-delimited list of field names to provide extra columns here to display in the grid. These columns will be displayed after the Name of the resource\n */\n @Input() ExtraColumns: string = \"\";\n\n @Input() SelectedResources: ResourceData[] = [];\n @Output() SelectionChanged = new EventEmitter<ResourceData[]>();\n\n public gridExtraColumns: EntityFieldInfo[] = [];\n\n // AG Grid configuration\n public ColumnDefs: ColDef[] = [];\n public DefaultColDef: ColDef = {\n sortable: true,\n resizable: true,\n filter: false\n };\n public RowSelectionConfig: RowSelectionOptions = {\n mode: 'singleRow',\n checkboxes: false,\n enableClickSelection: true\n };\n // Themed from the shared --mj-* token params so this grid follows light/dark and\n // the org brand overlay, matching the main entity/query grids.\n public GridTheme: Theme = themeAlpine.withParams(MJ_AG_GRID_THEME_PARAMS);\n private gridApi: GridApi | null = null;\n\n public getRowId = (params: GetRowIdParams<ResourceData>): string => {\n return params.data.ResourceRecordID;\n };\n\n public onGridReady(event: GridReadyEvent): void {\n this.gridApi = event.api;\n this.applyPreselection();\n }\n\n public onSelectionChange(event: SelectionChangedEvent): void {\n const selectedRows = event.api.getSelectedRows() as ResourceData[];\n this.SelectedResources.splice(0, this.SelectedResources.length); // empty the array\n selectedRows.forEach((item) => {\n this.SelectedResources.push(item);\n });\n\n // now bubble up the event\n this.SelectionChanged.emit(this.SelectedResources);\n }\n\n public resourcePermissions: MJResourcePermissionEntity[] = [];\n public resources: ResourceData[] = [];\n async ngAfterViewInit() {\n await this.Refresh();\n }\n\n /**\n * This method will refresh the contents of the component based on the current state of the component.\n */\n public async Refresh() {\n if (!this.User) {\n throw new Error('User is a required property for the AvailableResourcesDialogComponent');\n }\n\n // now we can get the permissions for the specified resource\n this.resourcePermissions = ResourcePermissionEngine.Instance.GetUserAvailableResources(this.User, this.ResourceTypeID);\n if (this.resourcePermissions.length === 0) {\n this.resources = [];\n }\n else {\n const rt = ResourcePermissionEngine.Instance.ResourceTypes.find(rt => UUIDsEqual(rt.ID, this.ResourceTypeID));\n if (!rt || !rt.EntityID)\n throw new Error(`Resource Type ${this.ResourceTypeID} not found`);\n\n const p = this.ProviderToUse;\n const entity = p.Entities.find(e => UUIDsEqual(e.ID, rt.EntityID));\n if (!entity || !entity.NameField)\n throw new Error(`Entity ${rt.EntityID} not found, or no Name field defined`);\n const rv = new RunView(this.RunViewToUse);\n const nameField = entity.NameField;\n if (this.ExtraColumns && this.ExtraColumns.length > 0) {\n /// split the comma delim string and for each item find it in the EntityFields collection\n const extraColumns = this.ExtraColumns.split(',');\n this.gridExtraColumns = [];\n extraColumns.forEach((ec) => {\n const field = entity.Fields.find((f) => f.Name.trim().toLowerCase() === ec.trim().toLowerCase());\n if (field)\n this.gridExtraColumns.push(field);\n });\n }\n\n // Build column definitions after we know the extra columns\n this.buildColumnDefs();\n\n const extraFilter = this.ResourceExtraFilter ? ` AND (${this.ResourceExtraFilter})` : '';\n const result = await rv.RunView({\n EntityName: entity.Name,\n ExtraFilter: `(ID in (${this.resourcePermissions.map((r) => `'${r.ResourceRecordID}'`).join(',')})${extraFilter})`,\n OrderBy: nameField.Name\n })\n if (!result || !result.Success)\n throw new Error(`Error running view for entity ${entity.Name}`);\n\n // only return rows where we have a record in result.Results\n this.resources = result.Results.map((r) => {\n return new ResourceData({\n ResourceRecordID: r.ID,\n Name: r[nameField.Name],\n ResourceTypeID: this.ResourceTypeID,\n ResourceType: rt.Name,\n Configuration: r // pass the whole resource record into configuration so it is accessible as desired\n });\n });\n\n // Update selection mode based on input\n this.RowSelectionConfig = {\n mode: this.SelectionMode.toLowerCase() === 'single' ? 'singleRow' : 'multiRow',\n checkboxes: false,\n enableClickSelection: true\n };\n\n // Re-apply preselection after data loads\n this.applyPreselection();\n }\n }\n\n private buildColumnDefs(): void {\n const cols: ColDef[] = [\n { field: 'Name', headerName: 'Name', width: 225 }\n ];\n\n for (const col of this.gridExtraColumns) {\n cols.push({\n headerName: col.DisplayNameOrName,\n valueGetter: (params) => {\n return FormatSimpleRowCell(params.data?.Configuration?.[col.Name]);\n }\n });\n }\n\n this.ColumnDefs = cols;\n }\n\n private applyPreselection(): void {\n if (!this.gridApi || this.SelectedResources.length === 0) return;\n this.gridApi.forEachNode((node) => {\n const isSelected = this.SelectedResources.some(\n (r) => UUIDsEqual(r.ResourceRecordID, node.data?.ResourceRecordID)\n );\n if (isSelected) {\n node.setSelected(true);\n }\n });\n }\n}\n","<div class=\"container\">\n @if (User) {\n <ag-grid-angular\n class=\"resources-grid\"\n [theme]=\"GridTheme\"\n [rowData]=\"resources\"\n [columnDefs]=\"ColumnDefs\"\n [defaultColDef]=\"DefaultColDef\"\n [rowSelection]=\"RowSelectionConfig\"\n [getRowId]=\"getRowId\"\n (selectionChanged)=\"onSelectionChange($event)\"\n (gridReady)=\"onGridReady($event)\"\n style=\"width: 100%; height: 400px;\">\n </ag-grid-angular>\n }\n </div>\n"]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Formats a raw cell value from a RunView `'simple'` row for grid display.
3
+ *
4
+ * Simple-read date columns carry real `Date` objects (normalized by @memberjunction/core);
5
+ * rendered raw they print the verbose `Date.toString()` form, so dates are formatted to the
6
+ * viewer's locale. Everything else passes through, with NULL/undefined as an empty string.
7
+ */
8
+ export declare function FormatSimpleRowCell(value: unknown): unknown;
9
+ //# sourceMappingURL=format-cell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-cell.d.ts","sourceRoot":"","sources":["../../src/lib/format-cell.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQ3D"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Formats a raw cell value from a RunView `'simple'` row for grid display.
3
+ *
4
+ * Simple-read date columns carry real `Date` objects (normalized by @memberjunction/core);
5
+ * rendered raw they print the verbose `Date.toString()` form, so dates are formatted to the
6
+ * viewer's locale. Everything else passes through, with NULL/undefined as an empty string.
7
+ */
8
+ export function FormatSimpleRowCell(value) {
9
+ if (value === null || value === undefined) {
10
+ return '';
11
+ }
12
+ if (value instanceof Date) {
13
+ return value.toLocaleDateString();
14
+ }
15
+ return value;
16
+ }
17
+ //# sourceMappingURL=format-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-cell.js","sourceRoot":"","sources":["../../src/lib/format-cell.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAC9C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,kBAAkB,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["/**\n * Formats a raw cell value from a RunView `'simple'` row for grid display.\n *\n * Simple-read date columns carry real `Date` objects (normalized by @memberjunction/core);\n * rendered raw they print the verbose `Date.toString()` form, so dates are formatted to the\n * viewer's locale. Everything else passes through, with NULL/undefined as an empty string.\n */\nexport function FormatSimpleRowCell(value: unknown): unknown {\n if (value === null || value === undefined) {\n return '';\n }\n if (value instanceof Date) {\n return value.toLocaleDateString();\n }\n return value;\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  export * from './lib/resource-permissions.component';
2
2
  export * from './lib/available-resources.component';
3
+ export * from './lib/format-cell';
3
4
  export * from './lib/request-access.component';
4
5
  export * from './lib/resource-share-adapter';
5
6
  export * from './lib/resource-share-dialog.component';
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,UAAU,CAAC"}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  export * from './lib/resource-permissions.component';
5
5
  export * from './lib/available-resources.component';
6
+ export * from './lib/format-cell';
6
7
  export * from './lib/request-access.component';
7
8
  export * from './lib/resource-share-adapter';
8
9
  export * from './lib/resource-share-dialog.component';
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,UAAU,CAAC","sourcesContent":["/*\n * Public API Surface\n */\n\nexport * from './lib/resource-permissions.component';\nexport * from './lib/available-resources.component';\nexport * from './lib/request-access.component';\nexport * from './lib/resource-share-adapter';\nexport * from './lib/resource-share-dialog.component';\nexport * from './lib/mj-resource-permission-share-adapter';\nexport * from './lib/user-sharing-center.component';\nexport * from './module';\n"]}
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,UAAU,CAAC","sourcesContent":["/*\n * Public API Surface\n */\n\nexport * from './lib/resource-permissions.component';\nexport * from './lib/available-resources.component';\nexport * from './lib/format-cell';\nexport * from './lib/request-access.component';\nexport * from './lib/resource-share-adapter';\nexport * from './lib/resource-share-dialog.component';\nexport * from './lib/mj-resource-permission-share-adapter';\nexport * from './lib/user-sharing-center.component';\nexport * from './module';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-resource-permissions",
3
- "version": "6.1.0-edge.0",
3
+ "version": "6.1.0-edge.2",
4
4
  "description": "MemberJunction: Generic Angular components for displaying/editing permissions for a resource",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -13,25 +13,25 @@
13
13
  "devDependencies": {
14
14
  "@angular/compiler": "21.1.3",
15
15
  "@angular/compiler-cli": "21.1.3",
16
- "@memberjunction/core": "6.1.0-edge.0",
17
- "@memberjunction/ng-test-utils": "6.1.0-edge.0",
16
+ "@memberjunction/core": "6.1.0-edge.2",
17
+ "@memberjunction/ng-test-utils": "6.1.0-edge.2",
18
18
  "vitest": "^4.0.18"
19
19
  },
20
20
  "peerDependencies": {
21
- "@angular/common": "21.1.3",
22
- "@angular/core": "21.1.3",
23
- "@angular/forms": "21.1.3"
21
+ "@angular/common": "^21.1.3",
22
+ "@angular/core": "^21.1.3",
23
+ "@angular/forms": "^21.1.3"
24
24
  },
25
25
  "dependencies": {
26
- "@memberjunction/core": "6.1.0-edge.0",
27
- "@memberjunction/core-entities": "6.1.0-edge.0",
28
- "@memberjunction/global": "6.1.0-edge.0",
29
- "@memberjunction/ng-base-types": "6.1.0-edge.0",
30
- "@memberjunction/ng-container-directives": "6.1.0-edge.0",
31
- "@memberjunction/ng-generic-dialog": "6.1.0-edge.0",
32
- "@memberjunction/ng-notifications": "6.1.0-edge.0",
33
- "@memberjunction/ng-shared-generic": "6.1.0-edge.0",
34
- "@memberjunction/ng-ui-components": "6.1.0-edge.0",
26
+ "@memberjunction/core": "6.1.0-edge.2",
27
+ "@memberjunction/core-entities": "6.1.0-edge.2",
28
+ "@memberjunction/global": "6.1.0-edge.2",
29
+ "@memberjunction/ng-base-types": "6.1.0-edge.2",
30
+ "@memberjunction/ng-container-directives": "6.1.0-edge.2",
31
+ "@memberjunction/ng-generic-dialog": "6.1.0-edge.2",
32
+ "@memberjunction/ng-notifications": "6.1.0-edge.2",
33
+ "@memberjunction/ng-shared-generic": "6.1.0-edge.2",
34
+ "@memberjunction/ng-ui-components": "6.1.0-edge.2",
35
35
  "ag-grid-angular": "^35.0.1",
36
36
  "ag-grid-community": "^35.0.1",
37
37
  "tslib": "^2.8.1"