@memberjunction/ng-base-forms 6.1.0-edge.5 → 6.1.0-edge.7

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.
Files changed (65) hide show
  1. package/dist/lib/base-form-component.d.ts +23 -0
  2. package/dist/lib/base-form-component.d.ts.map +1 -1
  3. package/dist/lib/base-form-component.js +56 -13
  4. package/dist/lib/base-form-component.js.map +1 -1
  5. package/dist/lib/chrome/form-chrome-rail-pref.d.ts +22 -0
  6. package/dist/lib/chrome/form-chrome-rail-pref.d.ts.map +1 -1
  7. package/dist/lib/chrome/form-chrome-rail-pref.js +29 -0
  8. package/dist/lib/chrome/form-chrome-rail-pref.js.map +1 -1
  9. package/dist/lib/chrome/form-chrome.d.ts +19 -0
  10. package/dist/lib/chrome/form-chrome.d.ts.map +1 -1
  11. package/dist/lib/chrome/form-chrome.js +26 -0
  12. package/dist/lib/chrome/form-chrome.js.map +1 -1
  13. package/dist/lib/container/record-form-container.component.d.ts +52 -2
  14. package/dist/lib/container/record-form-container.component.d.ts.map +1 -1
  15. package/dist/lib/container/record-form-container.component.js +485 -161
  16. package/dist/lib/container/record-form-container.component.js.map +1 -1
  17. package/dist/lib/explorer-entity-data-grid.component.d.ts +36 -0
  18. package/dist/lib/explorer-entity-data-grid.component.d.ts.map +1 -1
  19. package/dist/lib/explorer-entity-data-grid.component.js +112 -3
  20. package/dist/lib/explorer-entity-data-grid.component.js.map +1 -1
  21. package/dist/lib/field/form-field.component.d.ts +128 -0
  22. package/dist/lib/field/form-field.component.d.ts.map +1 -1
  23. package/dist/lib/field/form-field.component.js +871 -306
  24. package/dist/lib/field/form-field.component.js.map +1 -1
  25. package/dist/lib/isa-related-panel/isa-related-card.component.d.ts.map +1 -1
  26. package/dist/lib/isa-related-panel/isa-related-card.component.js +7 -1
  27. package/dist/lib/isa-related-panel/isa-related-card.component.js.map +1 -1
  28. package/dist/lib/overlays/base-form-overlay.d.ts.map +1 -1
  29. package/dist/lib/overlays/base-form-overlay.js +3 -1
  30. package/dist/lib/overlays/base-form-overlay.js.map +1 -1
  31. package/dist/lib/overlays/form-slide-in.component.js +10 -11
  32. package/dist/lib/overlays/form-slide-in.component.js.map +1 -1
  33. package/dist/lib/panel/collapsible-panel.component.d.ts +94 -3
  34. package/dist/lib/panel/collapsible-panel.component.d.ts.map +1 -1
  35. package/dist/lib/panel/collapsible-panel.component.js +278 -37
  36. package/dist/lib/panel/collapsible-panel.component.js.map +1 -1
  37. package/dist/lib/panel-slot/base-form-panel.d.ts +12 -0
  38. package/dist/lib/panel-slot/base-form-panel.d.ts.map +1 -1
  39. package/dist/lib/panel-slot/base-form-panel.js.map +1 -1
  40. package/dist/lib/related-grid-height.d.ts +48 -11
  41. package/dist/lib/related-grid-height.d.ts.map +1 -1
  42. package/dist/lib/related-grid-height.js +53 -12
  43. package/dist/lib/related-grid-height.js.map +1 -1
  44. package/dist/lib/section-indicators/form-section-indicator-coordinator.service.d.ts +80 -0
  45. package/dist/lib/section-indicators/form-section-indicator-coordinator.service.d.ts.map +1 -0
  46. package/dist/lib/section-indicators/form-section-indicator-coordinator.service.js +99 -0
  47. package/dist/lib/section-indicators/form-section-indicator-coordinator.service.js.map +1 -0
  48. package/dist/lib/section-indicators/form-section-indicators.d.ts +97 -0
  49. package/dist/lib/section-indicators/form-section-indicators.d.ts.map +1 -0
  50. package/dist/lib/section-indicators/form-section-indicators.js +132 -0
  51. package/dist/lib/section-indicators/form-section-indicators.js.map +1 -0
  52. package/dist/lib/section-manager/section-manager.component.js +2 -2
  53. package/dist/lib/section-manager/section-manager.component.js.map +1 -1
  54. package/dist/lib/toolbar/form-toolbar.component.d.ts +9 -1
  55. package/dist/lib/toolbar/form-toolbar.component.d.ts.map +1 -1
  56. package/dist/lib/toolbar/form-toolbar.component.js +14 -6
  57. package/dist/lib/toolbar/form-toolbar.component.js.map +1 -1
  58. package/dist/lib/types/form-types.d.ts +8 -0
  59. package/dist/lib/types/form-types.d.ts.map +1 -1
  60. package/dist/lib/types/form-types.js.map +1 -1
  61. package/dist/public-api.d.ts +2 -0
  62. package/dist/public-api.d.ts.map +1 -1
  63. package/dist/public-api.js +3 -0
  64. package/dist/public-api.js.map +1 -1
  65. package/package.json +25 -27
@@ -1 +1 @@
1
- {"version":3,"file":"form-types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/form-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/form-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-types.js","sourceRoot":"","sources":["../../../src/lib/types/form-types.ts"],"names":[],"mappings":"AAmMA;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,EAAE;KACrB,CAAC;AACJ,CAAC","sourcesContent":["import type { BaseEntity } from '@memberjunction/core';\nimport { ValidationErrorInfo } from '@memberjunction/global';\n\n/**\n * Width mode for the form panels container.\n * - 'centered': Max-width constrained and centered (default, good for readability)\n * - 'full-width': No max-width constraint, uses full available width\n */\nexport type FormWidthMode = 'centered' | 'full-width';\n\n/**\n * Variant for collapsible panel styling.\n * - 'default': Standard white card with accent border\n * - 'related-entity': Blue-accented card for related entity grid sections\n * - 'inherited': Purple-accented card for IS-A inherited field sections\n */\nexport type PanelVariant = 'default' | 'related-entity' | 'inherited';\n\n/**\n * Information about a section within the form.\n * Used to initialize and track section state.\n *\n * @template M Optional metadata type for custom per-section data\n */\nexport interface FormSectionInfo<M = unknown> {\n /** Unique key for this section (used in state persistence) */\n SectionKey: string;\n /** Display name shown in the panel header */\n SectionName: string;\n /** Whether the section starts expanded. Default: true for field sections, false for related entities */\n IsExpanded: boolean;\n /** Row count for related entity sections (shown as badge) */\n RowCount?: number;\n /** Custom metadata attached to this section */\n Metadata?: M;\n /** Panel variant for styling */\n Variant?: PanelVariant;\n /** Font Awesome icon class for the section header */\n Icon?: string;\n /**\n * If set, indicates this section contains fields inherited from a parent entity.\n * The value is the parent entity name (e.g., \"Products\" for a Meeting IS-A Product).\n */\n InheritedFromEntity?: string;\n}\n\n/**\n * Event emitted when a panel drag-to-reorder operation starts.\n */\nexport interface PanelDragStartEvent {\n SectionKey: string;\n Event: DragEvent;\n}\n\n/**\n * Event emitted when a panel is dropped onto another panel for reordering.\n */\nexport interface PanelDropEvent {\n SourceSectionKey: string;\n TargetSectionKey: string;\n}\n\n/**\n * Context object passed from the form to all child components (panels, fields).\n * Eliminates the need for many individual @Input properties.\n *\n * Property names use camelCase to maintain structural compatibility with\n * {@link BaseFormContext} from `@memberjunction/ng-base-forms`. This allows\n * BaseFormComponent.formContext to be passed directly to ng-forms components.\n */\nexport interface FormContext {\n /** Current search filter string for highlighting/filtering sections and fields */\n sectionFilter?: string;\n /** Whether to show fields that have empty values in read-only mode */\n showEmptyFields?: boolean;\n /**\n * When true, all fields show their validation errors regardless of touched state.\n * Set to true after a failed save attempt; reset on successful save or cancel.\n */\n showValidation?: boolean;\n /**\n * Validation errors from the most recent full-record Validate() call.\n * Fields filter by `ValidationErrorInfo.Source === FieldName` to find their errors.\n */\n validationErrors?: ValidationErrorInfo[];\n /** Whether drag-and-drop section reordering is allowed. Read by panels to show/hide drag handles. */\n allowSectionReorder?: boolean;\n /**\n * Whether section headers may collapse/expand. When false, panels render\n * always-expanded with no toggle chevron. Read by collapsible panels.\n * Undefined / true means collapsible (the default).\n */\n collapsibleSections?: boolean;\n /**\n * Whether in-form record (FK) links are interactive. When false, FK values\n * render as plain text instead of clickable links — used by dialog/slide-in\n * surfaces so a modal context doesn't navigate the user away. Undefined /\n * true means links are live (the default).\n */\n enableRecordLinks?: boolean;\n /**\n * Section-visibility rules, propagated from {@link EntityFormConfig}. Read by\n * every collapsible panel — including slot-injected `BaseFormPanel`s — so\n * per-instance show/hide applies uniformly across generated, custom, and\n * injected sections. `showRelatedEntities === false` hides related-entity\n * panels; `hiddenSectionKeys` / `visibleSectionKeys` (allow-list) target\n * specific section keys.\n */\n showRelatedEntities?: boolean;\n hiddenSectionKeys?: string[];\n visibleSectionKeys?: string[];\n}\n\n/**\n * Result of a form save operation.\n */\nexport interface FormSaveResult {\n /** Whether the save was successful */\n Success: boolean;\n /** Error message if save failed */\n ErrorMessage?: string;\n /** Number of milliseconds the save took */\n DurationMs?: number;\n}\n\n/**\n * Event emitted after a record is saved.\n */\nexport interface RecordSavedEvent {\n EntityName: string;\n RecordId: string;\n /** The display name of the saved record (for tab title updates, etc.) */\n RecordDisplayName?: string;\n Result: FormSaveResult;\n}\n\n/**\n * Event emitted after a saved record is reloaded from the database in place.\n */\nexport interface RecordRefreshedEvent {\n EntityName: string;\n Record: BaseEntity;\n}\n\n/**\n * Event emitted after a record is deleted.\n */\nexport interface RecordDeletedEvent {\n EntityName: string;\n RecordId: string;\n}\n\n/**\n * Event emitted when a record save fails.\n */\nexport interface RecordSaveFailedEvent {\n EntityName: string;\n ErrorMessage: string;\n}\n\n/**\n * Event emitted when a record delete fails.\n */\nexport interface RecordDeleteFailedEvent {\n EntityName: string;\n ErrorMessage: string;\n}\n\n/**\n * Event emitted when validation fails before save.\n */\nexport interface ValidationFailedEvent {\n EntityName: string;\n Errors: string[];\n}\n\n/**\n * Notification event emitted by BaseFormComponent.\n * The host application subscribes and maps to its own notification system (toasts, snackbars, etc.).\n */\nexport interface FormNotificationEvent {\n /** The notification message text */\n Message: string;\n /** Notification severity */\n Type: 'success' | 'error' | 'warning' | 'info';\n /** Duration in milliseconds the notification should display */\n Duration: number;\n}\n\n/**\n * Backward-compatible alias for FormContext.\n * Explorer's BaseFormComponent used this name; new code should use FormContext.\n */\nexport type BaseFormContext = FormContext;\n\n/**\n * Creates a default FormContext with sensible defaults.\n */\nexport function createDefaultFormContext(): FormContext {\n return {\n sectionFilter: '',\n showEmptyFields: false,\n showValidation: false,\n validationErrors: []\n };\n}\n"]}
1
+ {"version":3,"file":"form-types.js","sourceRoot":"","sources":["../../../src/lib/types/form-types.ts"],"names":[],"mappings":"AA2MA;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,EAAE;KACrB,CAAC;AACJ,CAAC","sourcesContent":["import type { BaseEntity } from '@memberjunction/core';\nimport { ValidationErrorInfo } from '@memberjunction/global';\n\n/**\n * Width mode for the form panels container.\n * - 'centered': Max-width constrained and centered (default, good for readability)\n * - 'full-width': No max-width constraint, uses full available width\n */\nexport type FormWidthMode = 'centered' | 'full-width';\n\n/**\n * Variant for collapsible panel styling.\n * - 'default': Standard white card with accent border\n * - 'related-entity': Blue-accented card for related entity grid sections\n * - 'inherited': Purple-accented card for IS-A inherited field sections\n */\nexport type PanelVariant = 'default' | 'related-entity' | 'inherited';\n\n/**\n * Information about a section within the form.\n * Used to initialize and track section state.\n *\n * @template M Optional metadata type for custom per-section data\n */\nexport interface FormSectionInfo<M = unknown> {\n /** Unique key for this section (used in state persistence) */\n SectionKey: string;\n /** Display name shown in the panel header */\n SectionName: string;\n /** Whether the section starts expanded. Default: true for field sections, false for related entities */\n IsExpanded: boolean;\n /** Row count for related entity sections (shown as badge) */\n RowCount?: number;\n /** Custom metadata attached to this section */\n Metadata?: M;\n /** Panel variant for styling */\n Variant?: PanelVariant;\n /** Font Awesome icon class for the section header */\n Icon?: string;\n /**\n * If set, indicates this section contains fields inherited from a parent entity.\n * The value is the parent entity name (e.g., \"Products\" for a Meeting IS-A Product).\n */\n InheritedFromEntity?: string;\n}\n\n/**\n * Event emitted when a panel drag-to-reorder operation starts.\n */\nexport interface PanelDragStartEvent {\n SectionKey: string;\n Event: DragEvent;\n}\n\n/**\n * Event emitted when a panel is dropped onto another panel for reordering.\n */\nexport interface PanelDropEvent {\n SourceSectionKey: string;\n TargetSectionKey: string;\n}\n\n/**\n * Context object passed from the form to all child components (panels, fields).\n * Eliminates the need for many individual @Input properties.\n *\n * Property names use camelCase to maintain structural compatibility with\n * {@link BaseFormContext} from `@memberjunction/ng-base-forms`. This allows\n * BaseFormComponent.formContext to be passed directly to ng-forms components.\n */\nexport interface FormContext {\n /** Current search filter string for highlighting/filtering sections and fields */\n sectionFilter?: string;\n /** Whether to show fields that have empty values in read-only mode */\n showEmptyFields?: boolean;\n /**\n * When true, all fields show their validation errors regardless of touched state.\n * Set to true after a failed save attempt; reset on successful save or cancel.\n */\n showValidation?: boolean;\n /**\n * Validation errors from the most recent full-record Validate() call.\n * Fields filter by `ValidationErrorInfo.Source === FieldName` to find their errors.\n */\n validationErrors?: ValidationErrorInfo[];\n /**\n * Increments every time the form publishes a fresh set of `validationErrors` (each failed save).\n * A field compares it with the revision current when the user last edited it: an edit made AFTER\n * the failure means the user is addressing the error, so the field goes back to its own live\n * validation; an edit made BEFORE it must not hide an error the save just reported — which is what\n * happened to a server-side `ValidateAsync()` refusal on the very field the user had just typed in.\n */\n validationRevision?: number;\n /** Whether drag-and-drop section reordering is allowed. Read by panels to show/hide drag handles. */\n allowSectionReorder?: boolean;\n /**\n * Whether section headers may collapse/expand. When false, panels render\n * always-expanded with no toggle chevron. Read by collapsible panels.\n * Undefined / true means collapsible (the default).\n */\n collapsibleSections?: boolean;\n /**\n * Whether in-form record (FK) links are interactive. When false, FK values\n * render as plain text instead of clickable links — used by dialog/slide-in\n * surfaces so a modal context doesn't navigate the user away. Undefined /\n * true means links are live (the default).\n */\n enableRecordLinks?: boolean;\n /**\n * Section-visibility rules, propagated from {@link EntityFormConfig}. Read by\n * every collapsible panel — including slot-injected `BaseFormPanel`s — so\n * per-instance show/hide applies uniformly across generated, custom, and\n * injected sections. `showRelatedEntities === false` hides related-entity\n * panels; `hiddenSectionKeys` / `visibleSectionKeys` (allow-list) target\n * specific section keys.\n */\n showRelatedEntities?: boolean;\n hiddenSectionKeys?: string[];\n visibleSectionKeys?: string[];\n}\n\n/**\n * Result of a form save operation.\n */\nexport interface FormSaveResult {\n /** Whether the save was successful */\n Success: boolean;\n /** Error message if save failed */\n ErrorMessage?: string;\n /** Number of milliseconds the save took */\n DurationMs?: number;\n}\n\n/**\n * Event emitted after a record is saved.\n */\nexport interface RecordSavedEvent {\n EntityName: string;\n RecordId: string;\n /** The display name of the saved record (for tab title updates, etc.) */\n RecordDisplayName?: string;\n Result: FormSaveResult;\n}\n\n/**\n * Event emitted after a saved record is reloaded from the database in place.\n */\nexport interface RecordRefreshedEvent {\n EntityName: string;\n Record: BaseEntity;\n}\n\n/**\n * Event emitted after a record is deleted.\n */\nexport interface RecordDeletedEvent {\n EntityName: string;\n RecordId: string;\n}\n\n/**\n * Event emitted when a record save fails.\n */\nexport interface RecordSaveFailedEvent {\n EntityName: string;\n ErrorMessage: string;\n}\n\n/**\n * Event emitted when a record delete fails.\n */\nexport interface RecordDeleteFailedEvent {\n EntityName: string;\n ErrorMessage: string;\n}\n\n/**\n * Event emitted when validation fails before save.\n */\nexport interface ValidationFailedEvent {\n EntityName: string;\n Errors: string[];\n}\n\n/**\n * Notification event emitted by BaseFormComponent.\n * The host application subscribes and maps to its own notification system (toasts, snackbars, etc.).\n */\nexport interface FormNotificationEvent {\n /** The notification message text */\n Message: string;\n /** Notification severity */\n Type: 'success' | 'error' | 'warning' | 'info';\n /** Duration in milliseconds the notification should display */\n Duration: number;\n}\n\n/**\n * Backward-compatible alias for FormContext.\n * Explorer's BaseFormComponent used this name; new code should use FormContext.\n */\nexport type BaseFormContext = FormContext;\n\n/**\n * Creates a default FormContext with sensible defaults.\n */\nexport function createDefaultFormContext(): FormContext {\n return {\n sectionFilter: '',\n showEmptyFields: false,\n showValidation: false,\n validationErrors: []\n };\n}\n"]}
@@ -15,6 +15,8 @@ export * from './lib/types/toolbar-config';
15
15
  export * from './lib/types/form-events';
16
16
  export * from './lib/types/form-toolbar-item';
17
17
  export * from './lib/types/entity-form-config';
18
+ export * from './lib/section-indicators/form-section-indicators';
19
+ export * from './lib/section-indicators/form-section-indicator-coordinator.service';
18
20
  export * from './lib/resolver/form-resolver.service';
19
21
  export * from './lib/host/entity-form-host.component';
20
22
  export * from './lib/overlays/base-form-overlay';
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,UAAU,CAAC;AAGzB,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAG/C,cAAc,sCAAsC,CAAC;AAGrD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAG7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AAGtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,iDAAiD,CAAC;AAChE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AAKpE,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,oCAAoC,CAAC;AACnD,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,sDAAsD,CAAC;AACrE,cAAc,mDAAmD,CAAC;AAGlE,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,UAAU,CAAC;AAGzB,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAG/C,cAAc,kDAAkD,CAAC;AACjE,cAAc,qEAAqE,CAAC;AAGpF,cAAc,sCAAsC,CAAC;AAGrD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAG7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AAGtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,iDAAiD,CAAC;AAChE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AAKpE,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,oCAAoC,CAAC;AACnD,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,sDAAsD,CAAC;AACrE,cAAc,mDAAmD,CAAC;AAGlE,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC"}
@@ -17,6 +17,9 @@ export * from './lib/types/toolbar-config';
17
17
  export * from './lib/types/form-events';
18
18
  export * from './lib/types/form-toolbar-item';
19
19
  export * from './lib/types/entity-form-config';
20
+ // Section indicators (unsaved-changes dot + invalid-field count on panels and the chrome rail)
21
+ export * from './lib/section-indicators/form-section-indicators';
22
+ export * from './lib/section-indicators/form-section-indicator-coordinator.service';
20
23
  // Form resolution (form-variant / interactive-override picker — Generic, no Explorer deps)
21
24
  export * from './lib/resolver/form-resolver.service';
22
25
  // Presentation-agnostic form host (resolve → load → create → wire → teardown)
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,SAAS;AACT,cAAc,UAAU,CAAC;AAEzB,uBAAuB;AACvB,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAE/C,2FAA2F;AAC3F,cAAc,sCAAsC,CAAC;AAErD,8EAA8E;AAC9E,cAAc,uCAAuC,CAAC;AAEtD,0EAA0E;AAC1E,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AAEtD,eAAe;AACf,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAE7C,mBAAmB;AACnB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AAEtD,aAAa;AACb,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,iDAAiD,CAAC;AAChE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AAEpE,0DAA0D;AAC1D,2EAA2E;AAC3E,mBAAmB;AACnB,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,oCAAoC,CAAC;AACnD,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,sDAAsD,CAAC;AACrE,cAAc,mDAAmD,CAAC;AAElE,qDAAqD;AACrD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC","sourcesContent":["/**\n * @memberjunction/ng-base-forms\n *\n * Modern form components for rendering and editing MemberJunction entity records.\n * Provides configurable toolbar, inline-editing fields, collapsible panels with\n * IS-A inheritance support, and event-driven navigation.\n *\n * Zero Explorer dependencies - usable in any Angular application.\n * Uses only native HTML elements with custom styling (no PrimeNG dependency).\n */\n\n// Module\nexport * from './module';\n\n// Types and interfaces\nexport * from './lib/types/form-types';\nexport * from './lib/types/navigation-events';\nexport * from './lib/types/toolbar-config';\nexport * from './lib/types/form-events';\nexport * from './lib/types/form-toolbar-item';\nexport * from './lib/types/entity-form-config';\n\n// Form resolution (form-variant / interactive-override picker — Generic, no Explorer deps)\nexport * from './lib/resolver/form-resolver.service';\n\n// Presentation-agnostic form host (resolve → load → create → wire → teardown)\nexport * from './lib/host/entity-form-host.component';\n\n// Overlay shells (dialog / slide-in) + imperative presenter (Layer 3 + 4)\nexport * from './lib/overlays/base-form-overlay';\nexport * from './lib/overlays/form-dialog.component';\nexport * from './lib/overlays/form-slide-in.component';\nexport * from './lib/overlays/form-window.component';\nexport * from './lib/overlays/form-presenter.types';\nexport * from './lib/overlays/form-presenter.service';\n\n// Base classes\nexport * from './lib/base-record-component';\nexport * from './lib/base-form-component';\nexport * from './lib/base-form-section-component';\nexport * from './lib/base-form-section-info';\n\n// State management\nexport * from './lib/form-state.interface';\nexport * from './lib/form-state.service';\nexport * from './lib/form-record-refresh.coordinator';\n\n// Components\nexport * from './lib/toolbar/form-toolbar.component';\nexport * from './lib/field/form-field.component';\nexport * from './lib/field/fk-search-utils';\nexport * from './lib/field/linked-field-options';\nexport * from './lib/panel/collapsible-panel.component';\nexport * from './lib/container/record-form-container.component';\nexport * from './lib/section-manager/section-manager.component';\nexport * from './lib/section-loader-component';\nexport * from './lib/explorer-entity-data-grid.component';\nexport * from './lib/isa-related-panel/isa-hierarchy-utils';\nexport * from './lib/isa-related-panel/isa-related-card.component';\nexport * from './lib/isa-related-panel/isa-related-panel.component';\n\n// Dynamic slot-injection extension point for form panels.\n// See packages/Angular/Generic/base-forms/PANELS.md for the architecture +\n// authoring guide.\nexport * from './lib/panel-slot/base-form-panel';\nexport * from './lib/panel-slot/form-panel-slot.component';\nexport * from './lib/panel-slot/form-slot-coordinator.service';\nexport * from './lib/panel-slot/form-contribution';\nexport * from './lib/panel-slot/collect-form-panel-registrations';\nexport * from './lib/panel-slot/form-contributions.component';\nexport * from './lib/panel-slot/related-entity-grid-panel.component';\nexport * from './lib/interactive-form/interactive-form.component';\n\n// Form chrome (accordion / left-nav / More grouping)\nexport * from './lib/chrome/form-chrome';\nexport * from './lib/chrome/base-form-policy';\nexport * from './lib/chrome/resolve-form-chrome';\nexport * from './lib/chrome/load-form-chrome-rules';\nexport * from './lib/chrome/form-chrome-coordinator.service';\nexport * from './lib/chrome/form-chrome-rail-pref';\nexport * from './lib/related-grid-height';\n"]}
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,SAAS;AACT,cAAc,UAAU,CAAC;AAEzB,uBAAuB;AACvB,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAE/C,+FAA+F;AAC/F,cAAc,kDAAkD,CAAC;AACjE,cAAc,qEAAqE,CAAC;AAEpF,2FAA2F;AAC3F,cAAc,sCAAsC,CAAC;AAErD,8EAA8E;AAC9E,cAAc,uCAAuC,CAAC;AAEtD,0EAA0E;AAC1E,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AAEtD,eAAe;AACf,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAE7C,mBAAmB;AACnB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AAEtD,aAAa;AACb,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,iDAAiD,CAAC;AAChE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AAEpE,0DAA0D;AAC1D,2EAA2E;AAC3E,mBAAmB;AACnB,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,oCAAoC,CAAC;AACnD,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,sDAAsD,CAAC;AACrE,cAAc,mDAAmD,CAAC;AAElE,qDAAqD;AACrD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC","sourcesContent":["/**\n * @memberjunction/ng-base-forms\n *\n * Modern form components for rendering and editing MemberJunction entity records.\n * Provides configurable toolbar, inline-editing fields, collapsible panels with\n * IS-A inheritance support, and event-driven navigation.\n *\n * Zero Explorer dependencies - usable in any Angular application.\n * Uses only native HTML elements with custom styling (no PrimeNG dependency).\n */\n\n// Module\nexport * from './module';\n\n// Types and interfaces\nexport * from './lib/types/form-types';\nexport * from './lib/types/navigation-events';\nexport * from './lib/types/toolbar-config';\nexport * from './lib/types/form-events';\nexport * from './lib/types/form-toolbar-item';\nexport * from './lib/types/entity-form-config';\n\n// Section indicators (unsaved-changes dot + invalid-field count on panels and the chrome rail)\nexport * from './lib/section-indicators/form-section-indicators';\nexport * from './lib/section-indicators/form-section-indicator-coordinator.service';\n\n// Form resolution (form-variant / interactive-override picker — Generic, no Explorer deps)\nexport * from './lib/resolver/form-resolver.service';\n\n// Presentation-agnostic form host (resolve → load → create → wire → teardown)\nexport * from './lib/host/entity-form-host.component';\n\n// Overlay shells (dialog / slide-in) + imperative presenter (Layer 3 + 4)\nexport * from './lib/overlays/base-form-overlay';\nexport * from './lib/overlays/form-dialog.component';\nexport * from './lib/overlays/form-slide-in.component';\nexport * from './lib/overlays/form-window.component';\nexport * from './lib/overlays/form-presenter.types';\nexport * from './lib/overlays/form-presenter.service';\n\n// Base classes\nexport * from './lib/base-record-component';\nexport * from './lib/base-form-component';\nexport * from './lib/base-form-section-component';\nexport * from './lib/base-form-section-info';\n\n// State management\nexport * from './lib/form-state.interface';\nexport * from './lib/form-state.service';\nexport * from './lib/form-record-refresh.coordinator';\n\n// Components\nexport * from './lib/toolbar/form-toolbar.component';\nexport * from './lib/field/form-field.component';\nexport * from './lib/field/fk-search-utils';\nexport * from './lib/field/linked-field-options';\nexport * from './lib/panel/collapsible-panel.component';\nexport * from './lib/container/record-form-container.component';\nexport * from './lib/section-manager/section-manager.component';\nexport * from './lib/section-loader-component';\nexport * from './lib/explorer-entity-data-grid.component';\nexport * from './lib/isa-related-panel/isa-hierarchy-utils';\nexport * from './lib/isa-related-panel/isa-related-card.component';\nexport * from './lib/isa-related-panel/isa-related-panel.component';\n\n// Dynamic slot-injection extension point for form panels.\n// See packages/Angular/Generic/base-forms/PANELS.md for the architecture +\n// authoring guide.\nexport * from './lib/panel-slot/base-form-panel';\nexport * from './lib/panel-slot/form-panel-slot.component';\nexport * from './lib/panel-slot/form-slot-coordinator.service';\nexport * from './lib/panel-slot/form-contribution';\nexport * from './lib/panel-slot/collect-form-panel-registrations';\nexport * from './lib/panel-slot/form-contributions.component';\nexport * from './lib/panel-slot/related-entity-grid-panel.component';\nexport * from './lib/interactive-form/interactive-form.component';\n\n// Form chrome (accordion / left-nav / More grouping)\nexport * from './lib/chrome/form-chrome';\nexport * from './lib/chrome/base-form-policy';\nexport * from './lib/chrome/resolve-form-chrome';\nexport * from './lib/chrome/load-form-chrome-rules';\nexport * from './lib/chrome/form-chrome-coordinator.service';\nexport * from './lib/chrome/form-chrome-rail-pref';\nexport * from './lib/related-grid-height';\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-base-forms",
3
- "version": "6.1.0-edge.5",
4
- "description": "MemberJunction: Generic Angular form components for rendering and editing entity records. Provides configurable toolbar, modern form fields (PrimeNG unstyled), collapsible panels with IS-A inheritance support, and event-driven navigation. Zero Explorer dependencies - usable in any Angular application.",
3
+ "version": "6.1.0-edge.7",
4
+ "description": "MemberJunction: Generic Angular form components for rendering and editing entity records. Provides configurable toolbar, modern form fields (native HTML, no PrimeNG dependency), collapsible panels with IS-A inheritance support, and event-driven navigation. Zero Explorer dependencies - usable in any Angular application.",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
7
7
  "files": [
@@ -12,42 +12,40 @@
12
12
  "angular",
13
13
  "forms",
14
14
  "entity",
15
- "primeng",
16
15
  "edit",
17
16
  "record"
18
17
  ],
19
18
  "author": "",
20
19
  "license": "BUSL-1.1",
21
20
  "devDependencies": {
22
- "@angular/compiler": "21.1.3",
23
- "@angular/compiler-cli": "21.1.3",
24
- "@memberjunction/ng-test-utils": "6.1.0-edge.5",
21
+ "@angular/compiler": "21.2.22",
22
+ "@angular/compiler-cli": "21.2.22",
23
+ "@memberjunction/ng-test-utils": "6.1.0-edge.7",
25
24
  "vitest": "^4.0.18"
26
25
  },
27
26
  "peerDependencies": {
28
- "@angular/animations": "^21.1.3",
29
- "@angular/common": "^21.1.3",
30
- "@angular/core": "^21.1.3",
31
- "@angular/forms": "^21.1.3",
32
- "primeng": "21.1.1"
27
+ "@angular/animations": "^21.2.22",
28
+ "@angular/common": "^21.2.22",
29
+ "@angular/core": "^21.2.22",
30
+ "@angular/forms": "^21.2.22"
33
31
  },
34
32
  "dependencies": {
35
- "@memberjunction/core": "6.1.0-edge.5",
36
- "@memberjunction/core-entities": "6.1.0-edge.5",
37
- "@memberjunction/global": "6.1.0-edge.5",
38
- "@memberjunction/interactive-component-types": "6.1.0-edge.5",
39
- "@memberjunction/ng-base-types": "6.1.0-edge.5",
40
- "@memberjunction/ng-code-editor": "6.1.0-edge.5",
41
- "@memberjunction/ng-entity-viewer": "6.1.0-edge.5",
42
- "@memberjunction/ng-file-storage": "6.1.0-edge.5",
43
- "@memberjunction/ng-list-management": "6.1.0-edge.5",
44
- "@memberjunction/ng-markdown": "6.1.0-edge.5",
45
- "@memberjunction/ng-notifications": "6.1.0-edge.5",
46
- "@memberjunction/ng-react": "6.1.0-edge.5",
47
- "@memberjunction/ng-record-changes": "6.1.0-edge.5",
48
- "@memberjunction/ng-record-tags": "6.1.0-edge.5",
49
- "@memberjunction/ng-shared-generic": "6.1.0-edge.5",
50
- "@memberjunction/ng-ui-components": "6.1.0-edge.5",
33
+ "@memberjunction/core": "6.1.0-edge.7",
34
+ "@memberjunction/core-entities": "6.1.0-edge.7",
35
+ "@memberjunction/global": "6.1.0-edge.7",
36
+ "@memberjunction/interactive-component-types": "6.1.0-edge.7",
37
+ "@memberjunction/ng-base-types": "6.1.0-edge.7",
38
+ "@memberjunction/ng-code-editor": "6.1.0-edge.7",
39
+ "@memberjunction/ng-entity-viewer": "6.1.0-edge.7",
40
+ "@memberjunction/ng-file-storage": "6.1.0-edge.7",
41
+ "@memberjunction/ng-list-management": "6.1.0-edge.7",
42
+ "@memberjunction/ng-markdown": "6.1.0-edge.7",
43
+ "@memberjunction/ng-notifications": "6.1.0-edge.7",
44
+ "@memberjunction/ng-react": "6.1.0-edge.7",
45
+ "@memberjunction/ng-record-changes": "6.1.0-edge.7",
46
+ "@memberjunction/ng-record-tags": "6.1.0-edge.7",
47
+ "@memberjunction/ng-shared-generic": "6.1.0-edge.7",
48
+ "@memberjunction/ng-ui-components": "6.1.0-edge.7",
51
49
  "rxjs": "^7.8.2",
52
50
  "tslib": "^2.8.1"
53
51
  },