sparc-shared-ui 0.0.6 → 0.0.8

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,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Input, Directive, ContentChildren, Component, EventEmitter, Output } from '@angular/core';
3
- import * as i1$1 from 'primeng/tabs';
3
+ import * as i1 from 'primeng/tabs';
4
4
  import { TabsModule } from 'primeng/tabs';
5
- import * as i1 from '@angular/common';
5
+ import * as i2 from '@angular/common';
6
6
  import { CommonModule } from '@angular/common';
7
7
 
8
8
  class AppTabTemplateDirective {
@@ -28,12 +28,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
28
28
  class TabPanelComponent {
29
29
  id;
30
30
  header = '';
31
- closable = false;
32
31
  data;
33
32
  headerTemplate;
34
33
  contentTemplate;
35
34
  templates;
36
- renderKey = 0;
37
35
  ngAfterContentInit() {
38
36
  this.templates.forEach(t => {
39
37
  if (t.type === 'header') {
@@ -44,19 +42,8 @@ class TabPanelComponent {
44
42
  }
45
43
  });
46
44
  }
47
- ngOnChanges() {
48
- this.renderKey++;
49
- }
50
45
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: TabPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.5", type: TabPanelComponent, isStandalone: true, selector: "app-tab-panel", inputs: { id: "id", header: "header", closable: "closable", data: "data" }, queries: [{ propertyName: "templates", predicate: AppTabTemplateDirective }], usesOnChanges: true, ngImport: i0, template: `
52
- <ng-container *ngIf="renderKey">
53
- <ng-container *ngIf="contentTemplate">
54
- <ng-container
55
- *ngTemplateOutlet="contentTemplate; context: { data: data }">
56
- </ng-container>
57
- </ng-container>
58
- </ng-container>
59
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
46
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.5", type: TabPanelComponent, isStandalone: true, selector: "app-tab-panel", inputs: { id: "id", header: "header", data: "data" }, queries: [{ propertyName: "templates", predicate: AppTabTemplateDirective }], ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
60
47
  }
61
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: TabPanelComponent, decorators: [{
62
49
  type: Component,
@@ -64,23 +51,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
64
51
  selector: 'app-tab-panel',
65
52
  standalone: true,
66
53
  imports: [CommonModule],
67
- template: `
68
- <ng-container *ngIf="renderKey">
69
- <ng-container *ngIf="contentTemplate">
70
- <ng-container
71
- *ngTemplateOutlet="contentTemplate; context: { data: data }">
72
- </ng-container>
73
- </ng-container>
74
- </ng-container>
75
- `
54
+ template: ``
76
55
  }]
77
56
  }], propDecorators: { id: [{
78
57
  type: Input,
79
58
  args: [{ required: true }]
80
59
  }], header: [{
81
60
  type: Input
82
- }], closable: [{
83
- type: Input
84
61
  }], data: [{
85
62
  type: Input
86
63
  }], templates: [{
@@ -136,11 +113,11 @@ class TabViewComponent {
136
113
  });
137
114
  }
138
115
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: TabViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
139
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: TabViewComponent, isStandalone: true, selector: "app-tab-view", inputs: { activeIndex: "activeIndex", scrollable: "scrollable" }, outputs: { activeIndexChange: "activeIndexChange", onChange: "onChange", onClose: "onClose" }, queries: [{ propertyName: "panelList", predicate: TabPanelComponent }], usesOnChanges: true, ngImport: i0, template: "<p-tabs [value]=\"activeValue\" (valueChange)=\"onValueChange($event)\" class=\"dashboard-Tab-View\">\r\n\r\n <!-- HEADER AREA -->\r\n <p-tablist>\r\n @for (panel of panels; track panel.id) {\r\n <p-tab [value]=\"panel.id\">\r\n \r\n @if (panel.headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"panel.headerTemplate;\r\n context: { panel: panel }\">\r\n </ng-container>\r\n } @else {\r\n {{ panel.header }}\r\n }\r\n\r\n </p-tab>\r\n }\r\n </p-tablist>\r\n\r\n <!-- CONTENT AREA -->\r\n <p-tabpanels>\r\n @for (panel of panels; track panel.id) {\r\n <p-tabpanel [value]=\"panel.id\">\r\n\r\n @if (panel.contentTemplate) {\r\n <ng-container *ngTemplateOutlet=\"panel.contentTemplate;\r\n context: { data: panel.data }\">\r\n </ng-container>\r\n }\r\n\r\n </p-tabpanel>\r\n }\r\n </p-tabpanels>\r\n\r\n</p-tabs>", dependencies: [{ kind: "ngmodule", type: TabsModule }, { kind: "component", type: i1$1.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i1$1.TabPanels, selector: "p-tabpanels" }, { kind: "component", type: i1$1.TabPanel, selector: "p-tabpanel", inputs: ["lazy", "value"], outputs: ["valueChange"] }, { kind: "component", type: i1$1.TabList, selector: "p-tablist" }, { kind: "component", type: i1$1.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
116
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: TabViewComponent, isStandalone: true, selector: "app-tab-view", inputs: { activeIndex: "activeIndex", scrollable: "scrollable" }, outputs: { activeIndexChange: "activeIndexChange", onChange: "onChange", onClose: "onClose" }, queries: [{ propertyName: "panelList", predicate: TabPanelComponent }], usesOnChanges: true, ngImport: i0, template: "<p-tabs [value]=\"activeValue\" (valueChange)=\"onValueChange($event)\" class=\"dashboard-Tab-View\">\r\n\r\n <p-tablist>\r\n @for (panel of panels; track panel.id) {\r\n <p-tab [value]=\"panel.id\">\r\n\r\n @if (panel.headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"panel.headerTemplate;\r\n context: { panel: panel }\">\r\n </ng-container>\r\n } @else {\r\n {{ panel.header }}\r\n }\r\n\r\n </p-tab>\r\n }\r\n </p-tablist>\r\n\r\n <!-- CONTENT -->\r\n <p-tabpanels>\r\n @for (panel of panels; track panel.id) {\r\n <p-tabpanel [value]=\"panel.id\">\r\n\r\n @if (panel.contentTemplate) {\r\n <ng-container *ngTemplateOutlet=\"panel.contentTemplate;\r\n context: { data: panel.data }\">\r\n </ng-container>\r\n }\r\n\r\n </p-tabpanel>\r\n }\r\n </p-tabpanels>\r\n\r\n</p-tabs>", dependencies: [{ kind: "ngmodule", type: TabsModule }, { kind: "component", type: i1.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i1.TabPanels, selector: "p-tabpanels" }, { kind: "component", type: i1.TabPanel, selector: "p-tabpanel", inputs: ["lazy", "value"], outputs: ["valueChange"] }, { kind: "component", type: i1.TabList, selector: "p-tablist" }, { kind: "component", type: i1.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
140
117
  }
141
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: TabViewComponent, decorators: [{
142
119
  type: Component,
143
- args: [{ selector: 'app-tab-view', standalone: true, imports: [TabsModule, CommonModule], template: "<p-tabs [value]=\"activeValue\" (valueChange)=\"onValueChange($event)\" class=\"dashboard-Tab-View\">\r\n\r\n <!-- HEADER AREA -->\r\n <p-tablist>\r\n @for (panel of panels; track panel.id) {\r\n <p-tab [value]=\"panel.id\">\r\n \r\n @if (panel.headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"panel.headerTemplate;\r\n context: { panel: panel }\">\r\n </ng-container>\r\n } @else {\r\n {{ panel.header }}\r\n }\r\n\r\n </p-tab>\r\n }\r\n </p-tablist>\r\n\r\n <!-- CONTENT AREA -->\r\n <p-tabpanels>\r\n @for (panel of panels; track panel.id) {\r\n <p-tabpanel [value]=\"panel.id\">\r\n\r\n @if (panel.contentTemplate) {\r\n <ng-container *ngTemplateOutlet=\"panel.contentTemplate;\r\n context: { data: panel.data }\">\r\n </ng-container>\r\n }\r\n\r\n </p-tabpanel>\r\n }\r\n </p-tabpanels>\r\n\r\n</p-tabs>" }]
120
+ args: [{ selector: 'app-tab-view', standalone: true, imports: [TabsModule, CommonModule], template: "<p-tabs [value]=\"activeValue\" (valueChange)=\"onValueChange($event)\" class=\"dashboard-Tab-View\">\r\n\r\n <p-tablist>\r\n @for (panel of panels; track panel.id) {\r\n <p-tab [value]=\"panel.id\">\r\n\r\n @if (panel.headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"panel.headerTemplate;\r\n context: { panel: panel }\">\r\n </ng-container>\r\n } @else {\r\n {{ panel.header }}\r\n }\r\n\r\n </p-tab>\r\n }\r\n </p-tablist>\r\n\r\n <!-- CONTENT -->\r\n <p-tabpanels>\r\n @for (panel of panels; track panel.id) {\r\n <p-tabpanel [value]=\"panel.id\">\r\n\r\n @if (panel.contentTemplate) {\r\n <ng-container *ngTemplateOutlet=\"panel.contentTemplate;\r\n context: { data: panel.data }\">\r\n </ng-container>\r\n }\r\n\r\n </p-tabpanel>\r\n }\r\n </p-tabpanels>\r\n\r\n</p-tabs>" }]
144
121
  }], propDecorators: { panelList: [{
145
122
  type: ContentChildren,
146
123
  args: [TabPanelComponent]
@@ -1 +1 @@
1
- {"version":3,"file":"sparc-shared-ui.mjs","sources":["../../../projects/shared-ui/src/lib/tabs/header.directive.ts","../../../projects/shared-ui/src/lib/tabs/tab-panel/tab-panel.component.ts","../../../projects/shared-ui/src/lib/tabs/tab-view/tab-view.component.ts","../../../projects/shared-ui/src/lib/tabs/tab-view/tab-view.component.html","../../../projects/shared-ui/src/public-api.ts","../../../projects/shared-ui/src/sparc-shared-ui.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appTabTemplate]',\r\n standalone: true\r\n})\r\nexport class AppTabTemplateDirective {\r\n @Input('appTabTemplate') type!: 'header' | 'content';\r\n\r\n constructor(public template: TemplateRef<any>) { }\r\n}","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n Input,\r\n QueryList,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AppTabTemplateDirective } from '../header.directive';\r\n\r\n@Component({\r\n selector: 'app-tab-panel',\r\n standalone: true,\r\n imports: [CommonModule],\r\n template: `\r\n <ng-container *ngIf=\"renderKey\">\r\n <ng-container *ngIf=\"contentTemplate\">\r\n <ng-container\r\n *ngTemplateOutlet=\"contentTemplate; context: { data: data }\">\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n `\r\n})\r\nexport class TabPanelComponent implements AfterContentInit {\r\n\r\n @Input({ required: true }) id!: number | string;\r\n @Input() header = '';\r\n @Input() closable = false;\r\n @Input() data: any;\r\n\r\n headerTemplate?: TemplateRef<any>;\r\n contentTemplate?: TemplateRef<any>;\r\n\r\n @ContentChildren(AppTabTemplateDirective)\r\n templates!: QueryList<AppTabTemplateDirective>;\r\n\r\n renderKey = 0;\r\n\r\n ngAfterContentInit() {\r\n this.templates.forEach(t => {\r\n if (t.type === 'header') {\r\n this.headerTemplate = t.template;\r\n }\r\n if (t.type === 'content') {\r\n this.contentTemplate = t.template;\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n this.renderKey++;\r\n }\r\n}","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { TabsModule } from 'primeng/tabs';\r\nimport { TabPanelComponent } from '../tab-panel/tab-panel.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-tab-view',\r\n standalone: true,\r\n imports: [TabsModule, CommonModule],\r\n templateUrl: './tab-view.component.html',\r\n})\r\nexport class TabViewComponent implements AfterContentInit, OnChanges {\r\n\r\n @ContentChildren(TabPanelComponent)\r\n panelList!: QueryList<TabPanelComponent>;\r\n\r\n panels: TabPanelComponent[] = [];\r\n\r\n @Input() activeIndex = 0;\r\n @Input() scrollable = false;\r\n\r\n @Output() activeIndexChange = new EventEmitter<number>();\r\n @Output() onChange = new EventEmitter<any>();\r\n @Output() onClose = new EventEmitter<any>();\r\n\r\n activeValue: any;\r\n\r\n ngAfterContentInit() {\r\n this.syncPanels();\r\n\r\n this.panelList.changes.subscribe(() => {\r\n this.syncPanels();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['activeIndex']) {\r\n this.updateActiveValue();\r\n }\r\n }\r\n\r\n private syncPanels() {\r\n this.panels = this.panelList.toArray();\r\n this.updateActiveValue();\r\n }\r\n\r\n private updateActiveValue() {\r\n this.activeValue = this.panels[this.activeIndex]?.id ?? null;\r\n }\r\n\r\n onValueChange(value: any) {\r\n const index = this.panels.findIndex(p => p.id === value);\r\n if (index === -1) return;\r\n\r\n this.activeIndex = index;\r\n this.activeIndexChange.emit(index);\r\n this.onChange.emit({ index });\r\n this.activeValue = value;\r\n }\r\n\r\n closeTab(panel: TabPanelComponent, event: Event) {\r\n event.stopPropagation();\r\n\r\n const index = this.panels.findIndex(p => p.id === panel.id);\r\n if (index === -1) return;\r\n\r\n // Child does NOT mutate data\r\n this.onClose.emit({\r\n index,\r\n panel\r\n });\r\n }\r\n\r\n\r\n}\r\n","<p-tabs [value]=\"activeValue\" (valueChange)=\"onValueChange($event)\" class=\"dashboard-Tab-View\">\r\n\r\n <!-- HEADER AREA -->\r\n <p-tablist>\r\n @for (panel of panels; track panel.id) {\r\n <p-tab [value]=\"panel.id\">\r\n \r\n @if (panel.headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"panel.headerTemplate;\r\n context: { panel: panel }\">\r\n </ng-container>\r\n } @else {\r\n {{ panel.header }}\r\n }\r\n\r\n </p-tab>\r\n }\r\n </p-tablist>\r\n\r\n <!-- CONTENT AREA -->\r\n <p-tabpanels>\r\n @for (panel of panels; track panel.id) {\r\n <p-tabpanel [value]=\"panel.id\">\r\n\r\n @if (panel.contentTemplate) {\r\n <ng-container *ngTemplateOutlet=\"panel.contentTemplate;\r\n context: { data: panel.data }\">\r\n </ng-container>\r\n }\r\n\r\n </p-tabpanel>\r\n }\r\n </p-tabpanels>\r\n\r\n</p-tabs>","/*\r\n * Public API Surface of shared-ui\r\n */\r\n\r\nexport * from './lib';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2"],"mappings":"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"}
1
+ {"version":3,"file":"sparc-shared-ui.mjs","sources":["../../../projects/shared-ui/src/lib/tabs/header.directive.ts","../../../projects/shared-ui/src/lib/tabs/tab-panel/tab-panel.component.ts","../../../projects/shared-ui/src/lib/tabs/tab-view/tab-view.component.ts","../../../projects/shared-ui/src/lib/tabs/tab-view/tab-view.component.html","../../../projects/shared-ui/src/public-api.ts","../../../projects/shared-ui/src/sparc-shared-ui.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appTabTemplate]',\r\n standalone: true\r\n})\r\nexport class AppTabTemplateDirective {\r\n @Input('appTabTemplate') type!: 'header' | 'content';\r\n\r\n constructor(public template: TemplateRef<any>) { }\r\n}","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n Input,\r\n QueryList,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AppTabTemplateDirective } from '../header.directive';\r\n\r\n@Component({\r\n selector: 'app-tab-panel',\r\n standalone: true,\r\n imports: [CommonModule],\r\n template: ``\r\n})\r\nexport class TabPanelComponent implements AfterContentInit {\r\n\r\n @Input({ required: true }) id!: number | string;\r\n @Input() header = '';\r\n @Input() data: any;\r\n\r\n headerTemplate?: TemplateRef<any>;\r\n contentTemplate?: TemplateRef<any>;\r\n\r\n @ContentChildren(AppTabTemplateDirective)\r\n templates!: QueryList<AppTabTemplateDirective>;\r\n\r\n ngAfterContentInit() {\r\n this.templates.forEach(t => {\r\n if (t.type === 'header') {\r\n this.headerTemplate = t.template;\r\n }\r\n if (t.type === 'content') {\r\n this.contentTemplate = t.template;\r\n }\r\n });\r\n }\r\n}","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { TabsModule } from 'primeng/tabs';\r\nimport { TabPanelComponent } from '../tab-panel/tab-panel.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-tab-view',\r\n standalone: true,\r\n imports: [TabsModule, CommonModule],\r\n templateUrl: './tab-view.component.html',\r\n})\r\nexport class TabViewComponent implements AfterContentInit, OnChanges {\r\n\r\n @ContentChildren(TabPanelComponent)\r\n panelList!: QueryList<TabPanelComponent>;\r\n\r\n panels: TabPanelComponent[] = [];\r\n\r\n @Input() activeIndex = 0;\r\n @Input() scrollable = false;\r\n\r\n @Output() activeIndexChange = new EventEmitter<number>();\r\n @Output() onChange = new EventEmitter<any>();\r\n @Output() onClose = new EventEmitter<any>();\r\n\r\n activeValue: any;\r\n\r\n ngAfterContentInit() {\r\n this.syncPanels();\r\n\r\n this.panelList.changes.subscribe(() => {\r\n this.syncPanels();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['activeIndex']) {\r\n this.updateActiveValue();\r\n }\r\n }\r\n\r\n private syncPanels() {\r\n this.panels = this.panelList.toArray();\r\n this.updateActiveValue();\r\n }\r\n\r\n private updateActiveValue() {\r\n this.activeValue = this.panels[this.activeIndex]?.id ?? null;\r\n }\r\n\r\n onValueChange(value: any) {\r\n const index = this.panels.findIndex(p => p.id === value);\r\n if (index === -1) return;\r\n\r\n this.activeIndex = index;\r\n this.activeIndexChange.emit(index);\r\n this.onChange.emit({ index });\r\n this.activeValue = value;\r\n }\r\n\r\n closeTab(panel: TabPanelComponent, event: Event) {\r\n event.stopPropagation();\r\n\r\n const index = this.panels.findIndex(p => p.id === panel.id);\r\n if (index === -1) return;\r\n\r\n // Child does NOT mutate data\r\n this.onClose.emit({\r\n index,\r\n panel\r\n });\r\n }\r\n\r\n\r\n}\r\n","<p-tabs [value]=\"activeValue\" (valueChange)=\"onValueChange($event)\" class=\"dashboard-Tab-View\">\r\n\r\n <p-tablist>\r\n @for (panel of panels; track panel.id) {\r\n <p-tab [value]=\"panel.id\">\r\n\r\n @if (panel.headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"panel.headerTemplate;\r\n context: { panel: panel }\">\r\n </ng-container>\r\n } @else {\r\n {{ panel.header }}\r\n }\r\n\r\n </p-tab>\r\n }\r\n </p-tablist>\r\n\r\n <!-- CONTENT -->\r\n <p-tabpanels>\r\n @for (panel of panels; track panel.id) {\r\n <p-tabpanel [value]=\"panel.id\">\r\n\r\n @if (panel.contentTemplate) {\r\n <ng-container *ngTemplateOutlet=\"panel.contentTemplate;\r\n context: { data: panel.data }\">\r\n </ng-container>\r\n }\r\n\r\n </p-tabpanel>\r\n }\r\n </p-tabpanels>\r\n\r\n</p-tabs>","/*\r\n * Public API Surface of shared-ui\r\n */\r\n\r\nexport * from './lib';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sparc-shared-ui",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.1.0",
6
6
  "@angular/core": "^21.1.0"
@@ -12,16 +12,13 @@ declare class AppTabTemplateDirective {
12
12
  declare class TabPanelComponent implements AfterContentInit {
13
13
  id: number | string;
14
14
  header: string;
15
- closable: boolean;
16
15
  data: any;
17
16
  headerTemplate?: TemplateRef<any>;
18
17
  contentTemplate?: TemplateRef<any>;
19
18
  templates: QueryList<AppTabTemplateDirective>;
20
- renderKey: number;
21
19
  ngAfterContentInit(): void;
22
- ngOnChanges(): void;
23
20
  static ɵfac: i0.ɵɵFactoryDeclaration<TabPanelComponent, never>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<TabPanelComponent, "app-tab-panel", never, { "id": { "alias": "id"; "required": true; }; "header": { "alias": "header"; "required": false; }; "closable": { "alias": "closable"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, {}, ["templates"], never, true, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<TabPanelComponent, "app-tab-panel", never, { "id": { "alias": "id"; "required": true; }; "header": { "alias": "header"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, {}, ["templates"], never, true, never>;
25
22
  }
26
23
 
27
24
  declare class TabViewComponent implements AfterContentInit, OnChanges {