@abp/ng.components 4.4.0 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/abp-ng.components.d.ts +1 -0
- package/bundles/abp-ng.components-chart.js.umd.js +185 -0
- package/bundles/abp-ng.components-chart.js.umd.js.map +1 -0
- package/bundles/abp-ng.components-page.umd.js +183 -120
- package/bundles/abp-ng.components-page.umd.js.map +1 -1
- package/bundles/abp-ng.components-tree.umd.js +117 -62
- package/bundles/abp-ng.components-tree.umd.js.map +1 -1
- package/bundles/abp-ng.components.umd.js.map +1 -1
- package/chart.js/abp-ng.components-chart.js.d.ts +5 -0
- package/chart.js/chart.component.d.ts +30 -0
- package/chart.js/chart.module.d.ts +8 -0
- package/chart.js/package.json +10 -0
- package/chart.js/public-api.d.ts +3 -0
- package/chart.js/widget-utils.d.ts +1 -0
- package/esm2015/abp-ng.components.js +1 -1
- package/esm2015/abp-ng.components.js.map +1 -0
- package/esm2015/chart.js/abp-ng.components-chart.js.js +5 -0
- package/esm2015/chart.js/abp-ng.components-chart.js.js.map +1 -0
- package/esm2015/chart.js/chart.component.js +141 -0
- package/esm2015/chart.js/chart.component.js.map +1 -0
- package/esm2015/chart.js/chart.module.js +19 -0
- package/esm2015/chart.js/chart.module.js.map +1 -0
- package/esm2015/chart.js/public-api.js +4 -0
- package/esm2015/chart.js/public-api.js.map +1 -0
- package/esm2015/chart.js/widget-utils.js +11 -0
- package/esm2015/chart.js/widget-utils.js.map +1 -0
- package/esm2015/page/abp-ng.components-page.js +1 -1
- package/esm2015/page/abp-ng.components-page.js.map +1 -0
- package/esm2015/page/page-part.directive.js +18 -14
- package/esm2015/page/page-part.directive.js.map +1 -0
- package/esm2015/page/page-parts.component.js +32 -28
- package/esm2015/page/page-parts.component.js.map +1 -0
- package/esm2015/page/page.component.js +33 -16
- package/esm2015/page/page.component.js.map +1 -0
- package/esm2015/page/page.module.js +27 -14
- package/esm2015/page/page.module.js.map +1 -0
- package/esm2015/page/public-api.js +1 -1
- package/esm2015/page/public-api.js.map +1 -0
- package/esm2015/public-api.js +1 -1
- package/esm2015/public-api.js.map +1 -0
- package/esm2015/tree/abp-ng.components-tree.js +1 -1
- package/esm2015/tree/abp-ng.components-tree.js.map +1 -0
- package/esm2015/tree/lib/components/tree.component.js +59 -29
- package/esm2015/tree/lib/components/tree.component.js.map +1 -0
- package/esm2015/tree/lib/templates/expanded-icon-template.directive.js +10 -9
- package/esm2015/tree/lib/templates/expanded-icon-template.directive.js.map +1 -0
- package/esm2015/tree/lib/templates/tree-node-template.directive.js +10 -9
- package/esm2015/tree/lib/templates/tree-node-template.directive.js.map +1 -0
- package/esm2015/tree/lib/tree.module.js +13 -8
- package/esm2015/tree/lib/tree.module.js.map +1 -0
- package/esm2015/tree/lib/utils/nz-tree-adapter.js +1 -1
- package/esm2015/tree/lib/utils/nz-tree-adapter.js.map +1 -0
- package/esm2015/tree/public-api.js +1 -1
- package/esm2015/tree/public-api.js.map +1 -0
- package/fesm2015/abp-ng.components-chart.js.js +175 -0
- package/fesm2015/abp-ng.components-chart.js.js.map +1 -0
- package/fesm2015/abp-ng.components-page.js +140 -106
- package/fesm2015/abp-ng.components-page.js.map +1 -1
- package/fesm2015/abp-ng.components-tree.js +85 -51
- package/fesm2015/abp-ng.components-tree.js.map +1 -1
- package/fesm2015/abp-ng.components.js.map +1 -1
- package/package.json +5 -5
- package/page/abp-ng.components-page.d.ts +1 -0
- package/page/package.json +0 -1
- package/page/page-part.directive.d.ts +3 -0
- package/page/page-parts.component.d.ts +7 -0
- package/page/page.component.d.ts +3 -0
- package/page/page.module.d.ts +11 -0
- package/tree/abp-ng.components-tree.d.ts +1 -0
- package/tree/lib/components/tree.component.d.ts +3 -0
- package/tree/lib/templates/expanded-icon-template.directive.d.ts +3 -0
- package/tree/lib/templates/tree-node-template.directive.d.ts +3 -0
- package/tree/lib/tree.module.d.ts +11 -0
- package/tree/package.json +0 -1
- package/abp-ng.components.metadata.json +0 -1
- package/bundles/abp-ng.components-page.umd.min.js +0 -16
- package/bundles/abp-ng.components-page.umd.min.js.map +0 -1
- package/bundles/abp-ng.components-tree.umd.min.js +0 -16
- package/bundles/abp-ng.components-tree.umd.min.js.map +0 -1
- package/bundles/abp-ng.components.umd.min.js +0 -2
- package/bundles/abp-ng.components.umd.min.js.map +0 -1
- package/page/abp-ng.components-page.metadata.json +0 -1
- package/tree/abp-ng.components-tree.metadata.json +0 -1
|
@@ -89,4 +89,4 @@ function createMapFromList(list, map = new Map()) {
|
|
|
89
89
|
list.forEach(row => map.set(row.id, new TreeNode(row)));
|
|
90
90
|
return map;
|
|
91
91
|
}
|
|
92
|
-
//# sourceMappingURL=
|
|
92
|
+
//# sourceMappingURL=nz-tree-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nz-tree-adapter.js","sourceRoot":"","sources":["../../../../../../../packages/components/tree/src/lib/utils/nz-tree-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["export abstract class BaseNode {\n name?: string;\n displayName?: string;\n\n constructor(public id: string, public parentId: string | null) {}\n}\n\nclass TreeNode<T extends BaseNode> extends BaseNode {\n title: string | undefined;\n key: string;\n icon: string | null = null;\n children: TreeNode<T>[] = [];\n isLeaf = true;\n checked = false;\n selected = false;\n expanded = false;\n selectable = true;\n disabled = false;\n disableCheckbox = false;\n parentNode?: TreeNode<T> | null;\n\n constructor(public entity: T, private nameResolver = ent => ent.displayName || ent.name) {\n super(entity.id, entity.parentId);\n this.key = entity.id;\n this.title = nameResolver(entity);\n }\n}\n\nexport class TreeAdapter<T extends BaseNode = BaseNode> {\n private tree: TreeNode<T>[];\n\n constructor(private list: T[] = []) {\n this.tree = createTreeFromList(this.list);\n }\n\n getList() {\n return this.list;\n }\n\n getTree() {\n return this.tree;\n }\n\n handleDrop({ key, parentNode }: TreeNode<T>) {\n const index = this.list.findIndex(({ id }) => id === key);\n this.list[index].parentId = parentNode ? parentNode.key : null;\n this.tree = createTreeFromList(this.list);\n }\n\n handleRemove({ key }: TreeNode<T>) {\n this.updateTreeFromList(this.list.filter(item => item.id !== key));\n }\n\n handleUpdate({ key, children }: { key: string; children: T[] }) {\n /**\n * When we need to update a node with new children, first we need to remove any descendant nodes.\n * If we remove immediate children and create a new tree, any other descendant nodes will be removed\n * and we won't need to recursively remove sub children.\n * Then, you simply add back the new children and create a new tree.\n */\n const listWithDescendantNodesRemoved = this.updateTreeFromList(\n this.list.filter(item => item.parentId !== key),\n );\n this.updateTreeFromList(listWithDescendantNodesRemoved.concat(children));\n }\n\n updateTreeFromList(list: T[]) {\n this.tree = createTreeFromList(list);\n this.list = createListFromTree(this.tree);\n return this.list;\n }\n}\n\n// UTILITY FUNCTIONS\n\nfunction createTreeFromList<T extends BaseNode>(list: T[]): TreeNode<T>[] {\n const map = createMapFromList(list);\n const tree: TreeNode<T>[] = [];\n\n list.forEach(row => {\n const parentId = row.parentId;\n const node = map.get(row.id);\n if (parentId) {\n const parent = map.get(parentId);\n if (!parent) return;\n parent.children.push(node);\n parent.isLeaf = false;\n } else {\n tree.push(node);\n }\n });\n\n return tree;\n}\n\nfunction createListFromTree<T extends BaseNode>(tree: TreeNode<T>[], list: T[] = []): T[] {\n tree.forEach(node => {\n list.push({ ...node.entity, parentId: node.parentId });\n if (node.children) createListFromTree(node.children, list);\n });\n\n return list;\n}\n\nfunction createMapFromList<T extends BaseNode>(\n list: T[],\n map = new Map<string, TreeNode<T>>(),\n): Map<string, TreeNode<T>> {\n list.forEach(row => map.set(row.id, new TreeNode(row)));\n\n return map;\n}\n"]}
|
|
@@ -3,4 +3,4 @@ export * from './lib/components/tree.component';
|
|
|
3
3
|
export * from './lib/utils/nz-tree-adapter';
|
|
4
4
|
export * from './lib/templates/tree-node-template.directive';
|
|
5
5
|
export * from './lib/templates/expanded-icon-template.directive';
|
|
6
|
-
//# sourceMappingURL=
|
|
6
|
+
//# sourceMappingURL=public-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../../../../packages/components/tree/src/public-api.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC","sourcesContent":["export * from './lib/tree.module';\nexport * from './lib/components/tree.component';\nexport * from './lib/utils/nz-tree-adapter';\nexport * from './lib/templates/tree-node-template.directive';\nexport * from './lib/templates/expanded-icon-template.directive';\n"]}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, ViewChild, NgModule } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
|
|
5
|
+
let Chart;
|
|
6
|
+
class ChartComponent {
|
|
7
|
+
constructor(el, cdr) {
|
|
8
|
+
this.el = el;
|
|
9
|
+
this.cdr = cdr;
|
|
10
|
+
this.data = {};
|
|
11
|
+
this.options = {};
|
|
12
|
+
this.plugins = [];
|
|
13
|
+
this.responsive = true;
|
|
14
|
+
this.dataSelect = new EventEmitter();
|
|
15
|
+
this.initialized = new EventEmitter();
|
|
16
|
+
this.initChart = () => {
|
|
17
|
+
const opts = this.options || {};
|
|
18
|
+
opts.responsive = this.responsive;
|
|
19
|
+
// allows chart to resize in responsive mode
|
|
20
|
+
if (opts.responsive && (this.height || this.width)) {
|
|
21
|
+
opts.maintainAspectRatio = false;
|
|
22
|
+
}
|
|
23
|
+
this.chart = new Chart(this.canvas.nativeElement, {
|
|
24
|
+
type: this.type,
|
|
25
|
+
data: this.data,
|
|
26
|
+
options: this.options,
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
this.getCanvas = () => {
|
|
30
|
+
return this.canvas.nativeElement;
|
|
31
|
+
};
|
|
32
|
+
this.getBase64Image = () => {
|
|
33
|
+
return this.chart.toBase64Image();
|
|
34
|
+
};
|
|
35
|
+
this.generateLegend = () => {
|
|
36
|
+
if (this.chart) {
|
|
37
|
+
return this.chart.generateLegend();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
this.refresh = () => {
|
|
41
|
+
if (this.chart) {
|
|
42
|
+
this.chart.update();
|
|
43
|
+
this.cdr.detectChanges();
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
this.reinit = () => {
|
|
47
|
+
if (!this.chart)
|
|
48
|
+
return;
|
|
49
|
+
this.chart.destroy();
|
|
50
|
+
this.initChart();
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
ngAfterViewInit() {
|
|
54
|
+
import('chart.js/auto').then(module => {
|
|
55
|
+
Chart = module.default;
|
|
56
|
+
this.initChart();
|
|
57
|
+
this.initialized.emit(true);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
onCanvasClick(event) {
|
|
61
|
+
if (this.chart) {
|
|
62
|
+
const element = this.chart.getElementsAtEventForMode(event, 'nearest', { intersect: true }, false);
|
|
63
|
+
const dataset = this.chart.getElementsAtEventForMode(event, 'dataset', { intersect: true }, false);
|
|
64
|
+
if (element && element[0] && dataset) {
|
|
65
|
+
this.dataSelect.emit({ originalEvent: event, element: element[0], dataset: dataset });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
ngOnDestroy() {
|
|
70
|
+
if (this.chart) {
|
|
71
|
+
this.chart.destroy();
|
|
72
|
+
this.chart = null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
ngOnChanges(changes) {
|
|
76
|
+
var _a, _b;
|
|
77
|
+
if (!this.chart)
|
|
78
|
+
return;
|
|
79
|
+
if (((_a = changes.data) === null || _a === void 0 ? void 0 : _a.currentValue) || ((_b = changes.options) === null || _b === void 0 ? void 0 : _b.currentValue)) {
|
|
80
|
+
this.chart.destroy();
|
|
81
|
+
this.initChart();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ChartComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
+
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ChartComponent, selector: "abp-chart", inputs: { type: "type", data: "data", options: "options", plugins: "plugins", width: "width", height: "height", responsive: "responsive" }, outputs: { dataSelect: "dataSelect", initialized: "initialized" }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true }], exportAs: ["abpChart"], usesOnChanges: true, ngImport: i0, template: `
|
|
87
|
+
<div
|
|
88
|
+
style="position:relative"
|
|
89
|
+
[style.width]="responsive && !width ? null : width"
|
|
90
|
+
[style.height]="responsive && !height ? null : height"
|
|
91
|
+
>
|
|
92
|
+
<canvas
|
|
93
|
+
#canvas
|
|
94
|
+
[attr.width]="responsive && !width ? null : width"
|
|
95
|
+
[attr.height]="responsive && !height ? null : height"
|
|
96
|
+
(click)="onCanvasClick($event)"
|
|
97
|
+
></canvas>
|
|
98
|
+
</div>
|
|
99
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ChartComponent, decorators: [{
|
|
101
|
+
type: Component,
|
|
102
|
+
args: [{
|
|
103
|
+
selector: 'abp-chart',
|
|
104
|
+
template: `
|
|
105
|
+
<div
|
|
106
|
+
style="position:relative"
|
|
107
|
+
[style.width]="responsive && !width ? null : width"
|
|
108
|
+
[style.height]="responsive && !height ? null : height"
|
|
109
|
+
>
|
|
110
|
+
<canvas
|
|
111
|
+
#canvas
|
|
112
|
+
[attr.width]="responsive && !width ? null : width"
|
|
113
|
+
[attr.height]="responsive && !height ? null : height"
|
|
114
|
+
(click)="onCanvasClick($event)"
|
|
115
|
+
></canvas>
|
|
116
|
+
</div>
|
|
117
|
+
`,
|
|
118
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
119
|
+
exportAs: 'abpChart',
|
|
120
|
+
}]
|
|
121
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { type: [{
|
|
122
|
+
type: Input
|
|
123
|
+
}], data: [{
|
|
124
|
+
type: Input
|
|
125
|
+
}], options: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}], plugins: [{
|
|
128
|
+
type: Input
|
|
129
|
+
}], width: [{
|
|
130
|
+
type: Input
|
|
131
|
+
}], height: [{
|
|
132
|
+
type: Input
|
|
133
|
+
}], responsive: [{
|
|
134
|
+
type: Input
|
|
135
|
+
}], dataSelect: [{
|
|
136
|
+
type: Output
|
|
137
|
+
}], initialized: [{
|
|
138
|
+
type: Output
|
|
139
|
+
}], canvas: [{
|
|
140
|
+
type: ViewChild,
|
|
141
|
+
args: ['canvas']
|
|
142
|
+
}] } });
|
|
143
|
+
|
|
144
|
+
class ChartModule {
|
|
145
|
+
}
|
|
146
|
+
ChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
147
|
+
ChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ChartModule, declarations: [ChartComponent], imports: [CommonModule], exports: [ChartComponent] });
|
|
148
|
+
ChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ChartModule, providers: [], imports: [[CommonModule]] });
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ChartModule, decorators: [{
|
|
150
|
+
type: NgModule,
|
|
151
|
+
args: [{
|
|
152
|
+
imports: [CommonModule],
|
|
153
|
+
exports: [ChartComponent],
|
|
154
|
+
declarations: [ChartComponent],
|
|
155
|
+
providers: [],
|
|
156
|
+
}]
|
|
157
|
+
}] });
|
|
158
|
+
|
|
159
|
+
function getRandomBackgroundColor(count) {
|
|
160
|
+
const colors = [];
|
|
161
|
+
for (let i = 0; i < count; i++) {
|
|
162
|
+
const r = ((i + 5) * (i + 5) * 474) % 255;
|
|
163
|
+
const g = ((i + 5) * (i + 5) * 1600) % 255;
|
|
164
|
+
const b = ((i + 5) * (i + 5) * 84065) % 255;
|
|
165
|
+
colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');
|
|
166
|
+
}
|
|
167
|
+
return colors;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Generated bundle index. Do not edit.
|
|
172
|
+
*/
|
|
173
|
+
|
|
174
|
+
export { ChartComponent, ChartModule, getRandomBackgroundColor };
|
|
175
|
+
//# sourceMappingURL=abp-ng.components-chart.js.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abp-ng.components-chart.js.js","sources":["../../../../packages/components/chart.js/src/chart.component.ts","../../../../packages/components/chart.js/src/chart.module.ts","../../../../packages/components/chart.js/src/widget-utils.ts","../../../../packages/components/chart.js/src/abp-ng.components-chart.js.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\n\nlet Chart: any;\n\n@Component({\n selector: 'abp-chart',\n template: `\n <div\n style=\"position:relative\"\n [style.width]=\"responsive && !width ? null : width\"\n [style.height]=\"responsive && !height ? null : height\"\n >\n <canvas\n #canvas\n [attr.width]=\"responsive && !width ? null : width\"\n [attr.height]=\"responsive && !height ? null : height\"\n (click)=\"onCanvasClick($event)\"\n ></canvas>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'abpChart',\n})\nexport class ChartComponent implements AfterViewInit, OnDestroy, OnChanges {\n @Input() type: string;\n\n @Input() data: any = {};\n\n @Input() options: any = {};\n\n @Input() plugins: any[] = [];\n\n @Input() width: string;\n\n @Input() height: string;\n\n @Input() responsive = true;\n\n @Output() dataSelect = new EventEmitter();\n\n @Output() initialized = new EventEmitter<boolean>();\n\n @ViewChild('canvas') canvas: ElementRef<HTMLCanvasElement>;\n\n chart: any;\n\n constructor(public el: ElementRef, private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n import('chart.js/auto').then(module => {\n Chart = module.default;\n this.initChart();\n this.initialized.emit(true);\n });\n }\n\n onCanvasClick(event) {\n if (this.chart) {\n const element = this.chart.getElementsAtEventForMode(\n event,\n 'nearest',\n { intersect: true },\n false,\n );\n const dataset = this.chart.getElementsAtEventForMode(\n event,\n 'dataset',\n { intersect: true },\n false,\n );\n\n if (element && element[0] && dataset) {\n this.dataSelect.emit({ originalEvent: event, element: element[0], dataset: dataset });\n }\n }\n }\n\n private initChart = () => {\n const opts = this.options || {};\n opts.responsive = this.responsive;\n\n // allows chart to resize in responsive mode\n if (opts.responsive && (this.height || this.width)) {\n opts.maintainAspectRatio = false;\n }\n\n this.chart = new Chart(this.canvas.nativeElement, {\n type: this.type as any,\n data: this.data,\n options: this.options,\n });\n };\n\n getCanvas = () => {\n return this.canvas.nativeElement;\n };\n\n getBase64Image = () => {\n return this.chart.toBase64Image();\n };\n\n generateLegend = () => {\n if (this.chart) {\n return this.chart.generateLegend();\n }\n };\n\n refresh = () => {\n if (this.chart) {\n this.chart.update();\n this.cdr.detectChanges();\n }\n };\n\n reinit = () => {\n if (!this.chart) return;\n this.chart.destroy();\n this.initChart();\n };\n\n ngOnDestroy() {\n if (this.chart) {\n this.chart.destroy();\n this.chart = null;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this.chart) return;\n\n if (changes.data?.currentValue || changes.options?.currentValue) {\n this.chart.destroy();\n this.initChart();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ChartComponent } from './chart.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [ChartComponent],\n declarations: [ChartComponent],\n providers: [],\n})\nexport class ChartModule {}\n","export function getRandomBackgroundColor(count) {\n const colors = [];\n\n for (let i = 0; i < count; i++) {\n const r = ((i + 5) * (i + 5) * 474) % 255;\n const g = ((i + 5) * (i + 5) * 1600) % 255;\n const b = ((i + 5) * (i + 5) * 84065) % 255;\n colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');\n }\n\n return colors;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,92 +1,14 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation, Input, ContentChild, InjectionToken, Directive, TemplateRef, ViewContainerRef, Optional, Inject, Injector, NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { UiExtensionsModule } from '@abp/ng.theme.shared/extensions';
|
|
4
|
-
import { ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
5
1
|
import { CoreModule } from '@abp/ng.core';
|
|
2
|
+
import * as i1 from '@abp/ng.theme.shared';
|
|
3
|
+
import { ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
4
|
+
import * as i2 from '@abp/ng.theme.shared/extensions';
|
|
5
|
+
import { UiExtensionsModule } from '@abp/ng.theme.shared/extensions';
|
|
6
|
+
import * as i3 from '@angular/common';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
import * as i0 from '@angular/core';
|
|
9
|
+
import { InjectionToken, Directive, Optional, Inject, Input, Component, ViewEncapsulation, ContentChild, NgModule } from '@angular/core';
|
|
6
10
|
import { Observable, of } from 'rxjs';
|
|
7
11
|
|
|
8
|
-
var PageParts;
|
|
9
|
-
(function (PageParts) {
|
|
10
|
-
PageParts["title"] = "PageTitleContainerComponent";
|
|
11
|
-
PageParts["breadcrumb"] = "PageBreadcrumbContainerComponent";
|
|
12
|
-
PageParts["toolbar"] = "PageToolbarContainerComponent";
|
|
13
|
-
})(PageParts || (PageParts = {}));
|
|
14
|
-
class PageTitleContainerComponent {
|
|
15
|
-
}
|
|
16
|
-
PageTitleContainerComponent.decorators = [
|
|
17
|
-
{ type: Component, args: [{
|
|
18
|
-
selector: 'abp-page-title-container',
|
|
19
|
-
template: `
|
|
20
|
-
<ng-content></ng-content>
|
|
21
|
-
`,
|
|
22
|
-
encapsulation: ViewEncapsulation.None
|
|
23
|
-
},] }
|
|
24
|
-
];
|
|
25
|
-
class PageBreadcrumbContainerComponent {
|
|
26
|
-
}
|
|
27
|
-
PageBreadcrumbContainerComponent.decorators = [
|
|
28
|
-
{ type: Component, args: [{
|
|
29
|
-
selector: 'abp-page-breadcrumb-container',
|
|
30
|
-
template: `
|
|
31
|
-
<ng-content></ng-content>
|
|
32
|
-
`,
|
|
33
|
-
encapsulation: ViewEncapsulation.None
|
|
34
|
-
},] }
|
|
35
|
-
];
|
|
36
|
-
class PageToolbarContainerComponent {
|
|
37
|
-
}
|
|
38
|
-
PageToolbarContainerComponent.decorators = [
|
|
39
|
-
{ type: Component, args: [{
|
|
40
|
-
selector: 'abp-page-toolbar-container',
|
|
41
|
-
template: `
|
|
42
|
-
<ng-content></ng-content>
|
|
43
|
-
`,
|
|
44
|
-
encapsulation: ViewEncapsulation.None
|
|
45
|
-
},] }
|
|
46
|
-
];
|
|
47
|
-
|
|
48
|
-
class PageComponent {
|
|
49
|
-
constructor() {
|
|
50
|
-
this.toolbarVisible = false;
|
|
51
|
-
this.breadcrumbVisible = true;
|
|
52
|
-
this.pageParts = {
|
|
53
|
-
title: PageParts.title,
|
|
54
|
-
breadcrumb: PageParts.breadcrumb,
|
|
55
|
-
toolbar: PageParts.toolbar,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
set toolbarData(val) {
|
|
59
|
-
this._toolbarData = val;
|
|
60
|
-
this.toolbarVisible = true;
|
|
61
|
-
}
|
|
62
|
-
get toolbarData() {
|
|
63
|
-
return this._toolbarData;
|
|
64
|
-
}
|
|
65
|
-
get shouldRenderRow() {
|
|
66
|
-
return !!(this.title ||
|
|
67
|
-
this.toolbarVisible ||
|
|
68
|
-
this.breadcrumbVisible ||
|
|
69
|
-
this.customTitle ||
|
|
70
|
-
this.customBreadcrumb ||
|
|
71
|
-
this.customToolbar);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
PageComponent.decorators = [
|
|
75
|
-
{ type: Component, args: [{
|
|
76
|
-
selector: 'abp-page',
|
|
77
|
-
template: "<div class=\"row entry-row\" *ngIf=\"shouldRenderRow\">\n <ng-container *ngIf=\"customTitle; else defaultTitleTemplate\">\n <ng-content select=\"abp-page-title-container\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"customBreadcrumb; else defaultBreadcrumbTemplate\">\n <ng-content select=\"abp-page-breadcrumb-container\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"customToolbar; else defaultPageToolbarTemplate\">\n <ng-content select=\"abp-page-toolbar-container\"></ng-content>\n </ng-container>\n</div>\n\n<ng-content></ng-content>\n\n<ng-template #defaultTitleTemplate>\n <ng-container *ngIf=\"title\">\n <div class=\"col-auto\" *abpPagePart=\"pageParts.title\">\n <h1 class=\"content-header-title\">\n {{ title }}\n </h1>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #defaultBreadcrumbTemplate>\n <ng-container *ngIf=\"breadcrumbVisible\">\n <div class=\"col-lg-auto pl-lg-0\" *abpPagePart=\"pageParts.breadcrumb\">\n <abp-breadcrumb></abp-breadcrumb>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #defaultPageToolbarTemplate>\n <ng-container *ngIf=\"toolbarVisible\">\n <div class=\"col\" *abpPagePart=\"pageParts.toolbar; context: toolbarData\">\n <abp-page-toolbar [record]=\"toolbarData\"></abp-page-toolbar>\n </div>\n </ng-container>\n</ng-template>\n",
|
|
78
|
-
encapsulation: ViewEncapsulation.None
|
|
79
|
-
},] }
|
|
80
|
-
];
|
|
81
|
-
PageComponent.propDecorators = {
|
|
82
|
-
title: [{ type: Input }],
|
|
83
|
-
toolbarData: [{ type: Input, args: ['toolbar',] }],
|
|
84
|
-
breadcrumbVisible: [{ type: Input, args: ['breadcrumb',] }],
|
|
85
|
-
customTitle: [{ type: ContentChild, args: [PageTitleContainerComponent,] }],
|
|
86
|
-
customBreadcrumb: [{ type: ContentChild, args: [PageBreadcrumbContainerComponent,] }],
|
|
87
|
-
customToolbar: [{ type: ContentChild, args: [PageToolbarContainerComponent,] }]
|
|
88
|
-
};
|
|
89
|
-
|
|
90
12
|
const PAGE_RENDER_STRATEGY = new InjectionToken('PAGE_RENDER_STRATEGY');
|
|
91
13
|
class PagePartDirective {
|
|
92
14
|
constructor(templateRef, viewContainer, renderLogic, injector) {
|
|
@@ -146,19 +68,119 @@ class PagePartDirective {
|
|
|
146
68
|
}
|
|
147
69
|
}
|
|
148
70
|
}
|
|
149
|
-
PagePartDirective
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
71
|
+
PagePartDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PagePartDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: PAGE_RENDER_STRATEGY, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
72
|
+
PagePartDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.6", type: PagePartDirective, selector: "[abpPagePart]", inputs: { context: ["abpPagePartContext", "context"], abpPagePart: "abpPagePart" }, usesOnChanges: true, ngImport: i0 });
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PagePartDirective, decorators: [{
|
|
74
|
+
type: Directive,
|
|
75
|
+
args: [{ selector: '[abpPagePart]' }]
|
|
76
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
77
|
+
type: Optional
|
|
78
|
+
}, {
|
|
79
|
+
type: Inject,
|
|
80
|
+
args: [PAGE_RENDER_STRATEGY]
|
|
81
|
+
}] }, { type: i0.Injector }]; }, propDecorators: { context: [{
|
|
82
|
+
type: Input,
|
|
83
|
+
args: ['abpPagePartContext']
|
|
84
|
+
}], abpPagePart: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}] } });
|
|
87
|
+
|
|
88
|
+
var PageParts;
|
|
89
|
+
(function (PageParts) {
|
|
90
|
+
PageParts["title"] = "PageTitleContainerComponent";
|
|
91
|
+
PageParts["breadcrumb"] = "PageBreadcrumbContainerComponent";
|
|
92
|
+
PageParts["toolbar"] = "PageToolbarContainerComponent";
|
|
93
|
+
})(PageParts || (PageParts = {}));
|
|
94
|
+
class PageTitleContainerComponent {
|
|
95
|
+
}
|
|
96
|
+
PageTitleContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageTitleContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
97
|
+
PageTitleContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: PageTitleContainerComponent, selector: "abp-page-title-container", ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, encapsulation: i0.ViewEncapsulation.None });
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageTitleContainerComponent, decorators: [{
|
|
99
|
+
type: Component,
|
|
100
|
+
args: [{
|
|
101
|
+
selector: 'abp-page-title-container',
|
|
102
|
+
template: ` <ng-content></ng-content> `,
|
|
103
|
+
encapsulation: ViewEncapsulation.None,
|
|
104
|
+
}]
|
|
105
|
+
}] });
|
|
106
|
+
class PageBreadcrumbContainerComponent {
|
|
107
|
+
}
|
|
108
|
+
PageBreadcrumbContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageBreadcrumbContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
109
|
+
PageBreadcrumbContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: PageBreadcrumbContainerComponent, selector: "abp-page-breadcrumb-container", ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, encapsulation: i0.ViewEncapsulation.None });
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageBreadcrumbContainerComponent, decorators: [{
|
|
111
|
+
type: Component,
|
|
112
|
+
args: [{
|
|
113
|
+
selector: 'abp-page-breadcrumb-container',
|
|
114
|
+
template: ` <ng-content></ng-content> `,
|
|
115
|
+
encapsulation: ViewEncapsulation.None,
|
|
116
|
+
}]
|
|
117
|
+
}] });
|
|
118
|
+
class PageToolbarContainerComponent {
|
|
119
|
+
}
|
|
120
|
+
PageToolbarContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageToolbarContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
121
|
+
PageToolbarContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: PageToolbarContainerComponent, selector: "abp-page-toolbar-container", ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, encapsulation: i0.ViewEncapsulation.None });
|
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageToolbarContainerComponent, decorators: [{
|
|
123
|
+
type: Component,
|
|
124
|
+
args: [{
|
|
125
|
+
selector: 'abp-page-toolbar-container',
|
|
126
|
+
template: ` <ng-content></ng-content> `,
|
|
127
|
+
encapsulation: ViewEncapsulation.None,
|
|
128
|
+
}]
|
|
129
|
+
}] });
|
|
130
|
+
|
|
131
|
+
class PageComponent {
|
|
132
|
+
constructor() {
|
|
133
|
+
this.toolbarVisible = false;
|
|
134
|
+
this.breadcrumbVisible = true;
|
|
135
|
+
this.pageParts = {
|
|
136
|
+
title: PageParts.title,
|
|
137
|
+
breadcrumb: PageParts.breadcrumb,
|
|
138
|
+
toolbar: PageParts.toolbar,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
set toolbarData(val) {
|
|
142
|
+
this._toolbarData = val;
|
|
143
|
+
this.toolbarVisible = true;
|
|
144
|
+
}
|
|
145
|
+
get toolbarData() {
|
|
146
|
+
return this._toolbarData;
|
|
147
|
+
}
|
|
148
|
+
get shouldRenderRow() {
|
|
149
|
+
return !!(this.title ||
|
|
150
|
+
this.toolbarVisible ||
|
|
151
|
+
this.breadcrumbVisible ||
|
|
152
|
+
this.customTitle ||
|
|
153
|
+
this.customBreadcrumb ||
|
|
154
|
+
this.customToolbar);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
PageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
158
|
+
PageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: PageComponent, selector: "abp-page", inputs: { title: "title", toolbarData: ["toolbar", "toolbarData"], breadcrumbVisible: ["breadcrumb", "breadcrumbVisible"] }, queries: [{ propertyName: "customTitle", first: true, predicate: PageTitleContainerComponent, descendants: true }, { propertyName: "customBreadcrumb", first: true, predicate: PageBreadcrumbContainerComponent, descendants: true }, { propertyName: "customToolbar", first: true, predicate: PageToolbarContainerComponent, descendants: true }], ngImport: i0, template: "<div class=\"row entry-row\" *ngIf=\"shouldRenderRow\">\n <ng-container *ngIf=\"customTitle; else defaultTitleTemplate\">\n <ng-content select=\"abp-page-title-container\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"customBreadcrumb; else defaultBreadcrumbTemplate\">\n <ng-content select=\"abp-page-breadcrumb-container\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"customToolbar; else defaultPageToolbarTemplate\">\n <ng-content select=\"abp-page-toolbar-container\"></ng-content>\n </ng-container>\n</div>\n\n<ng-content></ng-content>\n\n<ng-template #defaultTitleTemplate>\n <ng-container *ngIf=\"title\">\n <div class=\"col-auto\" *abpPagePart=\"pageParts.title\">\n <h1 class=\"content-header-title\">\n {{ title }}\n </h1>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #defaultBreadcrumbTemplate>\n <ng-container *ngIf=\"breadcrumbVisible\">\n <div class=\"col-lg-auto pl-lg-0\" *abpPagePart=\"pageParts.breadcrumb\">\n <abp-breadcrumb></abp-breadcrumb>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #defaultPageToolbarTemplate>\n <ng-container *ngIf=\"toolbarVisible\">\n <div class=\"col\" *abpPagePart=\"pageParts.toolbar; context: toolbarData\">\n <abp-page-toolbar [record]=\"toolbarData\"></abp-page-toolbar>\n </div>\n </ng-container>\n</ng-template>\n", components: [{ type: i1.BreadcrumbComponent, selector: "abp-breadcrumb" }, { type: i2.PageToolbarComponent, selector: "abp-page-toolbar", exportAs: ["abpPageToolbar"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: PagePartDirective, selector: "[abpPagePart]", inputs: ["abpPagePartContext", "abpPagePart"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageComponent, decorators: [{
|
|
160
|
+
type: Component,
|
|
161
|
+
args: [{
|
|
162
|
+
selector: 'abp-page',
|
|
163
|
+
templateUrl: './page.component.html',
|
|
164
|
+
encapsulation: ViewEncapsulation.None,
|
|
165
|
+
}]
|
|
166
|
+
}], propDecorators: { title: [{
|
|
167
|
+
type: Input
|
|
168
|
+
}], toolbarData: [{
|
|
169
|
+
type: Input,
|
|
170
|
+
args: ['toolbar']
|
|
171
|
+
}], breadcrumbVisible: [{
|
|
172
|
+
type: Input,
|
|
173
|
+
args: ['breadcrumb']
|
|
174
|
+
}], customTitle: [{
|
|
175
|
+
type: ContentChild,
|
|
176
|
+
args: [PageTitleContainerComponent]
|
|
177
|
+
}], customBreadcrumb: [{
|
|
178
|
+
type: ContentChild,
|
|
179
|
+
args: [PageBreadcrumbContainerComponent]
|
|
180
|
+
}], customToolbar: [{
|
|
181
|
+
type: ContentChild,
|
|
182
|
+
args: [PageToolbarContainerComponent]
|
|
183
|
+
}] } });
|
|
162
184
|
|
|
163
185
|
const exportedDeclarations = [
|
|
164
186
|
PageComponent,
|
|
@@ -169,13 +191,25 @@ const exportedDeclarations = [
|
|
|
169
191
|
];
|
|
170
192
|
class PageModule {
|
|
171
193
|
}
|
|
172
|
-
PageModule
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
194
|
+
PageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
195
|
+
PageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageModule, declarations: [PageComponent,
|
|
196
|
+
PageTitleContainerComponent,
|
|
197
|
+
PageBreadcrumbContainerComponent,
|
|
198
|
+
PageToolbarContainerComponent,
|
|
199
|
+
PagePartDirective], imports: [CommonModule, UiExtensionsModule, CoreModule, ThemeSharedModule], exports: [PageComponent,
|
|
200
|
+
PageTitleContainerComponent,
|
|
201
|
+
PageBreadcrumbContainerComponent,
|
|
202
|
+
PageToolbarContainerComponent,
|
|
203
|
+
PagePartDirective, UiExtensionsModule] });
|
|
204
|
+
PageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageModule, imports: [[CommonModule, UiExtensionsModule, CoreModule, ThemeSharedModule], UiExtensionsModule] });
|
|
205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageModule, decorators: [{
|
|
206
|
+
type: NgModule,
|
|
207
|
+
args: [{
|
|
208
|
+
declarations: [...exportedDeclarations],
|
|
209
|
+
imports: [CommonModule, UiExtensionsModule, CoreModule, ThemeSharedModule],
|
|
210
|
+
exports: [...exportedDeclarations, UiExtensionsModule],
|
|
211
|
+
}]
|
|
212
|
+
}] });
|
|
179
213
|
|
|
180
214
|
/**
|
|
181
215
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abp-ng.components-page.js","sources":["../../../packages/components/page/src/page-parts.component.ts","../../../packages/components/page/src/page.component.ts","../../../packages/components/page/src/page-part.directive.ts","../../../packages/components/page/src/page.module.ts","../../../packages/components/page/src/abp-ng.components-page.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\n\nexport enum PageParts {\n title = 'PageTitleContainerComponent',\n breadcrumb = 'PageBreadcrumbContainerComponent',\n toolbar = 'PageToolbarContainerComponent',\n}\n\n@Component({\n selector: 'abp-page-title-container',\n template: `\n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class PageTitleContainerComponent {}\n\n@Component({\n selector: 'abp-page-breadcrumb-container',\n template: `\n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class PageBreadcrumbContainerComponent {}\n\n@Component({\n selector: 'abp-page-toolbar-container',\n template: `\n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class PageToolbarContainerComponent {}\n","import { Component, Input, ViewEncapsulation, ContentChild } from '@angular/core';\nimport {\n PageTitleContainerComponent,\n PageBreadcrumbContainerComponent,\n PageToolbarContainerComponent,\n PageParts,\n} from './page-parts.component';\n\n@Component({\n selector: 'abp-page',\n templateUrl: './page.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class PageComponent {\n @Input() title: string;\n\n toolbarVisible = false;\n _toolbarData: any;\n @Input('toolbar') set toolbarData(val: any) {\n this._toolbarData = val;\n this.toolbarVisible = true;\n }\n\n get toolbarData() {\n return this._toolbarData;\n }\n\n @Input('breadcrumb') breadcrumbVisible = true;\n\n pageParts = {\n title: PageParts.title,\n breadcrumb: PageParts.breadcrumb,\n toolbar: PageParts.toolbar,\n };\n\n @ContentChild(PageTitleContainerComponent) customTitle: PageTitleContainerComponent;\n @ContentChild(PageBreadcrumbContainerComponent)\n customBreadcrumb: PageBreadcrumbContainerComponent;\n @ContentChild(PageToolbarContainerComponent) customToolbar: PageToolbarContainerComponent;\n\n get shouldRenderRow() {\n return !!(\n this.title ||\n this.toolbarVisible ||\n this.breadcrumbVisible ||\n this.customTitle ||\n this.customBreadcrumb ||\n this.customToolbar\n );\n }\n}\n","import {\n Directive,\n TemplateRef,\n ViewContainerRef,\n Input,\n InjectionToken,\n Optional,\n Inject,\n OnInit,\n OnDestroy,\n Injector,\n OnChanges,\n SimpleChanges,\n SimpleChange,\n} from '@angular/core';\nimport { Observable, Subscription, of } from 'rxjs';\n\nexport interface PageRenderStrategy {\n shouldRender(type?: string): boolean | Observable<boolean>;\n onInit?(type?: string, injector?: Injector, context?: any): void;\n onDestroy?(type?: string, injector?: Injector, context?: any): void;\n onContextUpdate?(change?: SimpleChange): void;\n}\n\nexport const PAGE_RENDER_STRATEGY = new InjectionToken<PageRenderStrategy>('PAGE_RENDER_STRATEGY');\n\n@Directive({ selector: '[abpPagePart]' })\nexport class PagePartDirective implements OnInit, OnDestroy, OnChanges {\n hasRendered = false;\n type: string;\n subscription: Subscription;\n\n @Input('abpPagePartContext') context: any;\n @Input() set abpPagePart(type: string) {\n this.type = type;\n this.createRenderStream(type);\n }\n\n render = (shouldRender: boolean) => {\n if (shouldRender && !this.hasRendered) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasRendered = true;\n } else if (!shouldRender && this.hasRendered) {\n this.viewContainer.clear();\n this.hasRendered = false;\n }\n };\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n @Optional() @Inject(PAGE_RENDER_STRATEGY) private renderLogic: PageRenderStrategy,\n private injector: Injector,\n ) {}\n\n ngOnChanges({ context }: SimpleChanges): void {\n if (this.renderLogic?.onContextUpdate) {\n this.renderLogic.onContextUpdate(context);\n }\n }\n\n ngOnInit() {\n if (this.renderLogic?.onInit) {\n this.renderLogic.onInit(this.type, this.injector, this.context);\n }\n }\n\n ngOnDestroy() {\n this.clearSubscription();\n\n if (this.renderLogic?.onDestroy) {\n this.renderLogic.onDestroy(this.type, this.injector, this.context);\n }\n }\n\n shouldRender(type: string) {\n if (this.renderLogic) {\n const willRender = this.renderLogic.shouldRender(type);\n return willRender instanceof Observable ? willRender : of(willRender);\n }\n return of(true);\n }\n\n protected createRenderStream(type: string) {\n this.clearSubscription();\n\n this.subscription = this.shouldRender(type).subscribe(this.render);\n }\n\n protected clearSubscription() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UiExtensionsModule } from '@abp/ng.theme.shared/extensions';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { CoreModule } from '@abp/ng.core';\nimport { PageComponent } from './page.component';\nimport {\n PageTitleContainerComponent,\n PageBreadcrumbContainerComponent,\n PageToolbarContainerComponent,\n} from './page-parts.component';\nimport { PagePartDirective } from './page-part.directive';\n\nconst exportedDeclarations = [\n PageComponent,\n PageTitleContainerComponent,\n PageBreadcrumbContainerComponent,\n PageToolbarContainerComponent,\n PagePartDirective,\n];\n\n@NgModule({\n declarations: [...exportedDeclarations],\n imports: [CommonModule, UiExtensionsModule, CoreModule, ThemeSharedModule],\n exports: [...exportedDeclarations],\n})\nexport class PageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abp-ng.components-page.js","sources":["../../../../packages/components/page/src/page-part.directive.ts","../../../../packages/components/page/src/page-parts.component.ts","../../../../packages/components/page/src/page.component.ts","../../../../packages/components/page/src/page.component.html","../../../../packages/components/page/src/page.module.ts","../../../../packages/components/page/src/abp-ng.components-page.ts"],"sourcesContent":["import {\n Directive,\n TemplateRef,\n ViewContainerRef,\n Input,\n InjectionToken,\n Optional,\n Inject,\n OnInit,\n OnDestroy,\n Injector,\n OnChanges,\n SimpleChanges,\n SimpleChange,\n} from '@angular/core';\nimport { Observable, Subscription, of } from 'rxjs';\n\nexport interface PageRenderStrategy {\n shouldRender(type?: string): boolean | Observable<boolean>;\n onInit?(type?: string, injector?: Injector, context?: any): void;\n onDestroy?(type?: string, injector?: Injector, context?: any): void;\n onContextUpdate?(change?: SimpleChange): void;\n}\n\nexport const PAGE_RENDER_STRATEGY = new InjectionToken<PageRenderStrategy>('PAGE_RENDER_STRATEGY');\n\n@Directive({ selector: '[abpPagePart]' })\nexport class PagePartDirective implements OnInit, OnDestroy, OnChanges {\n hasRendered = false;\n type: string;\n subscription: Subscription;\n\n @Input('abpPagePartContext') context: any;\n @Input() set abpPagePart(type: string) {\n this.type = type;\n this.createRenderStream(type);\n }\n\n render = (shouldRender: boolean) => {\n if (shouldRender && !this.hasRendered) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasRendered = true;\n } else if (!shouldRender && this.hasRendered) {\n this.viewContainer.clear();\n this.hasRendered = false;\n }\n };\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n @Optional() @Inject(PAGE_RENDER_STRATEGY) private renderLogic: PageRenderStrategy,\n private injector: Injector,\n ) {}\n\n ngOnChanges({ context }: SimpleChanges): void {\n if (this.renderLogic?.onContextUpdate) {\n this.renderLogic.onContextUpdate(context);\n }\n }\n\n ngOnInit() {\n if (this.renderLogic?.onInit) {\n this.renderLogic.onInit(this.type, this.injector, this.context);\n }\n }\n\n ngOnDestroy() {\n this.clearSubscription();\n\n if (this.renderLogic?.onDestroy) {\n this.renderLogic.onDestroy(this.type, this.injector, this.context);\n }\n }\n\n shouldRender(type: string) {\n if (this.renderLogic) {\n const willRender = this.renderLogic.shouldRender(type);\n return willRender instanceof Observable ? willRender : of(willRender);\n }\n return of(true);\n }\n\n protected createRenderStream(type: string) {\n this.clearSubscription();\n\n this.subscription = this.shouldRender(type).subscribe(this.render);\n }\n\n protected clearSubscription() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\nexport enum PageParts {\n title = 'PageTitleContainerComponent',\n breadcrumb = 'PageBreadcrumbContainerComponent',\n toolbar = 'PageToolbarContainerComponent',\n}\n\n@Component({\n selector: 'abp-page-title-container',\n template: ` <ng-content></ng-content> `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class PageTitleContainerComponent {}\n\n@Component({\n selector: 'abp-page-breadcrumb-container',\n template: ` <ng-content></ng-content> `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class PageBreadcrumbContainerComponent {}\n\n@Component({\n selector: 'abp-page-toolbar-container',\n template: ` <ng-content></ng-content> `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class PageToolbarContainerComponent {}\n","import { Component, Input, ViewEncapsulation, ContentChild } from '@angular/core';\nimport {\n PageTitleContainerComponent,\n PageBreadcrumbContainerComponent,\n PageToolbarContainerComponent,\n PageParts,\n} from './page-parts.component';\n\n@Component({\n selector: 'abp-page',\n templateUrl: './page.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class PageComponent {\n @Input() title: string;\n\n toolbarVisible = false;\n _toolbarData: any;\n @Input('toolbar') set toolbarData(val: any) {\n this._toolbarData = val;\n this.toolbarVisible = true;\n }\n\n get toolbarData() {\n return this._toolbarData;\n }\n\n @Input('breadcrumb') breadcrumbVisible = true;\n\n pageParts = {\n title: PageParts.title,\n breadcrumb: PageParts.breadcrumb,\n toolbar: PageParts.toolbar,\n };\n\n @ContentChild(PageTitleContainerComponent) customTitle: PageTitleContainerComponent;\n @ContentChild(PageBreadcrumbContainerComponent)\n customBreadcrumb: PageBreadcrumbContainerComponent;\n @ContentChild(PageToolbarContainerComponent) customToolbar: PageToolbarContainerComponent;\n\n get shouldRenderRow() {\n return !!(\n this.title ||\n this.toolbarVisible ||\n this.breadcrumbVisible ||\n this.customTitle ||\n this.customBreadcrumb ||\n this.customToolbar\n );\n }\n}\n","<div class=\"row entry-row\" *ngIf=\"shouldRenderRow\">\n <ng-container *ngIf=\"customTitle; else defaultTitleTemplate\">\n <ng-content select=\"abp-page-title-container\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"customBreadcrumb; else defaultBreadcrumbTemplate\">\n <ng-content select=\"abp-page-breadcrumb-container\"></ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"customToolbar; else defaultPageToolbarTemplate\">\n <ng-content select=\"abp-page-toolbar-container\"></ng-content>\n </ng-container>\n</div>\n\n<ng-content></ng-content>\n\n<ng-template #defaultTitleTemplate>\n <ng-container *ngIf=\"title\">\n <div class=\"col-auto\" *abpPagePart=\"pageParts.title\">\n <h1 class=\"content-header-title\">\n {{ title }}\n </h1>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #defaultBreadcrumbTemplate>\n <ng-container *ngIf=\"breadcrumbVisible\">\n <div class=\"col-lg-auto pl-lg-0\" *abpPagePart=\"pageParts.breadcrumb\">\n <abp-breadcrumb></abp-breadcrumb>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #defaultPageToolbarTemplate>\n <ng-container *ngIf=\"toolbarVisible\">\n <div class=\"col\" *abpPagePart=\"pageParts.toolbar; context: toolbarData\">\n <abp-page-toolbar [record]=\"toolbarData\"></abp-page-toolbar>\n </div>\n </ng-container>\n</ng-template>\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { UiExtensionsModule } from '@abp/ng.theme.shared/extensions';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PagePartDirective } from './page-part.directive';\nimport {\n PageBreadcrumbContainerComponent,\n PageTitleContainerComponent,\n PageToolbarContainerComponent,\n} from './page-parts.component';\nimport { PageComponent } from './page.component';\n\nconst exportedDeclarations = [\n PageComponent,\n PageTitleContainerComponent,\n PageBreadcrumbContainerComponent,\n PageToolbarContainerComponent,\n PagePartDirective,\n];\n\n@NgModule({\n declarations: [...exportedDeclarations],\n imports: [CommonModule, UiExtensionsModule, CoreModule, ThemeSharedModule],\n exports: [...exportedDeclarations, UiExtensionsModule],\n})\nexport class PageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|