@firestitch/system 12.5.5 → 13.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 (81) hide show
  1. package/esm2020/app/modules/query-logs/components/explain/explain.component.mjs +24 -0
  2. package/esm2020/app/modules/query-logs/components/query-log/query-log.component.mjs +58 -0
  3. package/esm2020/app/modules/query-logs/components/query-logs/query-logs.component.mjs +84 -0
  4. package/{esm2015/app/modules/query-logs/query-logs.module.js → esm2020/app/modules/query-logs/query-logs.module.mjs} +5 -5
  5. package/esm2020/app/modules/system/components/api-log/api-log.component.mjs +34 -0
  6. package/esm2020/app/modules/system/components/api-logs/api-logs.component.mjs +69 -0
  7. package/esm2020/app/modules/system/components/cron/cron.component.mjs +104 -0
  8. package/esm2020/app/modules/system/components/cron-log/cron-log.component.mjs +37 -0
  9. package/esm2020/app/modules/system/components/crons/crons.component.mjs +231 -0
  10. package/esm2020/app/modules/system/components/dashboard/dashboard.component.mjs +84 -0
  11. package/esm2020/app/modules/system/components/info/info.component.mjs +31 -0
  12. package/esm2020/app/modules/system/components/process/process.component.mjs +62 -0
  13. package/esm2020/app/modules/system/components/processes/processes.component.mjs +174 -0
  14. package/esm2020/app/modules/system/components/server-log/server-log.component.mjs +38 -0
  15. package/esm2020/app/modules/system/components/server-logs/server-logs.component.mjs +53 -0
  16. package/esm2020/app/modules/system/components/settings/settings.component.mjs +138 -0
  17. package/esm2020/app/modules/system/components/upgrade-logs/upgrade-logs.component.mjs +44 -0
  18. package/{esm2015/app/modules/system/fs-system.module.js → esm2020/app/modules/system/fs-system.module.mjs} +5 -5
  19. package/{esm2015/app/modules/system/pipes/key-name-value.pipe.js → esm2020/app/modules/system/pipes/key-name-value.pipe.mjs} +5 -5
  20. package/fesm2015/firestitch-system.mjs +1447 -0
  21. package/fesm2015/firestitch-system.mjs.map +1 -0
  22. package/fesm2020/firestitch-system.mjs +1449 -0
  23. package/fesm2020/firestitch-system.mjs.map +1 -0
  24. package/package.json +20 -7
  25. package/styles.scss +3 -0
  26. package/bundles/firestitch-system.umd.js +0 -1904
  27. package/bundles/firestitch-system.umd.js.map +0 -1
  28. package/esm2015/app/modules/query-logs/components/explain/explain.component.js +0 -27
  29. package/esm2015/app/modules/query-logs/components/query-log/query-log.component.js +0 -63
  30. package/esm2015/app/modules/query-logs/components/query-logs/query-logs.component.js +0 -89
  31. package/esm2015/app/modules/system/components/api-log/api-log.component.js +0 -37
  32. package/esm2015/app/modules/system/components/api-logs/api-logs.component.js +0 -73
  33. package/esm2015/app/modules/system/components/cron/cron.component.js +0 -102
  34. package/esm2015/app/modules/system/components/cron-log/cron-log.component.js +0 -40
  35. package/esm2015/app/modules/system/components/crons/crons.component.js +0 -229
  36. package/esm2015/app/modules/system/components/dashboard/dashboard.component.js +0 -89
  37. package/esm2015/app/modules/system/components/info/info.component.js +0 -36
  38. package/esm2015/app/modules/system/components/process/process.component.js +0 -66
  39. package/esm2015/app/modules/system/components/processes/processes.component.js +0 -179
  40. package/esm2015/app/modules/system/components/server-log/server-log.component.js +0 -41
  41. package/esm2015/app/modules/system/components/server-logs/server-logs.component.js +0 -57
  42. package/esm2015/app/modules/system/components/settings/settings.component.js +0 -137
  43. package/esm2015/app/modules/system/components/upgrade-logs/upgrade-logs.component.js +0 -48
  44. package/fesm2015/firestitch-system.js +0 -1498
  45. package/fesm2015/firestitch-system.js.map +0 -1
  46. /package/{esm2015/app/modules/query-logs/components/explain/index.js → esm2020/app/modules/query-logs/components/explain/index.mjs} +0 -0
  47. /package/{esm2015/app/modules/query-logs/components/index.js → esm2020/app/modules/query-logs/components/index.mjs} +0 -0
  48. /package/{esm2015/app/modules/query-logs/components/query-log/index.js → esm2020/app/modules/query-logs/components/query-log/index.mjs} +0 -0
  49. /package/{esm2015/app/modules/query-logs/components/query-logs/index.js → esm2020/app/modules/query-logs/components/query-logs/index.mjs} +0 -0
  50. /package/{esm2015/app/modules/system/components/api-log/index.js → esm2020/app/modules/system/components/api-log/index.mjs} +0 -0
  51. /package/{esm2015/app/modules/system/components/api-logs/index.js → esm2020/app/modules/system/components/api-logs/index.mjs} +0 -0
  52. /package/{esm2015/app/modules/system/components/cron/index.js → esm2020/app/modules/system/components/cron/index.mjs} +0 -0
  53. /package/{esm2015/app/modules/system/components/cron-log/index.js → esm2020/app/modules/system/components/cron-log/index.mjs} +0 -0
  54. /package/{esm2015/app/modules/system/components/crons/index.js → esm2020/app/modules/system/components/crons/index.mjs} +0 -0
  55. /package/{esm2015/app/modules/system/components/dashboard/index.js → esm2020/app/modules/system/components/dashboard/index.mjs} +0 -0
  56. /package/{esm2015/app/modules/system/components/info/index.js → esm2020/app/modules/system/components/info/index.mjs} +0 -0
  57. /package/{esm2015/app/modules/system/components/process/index.js → esm2020/app/modules/system/components/process/index.mjs} +0 -0
  58. /package/{esm2015/app/modules/system/components/processes/index.js → esm2020/app/modules/system/components/processes/index.mjs} +0 -0
  59. /package/{esm2015/app/modules/system/components/server-log/index.js → esm2020/app/modules/system/components/server-log/index.mjs} +0 -0
  60. /package/{esm2015/app/modules/system/components/server-logs/index.js → esm2020/app/modules/system/components/server-logs/index.mjs} +0 -0
  61. /package/{esm2015/app/modules/system/components/settings/index.js → esm2020/app/modules/system/components/settings/index.mjs} +0 -0
  62. /package/{esm2015/app/modules/system/components/upgrade-logs/index.js → esm2020/app/modules/system/components/upgrade-logs/index.mjs} +0 -0
  63. /package/{esm2015/app/modules/system/consts/api-log-states.const.js → esm2020/app/modules/system/consts/api-log-states.const.mjs} +0 -0
  64. /package/{esm2015/app/modules/system/consts/cron-log-states.const.js → esm2020/app/modules/system/consts/cron-log-states.const.mjs} +0 -0
  65. /package/{esm2015/app/modules/system/consts/cron-states.const.js → esm2020/app/modules/system/consts/cron-states.const.mjs} +0 -0
  66. /package/{esm2015/app/modules/system/consts/index.js → esm2020/app/modules/system/consts/index.mjs} +0 -0
  67. /package/{esm2015/app/modules/system/consts/process-states.const.js → esm2020/app/modules/system/consts/process-states.const.mjs} +0 -0
  68. /package/{esm2015/app/modules/system/enums/api-log-state.enum.js → esm2020/app/modules/system/enums/api-log-state.enum.mjs} +0 -0
  69. /package/{esm2015/app/modules/system/enums/cron-log-state.enum.js → esm2020/app/modules/system/enums/cron-log-state.enum.mjs} +0 -0
  70. /package/{esm2015/app/modules/system/enums/cron-state.enum.js → esm2020/app/modules/system/enums/cron-state.enum.mjs} +0 -0
  71. /package/{esm2015/app/modules/system/enums/index.js → esm2020/app/modules/system/enums/index.mjs} +0 -0
  72. /package/{esm2015/app/modules/system/enums/process-state.enum.js → esm2020/app/modules/system/enums/process-state.enum.mjs} +0 -0
  73. /package/{esm2015/app/modules/system/enums/setting-interface-type.enum.js → esm2020/app/modules/system/enums/setting-interface-type.enum.mjs} +0 -0
  74. /package/{esm2015/app/modules/system/helpers/index-name-value.js → esm2020/app/modules/system/helpers/index-name-value.mjs} +0 -0
  75. /package/{esm2015/app/modules/system/injectors/system-config.injector.js → esm2020/app/modules/system/injectors/system-config.injector.mjs} +0 -0
  76. /package/{esm2015/app/modules/system/interfaces/dashboard-action.js → esm2020/app/modules/system/interfaces/dashboard-action.mjs} +0 -0
  77. /package/{esm2015/app/modules/system/interfaces/index.js → esm2020/app/modules/system/interfaces/index.mjs} +0 -0
  78. /package/{esm2015/app/modules/system/interfaces/process-action.js → esm2020/app/modules/system/interfaces/process-action.mjs} +0 -0
  79. /package/{esm2015/app/modules/system/interfaces/system-config.js → esm2020/app/modules/system/interfaces/system-config.mjs} +0 -0
  80. /package/{esm2015/firestitch-system.js → esm2020/firestitch-system.mjs} +0 -0
  81. /package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
@@ -1,63 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
3
- import { ExplainComponent } from '../explain';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/material/dialog";
6
- import * as i2 from "@firestitch/dialog";
7
- import * as i3 from "@firestitch/label";
8
- import * as i4 from "@angular/material/tabs";
9
- import * as i5 from "@firestitch/clipboard";
10
- import * as i6 from "@angular/material/button";
11
- import * as i7 from "@firestitch/popover";
12
- import * as i8 from "@angular/common";
13
- import * as i9 from "@firestitch/common";
14
- export class QueryLogComponent {
15
- constructor(_data, _dialog) {
16
- this._data = _data;
17
- this._dialog = _dialog;
18
- this.accessTypes = {
19
- NULL: 'This access method means MySQL can resolve the query during the optimization phase and will not even access the table or index during the execution stage.',
20
- system: 'The table is empty or has one row.',
21
- const: 'The value of the column can be treated as a constant (there is one row matching the query). Note: Primary Key Lookup, Unique Index Lookup',
22
- eq_ref: 'The index is clustered and is being used by the operation (either the index is a PRIMARY KEY or UNIQUE INDEX with all key columns defined as NOT NULL)',
23
- ref: 'The indexed column was accessed using an equality operator Note: The ref_or_null access type is a variation on ref. It means MySQL must do a second lookup to find NULL entries after doing the initial lookup.',
24
- fulltext: 'Operation (JOIN) is using the table’s fulltext index',
25
- index: 'The entire index is scanned to find a match for the query. Note: The main advantage is that this avoids sorting. The biggest disadvantage is the cost of reading an entire table in index order. This usually means accessing the rows in random order, which is very expensive.',
26
- index_merge: 'This join type indicates that the Index Merge optimization is used. In this case, the key column in the output row contains a list of indexes used. It indicates a query can make limited use of multiple indexes on a single table.',
27
- range: 'This type replaces eq_ref for some IN subqueries of the following form: value IN (SELECT primary_key FROM single_table WHERE some_expr)',
28
- unique_subquery: '',
29
- ALL: 'MySQL scans the entire table to satisfy the query',
30
- };
31
- this.queryLog = _data.queryLog;
32
- }
33
- openExplain() {
34
- this._dialog.open(ExplainComponent, {
35
- data: { explain: this.explain },
36
- });
37
- }
38
- get explain() {
39
- return this.queryLog.explain;
40
- }
41
- get queryBlock() {
42
- var _a;
43
- return (_a = this.explain) === null || _a === void 0 ? void 0 : _a.queryBlock;
44
- }
45
- get orderingOperation() {
46
- var _a;
47
- return (_a = this.queryBlock) === null || _a === void 0 ? void 0 : _a.orderingOperation;
48
- }
49
- }
50
- QueryLogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: QueryLogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
51
- QueryLogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: QueryLogComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog>\n <h1 mat-dialog-title>Query Log</h1>\n <mat-dialog-content>\n <div class=\"fs-row.gap-large\">\n <fs-label-field>\n <fs-label>Duration</fs-label>\n {{queryLog.duration}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Optimized</fs-label>\n {{queryLog.optimized ? 'Yes' : 'No'}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Query Cost</fs-label>\n {{queryLog.queryCost}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Raw Explain</fs-label>\n <a (click)=\"openExplain()\">View</a>\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>URL</fs-label>\n {{queryLog.path | fsFormatTruncate: 50}}\n </fs-label-field>\n </div>\n\n <mat-tab-group>\n <mat-tab label=\"Query\">\n <fs-clipboard-button\n [content]=\"queryLog.prettyQuery\">\n </fs-clipboard-button>\n <div [innerHTML]=\"queryLog.prettyQuery\" class=\"query\"></div>\n </mat-tab>\n \n <mat-tab label=\"Explain\">\n <ng-container [ngTemplateOutlet]=\"nestedLoop\" [ngTemplateOutletContext]=\"{ queryBlock: queryBlock, selectId: queryBlock.selectId, costInfo: queryBlock.costInfo }\"></ng-container>\n </mat-tab>\n </mat-tab-group>\n\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n type=\"button\"\n color=\"primary\"\n [mat-dialog-close]=\"undefined\">\n Done\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n\n<ng-template #nestedLoop let-queryBlock=\"queryBlock\" let-selectId=\"selectId\" let-costInfo=\"costInfo\">\n <ng-container *ngIf=\"selectId\">\n <h1>Select {{selectId}}</h1>\n </ng-container>\n \n <div class=\"fs-row.gap-large\">\n <ng-container *ngIf=\"costInfo?.queryCost\">\n <fs-label-field>\n <fs-label>Query Cost</fs-label>\n {{costInfo.queryCost}}\n </fs-label-field>\n </ng-container>\n <ng-container *ngIf=\"queryBlock.orderingOperation\">\n <fs-label-field>\n <fs-label>Ordering Operation</fs-label>\n <ng-container [ngTemplateOutlet]=\"queryBlockCritical\" [ngTemplateOutletContext]=\"{ queryBlock: queryBlock.orderingOperation }\"></ng-container>\n </fs-label-field>\n </ng-container>\n\n <ng-container *ngIf=\"queryBlock.groupingOperation\">\n <fs-label-field>\n <fs-label>Grouping Operation</fs-label>\n <ng-container [ngTemplateOutlet]=\"queryBlockCritical\" [ngTemplateOutletContext]=\"{ queryBlock: queryBlock.groupingOperation }\"></ng-container>\n </fs-label-field>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"queryBlock.orderingOperation\">\n <ng-container [ngTemplateOutlet]=\"nestedLoop\" [ngTemplateOutletContext]=\"{ queryBlock: queryBlock.orderingOperation }\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"queryBlock.groupingOperation\">\n <ng-container [ngTemplateOutlet]=\"nestedLoop\" [ngTemplateOutletContext]=\"{ queryBlock: queryBlock.groupingOperation }\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"queryBlock.table\">\n <ng-container [ngTemplateOutlet]=\"nestedLoop\" [ngTemplateOutletContext]=\"{ queryBlock: { nestedLoop: [ queryBlock ]} }\"></ng-container>\n \n <ng-container *ngIf=\"queryBlock.table.attachedSubqueries\"> \n <fs-label>Attached Subqueries</fs-label>\n <ng-container *ngFor=\"let subquery of queryBlock.table.attachedSubqueries\">\n <ng-container [ngTemplateOutlet]=\"queryBlockCritical\" [ngTemplateOutletContext]=\"{ queryBlock: subquery.queryBlock }\"></ng-container> \n <ng-container [ngTemplateOutlet]=\"nestedLoop\" [ngTemplateOutletContext]=\"{ queryBlock: subquery.queryBlock, selectId: subquery.queryBlock.selectId, costInfo: subquery.queryBlock.costInfo }\"></ng-container>\n </ng-container>\n </ng-container> \n </ng-container>\n\n <ng-container *ngIf=\"queryBlock.nestedLoop\">\n <table class=\"fs-list-table style-line\">\n <thead>\n <tr>\n <th>Table</th>\n <th>Type</th>\n <th>Keys</th>\n <th>Ref</th>\n <th>Rows</th>\n <th>Filtered</th>\n <th>Extra</th>\n <th>Cost</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let item of queryBlock.nestedLoop; let index = index\">\n <tr>\n <td>\n {{item.table.tableName}}\n </td>\n <td>\n <fs-popover [template]=\"accessTypePopover\" [data]=\"item.table.accessType\">\n <span class=\"access-type\" [ngClass]=\"item.table.accessType\">{{item.table.accessType}}</span>\n </fs-popover> \n </td>\n <td>\n <fs-popover \n [template]=\"keysPopover\"\n [maxWidth]=\"null\"\n [data]=\"{ possibleKeys: item.table.possibleKeys, key: item.table.key }\">\n {{item.table.key}}\n </fs-popover>\n </td>\n <td>\n <div class=\"fs-delimit\">\n <ng-container *ngFor=\"let ref of item.table.ref\">\n <span>{{ref}}</span>\n </ng-container>\n </div>\n </td>\n <td>\n {{item.table.rowsExaminedPerScan}}\n </td>\n <td>\n {{item.table.filtered}}\n </td>\n <td>\n <div class=\"fs-delimit\">\n <ng-container *ngIf=\"item.table.indexCondition\">\n <span>\n <fs-popover \n [template]=\"usingIndexCondition\" \n [maxWidth]=\"null\"\n [data]=\"item.table.indexCondition\">\n Using Index Condition\n </fs-popover>\n </span>\n </ng-container>\n <ng-container *ngIf=\"item.table.attachedCondition\">\n <span>\n <fs-popover \n [template]=\"usingWhere\" \n [maxWidth]=\"null\"\n [data]=\"item.table.attachedCondition\">\n Using Where\n </fs-popover>\n </span>\n </ng-container>\n <ng-container *ngIf=\"item.usingIndex\">\n <span>Using Index</span>\n </ng-container> \n <ng-container *ngIf=\"item.usingFilesort\">\n <span class=\"critical\">Using File Sort</span>\n </ng-container>\n \n <ng-container *ngIf=\"item.usingTemporaryTable\">\n <span class=\"critical\">Temporary Table</span>\n </ng-container>\n </div>\n </td>\n <td> \n <fs-popover [template]=\"tableCostPopover\" [data]=\"item.table?.costInfo\">\n {{item.table?.costInfo.prefixCost}}\n </fs-popover>\n <ng-template #tableCostPopover let-data=\"data\">\n <div>Eval Cost: {{data.evalCost}}</div>\n <div>Read Cost: {{data.readCost}}</div>\n <div>Prefix Cost: {{data.prefixCost}}</div>\n <div>Data Read Per Join: {{data.dataReadPerJoin}}</div>\n </ng-template>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n <br>\n </ng-container> \n \n <ng-container *ngIf=\"queryBlock.selectListSubqueries\">\n <br>\n <fs-label>Select List Subqueries</fs-label>\n <ng-container *ngFor=\"let subquery of queryBlock.selectListSubqueries\">\n <ng-container [ngTemplateOutlet]=\"queryBlockCritical\" [ngTemplateOutletContext]=\"{ queryBlock: subquery.queryBlock }\"></ng-container> \n <ng-container [ngTemplateOutlet]=\"nestedLoop\" [ngTemplateOutletContext]=\"{ queryBlock: subquery.queryBlock, selectId: subquery.queryBlock.selectId, costInfo: subquery.queryBlock.costInfo }\"></ng-container>\n </ng-container>\n </ng-container>\n<!-- \n <ng-container *ngIf=\"queryBlock.queryBlockattachedSubqueries\">\n <br>\n <fs-label>Attached Subqueries</fs-label>\n <ng-container *ngFor=\"let subquery of queryBlock.attachedSubqueries\">\n <ng-container [ngTemplateOutlet]=\"queryBlockCritical\" [ngTemplateOutletContext]=\"{ queryBlock: subquery.queryBlock }\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"nestedLoop\" [ngTemplateOutletContext]=\"{ queryBlock: subquery.queryBlock }\"></ng-container>\n </ng-container>\n </ng-container> -->\n</ng-template>\n\n<ng-template #keysPopover let-data=\"data\">\n <div class=\"fs-delimit\">\n <ng-container *ngFor=\"let possibleKey of data.possibleKeys\">\n <span [ngClass]=\"{ 'query-log-used-key': possibleKey === data.key }\">{{possibleKey}}</span>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #usingWhere let-data=\"data\">\n {{data}}\n</ng-template>\n\n<ng-template #usingIndexCondition let-data=\"data\">\n {{data}}\n</ng-template>\n\n<ng-template #accessTypePopover let-data=\"data\">\n {{accessTypes[data]}}\n</ng-template>\n\n\n<ng-template #queryBlockCritical let-queryBlock=\"queryBlock\">\n <div class=\"fs-delimit\">\n <ng-container *ngIf=\"queryBlock.usingFilesort\">\n <span class=\"critical\">Using File Sort</span>\n </ng-container>\n \n <ng-container *ngIf=\"queryBlock.usingTemporaryTable\">\n <span class=\"critical\">Temporary Table</span>\n </ng-container>\n </div>\n</ng-template>", styles: ["::ng-deep .query-log-used-key{font-weight:bold}::ng-deep .explain-popover{white-space:pre}.critical{color:red}fs-clipboard-button{float:right}.query{white-space:break-spaces}.access-type{color:green}.access-type.fulltext,.access-type.index,.access-type.range{color:orange}.access-type.ALL{color:red}\n"], components: [{ type: i2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i3.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i3.FsLabelComponent, selector: "fs-label" }, { type: i4.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i4.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby"], exportAs: ["matTab"] }, { type: i5.FsClipboardButtonComponent, selector: "fs-clipboard-button", inputs: ["content"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.FsPopoverComponent, selector: "fs-popover" }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "fsFormatTruncate": i9.FsFormatTruncatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: QueryLogComponent, decorators: [{
53
- type: Component,
54
- args: [{
55
- templateUrl: './query-log.component.html',
56
- styleUrls: ['./query-log.component.scss'],
57
- changeDetection: ChangeDetectionStrategy.OnPush,
58
- }]
59
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
60
- type: Inject,
61
- args: [MAT_DIALOG_DATA]
62
- }] }, { type: i1.MatDialog }]; } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9xdWVyeS1sb2dzL2NvbXBvbmVudHMvcXVlcnktbG9nL3F1ZXJ5LWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvcXVlcnktbG9ncy9jb21wb25lbnRzL3F1ZXJ5LWxvZy9xdWVyeS1sb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7Ozs7O0FBUTlDLE1BQU0sT0FBTyxpQkFBaUI7SUFpQjVCLFlBQ21DLEtBQVUsRUFDbkMsT0FBa0I7UUFETyxVQUFLLEdBQUwsS0FBSyxDQUFLO1FBQ25DLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFoQnJCLGdCQUFXLEdBQUc7WUFDbkIsSUFBSSxFQUFFLDRKQUE0SjtZQUNsSyxNQUFNLEVBQUUsb0NBQW9DO1lBQzVDLEtBQUssRUFBRSwySUFBMkk7WUFDbEosTUFBTSxFQUFFLHdKQUF3SjtZQUNoSyxHQUFHLEVBQUUsaU5BQWlOO1lBQ3ROLFFBQVEsRUFBRSxzREFBc0Q7WUFDaEUsS0FBSyxFQUFFLGtSQUFrUjtZQUN6UixXQUFXLEVBQUUsc09BQXNPO1lBQ25QLEtBQUssRUFBRSx5SUFBeUk7WUFDaEosZUFBZSxFQUFFLEVBQUU7WUFDbkIsR0FBRyxFQUFFLG1EQUFtRDtTQUN6RCxDQUFDO1FBTUEsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ2xDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO1NBQ2hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBVyxVQUFVOztRQUNuQixPQUFPLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsVUFBVSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLGlCQUFpQjs7UUFDMUIsT0FBTyxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLGlCQUFpQixDQUFDO0lBQzVDLENBQUM7OytHQXhDVSxpQkFBaUIsa0JBa0JsQixlQUFlO21HQWxCZCxpQkFBaUIsb0RDYjlCLGlsVEEwUGM7NEZEN09ELGlCQUFpQjtrQkFMN0IsU0FBUzttQkFBQztvQkFDVCxXQUFXLEVBQUUsNEJBQTRCO29CQUN6QyxTQUFTLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzswQkFtQkksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuXG5pbXBvcnQgeyBFeHBsYWluQ29tcG9uZW50IH0gZnJvbSAnLi4vZXhwbGFpbic7XG5cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVyeS1sb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9xdWVyeS1sb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXJ5TG9nQ29tcG9uZW50IHtcblxuICBwdWJsaWMgcXVlcnlMb2c7XG4gIHB1YmxpYyBhY2Nlc3NUeXBlcyA9IHtcbiAgICBOVUxMOiAnVGhpcyBhY2Nlc3MgbWV0aG9kIG1lYW5zIE15U1FMIGNhbiByZXNvbHZlIHRoZSBxdWVyeSBkdXJpbmcgdGhlIG9wdGltaXphdGlvbiBwaGFzZSBhbmQgd2lsbCBub3QgZXZlbiBhY2Nlc3MgdGhlIHRhYmxlIG9yIGluZGV4IGR1cmluZyB0aGUgZXhlY3V0aW9uIHN0YWdlLicsXG4gICAgc3lzdGVtOiAnVGhlIHRhYmxlIGlzIGVtcHR5IG9yIGhhcyBvbmUgcm93LicsXG4gICAgY29uc3Q6ICdUaGUgdmFsdWUgb2YgdGhlIGNvbHVtbiBjYW4gYmUgdHJlYXRlZCBhcyBhIGNvbnN0YW50ICh0aGVyZSBpcyBvbmUgcm93IG1hdGNoaW5nIHRoZSBxdWVyeSkuIE5vdGU6IFByaW1hcnkgS2V5IExvb2t1cCwgVW5pcXVlIEluZGV4IExvb2t1cCcsXG4gICAgZXFfcmVmOiAnVGhlIGluZGV4IGlzIGNsdXN0ZXJlZCBhbmQgaXMgYmVpbmcgdXNlZCBieSB0aGUgb3BlcmF0aW9uIChlaXRoZXIgdGhlIGluZGV4IGlzIGEgUFJJTUFSWSBLRVkgb3IgVU5JUVVFIElOREVYIHdpdGggYWxsIGtleSBjb2x1bW5zIGRlZmluZWQgYXMgTk9UIE5VTEwpJyxcbiAgICByZWY6ICdUaGUgaW5kZXhlZCBjb2x1bW4gd2FzIGFjY2Vzc2VkIHVzaW5nIGFuIGVxdWFsaXR5IG9wZXJhdG9yIE5vdGU6IFRoZSByZWZfb3JfbnVsbCBhY2Nlc3MgdHlwZSBpcyBhIHZhcmlhdGlvbiBvbiByZWYuIEl0IG1lYW5zIE15U1FMIG11c3QgZG8gYSBzZWNvbmQgbG9va3VwIHRvIGZpbmQgTlVMTCBlbnRyaWVzIGFmdGVyIGRvaW5nIHRoZSBpbml0aWFsIGxvb2t1cC4nLFxuICAgIGZ1bGx0ZXh0OiAnT3BlcmF0aW9uIChKT0lOKSBpcyB1c2luZyB0aGUgdGFibGXigJlzIGZ1bGx0ZXh0IGluZGV4JyxcbiAgICBpbmRleDogJ1RoZSBlbnRpcmUgaW5kZXggaXMgc2Nhbm5lZCB0byBmaW5kIGEgbWF0Y2ggZm9yIHRoZSBxdWVyeS4gTm90ZTogVGhlIG1haW4gYWR2YW50YWdlIGlzIHRoYXQgdGhpcyBhdm9pZHMgc29ydGluZy4gVGhlIGJpZ2dlc3QgZGlzYWR2YW50YWdlIGlzIHRoZSBjb3N0IG9mIHJlYWRpbmcgYW4gZW50aXJlIHRhYmxlIGluIGluZGV4IG9yZGVyLiBUaGlzIHVzdWFsbHkgbWVhbnMgYWNjZXNzaW5nIHRoZSByb3dzIGluIHJhbmRvbSBvcmRlciwgd2hpY2ggaXMgdmVyeSBleHBlbnNpdmUuJyxcbiAgICBpbmRleF9tZXJnZTogJ1RoaXMgam9pbiB0eXBlIGluZGljYXRlcyB0aGF0IHRoZSBJbmRleCBNZXJnZSBvcHRpbWl6YXRpb24gaXMgdXNlZC4gSW4gdGhpcyBjYXNlLCB0aGUga2V5IGNvbHVtbiBpbiB0aGUgb3V0cHV0IHJvdyBjb250YWlucyBhIGxpc3Qgb2YgaW5kZXhlcyB1c2VkLiBJdCBpbmRpY2F0ZXMgYSBxdWVyeSBjYW4gbWFrZSBsaW1pdGVkIHVzZSBvZiBtdWx0aXBsZSBpbmRleGVzIG9uIGEgc2luZ2xlIHRhYmxlLicsXG4gICAgcmFuZ2U6ICdUaGlzIHR5cGUgcmVwbGFjZXMgZXFfcmVmIGZvciBzb21lIElOIHN1YnF1ZXJpZXMgb2YgdGhlIGZvbGxvd2luZyBmb3JtOiB2YWx1ZSBJTiAoU0VMRUNUIHByaW1hcnlfa2V5IEZST00gc2luZ2xlX3RhYmxlIFdIRVJFIHNvbWVfZXhwciknLFxuICAgIHVuaXF1ZV9zdWJxdWVyeTogJycsXG4gICAgQUxMOiAnTXlTUUwgc2NhbnMgdGhlIGVudGlyZSB0YWJsZSB0byBzYXRpc2Z5IHRoZSBxdWVyeScsXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgX2RhdGE6IGFueSxcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcbiAgKSB7XG4gICAgdGhpcy5xdWVyeUxvZyA9IF9kYXRhLnF1ZXJ5TG9nO1xuICB9XG5cbiAgcHVibGljIG9wZW5FeHBsYWluKCkge1xuICAgIHRoaXMuX2RpYWxvZy5vcGVuKEV4cGxhaW5Db21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHsgZXhwbGFpbjogdGhpcy5leHBsYWluIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGV4cGxhaW4oKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnlMb2cuZXhwbGFpbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVlcnlCbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5leHBsYWluPy5xdWVyeUJsb2NrO1xuICB9XG5cbiAgcHVibGljIGdldCBvcmRlcmluZ09wZXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeUJsb2NrPy5vcmRlcmluZ09wZXJhdGlvbjtcbiAgfVxufVxuIiwiPGZzLWRpYWxvZz5cbiAgPGgxIG1hdC1kaWFsb2ctdGl0bGU+UXVlcnkgTG9nPC9oMT5cbiAgPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiZnMtcm93LmdhcC1sYXJnZVwiPlxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+RHVyYXRpb248L2ZzLWxhYmVsPlxuICAgICAgICB7e3F1ZXJ5TG9nLmR1cmF0aW9ufX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPk9wdGltaXplZDwvZnMtbGFiZWw+XG4gICAgICAgIHt7cXVlcnlMb2cub3B0aW1pemVkID8gJ1llcycgOiAnTm8nfX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlF1ZXJ5IENvc3Q8L2ZzLWxhYmVsPlxuICAgICAgICB7e3F1ZXJ5TG9nLnF1ZXJ5Q29zdH19XG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG4gICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgIDxmcy1sYWJlbD5SYXcgRXhwbGFpbjwvZnMtbGFiZWw+XG4gICAgICAgIDxhIChjbGljayk9XCJvcGVuRXhwbGFpbigpXCI+VmlldzwvYT5cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlVSTDwvZnMtbGFiZWw+XG4gICAgICAgIHt7cXVlcnlMb2cucGF0aCB8IGZzRm9ybWF0VHJ1bmNhdGU6IDUwfX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LXRhYi1ncm91cD5cbiAgICAgIDxtYXQtdGFiIGxhYmVsPVwiUXVlcnlcIj5cbiAgICAgICAgPGZzLWNsaXBib2FyZC1idXR0b25cbiAgICAgICAgICBbY29udGVudF09XCJxdWVyeUxvZy5wcmV0dHlRdWVyeVwiPlxuICAgICAgICA8L2ZzLWNsaXBib2FyZC1idXR0b24+XG4gICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJxdWVyeUxvZy5wcmV0dHlRdWVyeVwiIGNsYXNzPVwicXVlcnlcIj48L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICAgIFxuICAgICAgPG1hdC10YWIgbGFiZWw9XCJFeHBsYWluXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibmVzdGVkTG9vcFwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHF1ZXJ5QmxvY2s6IHF1ZXJ5QmxvY2ssIHNlbGVjdElkOiBxdWVyeUJsb2NrLnNlbGVjdElkLCBjb3N0SW5mbzogcXVlcnlCbG9jay5jb3N0SW5mbyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L21hdC10YWI+XG4gICAgPC9tYXQtdGFiLWdyb3VwPlxuXG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxuICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxidXR0b25cbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgW21hdC1kaWFsb2ctY2xvc2VdPVwidW5kZWZpbmVkXCI+XG4gICAgICBEb25lXG4gICAgPC9idXR0b24+XG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuPC9mcy1kaWFsb2c+XG5cbjxuZy10ZW1wbGF0ZSAjbmVzdGVkTG9vcCBsZXQtcXVlcnlCbG9jaz1cInF1ZXJ5QmxvY2tcIiBsZXQtc2VsZWN0SWQ9XCJzZWxlY3RJZFwiIGxldC1jb3N0SW5mbz1cImNvc3RJbmZvXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RJZFwiPlxuICAgIDxoMT5TZWxlY3Qge3tzZWxlY3RJZH19PC9oMT5cbiAgPC9uZy1jb250YWluZXI+XG4gIFxuICA8ZGl2IGNsYXNzPVwiZnMtcm93LmdhcC1sYXJnZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb3N0SW5mbz8ucXVlcnlDb3N0XCI+XG4gICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgIDxmcy1sYWJlbD5RdWVyeSBDb3N0PC9mcy1sYWJlbD5cbiAgICAgICAge3tjb3N0SW5mby5xdWVyeUNvc3R9fVxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlcnlCbG9jay5vcmRlcmluZ09wZXJhdGlvblwiPlxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+T3JkZXJpbmcgT3BlcmF0aW9uPC9mcy1sYWJlbD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJxdWVyeUJsb2NrQ3JpdGljYWxcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBxdWVyeUJsb2NrOiBxdWVyeUJsb2NrLm9yZGVyaW5nT3BlcmF0aW9uIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlcnlCbG9jay5ncm91cGluZ09wZXJhdGlvblwiPlxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+R3JvdXBpbmcgT3BlcmF0aW9uPC9mcy1sYWJlbD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJxdWVyeUJsb2NrQ3JpdGljYWxcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBxdWVyeUJsb2NrOiBxdWVyeUJsb2NrLmdyb3VwaW5nT3BlcmF0aW9uIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVyeUJsb2NrLm9yZGVyaW5nT3BlcmF0aW9uXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJuZXN0ZWRMb29wXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcXVlcnlCbG9jazogcXVlcnlCbG9jay5vcmRlcmluZ09wZXJhdGlvbiB9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVyeUJsb2NrLmdyb3VwaW5nT3BlcmF0aW9uXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJuZXN0ZWRMb29wXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcXVlcnlCbG9jazogcXVlcnlCbG9jay5ncm91cGluZ09wZXJhdGlvbiB9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVyeUJsb2NrLnRhYmxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJuZXN0ZWRMb29wXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcXVlcnlCbG9jazogeyBuZXN0ZWRMb29wOiBbIHF1ZXJ5QmxvY2sgXX0gfVwiPjwvbmctY29udGFpbmVyPlxuICBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlcnlCbG9jay50YWJsZS5hdHRhY2hlZFN1YnF1ZXJpZXNcIj4gIFxuICAgICAgPGZzLWxhYmVsPkF0dGFjaGVkIFN1YnF1ZXJpZXM8L2ZzLWxhYmVsPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3VicXVlcnkgb2YgcXVlcnlCbG9jay50YWJsZS5hdHRhY2hlZFN1YnF1ZXJpZXNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJxdWVyeUJsb2NrQ3JpdGljYWxcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBxdWVyeUJsb2NrOiBzdWJxdWVyeS5xdWVyeUJsb2NrIH1cIj48L25nLWNvbnRhaW5lcj4gXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibmVzdGVkTG9vcFwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHF1ZXJ5QmxvY2s6IHN1YnF1ZXJ5LnF1ZXJ5QmxvY2ssIHNlbGVjdElkOiBzdWJxdWVyeS5xdWVyeUJsb2NrLnNlbGVjdElkLCBjb3N0SW5mbzogc3VicXVlcnkucXVlcnlCbG9jay5jb3N0SW5mbyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj4gICAgXG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVyeUJsb2NrLm5lc3RlZExvb3BcIj5cbiAgICA8dGFibGUgY2xhc3M9XCJmcy1saXN0LXRhYmxlIHN0eWxlLWxpbmVcIj5cbiAgICAgICA8dGhlYWQ+XG4gICAgICAgICA8dHI+XG4gICAgICAgICAgIDx0aD5UYWJsZTwvdGg+XG4gICAgICAgICAgIDx0aD5UeXBlPC90aD5cbiAgICAgICAgICAgPHRoPktleXM8L3RoPlxuICAgICAgICAgICA8dGg+UmVmPC90aD5cbiAgICAgICAgICAgPHRoPlJvd3M8L3RoPlxuICAgICAgICAgICA8dGg+RmlsdGVyZWQ8L3RoPlxuICAgICAgICAgICA8dGg+RXh0cmE8L3RoPlxuICAgICAgICAgICA8dGg+Q29zdDwvdGg+XG4gICAgICAgICA8L3RyPlxuICAgICAgIDwvdGhlYWQ+XG4gICAgICAgPHRib2R5PlxuICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVyeUJsb2NrLm5lc3RlZExvb3A7IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICB7e2l0ZW0udGFibGUudGFibGVOYW1lfX1cbiAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgIDxmcy1wb3BvdmVyIFt0ZW1wbGF0ZV09XCJhY2Nlc3NUeXBlUG9wb3ZlclwiIFtkYXRhXT1cIml0ZW0udGFibGUuYWNjZXNzVHlwZVwiPlxuICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY2Vzcy10eXBlXCIgW25nQ2xhc3NdPVwiaXRlbS50YWJsZS5hY2Nlc3NUeXBlXCI+e3tpdGVtLnRhYmxlLmFjY2Vzc1R5cGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgIDwvZnMtcG9wb3Zlcj4gICAgICAgICAgICBcbiAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgIDxmcy1wb3BvdmVyICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJrZXlzUG9wb3ZlclwiXG4gICAgICAgICAgICAgICAgICAgW21heFdpZHRoXT1cIm51bGxcIlxuICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInsgcG9zc2libGVLZXlzOiBpdGVtLnRhYmxlLnBvc3NpYmxlS2V5cywga2V5OiBpdGVtLnRhYmxlLmtleSB9XCI+XG4gICAgICAgICAgICAgICAgIHt7aXRlbS50YWJsZS5rZXl9fVxuICAgICAgICAgICAgICAgPC9mcy1wb3BvdmVyPlxuICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZzLWRlbGltaXRcIj5cbiAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcmVmIG9mIGl0ZW0udGFibGUucmVmXCI+XG4gICAgICAgICAgICAgICAgICAgPHNwYW4+e3tyZWZ9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgIHt7aXRlbS50YWJsZS5yb3dzRXhhbWluZWRQZXJTY2FufX1cbiAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgIHt7aXRlbS50YWJsZS5maWx0ZXJlZH19XG4gICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtZGVsaW1pdFwiPlxuICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50YWJsZS5pbmRleENvbmRpdGlvblwiPlxuICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgPGZzLXBvcG92ZXIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlXT1cInVzaW5nSW5kZXhDb25kaXRpb25cIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4V2lkdGhdPVwibnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiaXRlbS50YWJsZS5pbmRleENvbmRpdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICBVc2luZyBJbmRleCBDb25kaXRpb25cbiAgICAgICAgICAgICAgICAgICAgIDwvZnMtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50YWJsZS5hdHRhY2hlZENvbmRpdGlvblwiPlxuICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgPGZzLXBvcG92ZXIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlXT1cInVzaW5nV2hlcmVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4V2lkdGhdPVwibnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiaXRlbS50YWJsZS5hdHRhY2hlZENvbmRpdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICBVc2luZyBXaGVyZVxuICAgICAgICAgICAgICAgICAgICAgPC9mcy1wb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnVzaW5nSW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICA8c3Bhbj5Vc2luZyBJbmRleDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+ICAgIFxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnVzaW5nRmlsZXNvcnRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3JpdGljYWxcIj5Vc2luZyBGaWxlIFNvcnQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udXNpbmdUZW1wb3JhcnlUYWJsZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcml0aWNhbFwiPlRlbXBvcmFyeSBUYWJsZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgPHRkPiAgICAgXG4gICAgICAgICAgICAgIDxmcy1wb3BvdmVyIFt0ZW1wbGF0ZV09XCJ0YWJsZUNvc3RQb3BvdmVyXCIgW2RhdGFdPVwiaXRlbS50YWJsZT8uY29zdEluZm9cIj5cbiAgICAgICAgICAgICAgICB7e2l0ZW0udGFibGU/LmNvc3RJbmZvLnByZWZpeENvc3R9fVxuICAgICAgICAgICAgICA8L2ZzLXBvcG92ZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGFibGVDb3N0UG9wb3ZlciBsZXQtZGF0YT1cImRhdGFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PkV2YWwgQ29zdDoge3tkYXRhLmV2YWxDb3N0fX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2PlJlYWQgQ29zdDoge3tkYXRhLnJlYWRDb3N0fX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2PlByZWZpeCBDb3N0OiB7e2RhdGEucHJlZml4Q29zdH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5EYXRhIFJlYWQgUGVyIEpvaW46IHt7ZGF0YS5kYXRhUmVhZFBlckpvaW59fTwvZGl2PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgIDwvdHI+XG4gICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICA8L3Rib2R5PlxuICAgICA8L3RhYmxlPlxuICAgICA8YnI+XG4gICA8L25nLWNvbnRhaW5lcj4gIFxuICBcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXJ5QmxvY2suc2VsZWN0TGlzdFN1YnF1ZXJpZXNcIj5cbiAgICA8YnI+XG4gICAgPGZzLWxhYmVsPlNlbGVjdCBMaXN0IFN1YnF1ZXJpZXM8L2ZzLWxhYmVsPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN1YnF1ZXJ5IG9mIHF1ZXJ5QmxvY2suc2VsZWN0TGlzdFN1YnF1ZXJpZXNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicXVlcnlCbG9ja0NyaXRpY2FsXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcXVlcnlCbG9jazogc3VicXVlcnkucXVlcnlCbG9jayB9XCI+PC9uZy1jb250YWluZXI+IFxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJuZXN0ZWRMb29wXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcXVlcnlCbG9jazogc3VicXVlcnkucXVlcnlCbG9jaywgc2VsZWN0SWQ6IHN1YnF1ZXJ5LnF1ZXJ5QmxvY2suc2VsZWN0SWQsIGNvc3RJbmZvOiBzdWJxdWVyeS5xdWVyeUJsb2NrLmNvc3RJbmZvIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48IS0tIFxuICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlcnlCbG9jay5xdWVyeUJsb2NrYXR0YWNoZWRTdWJxdWVyaWVzXCI+XG4gICAgPGJyPlxuICAgIDxmcy1sYWJlbD5BdHRhY2hlZCBTdWJxdWVyaWVzPC9mcy1sYWJlbD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdWJxdWVyeSBvZiBxdWVyeUJsb2NrLmF0dGFjaGVkU3VicXVlcmllc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJxdWVyeUJsb2NrQ3JpdGljYWxcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBxdWVyeUJsb2NrOiBzdWJxdWVyeS5xdWVyeUJsb2NrIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibmVzdGVkTG9vcFwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHF1ZXJ5QmxvY2s6IHN1YnF1ZXJ5LnF1ZXJ5QmxvY2sgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj4gLS0+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2tleXNQb3BvdmVyIGxldC1kYXRhPVwiZGF0YVwiPlxuICA8ZGl2IGNsYXNzPVwiZnMtZGVsaW1pdFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBvc3NpYmxlS2V5IG9mIGRhdGEucG9zc2libGVLZXlzXCI+XG4gICAgICA8c3BhbiBbbmdDbGFzc109XCJ7ICdxdWVyeS1sb2ctdXNlZC1rZXknOiBwb3NzaWJsZUtleSA9PT0gZGF0YS5rZXkgfVwiPnt7cG9zc2libGVLZXl9fTwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3VzaW5nV2hlcmUgbGV0LWRhdGE9XCJkYXRhXCI+XG4gIHt7ZGF0YX19XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3VzaW5nSW5kZXhDb25kaXRpb24gbGV0LWRhdGE9XCJkYXRhXCI+XG4gIHt7ZGF0YX19XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FjY2Vzc1R5cGVQb3BvdmVyIGxldC1kYXRhPVwiZGF0YVwiPlxuICB7e2FjY2Vzc1R5cGVzW2RhdGFdfX1cbjwvbmctdGVtcGxhdGU+XG5cblxuPG5nLXRlbXBsYXRlICNxdWVyeUJsb2NrQ3JpdGljYWwgbGV0LXF1ZXJ5QmxvY2s9XCJxdWVyeUJsb2NrXCI+XG4gIDxkaXYgY2xhc3M9XCJmcy1kZWxpbWl0XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXJ5QmxvY2sudXNpbmdGaWxlc29ydFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcml0aWNhbFwiPlVzaW5nIEZpbGUgU29ydDwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlcnlCbG9jay51c2luZ1RlbXBvcmFyeVRhYmxlXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImNyaXRpY2FsXCI+VGVtcG9yYXJ5IFRhYmxlPC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
@@ -1,89 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
2
- import { MatDialog } from '@angular/material/dialog';
3
- import { ItemType } from '@firestitch/filter';
4
- import { FsListComponent } from '@firestitch/list';
5
- import { map } from 'rxjs/operators';
6
- import { QueryLogComponent } from '..';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/material/dialog";
9
- import * as i2 from "@firestitch/list";
10
- import * as i3 from "@firestitch/date";
11
- import * as i4 from "@angular/common";
12
- import * as i5 from "@firestitch/common";
13
- export class QueryLogsComponent {
14
- constructor(_dialog) {
15
- this._dialog = _dialog;
16
- }
17
- openQueryLog(queryLog) {
18
- this._dialog.open(QueryLogComponent, {
19
- data: { queryLog },
20
- width: '100%',
21
- });
22
- }
23
- ngOnInit() {
24
- this.listConfig = {
25
- filters: [
26
- {
27
- name: 'keyword',
28
- type: ItemType.Keyword,
29
- label: 'Search',
30
- },
31
- {
32
- name: 'optimized',
33
- type: ItemType.Select,
34
- label: 'Optimization',
35
- values: [
36
- { name: 'Any', value: undefined },
37
- { name: 'Yes', value: 'true' },
38
- { name: 'No', value: 'false' },
39
- ],
40
- },
41
- {
42
- name: 'createDate',
43
- type: ItemType.DateTimeRange,
44
- label: ['From Date', 'To Date'],
45
- },
46
- {
47
- name: 'duration',
48
- type: ItemType.Range,
49
- label: ['Min Duration', 'Max Duration'],
50
- },
51
- ],
52
- actions: [
53
- {
54
- label: 'Purge',
55
- primary: false,
56
- click: () => {
57
- this.purgeQueryLogs()
58
- .subscribe(() => {
59
- this.list.reload();
60
- });
61
- },
62
- },
63
- ],
64
- fetch: (query) => {
65
- return this.loadQueryLogs(query)
66
- .pipe(map((response) => ({ data: response.data, paging: response.paging })));
67
- },
68
- };
69
- }
70
- }
71
- QueryLogsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: QueryLogsComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
72
- QueryLogsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: QueryLogsComponent, selector: "fs-system-query-logs", inputs: { loadQueryLogs: "loadQueryLogs", purgeQueryLogs: "purgeQueryLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true }], ngImport: i0, template: "<fs-list [config]=\"listConfig\">\n <fs-list-column title=\"Optimized\" name=\"optimized\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <span [ngClass]=\"{ optimized: row.optimized, 'not-optimized': !row.optimized }\">\n {{row.optimized ? 'Yes' : 'No'}}\n </span>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Duration\" name=\"duration\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.duration}}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Cost\" name=\"query_cost\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.queryCost}}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Query\">\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"openQueryLog(row)\">{{ row.query | fsFormatTruncate: 500 }}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Created\" name=\"query_log_id\" [sortable]=\"true\" [direction]=\"'desc'\" [sortableDefault]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n</fs-list>", styles: [":host ::ng-deep .optimized{color:green}:host ::ng-deep .not-optimized{color:red}\n"], components: [{ type: i2.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i3.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "fsFormatTruncate": i5.FsFormatTruncatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: QueryLogsComponent, decorators: [{
74
- type: Component,
75
- args: [{
76
- selector: 'fs-system-query-logs',
77
- templateUrl: './query-logs.component.html',
78
- styleUrls: ['./query-logs.component.scss'],
79
- changeDetection: ChangeDetectionStrategy.OnPush,
80
- }]
81
- }], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { list: [{
82
- type: ViewChild,
83
- args: [FsListComponent]
84
- }], loadQueryLogs: [{
85
- type: Input
86
- }], purgeQueryLogs: [{
87
- type: Input
88
- }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktbG9ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvcXVlcnktbG9ncy9jb21wb25lbnRzL3F1ZXJ5LWxvZ3MvcXVlcnktbG9ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvcXVlcnktbG9ncy9jb21wb25lbnRzL3F1ZXJ5LWxvZ3MvcXVlcnktbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLGtCQUFrQixDQUFDO0FBR2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxJQUFJLENBQUM7Ozs7Ozs7QUFTdkMsTUFBTSxPQUFPLGtCQUFrQjtJQVU3QixZQUNVLE9BQWtCO1FBQWxCLFlBQU8sR0FBUCxPQUFPLENBQVc7SUFDeEIsQ0FBQztJQUVFLFlBQVksQ0FBQyxRQUFRO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ25DLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUNsQixLQUFLLEVBQUUsTUFBTTtTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNoQixPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPO29CQUN0QixLQUFLLEVBQUUsUUFBUTtpQkFDaEI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTTtvQkFDckIsS0FBSyxFQUFFLGNBQWM7b0JBQ3JCLE1BQU0sRUFBRTt3QkFDTixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTt3QkFDakMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7d0JBQzlCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO3FCQUMvQjtpQkFDRjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsWUFBWTtvQkFDbEIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxhQUFhO29CQUM1QixLQUFLLEVBQUUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO2lCQUNoQztnQkFDRDtvQkFDRSxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLO29CQUNwQixLQUFLLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDO2lCQUN4QzthQUNGO1lBQ0QsT0FBTyxFQUFFO2dCQUNQO29CQUNFLEtBQUssRUFBRSxPQUFPO29CQUNkLE9BQU8sRUFBRSxLQUFLO29CQUNkLEtBQUssRUFBRSxHQUFHLEVBQUU7d0JBQ1YsSUFBSSxDQUFDLGNBQWMsRUFBRTs2QkFDbEIsU0FBUyxDQUFDLEdBQUcsRUFBRTs0QkFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNyQixDQUFDLENBQUMsQ0FBQztvQkFDUCxDQUFDO2lCQUNGO2FBQ0Y7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO3FCQUM3QixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ3RFLENBQUM7WUFDTixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7O2dIQXJFVSxrQkFBa0I7b0dBQWxCLGtCQUFrQixnTEFFbEIsZUFBZSxnRENyQjVCLDhzQ0E0QlU7NEZEVEcsa0JBQWtCO2tCQU45QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFdBQVcsRUFBRSw2QkFBNkI7b0JBQzFDLFNBQVMsRUFBRSxDQUFDLDZCQUE2QixDQUFDO29CQUMxQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7Z0dBSVEsSUFBSTtzQkFEVixTQUFTO3VCQUFDLGVBQWU7Z0JBR1YsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xyXG5pbXBvcnQgeyBGc0xpc3RDb21wb25lbnQsIEZzTGlzdENvbmZpZyB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBRdWVyeUxvZ0NvbXBvbmVudCB9IGZyb20gJy4uJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ZzLXN5c3RlbS1xdWVyeS1sb2dzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcXVlcnktbG9ncy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcXVlcnktbG9ncy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUXVlcnlMb2dzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZChGc0xpc3RDb21wb25lbnQpXHJcbiAgcHVibGljIGxpc3Q6IEZzTGlzdENvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGxvYWRRdWVyeUxvZ3M6IChxdWVyeTogYW55KSA9PiBPYnNlcnZhYmxlPHsgZGF0YTogYW55OyBwYWdpbmc6IGFueSB9PjtcclxuICBASW5wdXQoKSBwdWJsaWMgcHVyZ2VRdWVyeUxvZ3M6ICgpID0+IE9ic2VydmFibGU8YW55PjtcclxuXHJcbiAgcHVibGljIGxpc3RDb25maWc6IEZzTGlzdENvbmZpZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgb3BlblF1ZXJ5TG9nKHF1ZXJ5TG9nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kaWFsb2cub3BlbihRdWVyeUxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7IHF1ZXJ5TG9nIH0sXHJcbiAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubGlzdENvbmZpZyA9IHtcclxuICAgICAgZmlsdGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdrZXl3b3JkJyxcclxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLktleXdvcmQsXHJcbiAgICAgICAgICBsYWJlbDogJ1NlYXJjaCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAnb3B0aW1pemVkJyxcclxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcclxuICAgICAgICAgIGxhYmVsOiAnT3B0aW1pemF0aW9uJyxcclxuICAgICAgICAgIHZhbHVlczogW1xyXG4gICAgICAgICAgICB7IG5hbWU6ICdBbnknLCB2YWx1ZTogdW5kZWZpbmVkIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ1llcycsIHZhbHVlOiAndHJ1ZScgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAnTm8nLCB2YWx1ZTogJ2ZhbHNlJyB9LFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdjcmVhdGVEYXRlJyxcclxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLkRhdGVUaW1lUmFuZ2UsXHJcbiAgICAgICAgICBsYWJlbDogWydGcm9tIERhdGUnLCAnVG8gRGF0ZSddLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ2R1cmF0aW9uJyxcclxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLlJhbmdlLFxyXG4gICAgICAgICAgbGFiZWw6IFsnTWluIER1cmF0aW9uJywgJ01heCBEdXJhdGlvbiddLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIGFjdGlvbnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogJ1B1cmdlJyxcclxuICAgICAgICAgIHByaW1hcnk6IGZhbHNlLFxyXG4gICAgICAgICAgY2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wdXJnZVF1ZXJ5TG9ncygpXHJcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIGZldGNoOiAocXVlcnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkUXVlcnlMb2dzKHF1ZXJ5KVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+ICh7IGRhdGE6IHJlc3BvbnNlLmRhdGEsIHBhZ2luZzogcmVzcG9uc2UucGFnaW5nIH0pKSxcclxuICAgICAgICAgICk7XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGZzLWxpc3QgW2NvbmZpZ109XCJsaXN0Q29uZmlnXCI+XG4gIDxmcy1saXN0LWNvbHVtbiB0aXRsZT1cIk9wdGltaXplZFwiIG5hbWU9XCJvcHRpbWl6ZWRcIiBbc29ydGFibGVdPVwidHJ1ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPHNwYW4gW25nQ2xhc3NdPVwieyBvcHRpbWl6ZWQ6IHJvdy5vcHRpbWl6ZWQsICdub3Qtb3B0aW1pemVkJzogIXJvdy5vcHRpbWl6ZWQgfVwiPlxuICAgICAgICB7e3Jvdy5vcHRpbWl6ZWQgPyAnWWVzJyA6ICdObyd9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbiB0aXRsZT1cIkR1cmF0aW9uXCIgbmFtZT1cImR1cmF0aW9uXCIgW3NvcnRhYmxlXT1cInRydWVcIj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIHt7cm93LmR1cmF0aW9ufX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4gdGl0bGU9XCJDb3N0XCIgbmFtZT1cInF1ZXJ5X2Nvc3RcIiBbc29ydGFibGVdPVwidHJ1ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAge3tyb3cucXVlcnlDb3N0fX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4gdGl0bGU9XCJRdWVyeVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGEgKGNsaWNrKT1cIm9wZW5RdWVyeUxvZyhyb3cpXCI+e3sgcm93LnF1ZXJ5IHwgZnNGb3JtYXRUcnVuY2F0ZTogNTAwIH19PC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbiB0aXRsZT1cIkNyZWF0ZWRcIiBuYW1lPVwicXVlcnlfbG9nX2lkXCIgW3NvcnRhYmxlXT1cInRydWVcIiBbZGlyZWN0aW9uXT1cIidkZXNjJ1wiIFtzb3J0YWJsZURlZmF1bHRdPVwidHJ1ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGZzLWRhdGUtYWdvIFtkYXRlXT1cInJvdy5jcmVhdGVEYXRlXCI+PC9mcy1kYXRlLWFnbz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuPC9mcy1saXN0PiJdfQ==
@@ -1,37 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
3
- import { ApiLogStates } from '../../consts';
4
- import { indexNameValue } from '../../helpers/index-name-value';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/material/dialog";
7
- import * as i2 from "@firestitch/dialog";
8
- import * as i3 from "@firestitch/label";
9
- import * as i4 from "@angular/material/button";
10
- import * as i5 from "@firestitch/skeleton";
11
- import * as i6 from "@angular/common";
12
- import * as i7 from "@firestitch/date";
13
- export class ApiLogComponent {
14
- constructor(_dialogRef, data) {
15
- this._dialogRef = _dialogRef;
16
- this.data = data;
17
- }
18
- ngOnInit() {
19
- this.apiLogStates = indexNameValue(ApiLogStates);
20
- if (this.data.apiLog) {
21
- this.apiLog = this.data.apiLog;
22
- }
23
- }
24
- }
25
- ApiLogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ApiLogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
26
- ApiLogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ApiLogComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"apiLog\">\n\n <div mat-dialog-title>API Log</div>\n\n <mat-dialog-content>\n <div class=\"fs-row.gap-large.wrap\">\n <div>\n <fs-label-field>\n <fs-label>\n Type\n </fs-label>\n {{apiLog.type}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n {{apiLogStates[apiLog.state]}}\n </fs-label-field>\n\n\n <fs-label-field *ngIf=\"apiLog.code\">\n <fs-label>\n Code\n </fs-label>\n {{apiLog.code}}\n </fs-label-field>\n\n </div>\n <div>\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{apiLog.createDate|fsDateFormat: 'full-date-time'}}\n </fs-label-field>\n\n\n <fs-label-field *ngIf=\"apiLog.direction\">\n <fs-label>\n Direction\n </fs-label>\n {{apiLog.direction}}\n </fs-label-field>\n\n\n <fs-label-field *ngIf=\"apiLog.length\">\n <fs-label>\n Duration\n </fs-label>\n {{ apiLog.length | fsDateDuration }}\n </fs-label-field>\n </div>\n </div>\n\n <div>\n <fs-label-field *ngIf=\"apiLog.message\">\n <fs-label>\n Message\n </fs-label>\n {{apiLog.message}}\n </fs-label-field>\n </div>\n\n\n <div class=\"fs-row.gap-large.wrap\">\n <div>\n <fs-label-field *ngIf=\"apiLog.method\">\n <fs-label>\n Method\n </fs-label>\n {{apiLog.method}}\n </fs-label-field>\n </div>\n <div>\n <fs-label-field *ngIf=\"apiLog.url\">\n <fs-label>\n URL\n </fs-label>\n {{apiLog.url}}\n </fs-label-field>\n </div>\n </div>\n\n <div>\n <fs-label-field *ngIf=\"apiLog.request\">\n <fs-label>\n Request\n </fs-label>\n <pre>{{apiLog.request|json}}</pre>\n </fs-label-field>\n\n <fs-label-field *ngIf=\"apiLog.response\">\n <fs-label>\n Response\n </fs-label>\n <pre>{{apiLog.response|json}}</pre>\n </fs-label-field>\n </div>\n </mat-dialog-content>\n\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Done</button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: [""], components: [{ type: i2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i3.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i3.FsLabelComponent, selector: "fs-label" }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsDateFormat": i7.FsDateFormatPipe, "fsDateDuration": i7.FsDateDurationPipe, "json": i6.JsonPipe } });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ApiLogComponent, decorators: [{
28
- type: Component,
29
- args: [{
30
- templateUrl: './api-log.component.html',
31
- styleUrls: ['./api-log.component.scss']
32
- }]
33
- }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
34
- type: Inject,
35
- args: [MAT_DIALOG_DATA]
36
- }] }]; } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2NvbXBvbmVudHMvYXBpLWxvZy9hcGktbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9hcGktbG9nL2FwaS1sb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7O0FBT2hFLE1BQU0sT0FBTyxlQUFlO0lBSzFCLFlBQW9CLFVBQXlDLEVBQ2pCLElBQUk7UUFENUIsZUFBVSxHQUFWLFVBQVUsQ0FBK0I7UUFDakIsU0FBSSxHQUFKLElBQUksQ0FBQTtJQUFHLENBQUM7SUFFN0MsUUFBUTtRQUViLElBQUksQ0FBQyxZQUFZLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWpELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNoQztJQUNILENBQUM7OzZHQWZVLGVBQWUsOENBTU4sZUFBZTtpR0FOeEIsZUFBZSxvRENWNUIsMjRFQTBHQTs0RkRoR2EsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDVCxXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztpQkFDeEM7OzBCQU9jLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBcGlMb2dTdGF0ZXMgfSBmcm9tICcuLi8uLi9jb25zdHMnO1xyXG5pbXBvcnQgeyBpbmRleE5hbWVWYWx1ZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvaW5kZXgtbmFtZS12YWx1ZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FwaS1sb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FwaS1sb2cuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpTG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIGFwaUxvZztcclxuICBwdWJsaWMgYXBpTG9nU3RhdGVzO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBcGlMb2dDb21wb25lbnQ+LFxyXG4gICAgICAgICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YSkge31cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCkge1xyXG5cclxuICAgIHRoaXMuYXBpTG9nU3RhdGVzID0gaW5kZXhOYW1lVmFsdWUoQXBpTG9nU3RhdGVzKTtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLmFwaUxvZykge1xyXG4gICAgICB0aGlzLmFwaUxvZyA9IHRoaXMuZGF0YS5hcGlMb2c7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxmcy1kaWFsb2cgKmZzU2tlbGV0b249XCJhcGlMb2dcIj5cblxuICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGU+QVBJIExvZzwvZGl2PlxuXG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImZzLXJvdy5nYXAtbGFyZ2Uud3JhcFwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgIFR5cGVcbiAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgIHt7YXBpTG9nLnR5cGV9fVxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG4gICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICBTdGF0dXNcbiAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgIHt7YXBpTG9nU3RhdGVzW2FwaUxvZy5zdGF0ZV19fVxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG5cbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkICpuZ0lmPVwiYXBpTG9nLmNvZGVcIj5cbiAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICBDb2RlXG4gICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICB7e2FwaUxvZy5jb2RlfX1cbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cblxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgRGF0ZVxuICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAge3thcGlMb2cuY3JlYXRlRGF0ZXxmc0RhdGVGb3JtYXQ6ICdmdWxsLWRhdGUtdGltZSd9fVxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG5cbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkICpuZ0lmPVwiYXBpTG9nLmRpcmVjdGlvblwiPlxuICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgIERpcmVjdGlvblxuICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAge3thcGlMb2cuZGlyZWN0aW9ufX1cbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cblxuXG4gICAgICAgIDxmcy1sYWJlbC1maWVsZCAqbmdJZj1cImFwaUxvZy5sZW5ndGhcIj5cbiAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICBEdXJhdGlvblxuICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAge3sgYXBpTG9nLmxlbmd0aCB8IGZzRGF0ZUR1cmF0aW9uIH19XG4gICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJhcGlMb2cubWVzc2FnZVwiPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgTWVzc2FnZVxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICB7e2FwaUxvZy5tZXNzYWdlfX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgPC9kaXY+XG5cblxuICAgIDxkaXYgY2xhc3M9XCJmcy1yb3cuZ2FwLWxhcmdlLndyYXBcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxmcy1sYWJlbC1maWVsZCAqbmdJZj1cImFwaUxvZy5tZXRob2RcIj5cbiAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICBNZXRob2RcbiAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgIHt7YXBpTG9nLm1ldGhvZH19XG4gICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxmcy1sYWJlbC1maWVsZCAqbmdJZj1cImFwaUxvZy51cmxcIj5cbiAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICBVUkxcbiAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgIHt7YXBpTG9nLnVybH19XG4gICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJhcGlMb2cucmVxdWVzdFwiPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgUmVxdWVzdFxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICA8cHJlPnt7YXBpTG9nLnJlcXVlc3R8anNvbn19PC9wcmU+XG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG4gICAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJhcGlMb2cucmVzcG9uc2VcIj5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIFJlc3BvbnNlXG4gICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgIDxwcmU+e3thcGlMb2cucmVzcG9uc2V8anNvbn19PC9wcmU+XG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgIDwvZGl2PlxuICA8L21hdC1kaWFsb2ctY29udGVudD5cblxuICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJ0cnVlXCIgY29sb3I9XCJwcmltYXJ5XCI+RG9uZTwvYnV0dG9uPlxuICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbjwvZnMtZGlhbG9nPlxuIl19
@@ -1,73 +0,0 @@
1
- import { Component, Input, ViewChild } from '@angular/core';
2
- import { MatDialog } from '@angular/material/dialog';
3
- import { ItemType } from '@firestitch/filter';
4
- import { FsListComponent } from '@firestitch/list';
5
- import { map } from 'rxjs/operators';
6
- import { ApiLogStates } from '../../consts';
7
- import { indexNameValue } from '../../helpers/index-name-value';
8
- import { ApiLogComponent } from '../api-log/api-log.component';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/material/dialog";
11
- import * as i2 from "@firestitch/list";
12
- import * as i3 from "@angular/material/icon";
13
- import * as i4 from "@firestitch/date";
14
- import * as i5 from "@angular/common";
15
- export class ApiLogsComponent {
16
- constructor(_dialog) {
17
- this._dialog = _dialog;
18
- this.config = null;
19
- this.apiLogStates = indexNameValue(ApiLogStates);
20
- }
21
- ngOnInit() {
22
- this._configList();
23
- }
24
- _configList() {
25
- this.config = {
26
- filters: [
27
- {
28
- type: ItemType.Keyword,
29
- name: 'keyword',
30
- label: 'Search',
31
- },
32
- {
33
- type: ItemType.Select,
34
- name: 'state',
35
- label: 'Status',
36
- values: ApiLogStates,
37
- },
38
- {
39
- name: 'createDate',
40
- type: ItemType.DateRange,
41
- label: ['From Date', 'To Date'],
42
- },
43
- ],
44
- fetch: (query) => {
45
- Object.assign(query, {});
46
- return this.loadApiLogs(query)
47
- .pipe(map((response) => ({ data: response.data, paging: response.paging })));
48
- },
49
- };
50
- }
51
- open(apiLog) {
52
- this._dialog.open(ApiLogComponent, {
53
- data: { apiLog },
54
- width: '85%',
55
- });
56
- }
57
- }
58
- ApiLogsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ApiLogsComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
59
- ApiLogsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ApiLogsComponent, selector: "fs-system-api-logs", inputs: { loadApiLogs: "loadApiLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>Name</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <a href=\"javascript:;\" (click)=\"open(row)\">\n {{row.type || 'Unknown'}}\n <mat-icon class=\"direction\" *ngIf=\"row.direction=='outgoing'\">arrow_upward</mat-icon>\n <mat-icon class=\"direction\" *ngIf=\"row.direction=='incoming'\">arrow_downward</mat-icon>\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Status</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{apiLogStates[row.state]}}\n <span *ngIf=\"row.code\" class=\"code\" [ngClass]=\"{'success': row.code==200,'error': row.code!=200 }\">[{{row.code}}]</span>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Message</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.message}}\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Date</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\n <div><small *ngIf=\"row.length\">Duration: {{ row.length | fsDateDuration }}</small></div>\n </ng-template>\n </fs-list-column>\n </fs-list>\n", styles: [".code.success{color:green}.code.error{color:red}.direction{font-size:14px;height:14px;line-height:14px;width:14px}\n"], components: [{ type: i2.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "fsDateDuration": i4.FsDateDurationPipe } });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ApiLogsComponent, decorators: [{
61
- type: Component,
62
- args: [{
63
- selector: 'fs-system-api-logs',
64
- templateUrl: './api-logs.component.html',
65
- styleUrls: ['./api-logs.component.scss'],
66
- }]
67
- }], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { list: [{
68
- type: ViewChild,
69
- args: [FsListComponent, { static: true }]
70
- }], loadApiLogs: [{
71
- type: Input
72
- }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWxvZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3N5c3RlbS9jb21wb25lbnRzL2FwaS1sb2dzL2FwaS1sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9hcGktbG9ncy9hcGktbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLGtCQUFrQixDQUFDO0FBR2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7QUFRL0QsTUFBTSxPQUFPLGdCQUFnQjtJQVUzQixZQUNVLE9BQWtCO1FBQWxCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFKckIsV0FBTSxHQUFpQixJQUFJLENBQUM7UUFDNUIsaUJBQVksR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7SUFJL0MsQ0FBQztJQUVFLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLFdBQVc7UUFFakIsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU87b0JBQ3RCLElBQUksRUFBRSxTQUFTO29CQUNmLEtBQUssRUFBRSxRQUFRO2lCQUNoQjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU07b0JBQ3JCLElBQUksRUFBRSxPQUFPO29CQUNiLEtBQUssRUFBRSxRQUFRO29CQUNmLE1BQU0sRUFBRSxZQUFZO2lCQUNyQjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsWUFBWTtvQkFDbEIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxTQUFTO29CQUN4QixLQUFLLEVBQUUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO2lCQUNoQzthQUNGO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRyxDQUFDLENBQUM7Z0JBRTFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7cUJBQzNCLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FDM0UsQ0FBQztZQUNOLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLElBQUksQ0FBQyxNQUFNO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNqQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUU7WUFDaEIsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDOzs4R0F2RFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0Isd0lBRWhCLGVBQWUsOERDdEI1QiwyNENBZ0NBOzRGRFphLGdCQUFnQjtrQkFMNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixXQUFXLEVBQUUsMkJBQTJCO29CQUN4QyxTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztpQkFDekM7Z0dBSVEsSUFBSTtzQkFEVixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRzVCLFdBQVc7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcclxuaW1wb3J0IHsgRnNMaXN0Q29tcG9uZW50LCBGc0xpc3RDb25maWcgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXBpTG9nU3RhdGVzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcclxuaW1wb3J0IHsgaW5kZXhOYW1lVmFsdWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2luZGV4LW5hbWUtdmFsdWUnO1xyXG5pbXBvcnQgeyBBcGlMb2dDb21wb25lbnQgfSBmcm9tICcuLi9hcGktbG9nL2FwaS1sb2cuY29tcG9uZW50JztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ZzLXN5c3RlbS1hcGktbG9ncycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FwaS1sb2dzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hcGktbG9ncy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpTG9nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoRnNMaXN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHB1YmxpYyBsaXN0OiBGc0xpc3RDb21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkQXBpTG9nczogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTx7IGRhdGE6IGFueVtdOyBwYWdpbmc6IGFueSB9PjtcclxuXHJcbiAgcHVibGljIGNvbmZpZzogRnNMaXN0Q29uZmlnID0gbnVsbDtcclxuICBwdWJsaWMgYXBpTG9nU3RhdGVzID0gaW5kZXhOYW1lVmFsdWUoQXBpTG9nU3RhdGVzKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9jb25maWdMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb25maWdMaXN0KCkge1xyXG5cclxuICAgIHRoaXMuY29uZmlnID0ge1xyXG4gICAgICBmaWx0ZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuS2V5d29yZCxcclxuICAgICAgICAgIG5hbWU6ICdrZXl3b3JkJyxcclxuICAgICAgICAgIGxhYmVsOiAnU2VhcmNoJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcclxuICAgICAgICAgIG5hbWU6ICdzdGF0ZScsXHJcbiAgICAgICAgICBsYWJlbDogJ1N0YXR1cycsXHJcbiAgICAgICAgICB2YWx1ZXM6IEFwaUxvZ1N0YXRlcyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdjcmVhdGVEYXRlJyxcclxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLkRhdGVSYW5nZSxcclxuICAgICAgICAgIGxhYmVsOiBbJ0Zyb20gRGF0ZScsICdUbyBEYXRlJ10sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgICAgZmV0Y2g6IChxdWVyeSkgPT4ge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocXVlcnksIHsgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRBcGlMb2dzKHF1ZXJ5KVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4gKHsgZGF0YTogcmVzcG9uc2UuZGF0YSwgcGFnaW5nOiByZXNwb25zZS5wYWdpbmcgfSkpLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlbihhcGlMb2cpIHtcclxuICAgIHRoaXMuX2RpYWxvZy5vcGVuKEFwaUxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7IGFwaUxvZyB9LFxyXG4gICAgICB3aWR0aDogJzg1JScsXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGZzLWxpc3QgW2NvbmZpZ109XCJjb25maWdcIj5cbiAgICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+TmFtZTwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJvcGVuKHJvdylcIj5cbiAgICAgICAgICB7e3Jvdy50eXBlIHx8ICdVbmtub3duJ319XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZGlyZWN0aW9uXCIgKm5nSWY9XCJyb3cuZGlyZWN0aW9uPT0nb3V0Z29pbmcnXCI+YXJyb3dfdXB3YXJkPC9tYXQtaWNvbj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJkaXJlY3Rpb25cIiAqbmdJZj1cInJvdy5kaXJlY3Rpb249PSdpbmNvbWluZydcIj5hcnJvd19kb3dud2FyZDwvbWF0LWljb24+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9mcy1saXN0LWNvbHVtbj5cbiAgICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+U3RhdHVzPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgICB7e2FwaUxvZ1N0YXRlc1tyb3cuc3RhdGVdfX1cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJyb3cuY29kZVwiIGNsYXNzPVwiY29kZVwiIFtuZ0NsYXNzXT1cInsnc3VjY2Vzcyc6IHJvdy5jb2RlPT0yMDAsJ2Vycm9yJzogcm93LmNvZGUhPTIwMCB9XCI+W3t7cm93LmNvZGV9fV08L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZnMtbGlzdC1jb2x1bW4+XG4gICAgPGZzLWxpc3QtY29sdW1uPlxuICAgICAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+TWVzc2FnZTwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgICAgIHt7cm93Lm1lc3NhZ2V9fVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9mcy1saXN0LWNvbHVtbj5cbiAgICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+RGF0ZTwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAgPGZzLWRhdGUtYWdvIFtkYXRlXT1cInJvdy5jcmVhdGVEYXRlXCI+PC9mcy1kYXRlLWFnbz5cbiAgICAgICAgPGRpdj48c21hbGwgKm5nSWY9XCJyb3cubGVuZ3RoXCI+RHVyYXRpb246IHt7IHJvdy5sZW5ndGggfCBmc0RhdGVEdXJhdGlvbiB9fTwvc21hbGw+PC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDwvZnMtbGlzdD5cbiJdfQ==
@@ -1,102 +0,0 @@
1
- import { Component, Inject, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
2
- import { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import { CronLogStates } from '../../consts/cron-log-states.const';
4
- import { CronStates } from '../../consts';
5
- import { indexNameValue } from '../../helpers/index-name-value';
6
- import { CronLogComponent } from '../cron-log';
7
- import { ItemType } from '@firestitch/filter';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/material/dialog";
10
- import * as i2 from "@firestitch/dialog";
11
- import * as i3 from "@angular/material/tabs";
12
- import * as i4 from "@firestitch/label";
13
- import * as i5 from "@firestitch/date";
14
- import * as i6 from "@firestitch/list";
15
- import * as i7 from "@angular/material/button";
16
- import * as i8 from "@firestitch/skeleton";
17
- import * as i9 from "@angular/common";
18
- export class CronComponent {
19
- constructor(_data, _dialog, _cdRef) {
20
- this._data = _data;
21
- this._dialog = _dialog;
22
- this._cdRef = _cdRef;
23
- this.tabIndex = 0;
24
- this.CronStates = indexNameValue(CronStates);
25
- this.CronLogStates = indexNameValue(CronLogStates);
26
- this.CronLogStateColors = {};
27
- }
28
- ngOnInit() {
29
- this.load();
30
- this.CronLogStateColors = CronLogStates
31
- .reduce((accum, cronLogState) => {
32
- accum[cronLogState.value] = cronLogState.color;
33
- return accum;
34
- }, {});
35
- }
36
- cronLogOpen(cronLog) {
37
- this._dialog.open(CronLogComponent, {
38
- data: {
39
- cronLog,
40
- },
41
- width: '85%'
42
- });
43
- }
44
- cronActionClick(cronAction) {
45
- cronAction.action(this.cron)
46
- .subscribe(() => {
47
- this.load();
48
- });
49
- }
50
- selectedIndexChange(index) {
51
- this.tabIndex = index;
52
- }
53
- load() {
54
- this._data.loadCron(this._data.cron)
55
- .subscribe((cron) => {
56
- this.cron = Object.assign(Object.assign({}, this._data.cron), cron);
57
- if (this._data.loadCronLogs) {
58
- this.config = {
59
- filters: [
60
- {
61
- type: ItemType.Select,
62
- name: 'state',
63
- label: 'Status',
64
- values: [
65
- { name: 'All', value: null },
66
- ...CronLogStates,
67
- ],
68
- },
69
- {
70
- type: ItemType.DateRange,
71
- name: 'date',
72
- label: ['From Date', 'To Date'],
73
- },
74
- ],
75
- fetch: (query) => {
76
- query = Object.assign(Object.assign({}, query), { cronId: this.cron.id });
77
- return this._data.loadCronLogs(query);
78
- },
79
- };
80
- }
81
- this.cronActions = this._data.cronActions
82
- .filter((cronLogAction) => {
83
- return cronLogAction.show(this.cron);
84
- });
85
- this._cdRef.markForCheck();
86
- });
87
- }
88
- }
89
- CronComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialog }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
90
- CronComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CronComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"cron\">\r\n <h1 mat-dialog-title>\r\n Cron\r\n <div class=\"small\">{{cron.name}}</div>\r\n </h1>\r\n <mat-dialog-content>\r\n <mat-tab-group (selectedIndexChange)=\"selectedIndexChange($event)\">\r\n <mat-tab label=\"Overview\">\r\n <div class=\"row\">\r\n <fs-label-field>\r\n <fs-label>\r\n Status\r\n </fs-label>\r\n {{CronStates[cron.state]}}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"cron.cronSetting\">\r\n <fs-label>\r\n Run Frequency\r\n </fs-label>\r\n {{cron.cronSetting.summary}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>\r\n Last Ran\r\n </fs-label>\r\n <ng-container *ngIf=\"cron.duration===null; else lastRan\">\r\n Never\r\n </ng-container>\r\n <ng-template #lastRan>\r\n <fs-date-ago [date]=\"cron.createDate\"></fs-date-ago>\r\n <div><small *ngIf=\"cron.duration\">Duration: {{ cron.duration | fsDateDuration }}</small></div>\r\n </ng-template>\r\n </fs-label-field>\r\n </div>\r\n\r\n <fs-label-field *ngIf=\"cron.message\">\r\n <fs-label>\r\n Last Message\r\n </fs-label>\r\n <div class=\"message\">{{cron.message}}</div>\r\n </fs-label-field>\r\n </mat-tab>\r\n <mat-tab label=\"Logs\" *ngIf=\"config\">\r\n <ng-template matTabContent>\r\n <fs-list [config]=\"config\">\r\n <fs-list-column name=\"state\" title=\"Status\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <a \r\n (click)=\"cronLogOpen(row)\"\r\n [ngStyle]=\"{ color: CronLogStateColors[row.state] }\">\r\n {{CronLogStates[row.state] || row.state}}\r\n </a>\r\n </ng-template>\r\n </fs-list-column>\r\n \r\n <fs-list-column title=\"Message\" class=\"col-message\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <div class=\"message\">{{row.message}}</div>\r\n </ng-template>\r\n </fs-list-column>\r\n \r\n <fs-list-column title=\"Duration\" class=\"col-message\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <ng-container *ngIf=\"row.duration\">\r\n {{row.duration | fsDateDuration: 'hour-minute-second'}}\r\n </ng-container>\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n <fs-list-column name=\"create_date\" title=\"Date\" class=\"col-date\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\r\n </ng-template>\r\n </fs-list-column>\r\n </fs-list> \r\n </ng-template>\r\n </mat-tab>\r\n </mat-tab-group>\r\n\r\n </mat-dialog-content>\r\n <mat-dialog-actions> \r\n <button \r\n mat-button \r\n [mat-dialog-close]=\"true\" \r\n color=\"primary\">\r\n Done\r\n </button>\r\n <ng-container *ngIf=\"tabIndex === 0\">\r\n <button \r\n *ngFor=\"let cronAction of cronActions\"\r\n mat-button \r\n (click)=\"cronActionClick(cronAction)\">\r\n {{cronAction.label}}\r\n </button> \r\n </ng-container>\r\n </mat-dialog-actions>\r\n</fs-dialog>\r\n", styles: [":host ::ng-deep .col-message .message{white-space:break-spaces;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}:host ::ng-deep .col-date{white-space:nowrap}h1 .small{line-height:normal}.row{display:flex;flex-wrap:wrap}.row fs-label-field:not(:last-child){margin-right:40px}.message{white-space:pre-line}\n"], components: [{ type: i2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i3.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby"], exportAs: ["matTab"] }, { type: i4.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i4.FsLabelComponent, selector: "fs-label" }, { type: i5.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { type: i6.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i8.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatTabContent, selector: "[matTabContent]" }, { type: i6.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i6.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fsDateDuration": i5.FsDateDurationPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronComponent, decorators: [{
92
- type: Component,
93
- args: [{
94
- templateUrl: './cron.component.html',
95
- styleUrls: ['./cron.component.scss'],
96
- changeDetection: ChangeDetectionStrategy.OnPush,
97
- }]
98
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
99
- type: Inject,
100
- args: [MAT_DIALOG_DATA]
101
- }] }, { type: i1.MatDialog }, { type: i0.ChangeDetectorRef }]; } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2NvbXBvbmVudHMvY3Jvbi9jcm9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9jcm9uL2Nyb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFROUMsTUFBTSxPQUFPLGFBQWE7SUFXeEIsWUFDbUMsS0FBSyxFQUM5QixPQUFrQixFQUNsQixNQUF5QjtRQUZBLFVBQUssR0FBTCxLQUFLLENBQUE7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQVg1QixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsZUFBVSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5Qyx1QkFBa0IsR0FBRyxFQUFFLENBQUM7SUFTNUIsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsa0JBQWtCLEdBQUcsYUFBYTthQUN0QyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUU7WUFDOUIsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQy9DLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFPO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ2xDLElBQUksRUFBRTtnQkFDSixPQUFPO2FBQ1I7WUFDRCxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxlQUFlLENBQUMsVUFBVTtRQUMvQixVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDM0IsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQUs7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNuQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBSSxtQ0FDSixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FDZixJQUFJLENBQ1IsQ0FBQztZQUVGLElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUc7b0JBQ1osT0FBTyxFQUFFO3dCQUNQOzRCQUNFLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTTs0QkFDckIsSUFBSSxFQUFFLE9BQU87NEJBQ2IsS0FBSyxFQUFFLFFBQVE7NEJBQ2YsTUFBTSxFQUFFO2dDQUNOLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO2dDQUM1QixHQUFHLGFBQWE7NkJBQ2pCO3lCQUNGO3dCQUNEOzRCQUNFLElBQUksRUFBRSxRQUFRLENBQUMsU0FBUzs0QkFDeEIsSUFBSSxFQUFFLE1BQU07NEJBQ1osS0FBSyxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQzt5QkFDaEM7cUJBQ0Y7b0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ2YsS0FBSyxtQ0FDQSxLQUFLLEtBQ1IsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUNyQixDQUFDO3dCQUVGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3hDLENBQUM7aUJBQ0YsQ0FBQzthQUNIO1lBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVc7aUJBQ3hDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO2dCQUN4QixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzJHQTFGVSxhQUFhLGtCQVlkLGVBQWU7K0ZBWmQsYUFBYSxvRENqQjFCLG1pSEFtR0E7NEZEbEZhLGFBQWE7a0JBTHpCLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLHVCQUF1QjtvQkFDcEMsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3BDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7MEJBYUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IEZzTGlzdENvbmZpZyB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xyXG5cclxuaW1wb3J0IHsgQ3JvbkxvZ1N0YXRlcyB9IGZyb20gJy4uLy4uL2NvbnN0cy9jcm9uLWxvZy1zdGF0ZXMuY29uc3QnO1xyXG5pbXBvcnQgeyBDcm9uU3RhdGVzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcclxuaW1wb3J0IHsgaW5kZXhOYW1lVmFsdWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2luZGV4LW5hbWUtdmFsdWUnO1xyXG5pbXBvcnQgeyBDcm9uTG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vY3Jvbi1sb2cnO1xyXG5pbXBvcnQgeyBJdGVtVHlwZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2ZpbHRlcic7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Nyb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Nyb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgY3JvbjtcclxuICBwdWJsaWMgdGFiSW5kZXggPSAwO1xyXG4gIHB1YmxpYyBDcm9uU3RhdGVzID0gaW5kZXhOYW1lVmFsdWUoQ3JvblN0YXRlcyk7XHJcbiAgcHVibGljIENyb25Mb2dTdGF0ZXMgPSBpbmRleE5hbWVWYWx1ZShDcm9uTG9nU3RhdGVzKTtcclxuICBwdWJsaWMgQ3JvbkxvZ1N0YXRlQ29sb3JzID0ge307XHJcblxyXG4gIHB1YmxpYyBjb25maWc6IEZzTGlzdENvbmZpZztcclxuICBwdWJsaWMgY3JvbkFjdGlvbnM7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YSxcclxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICkge31cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkKCk7XHJcbiAgICB0aGlzLkNyb25Mb2dTdGF0ZUNvbG9ycyA9IENyb25Mb2dTdGF0ZXNcclxuICAgIC5yZWR1Y2UoKGFjY3VtLCBjcm9uTG9nU3RhdGUpID0+IHtcclxuICAgICAgYWNjdW1bY3JvbkxvZ1N0YXRlLnZhbHVlXSA9IGNyb25Mb2dTdGF0ZS5jb2xvcjtcclxuICAgICAgcmV0dXJuIGFjY3VtO1xyXG4gICAgfSwge30pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNyb25Mb2dPcGVuKGNyb25Mb2cpOiB2b2lkIHtcclxuICAgIHRoaXMuX2RpYWxvZy5vcGVuKENyb25Mb2dDb21wb25lbnQsIHtcclxuICAgICAgZGF0YTogeyBcclxuICAgICAgICBjcm9uTG9nLFxyXG4gICAgICB9LFxyXG4gICAgICB3aWR0aDogJzg1JSdcclxuICAgIH0pOyAgICBcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcm9uQWN0aW9uQ2xpY2soY3JvbkFjdGlvbikge1xyXG4gICAgY3JvbkFjdGlvbi5hY3Rpb24odGhpcy5jcm9uKVxyXG4gICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWRJbmRleENoYW5nZShpbmRleCkge1xyXG4gICAgdGhpcy50YWJJbmRleCA9IGluZGV4O1xyXG4gIH1cclxuICAgIFxyXG4gIHB1YmxpYyBsb2FkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGF0YS5sb2FkQ3Jvbih0aGlzLl9kYXRhLmNyb24pXHJcbiAgICAuc3Vic2NyaWJlKChjcm9uKSA9PiB7XHJcbiAgICAgIHRoaXMuY3JvbiA9IHtcclxuICAgICAgICAuLi50aGlzLl9kYXRhLmNyb24sXHJcbiAgICAgICAgLi4uY3JvbixcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGlmKHRoaXMuX2RhdGEubG9hZENyb25Mb2dzKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgICAgICBmaWx0ZXJzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5TZWxlY3QsXHJcbiAgICAgICAgICAgICAgbmFtZTogJ3N0YXRlJyxcclxuICAgICAgICAgICAgICBsYWJlbDogJ1N0YXR1cycsXHJcbiAgICAgICAgICAgICAgdmFsdWVzOiBbXHJcbiAgICAgICAgICAgICAgICB7IG5hbWU6ICdBbGwnLCB2YWx1ZTogbnVsbCB9LFxyXG4gICAgICAgICAgICAgICAgLi4uQ3JvbkxvZ1N0YXRlcyxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogSXRlbVR5cGUuRGF0ZVJhbmdlLFxyXG4gICAgICAgICAgICAgIG5hbWU6ICdkYXRlJyxcclxuICAgICAgICAgICAgICBsYWJlbDogWydGcm9tIERhdGUnLCAnVG8gRGF0ZSddLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXSwgICAgICAgICAgXHJcbiAgICAgICAgICBmZXRjaDogKHF1ZXJ5KSA9PiB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ID0ge1xyXG4gICAgICAgICAgICAgIC4uLnF1ZXJ5LFxyXG4gICAgICAgICAgICAgIGNyb25JZDogdGhpcy5jcm9uLmlkLFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGEubG9hZENyb25Mb2dzKHF1ZXJ5KTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jcm9uQWN0aW9ucyA9IHRoaXMuX2RhdGEuY3JvbkFjdGlvbnNcclxuICAgICAgLmZpbHRlcigoY3JvbkxvZ0FjdGlvbikgPT4ge1xyXG4gICAgICAgIHJldHVybiBjcm9uTG9nQWN0aW9uLnNob3codGhpcy5jcm9uKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZnMtZGlhbG9nICpmc1NrZWxldG9uPVwiY3JvblwiPlxyXG4gIDxoMSBtYXQtZGlhbG9nLXRpdGxlPlxyXG4gICAgQ3JvblxyXG4gICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+e3tjcm9uLm5hbWV9fTwvZGl2PlxyXG4gIDwvaDE+XHJcbiAgPG1hdC1kaWFsb2ctY29udGVudD5cclxuICAgIDxtYXQtdGFiLWdyb3VwIChzZWxlY3RlZEluZGV4Q2hhbmdlKT1cInNlbGVjdGVkSW5kZXhDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIk92ZXJ2aWV3XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxyXG4gICAgICAgICAgICA8ZnMtbGFiZWw+XHJcbiAgICAgICAgICAgICAgU3RhdHVzXHJcbiAgICAgICAgICAgIDwvZnMtbGFiZWw+XHJcbiAgICAgICAgICAgIHt7Q3JvblN0YXRlc1tjcm9uLnN0YXRlXX19XHJcbiAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxyXG5cclxuICAgICAgICAgIDxmcy1sYWJlbC1maWVsZCAqbmdJZj1cImNyb24uY3JvblNldHRpbmdcIj5cclxuICAgICAgICAgICAgPGZzLWxhYmVsPlxyXG4gICAgICAgICAgICAgIFJ1biBGcmVxdWVuY3lcclxuICAgICAgICAgICAgPC9mcy1sYWJlbD5cclxuICAgICAgICAgICAge3tjcm9uLmNyb25TZXR0aW5nLnN1bW1hcnl9fVxyXG4gICAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuXHJcbiAgICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XHJcbiAgICAgICAgICAgIDxmcy1sYWJlbD5cclxuICAgICAgICAgICAgICBMYXN0IFJhblxyXG4gICAgICAgICAgICA8L2ZzLWxhYmVsPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3Jvbi5kdXJhdGlvbj09PW51bGw7IGVsc2UgbGFzdFJhblwiPlxyXG4gICAgICAgICAgICAgIE5ldmVyXHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2xhc3RSYW4+XHJcbiAgICAgICAgICAgICAgPGZzLWRhdGUtYWdvIFtkYXRlXT1cImNyb24uY3JlYXRlRGF0ZVwiPjwvZnMtZGF0ZS1hZ28+XHJcbiAgICAgICAgICAgICAgPGRpdj48c21hbGwgKm5nSWY9XCJjcm9uLmR1cmF0aW9uXCI+RHVyYXRpb246IHt7IGNyb24uZHVyYXRpb24gfCBmc0RhdGVEdXJhdGlvbiB9fTwvc21hbGw+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJjcm9uLm1lc3NhZ2VcIj5cclxuICAgICAgICAgIDxmcy1sYWJlbD5cclxuICAgICAgICAgICAgTGFzdCBNZXNzYWdlXHJcbiAgICAgICAgICA8L2ZzLWxhYmVsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj57e2Nyb24ubWVzc2FnZX19PC9kaXY+XHJcbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIkxvZ3NcIiAqbmdJZj1cImNvbmZpZ1wiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxyXG4gICAgICAgICAgPGZzLWxpc3QgW2NvbmZpZ109XCJjb25maWdcIj5cclxuICAgICAgICAgICAgPGZzLWxpc3QtY29sdW1uIG5hbWU9XCJzdGF0ZVwiIHRpdGxlPVwiU3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8YSBcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3JvbkxvZ09wZW4ocm93KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogQ3JvbkxvZ1N0YXRlQ29sb3JzW3Jvdy5zdGF0ZV0gfVwiPlxyXG4gICAgICAgICAgICAgICAgICB7e0Nyb25Mb2dTdGF0ZXNbcm93LnN0YXRlXSB8fCByb3cuc3RhdGV9fVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZnMtbGlzdC1jb2x1bW4+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZnMtbGlzdC1jb2x1bW4gdGl0bGU9XCJNZXNzYWdlXCIgY2xhc3M9XCJjb2wtbWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj57e3Jvdy5tZXNzYWdlfX08L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2ZzLWxpc3QtY29sdW1uPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGZzLWxpc3QtY29sdW1uIHRpdGxlPVwiRHVyYXRpb25cIiBjbGFzcz1cImNvbC1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LmR1cmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7cm93LmR1cmF0aW9uIHwgZnNEYXRlRHVyYXRpb246ICdob3VyLW1pbnV0ZS1zZWNvbmQnfX1cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZnMtbGlzdC1jb2x1bW4+XHJcblxyXG4gICAgICAgICAgICA8ZnMtbGlzdC1jb2x1bW4gbmFtZT1cImNyZWF0ZV9kYXRlXCIgdGl0bGU9XCJEYXRlXCIgY2xhc3M9XCJjb2wtZGF0ZVwiPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGZzLWRhdGUtYWdvIFtkYXRlXT1cInJvdy5jcmVhdGVEYXRlXCI+PC9mcy1kYXRlLWFnbz5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2ZzLWxpc3QtY29sdW1uPlxyXG4gICAgICAgICAgPC9mcy1saXN0PiBcclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L21hdC10YWI+XHJcbiAgICA8L21hdC10YWItZ3JvdXA+XHJcblxyXG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+ICAgXHJcbiAgICA8YnV0dG9uIFxyXG4gICAgICAgIG1hdC1idXR0b24gXHJcbiAgICAgICAgW21hdC1kaWFsb2ctY2xvc2VdPVwidHJ1ZVwiIFxyXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiPlxyXG4gICAgICBEb25lXHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJJbmRleCA9PT0gMFwiPlxyXG4gICAgICA8YnV0dG9uICAgXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY3JvbkFjdGlvbiBvZiBjcm9uQWN0aW9uc1wiXHJcbiAgICAgICAgICBtYXQtYnV0dG9uIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImNyb25BY3Rpb25DbGljayhjcm9uQWN0aW9uKVwiPlxyXG4gICAgICAgIHt7Y3JvbkFjdGlvbi5sYWJlbH19XHJcbiAgICAgIDwvYnV0dG9uPiAgXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cclxuPC9mcy1kaWFsb2c+XHJcbiJdfQ==
@@ -1,40 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import { CronLogStates } from '../../consts/cron-log-states.const';
4
- import { indexNameValue } from '../../helpers/index-name-value';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@firestitch/dialog";
7
- import * as i2 from "@firestitch/label";
8
- import * as i3 from "@firestitch/date";
9
- import * as i4 from "@angular/material/button";
10
- import * as i5 from "@firestitch/skeleton";
11
- import * as i6 from "@angular/material/dialog";
12
- import * as i7 from "@angular/common";
13
- export class CronLogComponent {
14
- constructor(_data) {
15
- this._data = _data;
16
- this.CronLogStates = indexNameValue(CronLogStates);
17
- this.CronLogStateColors = {};
18
- }
19
- ngOnInit() {
20
- this.cronLog = this._data.cronLog;
21
- this.CronLogStateColors = CronLogStates
22
- .reduce((accum, cronLogState) => {
23
- accum[cronLogState.value] = cronLogState.color;
24
- return accum;
25
- }, {});
26
- }
27
- }
28
- CronLogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronLogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
29
- CronLogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CronLogComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"cronLog\">\r\n <div mat-dialog-title>Cron Log</div>\r\n <mat-dialog-content>\r\n <div class=\"row\">\r\n <fs-label-field>\r\n <fs-label>\r\n Status\r\n </fs-label>\r\n <div [ngStyle]=\"{ color: CronLogStateColors[cronLog.state]}\">\r\n {{CronLogStates[cronLog.state] || cronLog.state}}\r\n </div>\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>\r\n Date\r\n </fs-label>\r\n <fs-date-ago [date]=\"cronLog.createDate\"></fs-date-ago>\r\n </fs-label-field>\r\n </div>\r\n \r\n <fs-label-field *ngIf=\"cronLog.message\">\r\n <fs-label>\r\n Message\r\n </fs-label>\r\n <div class=\"message\">\r\n {{cronLog.message}}\r\n </div>\r\n </fs-label-field>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Done</button>\r\n </mat-dialog-actions>\r\n</fs-dialog>\r\n", styles: [".message{white-space:pre-line}.row{display:flex;flex-wrap:wrap}.row fs-label-field:not(:last-child){margin-right:40px}\n"], components: [{ type: i1.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i2.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2.FsLabelComponent, selector: "fs-label" }, { type: i3.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i6.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }] });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronLogComponent, decorators: [{
31
- type: Component,
32
- args: [{
33
- templateUrl: './cron-log.component.html',
34
- styleUrls: ['./cron-log.component.scss']
35
- }]
36
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
37
- type: Inject,
38
- args: [MAT_DIALOG_DATA]
39
- }] }]; } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi1sb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3N5c3RlbS9jb21wb25lbnRzL2Nyb24tbG9nL2Nyb24tbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9jcm9uLWxvZy9jcm9uLWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7O0FBT2hFLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsWUFDbUMsS0FBSztRQUFMLFVBQUssR0FBTCxLQUFLLENBQUE7UUFKakMsa0JBQWEsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO0lBSTVCLENBQUM7SUFFRyxRQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsYUFBYTthQUN0QyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUU7WUFDOUIsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQy9DLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQzs7OEdBakJVLGdCQUFnQixrQkFPakIsZUFBZTtrR0FQZCxnQkFBZ0Isb0RDVjdCLHcvQkFrQ0E7NEZEeEJhLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxXQUFXLEVBQUUsMkJBQTJCO29CQUN4QyxTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztpQkFDekM7OzBCQVFJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ3JvbkxvZ1N0YXRlcyB9IGZyb20gJy4uLy4uL2NvbnN0cy9jcm9uLWxvZy1zdGF0ZXMuY29uc3QnO1xyXG5pbXBvcnQgeyBpbmRleE5hbWVWYWx1ZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvaW5kZXgtbmFtZS12YWx1ZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Nyb24tbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jcm9uLWxvZy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcm9uTG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIGNyb25Mb2c7XHJcbiAgcHVibGljIENyb25Mb2dTdGF0ZXMgPSBpbmRleE5hbWVWYWx1ZShDcm9uTG9nU3RhdGVzKTtcclxuICBwdWJsaWMgQ3JvbkxvZ1N0YXRlQ29sb3JzID0ge307XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YSxcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JvbkxvZyA9IHRoaXMuX2RhdGEuY3JvbkxvZztcclxuICAgIHRoaXMuQ3JvbkxvZ1N0YXRlQ29sb3JzID0gQ3JvbkxvZ1N0YXRlc1xyXG4gICAgLnJlZHVjZSgoYWNjdW0sIGNyb25Mb2dTdGF0ZSkgPT4ge1xyXG4gICAgICBhY2N1bVtjcm9uTG9nU3RhdGUudmFsdWVdID0gY3JvbkxvZ1N0YXRlLmNvbG9yO1xyXG4gICAgICByZXR1cm4gYWNjdW07XHJcbiAgICB9LCB7fSk7XHJcbiAgfVxyXG59XHJcbiIsIjxmcy1kaWFsb2cgKmZzU2tlbGV0b249XCJjcm9uTG9nXCI+XHJcbiAgPGRpdiBtYXQtZGlhbG9nLXRpdGxlPkNyb24gTG9nPC9kaXY+XHJcbiAgPG1hdC1kaWFsb2ctY29udGVudD5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxyXG4gICAgICAgIDxmcy1sYWJlbD5cclxuICAgICAgICAgIFN0YXR1c1xyXG4gICAgICAgIDwvZnMtbGFiZWw+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7IGNvbG9yOiBDcm9uTG9nU3RhdGVDb2xvcnNbY3JvbkxvZy5zdGF0ZV19XCI+XHJcbiAgICAgICAgICB7e0Nyb25Mb2dTdGF0ZXNbY3JvbkxvZy5zdGF0ZV0gfHwgY3JvbkxvZy5zdGF0ZX19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XHJcblxyXG4gICAgICA8ZnMtbGFiZWwtZmllbGQ+XHJcbiAgICAgICAgPGZzLWxhYmVsPlxyXG4gICAgICAgICAgRGF0ZVxyXG4gICAgICAgIDwvZnMtbGFiZWw+XHJcbiAgICAgICAgPGZzLWRhdGUtYWdvIFtkYXRlXT1cImNyb25Mb2cuY3JlYXRlRGF0ZVwiPjwvZnMtZGF0ZS1hZ28+XHJcbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICBcclxuICAgIDxmcy1sYWJlbC1maWVsZCAqbmdJZj1cImNyb25Mb2cubWVzc2FnZVwiPlxyXG4gICAgICA8ZnMtbGFiZWw+XHJcbiAgICAgICAgTWVzc2FnZVxyXG4gICAgICA8L2ZzLWxhYmVsPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiPlxyXG4gICAgICAgIHt7Y3JvbkxvZy5tZXNzYWdlfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2ZzLWxhYmVsLWZpZWxkPlxyXG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwidHJ1ZVwiIGNvbG9yPVwicHJpbWFyeVwiPkRvbmU8L2J1dHRvbj5cclxuICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cclxuPC9mcy1kaWFsb2c+XHJcbiJdfQ==