PowerShellUniversal.Component.Pivot.psd1
|
# # Module manifest for module 'PowerShellUniversal.Component.Pivot' # # Generated by: eizedev # # Generated on: 11/08/2026 # @{ # Script module or binary module file associated with this manifest. RootModule = 'PowerShellUniversal.Component.Pivot.psm1' # Version number of this module. ModuleVersion = '0.1.0' # Supported PSEditions # CompatiblePSEditions = @() # ID used to uniquely identify this module GUID = 'e59f7ff0-a6dc-4402-9729-98af8be5c83b' # Author of this module Author = 'eizedev' # Company or vendor of this module CompanyName = 'eizedev' # Copyright statement for this module Copyright = '(c) 2026 eizedev. MIT License.' # Description of the functionality provided by this module Description = 'Pivot report builder for PowerShell Universal apps: readers drag fields into rows, columns, values and filters and get a table or a chart, with date grouping, drill-down to the source rows, templates, undo and Excel, CSV and PNG export; light and dark theme, English and German, fed straight from SQL DataTables, REST results and PowerShell objects.' # Minimum version of the PowerShell engine required by this module PowerShellVersion = '7.4' # Name of the PowerShell host required by this module # PowerShellHostName = '' # Minimum version of the PowerShell host required by this module # PowerShellHostVersion = '' # Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. # DotNetFrameworkVersion = '' # Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. # ClrVersion = '' # Processor architecture (None, X86, Amd64) required by this module # ProcessorArchitecture = '' # Modules that must be imported into the global environment prior to importing this module # RequiredModules = @() # Assemblies that must be loaded prior to importing this module # RequiredAssemblies = @() # Script files (.ps1) that are run in the caller's environment prior to importing this module. # ScriptsToProcess = @() # Type files (.ps1xml) to be loaded when importing this module # TypesToProcess = @() # Format files (.ps1xml) to be loaded when importing this module # FormatsToProcess = @() # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess # NestedModules = @() # Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. FunctionsToExport = 'New-UDPivotReport', 'New-UDPivotReportPlaceholder', 'ConvertFrom-UDPivotView', 'ConvertFrom-UDPivotViewFile', 'ConvertTo-UDPivotViewFile', 'New-UDPivotFileTemplateStore', 'New-UDPivotTemplateStore', 'Invoke-UDPivotTemplateRequest', 'Get-UDPivotSqlColumnDescription' # Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. CmdletsToExport = @() # Variables to export from this module # VariablesToExport = @() # Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. AliasesToExport = @() # DSC resources to export from this module # DscResourcesToExport = @() # List of all modules packaged with this module # ModuleList = @() # List of all files packaged with this module # FileList = @() # Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. PrivateData = @{ PSData = @{ # Tags applied to this module. These help with module discovery in online galleries. Tags = 'PowerShellUniversal','UniversalDashboard','PSU','Pivot','PivotTable','Report','Dashboard','Excel','Visualization' # A URL to the license for this module. LicenseUri = 'https://github.com/eizedev/powershell-universal-components/blob/main/LICENSE' # A URL to the main website for this project. ProjectUri = 'https://github.com/eizedev/powershell-universal-components' # A URL to an icon representing this module. # IconUri = '' # ReleaseNotes of this module ReleaseNotes = '### Added - `New-UDPivotReport` on pivotkit 0.1.0 (pivotkit-core and pivotkit-react from npm): a field list with search that collapses to a rail, Rows, Columns, Values and Filters with drag and drop and a menu on every field, aggregators and "show values as", date grouping, filters with value counts, table or chart (bars, lines, area, pie, donut, heatmap, Automatic) with display settings, Enlarge and Full screen, drill-down to the source rows with its own Enlarge, Copy and CSV/Excel export, undo and redo, the Views menu (shared views and my views, view files: Copy, Download, Load), and Excel, CSV and PNG export, Copy table and Copy data as JSON. pivotkit''s lazily loaded menus are part of the module''s one bundle (PSU serves only the registered bundle). Copying works over plain http too (pivotkit''s fallback without the Clipboard API, measured in Chromium, Firefox and WebKit). - Data straight from DataTables, REST results and PowerShell objects with their original column names; dates stay dates, `-TimeZone` (default: the server''s zone) for dates with an offset. - `New-UDPivotReportPlaceholder` for `New-UDDynamic -LoadingComponent`: pivotkit''s own skeleton of the report in its colours while the server builds the data (reduced motion respected, announced to screen readers); it also makes the browser load the module''s code at once. The showcase uses it. - Data conversion without a function call per cell: the showcase''s 5000-row DataTable takes about 40 ms instead of 2.4 to 2.9 s on the test instance, the table appears after about 0.46 s instead of 2.6 s. - Field names and descriptions: `-FieldDefaults` with `Label`, `Description`, `Href` (https only), `Order`, `Agg`, `Format`, `DrillFormat` and `Type`, checked on the server; `-FieldDescriptions` (field name to text); `-Schema` from a JSON Schema or an OpenAPI 3 / Swagger 2 document (hashtable, JSON, file or https URL fetched on the server with timeout and size cap) with `-SchemaName`, read by pivotkit-core''s `fieldDefaultsFromSchema` in the browser; `Get-UDPivotSqlColumnDescription` reads SQL Server column descriptions (`MS_Description`) for `-FieldDescriptions`. `-FieldInfo` and `-ZoneInfo` decide the "i" of fields and zones. - `-ChartOptions` (plain JSON over the chart''s ECharts option), `-Tips` (On, Off or tip ids; dismissed tips are remembered per report), `-Label` (the report''s name for screen readers, also on the placeholder). - Templates: `-Templates` (Scope shared or user, `File` for a view file), `-TemplatePath` (folders of pivotkit view files, checked on the server, read-only shared views), `-TemplateStore` with `Browser`, `New-UDPivotFileTemplateStore` (view files per user and shared, next to the PSU repository, lock and atomic writes, caps) or `New-UDPivotTemplateStore` (Get/Save/Delete/Publish script blocks for a database, Valkey, S3: the module checks users, roles, names, views and limits). `-AdminRole`: who publishes and deletes shared views, checked in the event handlers with the event''s `$Roles`, and the admin panel under the report (view JSON, columns and types, timings). Without a signed-in user the reader''s own views stay in the browser. `-UserName` and `-Roles` for calls from script blocks that do not see `$User` and `$Roles`. - View files: `ConvertFrom-UDPivotViewFile`, `ConvertTo-UDPivotViewFile`; `-SourceId`, `-SourceName` (the data a view file or link was made for) and `-SchemaUrl`. - `-SettingInfo`, `-FieldList` and `-Grow` (a report with a height stays inside it, also in a card of a fixed size). - `-View` (hashtable or JSON), `-Labels`, `-Locale` (English and German, default en-US), `-Theme`, `-Height` (default: the window''s height), `-FileName`, `-NoDrillDown`, `-NoAddressBar`. - `-OnViewChange`, `-OnCellClick`, `-OnSaveTemplate`, `-OnDeleteTemplate` (with the entry''s `scope`) and `-OnPublishTemplate` (for `-AdminRole`); saving, publishing and deleting show in the report once the server confirmed them, and a server''s refusal shows its message. - `Private/SHARED.txt`: the content hashes of the repository''s `shared/` code the module was built from. - `ConvertFrom-UDPivotView`: checks a view from the browser (size, depth, shape, known keys only) before it is stored. - Light and dark theme in PSU''s colours, following the app''s switch; a corporate design from the app''s stylesheet through the ECharts module''s `--psu-chart-*` properties and the report''s own `--psu-pivot-*` ones, per mode. - The reader''s view (fields, table or chart, chart type, collapsed groups) is kept in the browser tab per page and `-Id` (without `-Id`: the place of the call in the app script and the columns), so it survives PSU building the report anew on its light/dark switch and a reload; `Reset` goes back to `-View`. Two tabs on the same report keep their own views. The view is also written into the address bar (`#pivot-<id>=...`, in place, without history entries), so a reload keeps it and a copied link opens the same report layout; `-NoAddressBar` keeps it out (filter values would otherwise appear in the address, the history and copied links). - `-SavedView`: the reader''s view stored by the app (in `-OnViewChange`) starts a tab without a view of its own and never replaces the view another tab shows; the showcase uses it instead of `-View $Session:PivotView`, which made every tab of a browser take over the last change of another tab on reload. - `examples/showcase.ps1`: a 5,000-row DataTable with shipped views (`examples/views`), a file template store, a language switch, the events and the report in page layouts (a card of a fixed height among them); `examples/templates.ps1`: an app with sign-in, readers'' views on the server, publishing for two roles and the admin panel.' # Prerelease string of this module # Prerelease = '' # Flag to indicate whether the module requires explicit user acceptance for install/update/save # RequireLicenseAcceptance = $false # External dependent modules of this module # ExternalModuleDependencies = @() } # End of PSData hashtable } # End of PrivateData hashtable # HelpInfo URI of this module # HelpInfoURI = '' # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. # DefaultCommandPrefix = '' } |