@rafaelaalmeidaa/primordash 0.0.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.
Files changed (60) hide show
  1. package/README.md +24 -0
  2. package/esm2020/lib/components/card/card.component.mjs +69 -0
  3. package/esm2020/lib/components/charts/bar-line/bar-line.component.mjs +245 -0
  4. package/esm2020/lib/components/charts/bubble/bubble.component.mjs +147 -0
  5. package/esm2020/lib/components/charts/pie/pie.component.mjs +161 -0
  6. package/esm2020/lib/components/charts/simple-card/simple-card.component.mjs +31 -0
  7. package/esm2020/lib/components/charts/table/table.component.mjs +26 -0
  8. package/esm2020/lib/components/dashboard/dashboard.component.mjs +251 -0
  9. package/esm2020/lib/components/modal-edit/modal-edit.component.mjs +133 -0
  10. package/esm2020/lib/components/modal-edit-chart/modal-edit-chart.component.mjs +56 -0
  11. package/esm2020/lib/models/dashboard.model.mjs +46 -0
  12. package/esm2020/lib/primordash.component.mjs +75 -0
  13. package/esm2020/lib/primordash.module.mjs +92 -0
  14. package/esm2020/lib/primordash.service.mjs +14 -0
  15. package/esm2020/lib/services/generic.mjs +50 -0
  16. package/esm2020/public-api.mjs +8 -0
  17. package/esm2020/rafaAlmeida-primordash.mjs +5 -0
  18. package/esm2020/rafaelaalmeidaa-primordash.mjs +5 -0
  19. package/fesm2015/rafaAlmeida-primordash.mjs +1374 -0
  20. package/fesm2015/rafaAlmeida-primordash.mjs.map +1 -0
  21. package/fesm2015/rafaelaalmeidaa-primordash.mjs +1374 -0
  22. package/fesm2015/rafaelaalmeidaa-primordash.mjs.map +1 -0
  23. package/fesm2020/rafaAlmeida-primordash.mjs +1349 -0
  24. package/fesm2020/rafaAlmeida-primordash.mjs.map +1 -0
  25. package/fesm2020/rafaelaalmeidaa-primordash.mjs +1349 -0
  26. package/fesm2020/rafaelaalmeidaa-primordash.mjs.map +1 -0
  27. package/index.d.ts +5 -0
  28. package/lib/components/card/card.component.d.ts +21 -0
  29. package/lib/components/charts/bar-line/bar-line.component.d.ts +32 -0
  30. package/lib/components/charts/bubble/bubble.component.d.ts +27 -0
  31. package/lib/components/charts/pie/pie.component.d.ts +28 -0
  32. package/lib/components/charts/simple-card/simple-card.component.d.ts +15 -0
  33. package/lib/components/charts/table/table.component.d.ts +13 -0
  34. package/lib/components/dashboard/dashboard.component.d.ts +58 -0
  35. package/lib/components/modal-edit/modal-edit.component.d.ts +32 -0
  36. package/lib/components/modal-edit-chart/modal-edit-chart.component.d.ts +16 -0
  37. package/lib/models/dashboard.model.d.ts +118 -0
  38. package/lib/primordash.component.d.ts +16 -0
  39. package/lib/primordash.module.d.ts +26 -0
  40. package/lib/primordash.service.d.ts +6 -0
  41. package/lib/services/generic.d.ts +3 -0
  42. package/package.json +40 -0
  43. package/public-api.d.ts +4 -0
  44. package/src/lib/assets/fonts/google_icons_outlined.ttf +0 -0
  45. package/src/lib/assets/fonts/google_icons_rounded.ttf +0 -0
  46. package/src/lib/assets/fonts/google_icons_sharp.ttf +0 -0
  47. package/src/lib/assets/images/bar.png +0 -0
  48. package/src/lib/assets/images/doughnut.png +0 -0
  49. package/src/lib/assets/images/halfDoughnut.png +0 -0
  50. package/src/lib/assets/images/lineBar.png +0 -0
  51. package/src/lib/assets/images/multiPie.png +0 -0
  52. package/src/lib/assets/images/pie.png +0 -0
  53. package/src/lib/assets/images/polarArea.png +0 -0
  54. package/src/lib/assets/images/verticalBar.png +0 -0
  55. package/src/lib/assets/images/verticalStackedBar.png +0 -0
  56. package/src/lib/assets/style.scss +5 -0
  57. package/src/lib/assets/styles/_colors.scss +11 -0
  58. package/src/lib/assets/styles/_fonts.scss +30 -0
  59. package/src/lib/assets/styles/_modal.scss +36 -0
  60. package/src/lib/assets/styles/_ng-select.scss +128 -0
@@ -0,0 +1,133 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "ngx-bootstrap/modal";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/forms";
6
+ import * as i4 from "@ng-select/ng-select";
7
+ export class ModalEditComponent {
8
+ constructor(modalService) {
9
+ this.modalService = modalService;
10
+ this.rows = [];
11
+ this.rowsType = '';
12
+ this.simpleType = { id: 'simple', label: 'Quantidade' };
13
+ this.types = [];
14
+ this.data = [];
15
+ this.groupType = [];
16
+ this.closeModal = new EventEmitter();
17
+ this.saveData = new EventEmitter();
18
+ }
19
+ ngOnInit() {
20
+ this.types = [this.simpleType, ...this.groupType];
21
+ this.rowsType = 'simple';
22
+ if (this.rows?.length) {
23
+ this.rows = this.rows.map(r => this.buildRowFromFinalValue(r.finalValue));
24
+ }
25
+ else {
26
+ this.addRow();
27
+ }
28
+ }
29
+ addRow() {
30
+ this.rows.push({
31
+ levels: [this.addTodosOption(this.data)],
32
+ selectedPath: [],
33
+ finalValue: [],
34
+ finalFontColor: '',
35
+ finalBackgroudColor: ''
36
+ });
37
+ }
38
+ removeRow(index) {
39
+ this.rows.splice(index, 1);
40
+ }
41
+ cloneRow(index) {
42
+ const original = this.rows[index];
43
+ const cloned = this.buildRowFromFinalValue(original.finalValue);
44
+ cloned.finalFontColor = original.finalFontColor;
45
+ cloned.finalBackgroudColor = original.finalBackgroudColor;
46
+ this.rows.push(cloned);
47
+ }
48
+ onSelect(item, rowIndex, levelIndex) {
49
+ const row = this.rows[rowIndex];
50
+ row.levels = row.levels.slice(0, levelIndex + 1);
51
+ row.selectedPath = row.selectedPath.slice(0, levelIndex);
52
+ row.selectedPath[levelIndex] = item;
53
+ if (item.type === 'group' && item.items?.length) {
54
+ row.levels.push(this.addTodosOption(item.items));
55
+ }
56
+ this.updateFinalValue(row);
57
+ }
58
+ updateFinalValue(row) {
59
+ row.finalValue = row.selectedPath.map(i => String(i.id));
60
+ }
61
+ onFontColorChange(event, rowIndex) {
62
+ const row = this.rows[rowIndex];
63
+ const color = event.target.value;
64
+ row.finalFontColor = color;
65
+ }
66
+ onBackgroundChange(event, rowIndex) {
67
+ var row = this.rows[rowIndex];
68
+ const color = event.target.value;
69
+ row.finalBackgroudColor = color;
70
+ }
71
+ onCloseModal() {
72
+ this.closeModal.emit();
73
+ }
74
+ onSaveData() {
75
+ const newData = this.rows.map(r => ({
76
+ finalValue: r.finalValue,
77
+ finalBackgroudColor: r.finalBackgroudColor,
78
+ finalFontColor: r.finalFontColor,
79
+ }));
80
+ this.saveData.emit({ rowsType: this.rowsType, rows: this.rows });
81
+ }
82
+ isFlatLevel(level) {
83
+ return level.every(item => item.type !== 'group') ?? false;
84
+ }
85
+ buildRowFromFinalValue(finalValue) {
86
+ const row = {
87
+ levels: [this.addTodosOption(this.data)],
88
+ selectedPath: [],
89
+ finalValue,
90
+ finalFontColor: '',
91
+ finalBackgroudColor: ''
92
+ };
93
+ let currentLevel = this.data;
94
+ finalValue.forEach((id, index) => {
95
+ const found = currentLevel.find(item => item.id === id);
96
+ if (!found)
97
+ return;
98
+ row.selectedPath[index] = found;
99
+ if (found.type === 'group' && found.items) {
100
+ currentLevel = found.items;
101
+ row.levels.push(this.addTodosOption(currentLevel));
102
+ }
103
+ });
104
+ return row;
105
+ }
106
+ addTodosOption(items) {
107
+ const isFlat = items?.every(item => item.type !== 'group');
108
+ if (!isFlat)
109
+ return items;
110
+ const alreadyHasTodos = items.some(i => i.id === 'todos');
111
+ if (alreadyHasTodos)
112
+ return items;
113
+ return [
114
+ { id: 'todos', label: 'Todos', type: 'option' },
115
+ ...items
116
+ ];
117
+ }
118
+ }
119
+ ModalEditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ModalEditComponent, deps: [{ token: i1.BsModalService }], target: i0.ɵɵFactoryTarget.Component });
120
+ ModalEditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ModalEditComponent, selector: "lib-modal-edit", inputs: { data: "data", groupType: "groupType" }, outputs: { closeModal: "closeModal", saveData: "saveData" }, ngImport: i0, template: "<header class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">Editar fonte dos dados</h4>\r\n <button type=\"button\" class=\"btn-close close pull-right\" aria-label=\"Close\" (click)=\"onCloseModal()\">\r\n <span aria-hidden=\"true\" class=\"visually-hidden\">&times;</span>\r\n </button>\r\n</header>\r\n<body class=\"modal-body table-form py-2\">\r\n <label>Tipo de Agrupamento dos dados:</label>\r\n <ng-select\r\n class=\" col-12 col-sm-4 mb-1\"\r\n [items]=\"types\"\r\n bindValue=\"id\"\r\n bindLabel=\"label\"\r\n [clearable]=\"false\"\r\n placeholder=\"Selecione...\"\r\n [(ngModel)]=\"rowsType\">\r\n </ng-select>\r\n <article *ngFor=\"let row of rows; let rowIndex = index\" class=\"line mb-2\">\r\n <div class=\"d-flex\">\r\n <ng-container *ngFor=\"let level of row.levels; let levelIndex = index\">\r\n <ng-select class=\"me-1\"\r\n [items]=\"level\"\r\n bindLabel=\"label\"\r\n [clearable]=\"false\"\r\n [placeholder]=\"'Selecione...'\"\r\n [ngModel]=\"row.selectedPath[levelIndex]\"\r\n (change)=\"onSelect($event, rowIndex, levelIndex)\">\r\n </ng-select>\r\n </ng-container>\r\n </div>\r\n <div class=\"d-flex\">\r\n <div class=\"color-div me-2\" [style.background-color]=\"rows[rowIndex].finalBackgroudColor\">\r\n <button class=\"btn font-icon\" [style.color]=\"rows[rowIndex].finalFontColor\"\r\n title=\"Cor do texto\" (click)=\"fontColor.click()\">\r\n format_color_text\r\n </button>\r\n <input #fontColor class=\"hide\" type=\"color\" (change)=\"onFontColorChange($event, rowIndex)\">\r\n <hr class=\"divisor\">\r\n <button class=\"btn font-icon\" [style.color]=\"rows[rowIndex].finalFontColor\"\r\n title=\"Cor de fundo\" (click)=\"backgroundColor.click()\">\r\n colors\r\n </button>\r\n <input #backgroundColor class=\"hide\" type=\"color\" (change)=\"onBackgroundChange($event, rowIndex)\">\r\n </div>\r\n <button class=\"btn btn-basic font-icon me-2\" type=\"button\" (click)=\"cloneRow(rowIndex)\" title=\"Clonar linha\">\r\n copy_all\r\n </button>\r\n <button class=\"btn btn-danger font-icon\" type=\"button\" (click)=\"removeRow(rowIndex)\" title=\"Remover linha\">\r\n delete\r\n </button>\r\n </div>\r\n </article>\r\n <div class=\"d-flex mb-2\">\r\n <button class=\"btn btn-success\" type=\"button\" (click)=\"addRow()\" title=\"Adicionar linha\">+</button>\r\n </div>\r\n <div class=\"d-flex justify-content-end mb-2\">\r\n <button class=\"btn btn-success\" type=\"button\" (click)=\"onSaveData()\" title=\"Salvar\">Salvar</button>\r\n </div>\r\n</body>", styles: [".modal-body{overflow-x:scroll}.modal-body .line{display:flex;justify-content:space-between}.modal-body .ng-select-alternative{min-width:150px}.modal-body .hide{width:0;visibility:hidden}.modal-body .color-div,.modal-body .btn-basic{border:1px solid gray;border-radius:5px}.modal-body .color-div{display:flex}.modal-body .color-div .divisor{height:80%;margin:5% 0;border:1px solid black}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }] });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ModalEditComponent, decorators: [{
122
+ type: Component,
123
+ args: [{ selector: 'lib-modal-edit', template: "<header class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">Editar fonte dos dados</h4>\r\n <button type=\"button\" class=\"btn-close close pull-right\" aria-label=\"Close\" (click)=\"onCloseModal()\">\r\n <span aria-hidden=\"true\" class=\"visually-hidden\">&times;</span>\r\n </button>\r\n</header>\r\n<body class=\"modal-body table-form py-2\">\r\n <label>Tipo de Agrupamento dos dados:</label>\r\n <ng-select\r\n class=\" col-12 col-sm-4 mb-1\"\r\n [items]=\"types\"\r\n bindValue=\"id\"\r\n bindLabel=\"label\"\r\n [clearable]=\"false\"\r\n placeholder=\"Selecione...\"\r\n [(ngModel)]=\"rowsType\">\r\n </ng-select>\r\n <article *ngFor=\"let row of rows; let rowIndex = index\" class=\"line mb-2\">\r\n <div class=\"d-flex\">\r\n <ng-container *ngFor=\"let level of row.levels; let levelIndex = index\">\r\n <ng-select class=\"me-1\"\r\n [items]=\"level\"\r\n bindLabel=\"label\"\r\n [clearable]=\"false\"\r\n [placeholder]=\"'Selecione...'\"\r\n [ngModel]=\"row.selectedPath[levelIndex]\"\r\n (change)=\"onSelect($event, rowIndex, levelIndex)\">\r\n </ng-select>\r\n </ng-container>\r\n </div>\r\n <div class=\"d-flex\">\r\n <div class=\"color-div me-2\" [style.background-color]=\"rows[rowIndex].finalBackgroudColor\">\r\n <button class=\"btn font-icon\" [style.color]=\"rows[rowIndex].finalFontColor\"\r\n title=\"Cor do texto\" (click)=\"fontColor.click()\">\r\n format_color_text\r\n </button>\r\n <input #fontColor class=\"hide\" type=\"color\" (change)=\"onFontColorChange($event, rowIndex)\">\r\n <hr class=\"divisor\">\r\n <button class=\"btn font-icon\" [style.color]=\"rows[rowIndex].finalFontColor\"\r\n title=\"Cor de fundo\" (click)=\"backgroundColor.click()\">\r\n colors\r\n </button>\r\n <input #backgroundColor class=\"hide\" type=\"color\" (change)=\"onBackgroundChange($event, rowIndex)\">\r\n </div>\r\n <button class=\"btn btn-basic font-icon me-2\" type=\"button\" (click)=\"cloneRow(rowIndex)\" title=\"Clonar linha\">\r\n copy_all\r\n </button>\r\n <button class=\"btn btn-danger font-icon\" type=\"button\" (click)=\"removeRow(rowIndex)\" title=\"Remover linha\">\r\n delete\r\n </button>\r\n </div>\r\n </article>\r\n <div class=\"d-flex mb-2\">\r\n <button class=\"btn btn-success\" type=\"button\" (click)=\"addRow()\" title=\"Adicionar linha\">+</button>\r\n </div>\r\n <div class=\"d-flex justify-content-end mb-2\">\r\n <button class=\"btn btn-success\" type=\"button\" (click)=\"onSaveData()\" title=\"Salvar\">Salvar</button>\r\n </div>\r\n</body>", styles: [".modal-body{overflow-x:scroll}.modal-body .line{display:flex;justify-content:space-between}.modal-body .ng-select-alternative{min-width:150px}.modal-body .hide{width:0;visibility:hidden}.modal-body .color-div,.modal-body .btn-basic{border:1px solid gray;border-radius:5px}.modal-body .color-div{display:flex}.modal-body .color-div .divisor{height:80%;margin:5% 0;border:1px solid black}\n"] }]
124
+ }], ctorParameters: function () { return [{ type: i1.BsModalService }]; }, propDecorators: { data: [{
125
+ type: Input
126
+ }], groupType: [{
127
+ type: Input
128
+ }], closeModal: [{
129
+ type: Output
130
+ }], saveData: [{
131
+ type: Output
132
+ }] } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmltb3JkYXNoL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC1lZGl0L21vZGFsLWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJpbW9yZGFzaC9zcmMvbGliL2NvbXBvbmVudHMvbW9kYWwtZWRpdC9tb2RhbC1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQTBCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFVdkcsTUFBTSxPQUFPLGtCQUFrQjtJQWE3QixZQUNVLFlBQTRCO1FBQTVCLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQVh0QyxTQUFJLEdBQWdCLEVBQUUsQ0FBQztRQUN2QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGVBQVUsR0FBVyxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBQyxDQUFDO1FBQ3hELFVBQUssR0FBYSxFQUFFLENBQUM7UUFFWixTQUFJLEdBQWdCLEVBQUUsQ0FBQztRQUN2QixjQUFTLEdBQVksRUFBRSxDQUFDO1FBQ3hCLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMxRCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFlLENBQUM7SUFJbkUsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxJQUFJ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LFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQnNNb2RhbFJlZiwgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcclxuaW1wb3J0IHsgTW9kYWxJdGVtLCBTZWxlY3QsIFNlbGVjdFJvdyB9IGZyb20gJy4uLy4uL21vZGVscy9kYXNoYm9hcmQubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbW9kYWwtZWRpdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLWVkaXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21vZGFsLWVkaXQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgbW9kYWxSZWY/OiBCc01vZGFsUmVmO1xyXG4gIHJvd3M6IFNlbGVjdFJvd1tdID0gW107XHJcbiAgcm93c1R5cGU6IHN0cmluZyA9ICcnO1xyXG4gIHNpbXBsZVR5cGU6IFNlbGVjdCA9IHtpZDonc2ltcGxlJywgbGFiZWw6ICdRdWFudGlkYWRlJ307XHJcbiAgdHlwZXM6IFNlbGVjdFtdID0gW107XHJcbiAgXHJcbiAgQElucHV0KCkgZGF0YTogTW9kYWxJdGVtW10gPSBbXTtcclxuICBASW5wdXQoKSBncm91cFR5cGU6U2VsZWN0W10gPSBbXTtcclxuXHRAT3V0cHV0KCkgY2xvc2VNb2RhbDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cdEBPdXRwdXQoKSBzYXZlRGF0YTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdFJvd1tdPigpO1xyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnR5cGVzID0gW3RoaXMuc2ltcGxlVHlwZSwgLi4udGhpcy5ncm91cFR5cGVdO1xyXG4gICAgdGhpcy5yb3dzVHlwZSA9ICdzaW1wbGUnO1xyXG4gICAgaWYgKHRoaXMucm93cz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMucm93cyA9IHRoaXMucm93cy5tYXAociA9PlxyXG4gICAgICAgIHRoaXMuYnVpbGRSb3dGcm9tRmluYWxWYWx1ZShyLmZpbmFsVmFsdWUpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFkZFJvdygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkUm93KCk6dm9pZCB7XHJcbiAgICB0aGlzLnJvd3MucHVzaCh7XHJcbiAgICAgIGxldmVsczogW3RoaXMuYWRkVG9kb3NPcHRpb24odGhpcy5kYXRhKV0sXHJcbiAgICAgIHNlbGVjdGVkUGF0aDogW10sXHJcbiAgICAgIGZpbmFsVmFsdWU6IFtdLFxyXG4gICAgICBmaW5hbEZvbnRDb2xvcjogJycsXHJcbiAgICAgIGZpbmFsQmFja2dyb3VkQ29sb3I6ICcnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVJvdyhpbmRleDogbnVtYmVyKTp2b2lkIHtcclxuICAgIHRoaXMucm93cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gIH1cclxuXHJcbiAgY2xvbmVSb3coaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3Qgb3JpZ2luYWwgPSB0aGlzLnJvd3NbaW5kZXhdO1xyXG5cclxuICAgIGNvbnN0IGNsb25lZCA9IHRoaXMuYnVpbGRSb3dGcm9tRmluYWxWYWx1ZShvcmlnaW5hbC5maW5hbFZhbHVlKTtcclxuXHJcbiAgICBjbG9uZWQuZmluYWxGb250Q29sb3IgPSBvcmlnaW5hbC5maW5hbEZvbnRDb2xvcjtcclxuICAgIGNsb25lZC5maW5hbEJhY2tncm91ZENvbG9yID0gb3JpZ2luYWwuZmluYWxCYWNrZ3JvdWRDb2xvcjtcclxuXHJcbiAgICB0aGlzLnJvd3MucHVzaChjbG9uZWQpO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3QoaXRlbTogTW9kYWxJdGVtLCByb3dJbmRleDogbnVtYmVyLCBsZXZlbEluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJvdyA9IHRoaXMucm93c1tyb3dJbmRleF07XHJcblxyXG4gICAgcm93LmxldmVscyA9IHJvdy5sZXZlbHMuc2xpY2UoMCwgbGV2ZWxJbmRleCArIDEpO1xyXG4gICAgcm93LnNlbGVjdGVkUGF0aCA9IHJvdy5zZWxlY3RlZFBhdGguc2xpY2UoMCwgbGV2ZWxJbmRleCk7XHJcblxyXG4gICAgcm93LnNlbGVjdGVkUGF0aFtsZXZlbEluZGV4XSA9IGl0ZW07XHJcblxyXG4gICAgaWYgKGl0ZW0udHlwZSA9PT0gJ2dyb3VwJyAmJiBpdGVtLml0ZW1zPy5sZW5ndGgpIHtcclxuICAgICAgcm93LmxldmVscy5wdXNoKHRoaXMuYWRkVG9kb3NPcHRpb24oaXRlbS5pdGVtcykpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlRmluYWxWYWx1ZShyb3cpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRmluYWxWYWx1ZShyb3c6IFNlbGVjdFJvdyk6dm9pZCB7XHJcbiAgICByb3cuZmluYWxWYWx1ZSA9IHJvdy5zZWxlY3RlZFBhdGgubWFwKGkgPT4gU3RyaW5nKGkuaWQpKTtcclxuICB9XHJcbiAgXHJcbiAgb25Gb250Q29sb3JDaGFuZ2UoZXZlbnQ6IEV2ZW50LCByb3dJbmRleDogbnVtYmVyKTp2b2lkIHtcclxuICAgIGNvbnN0IHJvdyA9IHRoaXMucm93c1tyb3dJbmRleF07XHJcbiAgICBjb25zdCBjb2xvciA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICByb3cuZmluYWxGb250Q29sb3IgPSBjb2xvcjtcclxuICB9XHJcbiAgXHJcbiAgb25CYWNrZ3JvdW5kQ2hhbmdlKGV2ZW50OiBFdmVudCwgcm93SW5kZXg6IG51bWJlcik6dm9pZCB7XHJcbiAgICB2YXIgcm93ID0gdGhpcy5yb3dzW3Jvd0luZGV4XTtcclxuICAgIGNvbnN0IGNvbG9yID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcclxuICAgIHJvdy5maW5hbEJhY2tncm91ZENvbG9yID0gY29sb3I7XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlTW9kYWwoKTp2b2lke1xyXG4gICAgdGhpcy5jbG9zZU1vZGFsLmVtaXQoKTtcclxuICB9XHJcbiAgXHJcbiAgb25TYXZlRGF0YSgpOnZvaWR7XHJcbiAgICBjb25zdCBuZXdEYXRhID0gdGhpcy5yb3dzLm1hcChyID0+ICh7XHJcbiAgICAgIGZpbmFsVmFsdWU6IHIuZmluYWxWYWx1ZSxcclxuICAgICAgZmluYWxCYWNrZ3JvdWRDb2xvcjogci5maW5hbEJhY2tncm91ZENvbG9yLFxyXG4gICAgICBmaW5hbEZvbnRDb2xvcjogci5maW5hbEZvbnRDb2xvcixcclxuICAgIH0pKTtcclxuICAgIHRoaXMuc2F2ZURhdGEuZW1pdCh7cm93c1R5cGU6IHRoaXMucm93c1R5cGUsIHJvd3M6IHRoaXMucm93c30pO1xyXG4gIH1cclxuXHJcbiAgaXNGbGF0TGV2ZWwobGV2ZWw6TW9kYWxJdGVtW10pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBsZXZlbC5ldmVyeShpdGVtID0+IGl0ZW0udHlwZSAhPT0gJ2dyb3VwJykgPz8gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBidWlsZFJvd0Zyb21GaW5hbFZhbHVlKGZpbmFsVmFsdWU6IHN0cmluZ1tdKTogU2VsZWN0Um93IHtcclxuXHJcbiAgICBjb25zdCByb3c6IFNlbGVjdFJvdyA9IHtcclxuICAgICAgbGV2ZWxzOiBbdGhpcy5hZGRUb2Rvc09wdGlvbih0aGlzLmRhdGEpXSxcclxuICAgICAgc2VsZWN0ZWRQYXRoOiBbXSxcclxuICAgICAgZmluYWxWYWx1ZSxcclxuICAgICAgZmluYWxGb250Q29sb3I6ICcnLFxyXG4gICAgICBmaW5hbEJhY2tncm91ZENvbG9yOiAnJ1xyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgY3VycmVudExldmVsID0gdGhpcy5kYXRhO1xyXG5cclxuICAgIGZpbmFsVmFsdWUuZm9yRWFjaCgoaWQsIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IGZvdW5kID0gY3VycmVudExldmVsLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBpZCk7XHJcblxyXG4gICAgICBpZiAoIWZvdW5kKSByZXR1cm47XHJcblxyXG4gICAgICByb3cuc2VsZWN0ZWRQYXRoW2luZGV4XSA9IGZvdW5kO1xyXG5cclxuICAgICAgaWYgKGZvdW5kLnR5cGUgPT09ICdncm91cCcgJiYgZm91bmQuaXRlbXMpIHtcclxuICAgICAgICBjdXJyZW50TGV2ZWwgPSBmb3VuZC5pdGVtcztcclxuICAgICAgICByb3cubGV2ZWxzLnB1c2godGhpcy5hZGRUb2Rvc09wdGlvbihjdXJyZW50TGV2ZWwpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHJvdztcclxuICB9XHJcblxyXG4gIGFkZFRvZG9zT3B0aW9uKGl0ZW1zOiBNb2RhbEl0ZW1bXSk6IE1vZGFsSXRlbVtdIHtcclxuICAgIGNvbnN0IGlzRmxhdCA9IGl0ZW1zPy5ldmVyeShpdGVtID0+IGl0ZW0udHlwZSAhPT0gJ2dyb3VwJyk7XHJcblxyXG4gICAgaWYgKCFpc0ZsYXQpIHJldHVybiBpdGVtcztcclxuXHJcbiAgICBjb25zdCBhbHJlYWR5SGFzVG9kb3MgPSBpdGVtcy5zb21lKGkgPT4gaS5pZCA9PT0gJ3RvZG9zJyk7XHJcbiAgICBpZiAoYWxyZWFkeUhhc1RvZG9zKSByZXR1cm4gaXRlbXM7XHJcblxyXG4gICAgcmV0dXJuIFtcclxuICAgICAgeyBpZDogJ3RvZG9zJywgbGFiZWw6ICdUb2RvcycsIHR5cGU6ICdvcHRpb24nIH0sXHJcbiAgICAgIC4uLml0ZW1zXHJcbiAgICBdO1xyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyIGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgPGg0IGNsYXNzPVwibW9kYWwtdGl0bGUgcHVsbC1sZWZ0XCI+RWRpdGFyIGZvbnRlIGRvcyBkYWRvczwvaDQ+XHJcbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2UgY2xvc2UgcHVsbC1yaWdodFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJvbkNsb3NlTW9kYWwoKVwiPlxyXG4gICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj4mdGltZXM7PC9zcGFuPlxyXG4gIDwvYnV0dG9uPlxyXG48L2hlYWRlcj5cclxuPGJvZHkgY2xhc3M9XCJtb2RhbC1ib2R5IHRhYmxlLWZvcm0gcHktMlwiPlxyXG4gIDxsYWJlbD5UaXBvIGRlIEFncnVwYW1lbnRvIGRvcyBkYWRvczo8L2xhYmVsPlxyXG4gIDxuZy1zZWxlY3RcclxuICAgIGNsYXNzPVwiIGNvbC0xMiBjb2wtc20tNCBtYi0xXCJcclxuICAgIFtpdGVtc109XCJ0eXBlc1wiXHJcbiAgICBiaW5kVmFsdWU9XCJpZFwiXHJcbiAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXHJcbiAgICBbY2xlYXJhYmxlXT1cImZhbHNlXCJcclxuICAgIHBsYWNlaG9sZGVyPVwiU2VsZWNpb25lLi4uXCJcclxuICAgIFsobmdNb2RlbCldPVwicm93c1R5cGVcIj5cclxuICA8L25nLXNlbGVjdD5cclxuICA8YXJ0aWNsZSAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3M7IGxldCByb3dJbmRleCA9IGluZGV4XCIgY2xhc3M9XCJsaW5lIG1iLTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGV2ZWwgb2Ygcm93LmxldmVsczsgbGV0IGxldmVsSW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgIDxuZy1zZWxlY3QgY2xhc3M9XCJtZS0xXCJcclxuICAgICAgICAgIFtpdGVtc109XCJsZXZlbFwiXHJcbiAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXHJcbiAgICAgICAgICBbY2xlYXJhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWNpb25lLi4uJ1wiXHJcbiAgICAgICAgICBbbmdNb2RlbF09XCJyb3cuc2VsZWN0ZWRQYXRoW2xldmVsSW5kZXhdXCJcclxuICAgICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3QoJGV2ZW50LCByb3dJbmRleCwgbGV2ZWxJbmRleClcIj5cclxuICAgICAgICA8L25nLXNlbGVjdD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLWRpdiBtZS0yXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwicm93c1tyb3dJbmRleF0uZmluYWxCYWNrZ3JvdWRDb2xvclwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gZm9udC1pY29uXCIgW3N0eWxlLmNvbG9yXT1cInJvd3Nbcm93SW5kZXhdLmZpbmFsRm9udENvbG9yXCJcclxuICAgICAgICAgIHRpdGxlPVwiQ29yIGRvIHRleHRvXCIgKGNsaWNrKT1cImZvbnRDb2xvci5jbGljaygpXCI+XHJcbiAgICAgICAgICBmb3JtYXRfY29sb3JfdGV4dFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxpbnB1dCAjZm9udENvbG9yIGNsYXNzPVwiaGlkZVwiIHR5cGU9XCJjb2xvclwiIChjaGFuZ2UpPVwib25Gb250Q29sb3JDaGFuZ2UoJGV2ZW50LCByb3dJbmRleClcIj5cclxuICAgICAgICA8aHIgY2xhc3M9XCJkaXZpc29yXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBmb250LWljb25cIiBbc3R5bGUuY29sb3JdPVwicm93c1tyb3dJbmRleF0uZmluYWxGb250Q29sb3JcIlxyXG4gICAgICAgICAgdGl0bGU9XCJDb3IgZGUgZnVuZG9cIiAoY2xpY2spPVwiYmFja2dyb3VuZENvbG9yLmNsaWNrKClcIj5cclxuICAgICAgICAgIGNvbG9yc1xyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxpbnB1dCAjYmFja2dyb3VuZENvbG9yIGNsYXNzPVwiaGlkZVwiIHR5cGU9XCJjb2xvclwiIChjaGFuZ2UpPVwib25CYWNrZ3JvdW5kQ2hhbmdlKCRldmVudCwgcm93SW5kZXgpXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1iYXNpYyBmb250LWljb24gbWUtMlwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xvbmVSb3cocm93SW5kZXgpXCIgdGl0bGU9XCJDbG9uYXIgbGluaGFcIj5cclxuICAgICAgICBjb3B5X2FsbFxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyIGZvbnQtaWNvblwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicmVtb3ZlUm93KHJvd0luZGV4KVwiIHRpdGxlPVwiUmVtb3ZlciBsaW5oYVwiPlxyXG4gICAgICAgIGRlbGV0ZVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYXJ0aWNsZT5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG1iLTJcIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZFJvdygpXCIgdGl0bGU9XCJBZGljaW9uYXIgbGluaGFcIj4rPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG1iLTJcIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uU2F2ZURhdGEoKVwiIHRpdGxlPVwiU2FsdmFyXCI+U2FsdmFyPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvYm9keT4iXX0=
@@ -0,0 +1,56 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class ModalEditChartComponent {
5
+ constructor() {
6
+ this.options = [
7
+ { id: 'bar', title: 'Barra' },
8
+ { id: 'stackedBar', title: 'Barra Empilhada' },
9
+ { id: 'verticalBar', title: 'Barra Vertical' },
10
+ { id: 'verticalStackedBar', title: 'Barra Vertical Empilhada' },
11
+ { id: 'verticalProgressBar', title: 'Barra de Progresso Vertical' },
12
+ { id: 'progressBar', title: 'Barra de Progresso' },
13
+ { id: 'lineBar', title: 'Linha + Barra' },
14
+ { id: 'lineBarStacked', title: 'Linha + Barra Empilhada' },
15
+ { id: 'line', title: 'Linha' },
16
+ { id: 'radar', title: 'Radar' },
17
+ { id: 'curveLine', title: 'Linha Curva' },
18
+ { id: 'pie', title: 'Pizza' },
19
+ { id: 'multiPie', title: 'Múltiplas Pizzas' },
20
+ { id: 'doughnut', title: 'Rosca' },
21
+ { id: 'halfDoughnut', title: 'Meia Rosca' },
22
+ { id: 'area', title: 'Área' },
23
+ { id: 'bubble', title: 'Bolhas' },
24
+ { id: 'polarArea', title: 'Área Polar' },
25
+ { id: 'simpleCard', title: 'Card Simples' },
26
+ { id: 'table', title: 'Tabela' },
27
+ { id: 'html', title: 'HTML Personalizado' },
28
+ ];
29
+ this.closeModal = new EventEmitter();
30
+ this.saveData = new EventEmitter();
31
+ }
32
+ ngOnInit() {
33
+ }
34
+ setCurrentOption(option) {
35
+ this.currentOption = option;
36
+ }
37
+ onCloseModal() {
38
+ this.closeModal.emit();
39
+ }
40
+ onSaveData() {
41
+ this.saveData.emit(this.currentOption);
42
+ }
43
+ }
44
+ ModalEditChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ModalEditChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
45
+ ModalEditChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ModalEditChartComponent, selector: "lib-modal-edit-chart", inputs: { currentOption: "currentOption" }, outputs: { closeModal: "closeModal", saveData: "saveData" }, ngImport: i0, template: "<header class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">Editar fonte dos dados</h4>\r\n <button type=\"button\" class=\"btn-close close pull-right\" aria-label=\"Close\" (click)=\"onCloseModal()\">\r\n <span aria-hidden=\"true\" class=\"visually-hidden\">&times;</span>\r\n </button>\r\n</header>\r\n<body class=\"modal-body table-form py-2\">\r\n <section class=\"d-grid\">\r\n <label >Titulo:\r\n <input class=\"form-control\"/>\r\n </label>\r\n <label>\r\n <input type=\"checkbox\"> Mostrar legenda no Gr\u00E1fico\r\n </label>\r\n <label>\r\n <input type=\"checkbox\"> Mostrar simbolo '%' na legenda\r\n </label>\r\n </section>\r\n <hr>\r\n <h3>TIPO:</h3>\r\n <section class=\"row g-0\">\r\n <div class=\"card-chart col-12 col-sm-6 col-md-6 col-lg-4 col-xl-3\" *ngFor=\"let opt of options\">\r\n <b>{{opt.title}}</b>\r\n <img [src]=\"'assets/dashboard/images/' + opt.id +'.png'\" (click)=\"setCurrentOption(opt.id)\">\r\n </div>\r\n </section>\r\n <div class=\"d-flex justify-content-end mb-2\">\r\n <button class=\"btn btn-success\" type=\"button\" (click)=\"onSaveData()\" title=\"Salvar\">Salvar</button>\r\n </div>\r\n</body>", styles: [".card-chart{display:flex;flex-direction:column;border:1px solid gray;border-radius:5px;padding:5px;aspect-ratio:1/1;overflow:hidden}.card-chart img{object-fit:cover;width:100%;margin:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ModalEditChartComponent, decorators: [{
47
+ type: Component,
48
+ args: [{ selector: 'lib-modal-edit-chart', template: "<header class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">Editar fonte dos dados</h4>\r\n <button type=\"button\" class=\"btn-close close pull-right\" aria-label=\"Close\" (click)=\"onCloseModal()\">\r\n <span aria-hidden=\"true\" class=\"visually-hidden\">&times;</span>\r\n </button>\r\n</header>\r\n<body class=\"modal-body table-form py-2\">\r\n <section class=\"d-grid\">\r\n <label >Titulo:\r\n <input class=\"form-control\"/>\r\n </label>\r\n <label>\r\n <input type=\"checkbox\"> Mostrar legenda no Gr\u00E1fico\r\n </label>\r\n <label>\r\n <input type=\"checkbox\"> Mostrar simbolo '%' na legenda\r\n </label>\r\n </section>\r\n <hr>\r\n <h3>TIPO:</h3>\r\n <section class=\"row g-0\">\r\n <div class=\"card-chart col-12 col-sm-6 col-md-6 col-lg-4 col-xl-3\" *ngFor=\"let opt of options\">\r\n <b>{{opt.title}}</b>\r\n <img [src]=\"'assets/dashboard/images/' + opt.id +'.png'\" (click)=\"setCurrentOption(opt.id)\">\r\n </div>\r\n </section>\r\n <div class=\"d-flex justify-content-end mb-2\">\r\n <button class=\"btn btn-success\" type=\"button\" (click)=\"onSaveData()\" title=\"Salvar\">Salvar</button>\r\n </div>\r\n</body>", styles: [".card-chart{display:flex;flex-direction:column;border:1px solid gray;border-radius:5px;padding:5px;aspect-ratio:1/1;overflow:hidden}.card-chart img{object-fit:cover;width:100%;margin:auto}\n"] }]
49
+ }], ctorParameters: function () { return []; }, propDecorators: { currentOption: [{
50
+ type: Input
51
+ }], closeModal: [{
52
+ type: Output
53
+ }], saveData: [{
54
+ type: Output
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZWRpdC1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmltb3JkYXNoL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC1lZGl0LWNoYXJ0L21vZGFsLWVkaXQtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJpbW9yZGFzaC9zcmMvbGliL2NvbXBvbmVudHMvbW9kYWwtZWRpdC1jaGFydC9tb2RhbC1lZGl0LWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVEvRSxNQUFNLE9BQU8sdUJBQXVCO0lBOEJsQztRQTVCQSxZQUFPLEdBQWlCO1lBQ3RCLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQzdCLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7WUFDOUMsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtZQUM5QyxFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUU7WUFDL0QsRUFBRSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLDZCQUE2QixFQUFFO1lBQ25FLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUU7WUFDbEQsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7WUFDekMsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLHlCQUF5QixFQUFFO1lBQzFELEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQzlCLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQy9CLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO1lBQ3pDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQzdCLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUU7WUFDN0MsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDbEMsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7WUFDM0MsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDN0IsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDakMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7WUFDeEMsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUU7WUFDM0MsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDaEMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtTQUM1QyxDQUFDO1FBR1EsZUFBVSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzFELGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVoRCxDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBMEI7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O3FIQTdDVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixxS0NScEMsaXNDQTZCTzs0RkRyQk0sdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjswRUE4QnZCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFydE9wdGlvbiwgREFTSEJPQVJEX0NIQVJUX1RZUEVTLCBEYXNoYm9hcmRDaGFydFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZGFzaGJvYXJkLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW1vZGFsLWVkaXQtY2hhcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1lZGl0LWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC1lZGl0LWNoYXJ0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsRWRpdENoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgb3B0aW9uczpDaGFydE9wdGlvbltdID0gW1xyXG4gICAgeyBpZDogJ2JhcicsIHRpdGxlOiAnQmFycmEnIH0sXHJcbiAgICB7IGlkOiAnc3RhY2tlZEJhcicsIHRpdGxlOiAnQmFycmEgRW1waWxoYWRhJyB9LFxyXG4gICAgeyBpZDogJ3ZlcnRpY2FsQmFyJywgdGl0bGU6ICdCYXJyYSBWZXJ0aWNhbCcgfSxcclxuICAgIHsgaWQ6ICd2ZXJ0aWNhbFN0YWNrZWRCYXInLCB0aXRsZTogJ0JhcnJhIFZlcnRpY2FsIEVtcGlsaGFkYScgfSxcclxuICAgIHsgaWQ6ICd2ZXJ0aWNhbFByb2dyZXNzQmFyJywgdGl0bGU6ICdCYXJyYSBkZSBQcm9ncmVzc28gVmVydGljYWwnIH0sXHJcbiAgICB7IGlkOiAncHJvZ3Jlc3NCYXInLCB0aXRsZTogJ0JhcnJhIGRlIFByb2dyZXNzbycgfSxcclxuICAgIHsgaWQ6ICdsaW5lQmFyJywgdGl0bGU6ICdMaW5oYSArIEJhcnJhJyB9LFxyXG4gICAgeyBpZDogJ2xpbmVCYXJTdGFja2VkJywgdGl0bGU6ICdMaW5oYSArIEJhcnJhIEVtcGlsaGFkYScgfSxcclxuICAgIHsgaWQ6ICdsaW5lJywgdGl0bGU6ICdMaW5oYScgfSxcclxuICAgIHsgaWQ6ICdyYWRhcicsIHRpdGxlOiAnUmFkYXInIH0sXHJcbiAgICB7IGlkOiAnY3VydmVMaW5lJywgdGl0bGU6ICdMaW5oYSBDdXJ2YScgfSxcclxuICAgIHsgaWQ6ICdwaWUnLCB0aXRsZTogJ1BpenphJyB9LFxyXG4gICAgeyBpZDogJ211bHRpUGllJywgdGl0bGU6ICdNw7psdGlwbGFzIFBpenphcycgfSxcclxuICAgIHsgaWQ6ICdkb3VnaG51dCcsIHRpdGxlOiAnUm9zY2EnIH0sXHJcbiAgICB7IGlkOiAnaGFsZkRvdWdobnV0JywgdGl0bGU6ICdNZWlhIFJvc2NhJyB9LFxyXG4gICAgeyBpZDogJ2FyZWEnLCB0aXRsZTogJ8OBcmVhJyB9LFxyXG4gICAgeyBpZDogJ2J1YmJsZScsIHRpdGxlOiAnQm9saGFzJyB9LFxyXG4gICAgeyBpZDogJ3BvbGFyQXJlYScsIHRpdGxlOiAnw4FyZWEgUG9sYXInIH0sXHJcbiAgICB7IGlkOiAnc2ltcGxlQ2FyZCcsIHRpdGxlOiAnQ2FyZCBTaW1wbGVzJyB9LFxyXG4gICAgeyBpZDogJ3RhYmxlJywgdGl0bGU6ICdUYWJlbGEnIH0sXHJcbiAgICB7IGlkOiAnaHRtbCcsIHRpdGxlOiAnSFRNTCBQZXJzb25hbGl6YWRvJyB9LFxyXG4gIF07XHJcblxyXG4gIEBJbnB1dCgpIGN1cnJlbnRPcHRpb24hOiBEYXNoYm9hcmRDaGFydFR5cGV8bnVsbDtcclxuICBAT3V0cHV0KCkgY2xvc2VNb2RhbDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzYXZlRGF0YTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG4gIFxyXG4gIHNldEN1cnJlbnRPcHRpb24ob3B0aW9uOiBEYXNoYm9hcmRDaGFydFR5cGUpOnZvaWR7XHJcbiAgICB0aGlzLmN1cnJlbnRPcHRpb24gPSBvcHRpb247XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlTW9kYWwoKTp2b2lke1xyXG4gICAgdGhpcy5jbG9zZU1vZGFsLmVtaXQoKTtcclxuICB9XHJcbiAgXHJcbiAgb25TYXZlRGF0YSgpOnZvaWR7XHJcbiAgICB0aGlzLnNhdmVEYXRhLmVtaXQodGhpcy5jdXJyZW50T3B0aW9uKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxoZWFkZXIgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZSBwdWxsLWxlZnRcIj5FZGl0YXIgZm9udGUgZG9zIGRhZG9zPC9oND5cclxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1jbG9zZSBjbG9zZSBwdWxsLXJpZ2h0XCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm9uQ2xvc2VNb2RhbCgpXCI+XHJcbiAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgPC9idXR0b24+XHJcbjwvaGVhZGVyPlxyXG48Ym9keSBjbGFzcz1cIm1vZGFsLWJvZHkgdGFibGUtZm9ybSBweS0yXCI+XHJcbiAgPHNlY3Rpb24gY2xhc3M9XCJkLWdyaWRcIj5cclxuICAgIDxsYWJlbCA+VGl0dWxvOlxyXG4gICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIi8+XHJcbiAgICA8L2xhYmVsPlxyXG4gICAgPGxhYmVsPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCI+IE1vc3RyYXIgbGVnZW5kYSBubyBHcsOhZmljb1xyXG4gICAgPC9sYWJlbD5cclxuICAgIDxsYWJlbD5cclxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPiBNb3N0cmFyIHNpbWJvbG8gJyUnIG5hIGxlZ2VuZGFcclxuICAgIDwvbGFiZWw+XHJcbiAgPC9zZWN0aW9uPlxyXG4gIDxocj5cclxuICA8aDM+VElQTzo8L2gzPlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwicm93IGctMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtY2hhcnQgY29sLTEyIGNvbC1zbS02IGNvbC1tZC02IGNvbC1sZy00IGNvbC14bC0zXCIgKm5nRm9yPVwibGV0IG9wdCBvZiBvcHRpb25zXCI+XHJcbiAgICAgIDxiPnt7b3B0LnRpdGxlfX08L2I+XHJcbiAgICAgIDxpbWcgW3NyY109XCInYXNzZXRzL2Rhc2hib2FyZC9pbWFnZXMvJyArIG9wdC5pZCArJy5wbmcnXCIgKGNsaWNrKT1cInNldEN1cnJlbnRPcHRpb24ob3B0LmlkKVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zZWN0aW9uPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtYi0yXCI+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvblNhdmVEYXRhKClcIiB0aXRsZT1cIlNhbHZhclwiPlNhbHZhcjwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2JvZHk+Il19
@@ -0,0 +1,46 @@
1
+ export const DASHBOARD_CHART_TYPES = [
2
+ 'bar',
3
+ 'stackedBar',
4
+ 'verticalBar',
5
+ 'verticalStackedBar',
6
+ 'verticalProgressBar',
7
+ 'progressBar',
8
+ 'lineBar',
9
+ 'lineBarStacked',
10
+ 'line',
11
+ 'radar',
12
+ 'curveLine',
13
+ 'pie',
14
+ 'multiPie',
15
+ 'doughnut',
16
+ 'halfDoughnut',
17
+ 'area',
18
+ 'bubble',
19
+ 'polarArea',
20
+ 'simpleCard',
21
+ 'table',
22
+ 'html',
23
+ ];
24
+ export const DASHBOARD_BAR_LINE_TYPES = [
25
+ 'bar', 'stackedBar', 'verticalBar', 'verticalStackedBar', 'progressBar', 'verticalProgressBar',
26
+ 'lineBar', 'lineBarStacked', 'line', 'radar', 'curveLine'
27
+ ];
28
+ export const SUPPORTED_CHART_TYPES = [
29
+ 'bar',
30
+ 'line',
31
+ 'radar'
32
+ ];
33
+ export const AXIS_ORIENTATION = [
34
+ 'x',
35
+ 'y',
36
+ ];
37
+ export const AXIS_DIMENSION = [
38
+ 'x',
39
+ 'y',
40
+ 'r',
41
+ ];
42
+ export const MODAL_TYPES = [
43
+ 'group',
44
+ 'option'
45
+ ];
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJpbW9yZGFzaC9zcmMvbGliL21vZGVscy9kYXNoYm9hcmQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEpBLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0lBQ25DLEtBQUs7SUFDTCxZQUFZO0lBQ1osYUFBYTtJQUNiLG9CQUFvQjtJQUNwQixxQkFBcUI7SUFDckIsYUFBYTtJQUNiLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsTUFBTTtJQUNOLE9BQU87SUFDUCxXQUFXO0lBQ1gsS0FBSztJQUNMLFVBQVU7SUFDVixVQUFVO0lBQ1YsY0FBYztJQUNkLE1BQU07SUFDTixRQUFRO0lBQ1IsV0FBVztJQUNYLFlBQVk7SUFDWixPQUFPO0lBQ1AsTUFBTTtDQUNFLENBQUM7QUFLWCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRTtJQUNyQyxLQUFLLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBQyxhQUFhLEVBQUMscUJBQXFCO0lBQzVGLFNBQVMsRUFBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFdBQVc7Q0FDekQsQ0FBQTtBQUlELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0lBQ25DLEtBQUs7SUFDTCxNQUFNO0lBQ04sT0FBTztDQUNDLENBQUM7QUFNWCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixHQUFHO0lBQ0gsR0FBRztDQUNLLENBQUM7QUFNWCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0NBQ0ssQ0FBQztBQU1YLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixPQUFPO0lBQ1AsUUFBUTtDQUNBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFydERhdGEsIENoYXJ0T3B0aW9ucywgQ2hhcnRUeXBlIH0gZnJvbSBcImNoYXJ0LmpzXCJcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2FyZCB7XHJcblxyXG4gIC8qKiBJZGVudGlmaWNhZG9yIMO6bmljbyBkbyBjYXJkICovXHJcbiAgaWQ/OiBudW1iZXI7XHJcblxyXG4gIC8qKiBUaXBvIGRvIGdyw6FmaWNvIGV4aWJpZG8gbm8gY2FyZCAqL1xyXG4gIHR5cGU/OiBEYXNoYm9hcmRDaGFydFR5cGU7XHJcblxyXG4gIC8qKiBUw610dWxvIGV4aWJpZG8gbm8gdG9wbyBkbyBjYXJkICovXHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBPcmRlbSBkZSBleGliacOnw6NvIG5vIGRhc2hib2FyZCAqL1xyXG4gIG9yZGVyPzogbnVtYmVyO1xyXG5cclxuICAvKiogUXVhbnRpZGFkZSBkZSBjb2x1bmFzIG9jdXBhZGFzIG5vIGdyaWQgKi9cclxuICBjb2xzOiBudW1iZXI7XHJcblxyXG4gIC8qKiBRdWFudGlkYWRlIGRlIGxpbmhhcyBvY3VwYWRhcyBubyBncmlkICovXHJcbiAgcm93cz86IG51bWJlcjtcclxuXHJcbiAgLyoqIENvciBkYSBmb250ZSBkbyBjYXJkICovXHJcbiAgZm9udENvbG9yPzogc3RyaW5nO1xyXG5cclxuICAvKiogQ29yIGRlIGZ1bmRvIGRvIGNhcmQgKi9cclxuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBMaXN0YSBkZSBtw6l0cmljYXMvY29sdW5hcyBxdWUgc2Vyw6NvIGV4aWJpZGFzICovXHJcbiAga2V5cz86IEl0ZW1bXTtcclxuXHJcbiAgLyoqIERlZmluZSBzZSBvIGdyw6FmaWNvIHNlcsOhIGVtcGlsaGFkbyAqL1xyXG4gIHN0YWNrZWQ/OiBib29sZWFuO1xyXG5cclxuICAvKiogRXhpYmUgdmFsb3JlcyBlbSBwb3JjZW50YWdlbSAqL1xyXG4gIHNob3dQb3JjZW50PzogYm9vbGVhbjtcclxuXHJcbiAgLyoqIEV4aWJlIHLDs3R1bG9zIGRlbnRybyBkbyBncsOhZmljbyAqL1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcblxyXG4gIC8qKiBPcmllbnRhw6fDo28gZG8gZWl4byBwcmluY2lwYWwgKGhvcml6b250YWwgb3UgdmVydGljYWwpICovXHJcbiAgYXhpc09yaWVudGF0aW9uPzogQXhpc09yaWVudGF0aW9uO1xyXG5cclxuICAvKiogQ29uZmlndXJhw6fDo28gcGVyc29uYWxpemFkYSBkbyBlaXhvIFggKi9cclxuICBheGlzWD86IEF4aXM7XHJcblxyXG4gIC8qKiBDb25maWd1cmHDp8OjbyBwZXJzb25hbGl6YWRhIGRvIGVpeG8gWSAqL1xyXG4gIGF4aXNZPzogQXhpcztcclxuXHJcbiAgLyoqIERhZG9zIHF1ZSBhbGltZW50YW0gbyBncsOhZmljbyAqL1xyXG4gIGRhdGE/OiBhbnlbXTtcclxuXHJcbiAgLyoqIENvbnRlw7pkbyBIVE1MIHBlcnNvbmFsaXphZG8gKGNhc28gbsOjbyBzZWphIGdyw6FmaWNvKSAqL1xyXG4gIGlubmVySHRtbD86IGFueTtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbSB7XHJcblxyXG4gIC8qKiBOb21lIGRhIHByb3ByaWVkYWRlIG5vIG9iamV0byBkZSBkYWRvcyAoZXg6ICd0b3RhbFZlbmRhcycpICovXHJcbiAga2V5OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBOb21lIGV4aWJpZG8gbmEgbGVnZW5kYSBkbyBncsOhZmljbyAqL1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIC8qKiBDaGF2ZSB1c2FkYSBwYXJhIGVpeG8gWCAodXNhZG8gZW0gYnViYmxlIGNoYXJ0KSAqL1xyXG4gIGtleVg/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBDaGF2ZSB1c2FkYSBwYXJhIGVpeG8gWSAodXNhZG8gZW0gYnViYmxlIGNoYXJ0KSovXHJcbiAga2V5WT86IHN0cmluZztcclxuXHJcbiAgLyoqIENoYXZlIHVzYWRhIHBhcmEgcmFpbyAodXNhZG8gZW0gYnViYmxlIGNoYXJ0KSAqL1xyXG4gIGtleVI/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBDb3IgZGEgc8OpcmllIG5vIGdyw6FmaWNvIChoZXgsIHJnYiwgcmdiYSwgZXRjLikgKi9cclxuICBjb2xvcj86IHN0cmluZztcclxuXHJcbiAgLyoqIElkZW50aWZpY2Fkb3IgZGUgZW1waWxoYW1lbnRvICh1c2FkbyBxdWFuZG8gc3RhY2tlZCA9IHRydWUpICovXHJcbiAgc3RhY2tLZXk/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBUaXBvIGVzcGVjw61maWNvIGRhIHPDqXJpZSAoZXg6ICdsaW5lJyBkZW50cm8gZGUgdW0gZ3LDoWZpY28gYmFyIG1pc3RvKSAqL1xyXG4gIHR5cGU/OiBTdXBwb3J0ZWRDaGFydFR5cGU7XHJcblxyXG4gIC8qKiBEZWZpbmUgZW0gcXVhbCBlaXhvIGEgc8OpcmllIHNlcsOhIHJlbmRlcml6YWRhIChleDogbGVmdCBvdSByaWdodCkgKi9cclxuICBheGlzVHlwZT86IEF4aXNEaW1lbnNpb247XHJcblxyXG4gIC8qKiBEZWZpbmUgc2UgYSDDoXJlYSBhYmFpeG8gZGEgbGluaGEgc2Vyw6EgcHJlZW5jaGlkYSAobGluZSBjaGFydCkgKi9cclxuICBmaWxsPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBeGlzIHtcclxuXHJcbiAgLyoqIE5vbWUgZGEgcHJvcHJpZWRhZGUgdXNhZGEgY29tbyBlaXhvICovXHJcbiAga2V5OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBUw610dWxvIGV4aWJpZG8gbm8gZWl4byAqL1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIC8qKiBDb3IgYXBsaWNhZGEgYW8gZWl4byAodGlja3MgZSBsYWJlbCkgKi9cclxuICBrZXlDb2xvcj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcHRpb24ge1xyXG5cclxuICAvKiogSWRlbnRpZmljYWRvciDDum5pY28gZGEgb3DDp8OjbyAqL1xyXG4gIGlkPzogbnVtYmVyO1xyXG5cclxuICAvKiogVMOtdHVsbyBleGliaWRvIG5vIGNhcmQvb3DDp8OjbyAqL1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcblxyXG4gIC8qKiBPcmRlbSBkZSBleGliacOnw6NvICovXHJcbiAgb3JkZXI/OiBudW1iZXI7XHJcblxyXG4gIC8qKiBRdWFudGlkYWRlIGRlIGNvbHVuYXMgb2N1cGFkYXMgbm8gZ3JpZCAqL1xyXG4gIGNvbHM6IG51bWJlcjtcclxuXHJcbiAgLyoqIFF1YW50aWRhZGUgZGUgbGluaGFzIG9jdXBhZGFzIG5vIGdyaWQgKi9cclxuICByb3dzOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTW9kYWxJdGVtIHtcclxuICBpZDogc3RyaW5nfG51bWJlcjtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHR5cGU6IE1vZGFsVHlwZXM7XHJcbiAgdmFsdWU/OiBudW1iZXI7XHJcbiAgaXRlbXM/OiBNb2RhbEl0ZW1bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdFJvdyB7XHJcbiAgbGV2ZWxzOiBNb2RhbEl0ZW1bXVtdO1xyXG4gIHNlbGVjdGVkUGF0aDogTW9kYWxJdGVtW107XHJcbiAgZmluYWxWYWx1ZTogc3RyaW5nW107XHJcbiAgZmluYWxGb250Q29sb3I6IHN0cmluZztcclxuICBmaW5hbEJhY2tncm91ZENvbG9yOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0IHtcclxuICBpZDogc3RyaW5nfG51bWJlcjtcclxuICBsYWJlbDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0T3B0aW9ue1xyXG4gIGlkOkRhc2hib2FyZENoYXJ0VHlwZSxcclxuICB0aXRsZTpzdHJpbmdcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENoYXRDb25maWc8VCBleHRlbmRzIENoYXJ0VHlwZSA9IENoYXJ0VHlwZT4ge1xyXG4gIHR5cGU6IFQ7XHJcbiAgZGF0YTogQ2hhcnREYXRhPFQ+O1xyXG4gIG9wdGlvbnM6IENoYXJ0T3B0aW9uczxUPjtcclxufVxyXG5cclxuXHJcbmV4cG9ydCB0eXBlIERhc2hib2FyZENoYXJ0VHlwZSA9XHJcbiAgdHlwZW9mIERBU0hCT0FSRF9DSEFSVF9UWVBFU1tudW1iZXJdO1xyXG5cclxuZXhwb3J0IGNvbnN0IERBU0hCT0FSRF9DSEFSVF9UWVBFUyA9IFtcclxuICAnYmFyJywgXHJcbiAgJ3N0YWNrZWRCYXInLCBcclxuICAndmVydGljYWxCYXInLCBcclxuICAndmVydGljYWxTdGFja2VkQmFyJyxcclxuICAndmVydGljYWxQcm9ncmVzc0JhcicsXHJcbiAgJ3Byb2dyZXNzQmFyJyxcclxuICAnbGluZUJhcicsIFxyXG4gICdsaW5lQmFyU3RhY2tlZCcsXHJcbiAgJ2xpbmUnLCBcclxuICAncmFkYXInLCBcclxuICAnY3VydmVMaW5lJyxcclxuICAncGllJyxcclxuICAnbXVsdGlQaWUnLFxyXG4gICdkb3VnaG51dCcsXHJcbiAgJ2hhbGZEb3VnaG51dCcsXHJcbiAgJ2FyZWEnLFxyXG4gICdidWJibGUnLFxyXG4gICdwb2xhckFyZWEnLFxyXG4gICdzaW1wbGVDYXJkJyxcclxuICAndGFibGUnLFxyXG4gICdodG1sJyxcclxuXSBhcyBjb25zdDtcclxuXHJcbmV4cG9ydCB0eXBlIERhc2hib2FyZEJhckxpbmVUeXBlID1cclxuICB0eXBlb2YgREFTSEJPQVJEX0JBUl9MSU5FX1RZUEVTW251bWJlcl07XHJcbiAgXHJcbmV4cG9ydCBjb25zdCBEQVNIQk9BUkRfQkFSX0xJTkVfVFlQRVMgPVtcclxuICAnYmFyJywgJ3N0YWNrZWRCYXInLCAndmVydGljYWxCYXInLCAndmVydGljYWxTdGFja2VkQmFyJywncHJvZ3Jlc3NCYXInLCd2ZXJ0aWNhbFByb2dyZXNzQmFyJyxcclxuICAnbGluZUJhcicsJ2xpbmVCYXJTdGFja2VkJywgJ2xpbmUnLCAncmFkYXInLCAnY3VydmVMaW5lJ1xyXG5dXHJcbmV4cG9ydCB0eXBlIFN1cHBvcnRlZENoYXJ0VHlwZSA9XHJcbiAgdHlwZW9mIFNVUFBPUlRFRF9DSEFSVF9UWVBFU1tudW1iZXJdO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9DSEFSVF9UWVBFUyA9IFtcclxuICAnYmFyJyxcclxuICAnbGluZScsXHJcbiAgJ3JhZGFyJ1xyXG5dIGFzIGNvbnN0O1xyXG5cclxuXHJcbmV4cG9ydCB0eXBlIEF4aXNPcmllbnRhdGlvbiA9XHJcbiAgdHlwZW9mIEFYSVNfT1JJRU5UQVRJT05bbnVtYmVyXTtcclxuXHJcbmV4cG9ydCBjb25zdCBBWElTX09SSUVOVEFUSU9OID0gW1xyXG4gICd4JyxcclxuICAneScsXHJcbl0gYXMgY29uc3Q7XHJcblxyXG5cclxuZXhwb3J0IHR5cGUgQXhpc0RpbWVuc2lvbiA9XHJcbiAgdHlwZW9mIEFYSVNfRElNRU5TSU9OW251bWJlcl07XHJcblxyXG5leHBvcnQgY29uc3QgQVhJU19ESU1FTlNJT04gPSBbXHJcbiAgJ3gnLFxyXG4gICd5JyxcclxuICAncicsXHJcbl0gYXMgY29uc3Q7XHJcblxyXG5cclxuZXhwb3J0IHR5cGUgTW9kYWxUeXBlcyA9XHJcbiAgdHlwZW9mIE1PREFMX1RZUEVTW251bWJlcl07XHJcblxyXG5leHBvcnQgY29uc3QgTU9EQUxfVFlQRVMgPSBbXHJcbiAgJ2dyb3VwJyxcclxuICAnb3B0aW9uJ1xyXG5dIGFzIGNvbnN0O1xyXG4iXX0=
@@ -0,0 +1,75 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./components/dashboard/dashboard.component";
4
+ export class PrimordashComponent {
5
+ constructor() {
6
+ this.isDark = false;
7
+ this.isResponsive = true;
8
+ this.canEdit = false;
9
+ this.cols = 4;
10
+ this.options = [
11
+ { title: '1x1', cols: 1, rows: 1 },
12
+ { title: '2x1', cols: 2, rows: 1 },
13
+ { title: '3x1', cols: 3, rows: 1 },
14
+ { title: '1x2', cols: 1, rows: 2 },
15
+ { title: '2x2', cols: 2, rows: 2 },
16
+ ];
17
+ this.cards = [];
18
+ this.groupType = [];
19
+ this.modalData = [];
20
+ this.debug = false;
21
+ }
22
+ }
23
+ PrimordashComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PrimordashComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
+ PrimordashComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PrimordashComponent, selector: "lib-primordash", inputs: { isDark: "isDark", isResponsive: "isResponsive", canEdit: "canEdit", cols: "cols", options: "options", cards: "cards", groupType: "groupType", modalData: "modalData", data: "data", debug: "debug" }, ngImport: i0, template: `
25
+ <lib-dashboard
26
+ [isDark]="isDark"
27
+ [isResponsive]="isResponsive"
28
+ [canEdit]="canEdit"
29
+ [cols]="cols"
30
+ [options]="options"
31
+ [cards]="cards"
32
+ [groupType]="groupType"
33
+ [modalData]="modalData"
34
+ [data]="data"
35
+ [debug]="true"
36
+ ></lib-dashboard>
37
+ `, isInline: true, dependencies: [{ kind: "component", type: i1.DashboardComponent, selector: "lib-dashboard", inputs: ["isDark", "isResponsive", "canEdit", "cols", "options", "cards", "groupType", "modalData", "data", "debug"] }] });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PrimordashComponent, decorators: [{
39
+ type: Component,
40
+ args: [{ selector: 'lib-primordash', template: `
41
+ <lib-dashboard
42
+ [isDark]="isDark"
43
+ [isResponsive]="isResponsive"
44
+ [canEdit]="canEdit"
45
+ [cols]="cols"
46
+ [options]="options"
47
+ [cards]="cards"
48
+ [groupType]="groupType"
49
+ [modalData]="modalData"
50
+ [data]="data"
51
+ [debug]="true"
52
+ ></lib-dashboard>
53
+ ` }]
54
+ }], propDecorators: { isDark: [{
55
+ type: Input
56
+ }], isResponsive: [{
57
+ type: Input
58
+ }], canEdit: [{
59
+ type: Input
60
+ }], cols: [{
61
+ type: Input
62
+ }], options: [{
63
+ type: Input
64
+ }], cards: [{
65
+ type: Input
66
+ }], groupType: [{
67
+ type: Input
68
+ }], modalData: [{
69
+ type: Input
70
+ }], data: [{
71
+ type: Input
72
+ }], debug: [{
73
+ type: Input
74
+ }] } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbW9yZGFzaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmltb3JkYXNoL3NyYy9saWIvcHJpbW9yZGFzaC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQXNCakQsTUFBTSxPQUFPLG1CQUFtQjtJQW5CaEM7UUFxQlksV0FBTSxHQUFXLEtBQUssQ0FBQztRQUN2QixpQkFBWSxHQUFXLElBQUksQ0FBQztRQUM1QixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFNBQUksR0FBVyxDQUFDLENBQUM7UUFDakIsWUFBTyxHQUFZO1lBQzFCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtZQUNsQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ2xDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtTQUNuQyxDQUFBO1FBQ1EsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixjQUFTLEdBQVksRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBZSxFQUFFLENBQUM7UUFFM0IsVUFBSyxHQUFZLEtBQUssQ0FBQztLQUVsQzs7aUhBbkJZLG1CQUFtQjtxR0FBbkIsbUJBQW1CLHNRQWpCcEI7Ozs7Ozs7Ozs7Ozs7R0FhVDs0RkFJVSxtQkFBbUI7a0JBbkIvQixTQUFTOytCQUNFLGdCQUFnQixZQUNoQjs7Ozs7Ozs7Ozs7OztHQWFUOzhCQU1TLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhcmQsIE1vZGFsSXRlbSwgT3B0aW9uLCBTZWxlY3QgfSBmcm9tICcuL21vZGVscy9kYXNoYm9hcmQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcHJpbW9yZGFzaCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGxpYi1kYXNoYm9hcmRcbiAgICAgICAgW2lzRGFya109XCJpc0RhcmtcIlxuICAgICAgICBbaXNSZXNwb25zaXZlXT1cImlzUmVzcG9uc2l2ZVwiXG4gICAgICAgIFtjYW5FZGl0XT1cImNhbkVkaXRcIlxuICAgICAgICBbY29sc109XCJjb2xzXCJcbiAgICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiIFxuICAgICAgICBbY2FyZHNdPVwiY2FyZHNcIiBcbiAgICAgICAgW2dyb3VwVHlwZV09XCJncm91cFR5cGVcIiBcbiAgICAgICAgW21vZGFsRGF0YV09XCJtb2RhbERhdGFcIiBcbiAgICAgICAgW2RhdGFdPVwiZGF0YVwiXG4gICAgICAgIFtkZWJ1Z109XCJ0cnVlXCJcbiAgICA+PC9saWItZGFzaGJvYXJkPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQcmltb3JkYXNoQ29tcG9uZW50IHtcbiBcbiAgIEBJbnB1dCgpIGlzRGFyazpib29sZWFuID0gZmFsc2U7XG4gICBASW5wdXQoKSBpc1Jlc3BvbnNpdmU6Ym9vbGVhbiA9IHRydWU7XG4gICBASW5wdXQoKSBjYW5FZGl0OiBib29sZWFuID0gZmFsc2U7XG4gICBASW5wdXQoKSBjb2xzOiBudW1iZXIgPSA0O1xuICAgQElucHV0KCkgb3B0aW9uczpPcHRpb25bXSA9IFtcbiAgICAgeyB0aXRsZTogJzF4MScsIGNvbHM6IDEsIHJvd3M6IDEgfSxcbiAgICAgeyB0aXRsZTogJzJ4MScsIGNvbHM6IDIsIHJvd3M6IDEgfSxcbiAgICAgeyB0aXRsZTogJzN4MScsIGNvbHM6IDMsIHJvd3M6IDEgfSxcbiAgICAgeyB0aXRsZTogJzF4MicsIGNvbHM6IDEsIHJvd3M6IDIgfSxcbiAgICAgeyB0aXRsZTogJzJ4MicsIGNvbHM6IDIsIHJvd3M6IDIgfSxcbiAgIF1cbiAgIEBJbnB1dCgpIGNhcmRzOiBDYXJkW10gPSBbXTtcbiAgIEBJbnB1dCgpIGdyb3VwVHlwZTpTZWxlY3RbXSA9IFtdO1xuICAgQElucHV0KCkgbW9kYWxEYXRhOk1vZGFsSXRlbVtdID0gW107XG4gICBASW5wdXQoKSBkYXRhITphbnk7XG4gICBASW5wdXQoKSBkZWJ1ZzogYm9vbGVhbiA9IGZhbHNlO1xuXG59XG4iXX0=
@@ -0,0 +1,92 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { BrowserModule } from '@angular/platform-browser';
3
+ import { DragDropModule } from '@angular/cdk/drag-drop';
4
+ import { MatGridListModule } from '@angular/material/grid-list';
5
+ import { MatMenuModule } from '@angular/material/menu';
6
+ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
7
+ import { NgChartsModule } from "ng2-charts";
8
+ import { CardComponent } from './components/card/card.component';
9
+ import { BarLineComponent } from './components/charts/bar-line/bar-line.component';
10
+ import { BubbleComponent } from './components/charts/bubble/bubble.component';
11
+ import { PieComponent } from './components/charts/pie/pie.component';
12
+ import { SimpleCardComponent } from './components/charts/simple-card/simple-card.component';
13
+ import { TableComponent } from './components/charts/table/table.component';
14
+ import { DashboardComponent } from './components/dashboard/dashboard.component';
15
+ import { ModalEditComponent } from './components/modal-edit/modal-edit.component';
16
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
17
+ import { ModalModule } from 'ngx-bootstrap/modal';
18
+ import { CommonModule } from '@angular/common';
19
+ import { NgSelectModule } from '@ng-select/ng-select';
20
+ import { PrimordashComponent } from './primordash.component';
21
+ import { ModalEditChartComponent } from './components/modal-edit-chart/modal-edit-chart.component';
22
+ import * as i0 from "@angular/core";
23
+ import * as i1 from "ngx-bootstrap/modal";
24
+ export class PrimordashModule {
25
+ }
26
+ PrimordashModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PrimordashModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
27
+ PrimordashModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: PrimordashModule, declarations: [DashboardComponent,
28
+ CardComponent,
29
+ BarLineComponent,
30
+ BubbleComponent,
31
+ PieComponent,
32
+ SimpleCardComponent,
33
+ TableComponent,
34
+ ModalEditComponent,
35
+ ModalEditChartComponent,
36
+ PrimordashComponent], imports: [BrowserModule,
37
+ DragDropModule,
38
+ BrowserAnimationsModule,
39
+ MatGridListModule,
40
+ MatMenuModule,
41
+ NgChartsModule,
42
+ ReactiveFormsModule,
43
+ FormsModule,
44
+ CommonModule, i1.ModalModule, NgSelectModule], exports: [DashboardComponent,
45
+ PrimordashComponent] });
46
+ PrimordashModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PrimordashModule, imports: [BrowserModule,
47
+ DragDropModule,
48
+ BrowserAnimationsModule,
49
+ MatGridListModule,
50
+ MatMenuModule,
51
+ NgChartsModule,
52
+ ReactiveFormsModule,
53
+ FormsModule,
54
+ CommonModule,
55
+ ModalModule.forRoot(),
56
+ NgSelectModule] });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PrimordashModule, decorators: [{
58
+ type: NgModule,
59
+ args: [{
60
+ declarations: [
61
+ DashboardComponent,
62
+ CardComponent,
63
+ BarLineComponent,
64
+ BubbleComponent,
65
+ PieComponent,
66
+ SimpleCardComponent,
67
+ TableComponent,
68
+ ModalEditComponent,
69
+ ModalEditChartComponent,
70
+ PrimordashComponent
71
+ ],
72
+ imports: [
73
+ BrowserModule,
74
+ DragDropModule,
75
+ BrowserAnimationsModule,
76
+ MatGridListModule,
77
+ MatMenuModule,
78
+ NgChartsModule,
79
+ ReactiveFormsModule,
80
+ FormsModule,
81
+ CommonModule,
82
+ ModalModule.forRoot(),
83
+ NgSelectModule
84
+ ],
85
+ exports: [
86
+ DashboardComponent,
87
+ PrimordashComponent
88
+ ],
89
+ providers: []
90
+ }]
91
+ }] });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbW9yZGFzaC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmltb3JkYXNoL3NyYy9saWIvcHJpbW9yZGFzaC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMERBQTBELENBQUM7OztBQW9DbkcsTUFBTSxPQUFPLGdCQUFnQjs7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQWhDekIsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsY0FBYztRQUNkLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIsbUJBQW1CLGFBR25CLGFBQWE7UUFDYixjQUFjO1FBQ2QsdUJBQXVCO1FBQ3ZCLGlCQUFpQjtRQUNqQixhQUFhO1FBQ2IsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixXQUFXO1FBQ1gsWUFBWSxrQkFFWixjQUFjLGFBR2Qsa0JBQWtCO1FBQ2xCLG1CQUFtQjsrR0FNVixnQkFBZ0IsWUFwQnpCLGFBQWE7UUFDYixjQUFjO1FBQ2QsdUJBQXVCO1FBQ3ZCLGlCQUFpQjtRQUNqQixhQUFhO1FBQ2IsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixXQUFXO1FBQ1gsWUFBWTtRQUNaLFdBQVcsQ0FBQyxPQUFPLEVBQUU7UUFDckIsY0FBYzs0RkFVTCxnQkFBZ0I7a0JBbEM1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixXQUFXLENBQUMsT0FBTyxFQUFFO3dCQUNyQixjQUFjO3FCQUNqQjtvQkFDQyxPQUFPLEVBQUM7d0JBQ04sa0JBQWtCO3dCQUNsQixtQkFBbUI7cUJBQ3BCO29CQUNELFNBQVMsRUFBRSxFQUNWO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBNYXRHcmlkTGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2dyaWQtbGlzdCc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBOZ0NoYXJ0c01vZHVsZSB9IGZyb20gXCJuZzItY2hhcnRzXCI7XHJcbmltcG9ydCB7IENhcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhckxpbmVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhcnRzL2Jhci1saW5lL2Jhci1saW5lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1YmJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGFydHMvYnViYmxlL2J1YmJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQaWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhcnRzL3BpZS9waWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2ltcGxlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGFydHMvc2ltcGxlLWNhcmQvc2ltcGxlLWNhcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhcnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vZGFsRWRpdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tb2RhbC1lZGl0L21vZGFsLWVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1vZGFsTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xyXG5pbXBvcnQgeyBQcmltb3JkYXNoQ29tcG9uZW50IH0gZnJvbSAnLi9wcmltb3JkYXNoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vZGFsRWRpdENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21vZGFsLWVkaXQtY2hhcnQvbW9kYWwtZWRpdC1jaGFydC5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIERhc2hib2FyZENvbXBvbmVudCxcclxuICAgIENhcmRDb21wb25lbnQsXHJcbiAgICBCYXJMaW5lQ29tcG9uZW50LFxyXG4gICAgQnViYmxlQ29tcG9uZW50LFxyXG4gICAgUGllQ29tcG9uZW50LFxyXG4gICAgU2ltcGxlQ2FyZENvbXBvbmVudCxcclxuICAgIFRhYmxlQ29tcG9uZW50LFxyXG4gICAgTW9kYWxFZGl0Q29tcG9uZW50LFxyXG4gICAgTW9kYWxFZGl0Q2hhcnRDb21wb25lbnQsXHJcbiAgICBQcmltb3JkYXNoQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBCcm93c2VyTW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSxcclxuICAgIE1hdEdyaWRMaXN0TW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIE5nQ2hhcnRzTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTW9kYWxNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgTmdTZWxlY3RNb2R1bGVcclxuXSxcclxuICBleHBvcnRzOltcclxuICAgIERhc2hib2FyZENvbXBvbmVudCxcclxuICAgIFByaW1vcmRhc2hDb21wb25lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gIF1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBQcmltb3JkYXNoTW9kdWxlIHsgfVxyXG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PrimordashService {
4
+ constructor() { }
5
+ }
6
+ PrimordashService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PrimordashService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7
+ PrimordashService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PrimordashService, providedIn: 'root' });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PrimordashService, decorators: [{
9
+ type: Injectable,
10
+ args: [{
11
+ providedIn: 'root'
12
+ }]
13
+ }], ctorParameters: function () { return []; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbW9yZGFzaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJpbW9yZGFzaC9zcmMvbGliL3ByaW1vcmRhc2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8saUJBQWlCO0lBRTVCLGdCQUFnQixDQUFDOzsrR0FGTixpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZoQixNQUFNOzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByaW1vcmRhc2hTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuIl19
@@ -0,0 +1,50 @@
1
+ export function randomColor() {
2
+ const r = Math.floor(Math.random() * 255);
3
+ const g = Math.floor(Math.random() * 255);
4
+ const b = Math.floor(Math.random() * 255);
5
+ return `rgba(${r}, ${g}, ${b}, 0.6)`;
6
+ }
7
+ export function getOpacityColors(listColors, index) {
8
+ const opacity = Math.max(0.1, 1 - index * 0.30);
9
+ return listColors.map(color => replaceAlpha(color, opacity));
10
+ }
11
+ function replaceAlpha(rgba, newAlpha) {
12
+ const match = rgba.match(/rgba?\(\s*(\d+)[,\s]+(\d+)[,\s]+(\d+)(?:[,\s]+([\d.]+))?\s*\)/);
13
+ if (!match)
14
+ return rgba;
15
+ const r = match[1];
16
+ const g = match[2];
17
+ const b = match[3];
18
+ return `rgba(${r}, ${g}, ${b}, ${newAlpha})`;
19
+ }
20
+ export function getContrastColor(color) {
21
+ const rgb = getRGB(color);
22
+ if (!rgb)
23
+ return '#000';
24
+ const { r, g, b } = rgb;
25
+ const luminance = (0.299 * r + 0.587 * g + 0.114 * b);
26
+ return luminance > 186 ? '#000' : '#fff';
27
+ }
28
+ function getRGB(color) {
29
+ if (color.startsWith('#')) {
30
+ const hex = color.replace('#', '');
31
+ const bigint = parseInt(hex.length === 3
32
+ ? hex.split('').map(c => c + c).join('')
33
+ : hex, 16);
34
+ return {
35
+ r: (bigint >> 16) & 255,
36
+ g: (bigint >> 8) & 255,
37
+ b: bigint & 255
38
+ };
39
+ }
40
+ const match = color.match(/\d+/g);
41
+ if (match) {
42
+ return {
43
+ r: Number(match[0]),
44
+ g: Number(match[1]),
45
+ b: Number(match[2])
46
+ };
47
+ }
48
+ return null;
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByaW1vcmRhc2gvc3JjL2xpYi9zZXJ2aWNlcy9nZW5lcmljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxXQUFXO0lBQ3ZCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRTFDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0FBQ3pDLENBQUM7QUFDRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsVUFBbUIsRUFBRSxLQUFZO0lBQzlELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDaEQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7SUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDdEIsK0RBQStELENBQ2hFLENBQUM7SUFFRixJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRXhCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkIsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRW5CLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxRQUFRLEdBQUcsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWE7SUFDNUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTFCLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxNQUFNLENBQUM7SUFFeEIsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDO0lBRXhCLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUV0RCxPQUFPLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQzNDLENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxLQUFhO0lBQzNCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN6QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFYixPQUFPO1lBQ0wsQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUc7WUFDdkIsQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUc7WUFDdEIsQ0FBQyxFQUFFLE1BQU0sR0FBRyxHQUFHO1NBQ2hCLENBQUM7S0FDSDtJQUVELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsSUFBSSxLQUFLLEVBQUU7UUFDVCxPQUFPO1lBQ0wsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEIsQ0FBQztLQUNIO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbUNvbG9yKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCByID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjU1KTtcclxuICAgIGNvbnN0IGcgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyNTUpO1xyXG4gICAgY29uc3QgYiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcblxyXG4gICAgcmV0dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sIDAuNilgO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRPcGFjaXR5Q29sb3JzKGxpc3RDb2xvcnM6c3RyaW5nW10sIGluZGV4Om51bWJlciApOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBvcGFjaXR5ID0gTWF0aC5tYXgoMC4xLCAxIC0gaW5kZXggKiAwLjMwKTtcclxuICAgIHJldHVybiBsaXN0Q29sb3JzLm1hcChjb2xvciA9PiByZXBsYWNlQWxwaGEoY29sb3IsIG9wYWNpdHkpKTtcclxufVxyXG5cclxuZnVuY3Rpb24gcmVwbGFjZUFscGhhKHJnYmE6IHN0cmluZywgbmV3QWxwaGE6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgY29uc3QgbWF0Y2ggPSByZ2JhLm1hdGNoKFxyXG4gICAgL3JnYmE/XFwoXFxzKihcXGQrKVssXFxzXSsoXFxkKylbLFxcc10rKFxcZCspKD86WyxcXHNdKyhbXFxkLl0rKSk/XFxzKlxcKS9cclxuICApO1xyXG5cclxuICBpZiAoIW1hdGNoKSByZXR1cm4gcmdiYTsgXHJcblxyXG4gIGNvbnN0IHIgPSBtYXRjaFsxXTtcclxuICBjb25zdCBnID0gbWF0Y2hbMl07XHJcbiAgY29uc3QgYiA9IG1hdGNoWzNdO1xyXG5cclxuICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHtuZXdBbHBoYX0pYDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRyYXN0Q29sb3IoY29sb3I6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgY29uc3QgcmdiID0gZ2V0UkdCKGNvbG9yKTtcclxuXHJcbiAgaWYgKCFyZ2IpIHJldHVybiAnIzAwMCc7XHJcblxyXG4gIGNvbnN0IHsgciwgZywgYiB9ID0gcmdiO1xyXG5cclxuICBjb25zdCBsdW1pbmFuY2UgPSAoMC4yOTkgKiByICsgMC41ODcgKiBnICsgMC4xMTQgKiBiKTtcclxuXHJcbiAgcmV0dXJuIGx1bWluYW5jZSA+IDE4NiA/ICcjMDAwJyA6ICcjZmZmJztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0UkdCKGNvbG9yOiBzdHJpbmcpOiB7IHI6IG51bWJlcjsgZzogbnVtYmVyOyBiOiBudW1iZXIgfSB8IG51bGwge1xyXG4gIGlmIChjb2xvci5zdGFydHNXaXRoKCcjJykpIHtcclxuICAgIGNvbnN0IGhleCA9IGNvbG9yLnJlcGxhY2UoJyMnLCAnJyk7XHJcbiAgICBjb25zdCBiaWdpbnQgPSBwYXJzZUludChoZXgubGVuZ3RoID09PSAzXHJcbiAgICAgID8gaGV4LnNwbGl0KCcnKS5tYXAoYyA9PiBjICsgYykuam9pbignJylcclxuICAgICAgOiBoZXgsIDE2KTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICByOiAoYmlnaW50ID4+IDE2KSAmIDI1NSxcclxuICAgICAgZzogKGJpZ2ludCA+PiA4KSAmIDI1NSxcclxuICAgICAgYjogYmlnaW50ICYgMjU1XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbWF0Y2ggPSBjb2xvci5tYXRjaCgvXFxkKy9nKTtcclxuICBpZiAobWF0Y2gpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHI6IE51bWJlcihtYXRjaFswXSksXHJcbiAgICAgIGc6IE51bWJlcihtYXRjaFsxXSksXHJcbiAgICAgIGI6IE51bWJlcihtYXRjaFsyXSlcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbnVsbDtcclxufSJdfQ==
@@ -0,0 +1,8 @@
1
+ /*
2
+ * Public API Surface of primordash
3
+ */
4
+ export * from './lib/primordash.service';
5
+ export * from './lib/primordash.component';
6
+ export * from './lib/primordash.module';
7
+ export * from './lib/components/dashboard/dashboard.component';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ByaW1vcmRhc2gvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdEQUFnRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBwcmltb3JkYXNoXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJpbW9yZGFzaC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ByaW1vcmRhc2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ByaW1vcmRhc2gubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFmYUFsbWVpZGEtcHJpbW9yZGFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ByaW1vcmRhc2gvc3JjL3JhZmFBbG1laWRhLXByaW1vcmRhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFmYWVsYWFsbWVpZGFhLXByaW1vcmRhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9wcmltb3JkYXNoL3NyYy9yYWZhZWxhYWxtZWlkYWEtcHJpbW9yZGFzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19