aril 1.2.3 → 1.2.6

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 (32) hide show
  1. package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +1 -1
  2. package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +1 -1
  3. package/esm2022/ui/badge/src/badge.component.mjs +4 -1
  4. package/esm2022/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.mjs +3 -3
  5. package/esm2022/ui-business/trace-drawer/aril-ui-business-trace-drawer.mjs +5 -0
  6. package/esm2022/ui-business/trace-drawer/index.mjs +3 -0
  7. package/esm2022/ui-business/trace-drawer/src/interfaces.mjs +2 -0
  8. package/esm2022/ui-business/trace-drawer/src/trace-drawer.component.mjs +148 -0
  9. package/esm2022/ui-business/trace-drawer/src/trace-log.service.mjs +25 -0
  10. package/esm2022/ui-business/trace-id/aril-ui-business-trace-id.mjs +5 -0
  11. package/esm2022/ui-business/trace-id/index.mjs +2 -0
  12. package/esm2022/ui-business/trace-id/src/trace-id.component.mjs +35 -0
  13. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  14. package/fesm2022/aril-ui-badge.mjs +3 -0
  15. package/fesm2022/aril-ui-badge.mjs.map +1 -1
  16. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs +2 -2
  17. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs.map +1 -1
  18. package/fesm2022/aril-ui-business-trace-drawer.mjs +176 -0
  19. package/fesm2022/aril-ui-business-trace-drawer.mjs.map +1 -0
  20. package/fesm2022/aril-ui-business-trace-id.mjs +42 -0
  21. package/fesm2022/aril-ui-business-trace-id.mjs.map +1 -0
  22. package/package.json +204 -192
  23. package/theme/layout/app/expandableMenu/expandable-menu.component.ts +373 -373
  24. package/theme/layout/app/static-sidebar/static-sidebar.component.ts +336 -336
  25. package/theme/styles/theme/base/components/overlay/_sidebar.scss +0 -1
  26. package/ui/badge/src/badge.component.d.ts +1 -1
  27. package/ui-business/trace-drawer/index.d.ts +2 -0
  28. package/ui-business/trace-drawer/src/interfaces.d.ts +19 -0
  29. package/ui-business/trace-drawer/src/trace-drawer.component.d.ts +36 -0
  30. package/ui-business/trace-drawer/src/trace-log.service.d.ts +26 -0
  31. package/ui-business/trace-id/index.d.ts +1 -0
  32. package/ui-business/trace-id/src/trace-id.component.d.ts +17 -0
@@ -18,6 +18,9 @@ class BadgeComponent {
18
18
  this.textClampCharacters = input(50);
19
19
  }
20
20
  badgeStyle() {
21
+ if (this.severity() && !this.background() && !this.textColor() && !this.borderColor()) {
22
+ return null;
23
+ }
21
24
  const mainColor = this.background() ?? '#1890FF';
22
25
  const lightBg = this.lightenColor(mainColor, 92);
23
26
  const textColor = this.textColor() ?? mainColor;
@@ -1 +1 @@
1
- {"version":3,"file":"aril-ui-badge.mjs","sources":["../../projects/aril/ui/badge/src/badge.component.ts","../../projects/aril/ui/badge/src/badge.component.html","../../projects/aril/ui/badge/aril-ui-badge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\nimport { TagModule } from 'primeng/tag';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\ntype Severity = 'success' | 'secondary' | 'info' | 'warning' | 'danger' | 'contrast' | undefined;\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-badge',\r\n\ttemplateUrl: './badge.component.html',\r\n\timports: [TagModule, TooltipModule],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BadgeComponent {\r\n\ticon = input<string>();\r\n\tvalue = input.required<string>();\r\n\tseverity = input<Severity>();\r\n\trounded = input<boolean>();\r\n\tbackground = input<string>();\r\n\tstyleClass = input<string>();\r\n\ttextColor = input<string>();\r\n\tborderColor = input<string>();\r\n\ttextClampCharacters = input<number>(50);\r\n\r\n\tbadgeStyle() {\r\n\t\tconst mainColor = this.background() ?? '#1890FF';\r\n\t\tconst lightBg = this.lightenColor(mainColor, 92);\r\n\t\tconst textColor = this.textColor() ?? mainColor;\r\n\t\tconst border = this.borderColor() ?? this.lightenColor(mainColor, 60);\r\n\t\treturn {\r\n\t\t\tbackgroundColor: lightBg,\r\n\t\t\tcolor: textColor,\r\n\t\t\ttextAlign: 'center',\r\n\t\t\tfontSize: '1rem',\r\n\t\t\tfontWeight: '500',\r\n\t\t\tpadding: '2px 8px',\r\n\t\t\tborderRadius: '12px',\r\n\t\t\tborder: `0.5px solid ${border}`,\r\n\t\t\tdisplay: 'inline-block',\r\n\t\t\tlineHeight: '1.2',\r\n\t\t\twhiteSpace: 'nowrap',\r\n\t\t\toverflow: 'hidden',\r\n\t\t\ttextOverflow: 'ellipsis',\r\n\t\t\tmaxWidth: '100%'\r\n\t\t};\r\n\t}\r\n\r\n\tprivate lightenColor(hex: string, percent: number): string {\r\n\t\tconst sanitized = hex.replace('#', '');\r\n\t\tconst r = parseInt(sanitized.substring(0, 2), 16);\r\n\t\tconst g = parseInt(sanitized.substring(2, 4), 16);\r\n\t\tconst b = parseInt(sanitized.substring(4, 6), 16);\r\n\t\t\r\n\t\t// Mix with white to lighten\r\n\t\tconst factor = percent / 100;\r\n\t\tconst nr = Math.round(r + (255 - r) * factor);\r\n\t\tconst ng = Math.round(g + (255 - g) * factor);\r\n\t\tconst nb = Math.round(b + (255 - b) * factor);\r\n\t\t\r\n\t\treturn `#${nr.toString(16).padStart(2, '0')}${ng.toString(16).padStart(2, '0')}${nb.toString(16).padStart(2, '0')}`;\r\n\t}\r\n\t\r\n}","<p-tag\r\n\t[icon]=\"icon()\"\r\n\t[value]=\"\r\n\t\tvalue() && value().length > textClampCharacters() ? value().slice(0, textClampCharacters()) + '...' : value()\r\n\t\"\r\n\t[severity]=\"severity()\"\r\n\t[rounded]=\"rounded()\"\r\n\t[styleClass]=\"styleClass()\"\r\n\t[style]=\"badgeStyle()\"\r\n\t[pTooltip]=\"value() && value().length > textClampCharacters() ? value() : undefined\"\r\n\ttooltipPosition=\"top\">\r\n\t<ng-content></ng-content>\r\n</p-tag>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aril-ui-badge.mjs","sources":["../../projects/aril/ui/badge/src/badge.component.ts","../../projects/aril/ui/badge/src/badge.component.html","../../projects/aril/ui/badge/aril-ui-badge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\nimport { TagModule } from 'primeng/tag';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\ntype Severity = 'success' | 'secondary' | 'info' | 'warning' | 'danger' | 'contrast' | undefined;\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-badge',\r\n\ttemplateUrl: './badge.component.html',\r\n\timports: [TagModule, TooltipModule],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BadgeComponent {\r\n\ticon = input<string>();\r\n\tvalue = input.required<string>();\r\n\tseverity = input<Severity>();\r\n\trounded = input<boolean>();\r\n\tbackground = input<string>();\r\n\tstyleClass = input<string>();\r\n\ttextColor = input<string>();\r\n\tborderColor = input<string>();\r\n\ttextClampCharacters = input<number>(50);\r\n\r\n\tbadgeStyle() {\r\n\t\tif (this.severity() && !this.background() && !this.textColor() && !this.borderColor()) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tconst mainColor = this.background() ?? '#1890FF';\r\n\t\tconst lightBg = this.lightenColor(mainColor, 92);\r\n\t\tconst textColor = this.textColor() ?? mainColor;\r\n\t\tconst border = this.borderColor() ?? this.lightenColor(mainColor, 60);\r\n\t\treturn {\r\n\t\t\tbackgroundColor: lightBg,\r\n\t\t\tcolor: textColor,\r\n\t\t\ttextAlign: 'center',\r\n\t\t\tfontSize: '1rem',\r\n\t\t\tfontWeight: '500',\r\n\t\t\tpadding: '2px 8px',\r\n\t\t\tborderRadius: '12px',\r\n\t\t\tborder: `0.5px solid ${border}`,\r\n\t\t\tdisplay: 'inline-block',\r\n\t\t\tlineHeight: '1.2',\r\n\t\t\twhiteSpace: 'nowrap',\r\n\t\t\toverflow: 'hidden',\r\n\t\t\ttextOverflow: 'ellipsis',\r\n\t\t\tmaxWidth: '100%'\r\n\t\t};\r\n\t}\r\n\r\n\tprivate lightenColor(hex: string, percent: number): string {\r\n\t\tconst sanitized = hex.replace('#', '');\r\n\t\tconst r = parseInt(sanitized.substring(0, 2), 16);\r\n\t\tconst g = parseInt(sanitized.substring(2, 4), 16);\r\n\t\tconst b = parseInt(sanitized.substring(4, 6), 16);\r\n\t\t\r\n\t\t// Mix with white to lighten\r\n\t\tconst factor = percent / 100;\r\n\t\tconst nr = Math.round(r + (255 - r) * factor);\r\n\t\tconst ng = Math.round(g + (255 - g) * factor);\r\n\t\tconst nb = Math.round(b + (255 - b) * factor);\r\n\t\t\r\n\t\treturn `#${nr.toString(16).padStart(2, '0')}${ng.toString(16).padStart(2, '0')}${nb.toString(16).padStart(2, '0')}`;\r\n\t}\r\n\t\r\n}","<p-tag\r\n\t[icon]=\"icon()\"\r\n\t[value]=\"\r\n\t\tvalue() && value().length > textClampCharacters() ? value().slice(0, textClampCharacters()) + '...' : value()\r\n\t\"\r\n\t[severity]=\"severity()\"\r\n\t[rounded]=\"rounded()\"\r\n\t[styleClass]=\"styleClass()\"\r\n\t[style]=\"badgeStyle()\"\r\n\t[pTooltip]=\"value() && value().length > textClampCharacters() ? value() : undefined\"\r\n\ttooltipPosition=\"top\">\r\n\t<ng-content></ng-content>\r\n</p-tag>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -50,11 +50,11 @@ class DetailedOverlayPanelComponent {
50
50
  }
51
51
  }
52
52
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DetailedOverlayPanelComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: DetailedOverlayPanelComponent, isStandalone: true, selector: "aril-detailed-oveylay-panel", inputs: { assetId: { classPropertyName: "assetId", publicName: "assetId", isSignal: true, isRequired: true, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: Tooltip, descendants: true }], ngImport: i0, template: "<span\r\n\t#spanRef\r\n\t(mouseenter)=\"onHover()\"\r\n\t[pTooltip]=\"tooltipContent\"\r\n\t[autoHide]=\"false\"\r\n\ttooltipStyleClass=\"detailed-overlay-tooltip\">\r\n\t<ng-content />\r\n</span>\r\n\r\n<ng-template #tooltipContent>\r\n\t@if (loading) {\r\n\t\t<p-progressSpinner styleClass=\"w-4rem h-4rem\" strokeWidth=\"8\" />\r\n\t} @else {\r\n\t\t<div class=\"w-full mb-2\">\r\n\t\t\t<p class=\"font-semibold\">{{ tableData.assetDefinitionName }} / {{ tableData.assetDefinitionCode }}</p>\r\n\t\t</div>\r\n\t\t<table class=\"w-full\">\r\n\t\t\t@for (infoAttribute of infoAttributes; track infoAttribute) {\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t{{ infoAttribute.attribute.attributeName }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p class=\"font-bold m-0\">\r\n\t\t\t\t\t\t\t@switch (infoAttribute.attribute.attributeType) {\r\n\t\t\t\t\t\t\t\t@case ('DATE') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"day\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('DATE_TIME') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"second\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('BOOLEAN') {\r\n\t\t\t\t\t\t\t\t\t@if (infoAttribute.value === 'true') {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Var\" />\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Yok\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@default {\r\n\t\t\t\t\t\t\t\t\t<aril-value\r\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t[model]=\"infoAttribute.valueDesc ? infoAttribute.valueDesc : infoAttribute.value\"\r\n\t\t\t\t\t\t\t\t\t\t[shouldShowCopyForClampedText]=\"true\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t}\r\n\t\t</table>\r\n\t}\r\n</ng-template>\r\n", styles: ["table{width:100%;border-collapse:collapse}th,td{padding:8px;border:1px solid #ddd}::ng-deep .detailed-overlay-tooltip .p-tooltip-text{background:#fff;color:var(--text-color);width:max-content}\n"], dependencies: [{ kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: ProgressSpinnerModule }, { kind: "component", type: i3.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: ValueComponent, selector: "aril-value", inputs: ["model", "type", "format", "isClickable", "groupName", "parentSelectionKey", "isTextClamp", "textClampCharacters", "style", "copyable", "shouldShowCopyForClampedText", "arrayTypeDisplayName", "arrayTypeMaxBadgeCount", "bigDecimalRoundingMode", "bigDecimalScale"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: DetailedOverlayPanelComponent, isStandalone: true, selector: "aril-detailed-oveylay-panel", inputs: { assetId: { classPropertyName: "assetId", publicName: "assetId", isSignal: true, isRequired: true, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: Tooltip, descendants: true }], ngImport: i0, template: "<span\r\n\t#spanRef\r\n\t(mouseenter)=\"onHover()\"\r\n\t[pTooltip]=\"tooltipContent\"\r\n\t[autoHide]=\"false\"\r\n\ttooltipStyleClass=\"detailed-overlay-tooltip\">\r\n\t<ng-content />\r\n</span>\r\n\r\n<ng-template #tooltipContent>\r\n\t@if (loading) {\r\n\t\t<p-progressSpinner styleClass=\"w-4rem h-4rem\" strokeWidth=\"8\" />\r\n\t} @else {\r\n\t\t<div class=\"w-full mb-2\">\r\n\t\t\t<p class=\"font-semibold\">{{ tableData.assetDefinitionName }} / {{ tableData.assetDefinitionCode }}</p>\r\n\t\t</div>\r\n\t\t<table class=\"w-full\">\r\n\t\t\t@for (infoAttribute of infoAttributes; track infoAttribute) {\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t{{ infoAttribute.attribute.attributeName }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p class=\"font-bold m-0\">\r\n\t\t\t\t\t\t\t@switch (infoAttribute.attribute.attributeType) {\r\n\t\t\t\t\t\t\t\t@case ('DATE') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"day\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('DATE_TIME') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"second\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('BOOLEAN') {\r\n\t\t\t\t\t\t\t\t\t@if (infoAttribute.value === true || infoAttribute.value === 'true') {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Var\" />\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Yok\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@default {\r\n\t\t\t\t\t\t\t\t\t<aril-value\r\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t[model]=\"infoAttribute.valueDesc ? infoAttribute.valueDesc : infoAttribute.value\"\r\n\t\t\t\t\t\t\t\t\t\t[shouldShowCopyForClampedText]=\"true\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t}\r\n\t\t</table>\r\n\t}\r\n</ng-template>\r\n", styles: ["table{width:100%;border-collapse:collapse}th,td{padding:8px;border:1px solid #ddd}::ng-deep .detailed-overlay-tooltip .p-tooltip-text{background:#fff;color:var(--text-color);width:max-content}\n"], dependencies: [{ kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: ProgressSpinnerModule }, { kind: "component", type: i3.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: ValueComponent, selector: "aril-value", inputs: ["model", "type", "format", "isClickable", "groupName", "parentSelectionKey", "isTextClamp", "textClampCharacters", "style", "copyable", "shouldShowCopyForClampedText", "arrayTypeDisplayName", "arrayTypeMaxBadgeCount", "bigDecimalRoundingMode", "bigDecimalScale"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
54
54
  }
55
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DetailedOverlayPanelComponent, decorators: [{
56
56
  type: Component,
57
- args: [{ selector: 'aril-detailed-oveylay-panel', standalone: true, imports: [TooltipModule, ProgressSpinnerModule, ValueComponent, TooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\r\n\t#spanRef\r\n\t(mouseenter)=\"onHover()\"\r\n\t[pTooltip]=\"tooltipContent\"\r\n\t[autoHide]=\"false\"\r\n\ttooltipStyleClass=\"detailed-overlay-tooltip\">\r\n\t<ng-content />\r\n</span>\r\n\r\n<ng-template #tooltipContent>\r\n\t@if (loading) {\r\n\t\t<p-progressSpinner styleClass=\"w-4rem h-4rem\" strokeWidth=\"8\" />\r\n\t} @else {\r\n\t\t<div class=\"w-full mb-2\">\r\n\t\t\t<p class=\"font-semibold\">{{ tableData.assetDefinitionName }} / {{ tableData.assetDefinitionCode }}</p>\r\n\t\t</div>\r\n\t\t<table class=\"w-full\">\r\n\t\t\t@for (infoAttribute of infoAttributes; track infoAttribute) {\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t{{ infoAttribute.attribute.attributeName }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p class=\"font-bold m-0\">\r\n\t\t\t\t\t\t\t@switch (infoAttribute.attribute.attributeType) {\r\n\t\t\t\t\t\t\t\t@case ('DATE') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"day\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('DATE_TIME') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"second\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('BOOLEAN') {\r\n\t\t\t\t\t\t\t\t\t@if (infoAttribute.value === 'true') {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Var\" />\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Yok\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@default {\r\n\t\t\t\t\t\t\t\t\t<aril-value\r\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t[model]=\"infoAttribute.valueDesc ? infoAttribute.valueDesc : infoAttribute.value\"\r\n\t\t\t\t\t\t\t\t\t\t[shouldShowCopyForClampedText]=\"true\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t}\r\n\t\t</table>\r\n\t}\r\n</ng-template>\r\n", styles: ["table{width:100%;border-collapse:collapse}th,td{padding:8px;border:1px solid #ddd}::ng-deep .detailed-overlay-tooltip .p-tooltip-text{background:#fff;color:var(--text-color);width:max-content}\n"] }]
57
+ args: [{ selector: 'aril-detailed-oveylay-panel', standalone: true, imports: [TooltipModule, ProgressSpinnerModule, ValueComponent, TooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\r\n\t#spanRef\r\n\t(mouseenter)=\"onHover()\"\r\n\t[pTooltip]=\"tooltipContent\"\r\n\t[autoHide]=\"false\"\r\n\ttooltipStyleClass=\"detailed-overlay-tooltip\">\r\n\t<ng-content />\r\n</span>\r\n\r\n<ng-template #tooltipContent>\r\n\t@if (loading) {\r\n\t\t<p-progressSpinner styleClass=\"w-4rem h-4rem\" strokeWidth=\"8\" />\r\n\t} @else {\r\n\t\t<div class=\"w-full mb-2\">\r\n\t\t\t<p class=\"font-semibold\">{{ tableData.assetDefinitionName }} / {{ tableData.assetDefinitionCode }}</p>\r\n\t\t</div>\r\n\t\t<table class=\"w-full\">\r\n\t\t\t@for (infoAttribute of infoAttributes; track infoAttribute) {\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t{{ infoAttribute.attribute.attributeName }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p class=\"font-bold m-0\">\r\n\t\t\t\t\t\t\t@switch (infoAttribute.attribute.attributeType) {\r\n\t\t\t\t\t\t\t\t@case ('DATE') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"day\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('DATE_TIME') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"second\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('BOOLEAN') {\r\n\t\t\t\t\t\t\t\t\t@if (infoAttribute.value === true || infoAttribute.value === 'true') {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Var\" />\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Yok\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@default {\r\n\t\t\t\t\t\t\t\t\t<aril-value\r\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t[model]=\"infoAttribute.valueDesc ? infoAttribute.valueDesc : infoAttribute.value\"\r\n\t\t\t\t\t\t\t\t\t\t[shouldShowCopyForClampedText]=\"true\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t}\r\n\t\t</table>\r\n\t}\r\n</ng-template>\r\n", styles: ["table{width:100%;border-collapse:collapse}th,td{padding:8px;border:1px solid #ddd}::ng-deep .detailed-overlay-tooltip .p-tooltip-text{background:#fff;color:var(--text-color);width:max-content}\n"] }]
58
58
  }], ctorParameters: () => [{ type: i1.HttpClient }], propDecorators: { tooltip: [{
59
59
  type: ViewChild,
60
60
  args: [Tooltip]
@@ -1 +1 @@
1
- {"version":3,"file":"aril-ui-business-detailed-overlay-panel.mjs","sources":["../../projects/aril/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.ts","../../projects/aril/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.html","../../projects/aril/ui-business/detailed-overlay-panel/aril-ui-business-detailed-overlay-panel.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, Component, ViewChild, input } from '@angular/core';\r\n\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\nimport { Tooltip, TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { ValueComponent } from 'aril/ui/value';\r\n\r\nimport { AssetAggregate, AttributeElement } from './interface';\r\n\r\n/**\r\n * A component to display detailed tooltips with configurable position, event triggers, and delays.\r\n */\r\n@Component({\r\n\tselector: 'aril-detailed-oveylay-panel',\r\n\tstandalone: true,\r\n\timports: [TooltipModule, ProgressSpinnerModule, ValueComponent, TooltipModule],\r\n\ttemplateUrl: './detailed-overlay-panel.component.html',\r\n\tstyleUrl: './detailed-overlay-panel.component.scss',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DetailedOverlayPanelComponent {\r\n\tassetId = input.required<any>();\r\n\tstyle = input<any>({});\r\n\tstyleClass = input<string>('');\r\n\tcolumns = input<{ field: string; header: string }[]>([]);\r\n\ttableData: AssetAggregate = {} as AssetAggregate;\r\n\tloading = false;\r\n\tinfoAttributes: AttributeElement[] = [];\r\n\ttableDataCache: { [assetId: string]: AssetAggregate } = {};\r\n\r\n\t@ViewChild(Tooltip) tooltip!: Tooltip;\r\n\r\n\tconstructor(private readonly http: HttpClient) {}\r\n\r\n\tasync onHover() {\r\n\t\tif (this.tableDataCache[this.assetId()]) {\r\n\t\t\tthis.tableData = this.tableDataCache[this.assetId()];\r\n\t\t\tthis.infoAttributes = this.tableData.attributes;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.loading = true;\r\n\t\ttry {\r\n\t\t\tconst hostApi = API_CONFIGS.api.replace(/\\/[^/]+\\/v1$/, `/host/v1`);\r\n\t\t\tconst result = await firstValueFrom(\r\n\t\t\t\tthis.http.get<AssetAggregate>(`${hostApi}/master-data/${this.assetId()}/hover`)\r\n\t\t\t);\r\n\r\n\t\t\tif (result) {\r\n\t\t\t\tthis.tableDataCache[this.assetId()] = result;\r\n\t\t\t\tthis.tableData = result;\r\n\t\t\t\tthis.infoAttributes = result.attributes;\r\n\t\t\t}\r\n\t\t\tthis.loading = false;\r\n\t\t\tif (this.tooltip.active) {\r\n\t\t\t\tthis.tooltip.show();\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('Error fetching asset detail:', error);\r\n\t\t\tthis.loading = false;\r\n\t\t}\r\n\t}\r\n}\r\n","<span\r\n\t#spanRef\r\n\t(mouseenter)=\"onHover()\"\r\n\t[pTooltip]=\"tooltipContent\"\r\n\t[autoHide]=\"false\"\r\n\ttooltipStyleClass=\"detailed-overlay-tooltip\">\r\n\t<ng-content />\r\n</span>\r\n\r\n<ng-template #tooltipContent>\r\n\t@if (loading) {\r\n\t\t<p-progressSpinner styleClass=\"w-4rem h-4rem\" strokeWidth=\"8\" />\r\n\t} @else {\r\n\t\t<div class=\"w-full mb-2\">\r\n\t\t\t<p class=\"font-semibold\">{{ tableData.assetDefinitionName }} / {{ tableData.assetDefinitionCode }}</p>\r\n\t\t</div>\r\n\t\t<table class=\"w-full\">\r\n\t\t\t@for (infoAttribute of infoAttributes; track infoAttribute) {\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t{{ infoAttribute.attribute.attributeName }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p class=\"font-bold m-0\">\r\n\t\t\t\t\t\t\t@switch (infoAttribute.attribute.attributeType) {\r\n\t\t\t\t\t\t\t\t@case ('DATE') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"day\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('DATE_TIME') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"second\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('BOOLEAN') {\r\n\t\t\t\t\t\t\t\t\t@if (infoAttribute.value === 'true') {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Var\" />\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Yok\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@default {\r\n\t\t\t\t\t\t\t\t\t<aril-value\r\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t[model]=\"infoAttribute.valueDesc ? infoAttribute.valueDesc : infoAttribute.value\"\r\n\t\t\t\t\t\t\t\t\t\t[shouldShowCopyForClampedText]=\"true\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t}\r\n\t\t</table>\r\n\t}\r\n</ng-template>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aril-ui-business-detailed-overlay-panel.mjs","sources":["../../projects/aril/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.ts","../../projects/aril/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.html","../../projects/aril/ui-business/detailed-overlay-panel/aril-ui-business-detailed-overlay-panel.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, Component, ViewChild, input } from '@angular/core';\r\n\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\nimport { Tooltip, TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { ValueComponent } from 'aril/ui/value';\r\n\r\nimport { AssetAggregate, AttributeElement } from './interface';\r\n\r\n/**\r\n * A component to display detailed tooltips with configurable position, event triggers, and delays.\r\n */\r\n@Component({\r\n\tselector: 'aril-detailed-oveylay-panel',\r\n\tstandalone: true,\r\n\timports: [TooltipModule, ProgressSpinnerModule, ValueComponent, TooltipModule],\r\n\ttemplateUrl: './detailed-overlay-panel.component.html',\r\n\tstyleUrl: './detailed-overlay-panel.component.scss',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DetailedOverlayPanelComponent {\r\n\tassetId = input.required<any>();\r\n\tstyle = input<any>({});\r\n\tstyleClass = input<string>('');\r\n\tcolumns = input<{ field: string; header: string }[]>([]);\r\n\ttableData: AssetAggregate = {} as AssetAggregate;\r\n\tloading = false;\r\n\tinfoAttributes: AttributeElement[] = [];\r\n\ttableDataCache: { [assetId: string]: AssetAggregate } = {};\r\n\r\n\t@ViewChild(Tooltip) tooltip!: Tooltip;\r\n\r\n\tconstructor(private readonly http: HttpClient) {}\r\n\r\n\tasync onHover() {\r\n\t\tif (this.tableDataCache[this.assetId()]) {\r\n\t\t\tthis.tableData = this.tableDataCache[this.assetId()];\r\n\t\t\tthis.infoAttributes = this.tableData.attributes;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.loading = true;\r\n\t\ttry {\r\n\t\t\tconst hostApi = API_CONFIGS.api.replace(/\\/[^/]+\\/v1$/, `/host/v1`);\r\n\t\t\tconst result = await firstValueFrom(\r\n\t\t\t\tthis.http.get<AssetAggregate>(`${hostApi}/master-data/${this.assetId()}/hover`)\r\n\t\t\t);\r\n\r\n\t\t\tif (result) {\r\n\t\t\t\tthis.tableDataCache[this.assetId()] = result;\r\n\t\t\t\tthis.tableData = result;\r\n\t\t\t\tthis.infoAttributes = result.attributes;\r\n\t\t\t}\r\n\t\t\tthis.loading = false;\r\n\t\t\tif (this.tooltip.active) {\r\n\t\t\t\tthis.tooltip.show();\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('Error fetching asset detail:', error);\r\n\t\t\tthis.loading = false;\r\n\t\t}\r\n\t}\r\n}\r\n","<span\r\n\t#spanRef\r\n\t(mouseenter)=\"onHover()\"\r\n\t[pTooltip]=\"tooltipContent\"\r\n\t[autoHide]=\"false\"\r\n\ttooltipStyleClass=\"detailed-overlay-tooltip\">\r\n\t<ng-content />\r\n</span>\r\n\r\n<ng-template #tooltipContent>\r\n\t@if (loading) {\r\n\t\t<p-progressSpinner styleClass=\"w-4rem h-4rem\" strokeWidth=\"8\" />\r\n\t} @else {\r\n\t\t<div class=\"w-full mb-2\">\r\n\t\t\t<p class=\"font-semibold\">{{ tableData.assetDefinitionName }} / {{ tableData.assetDefinitionCode }}</p>\r\n\t\t</div>\r\n\t\t<table class=\"w-full\">\r\n\t\t\t@for (infoAttribute of infoAttributes; track infoAttribute) {\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t{{ infoAttribute.attribute.attributeName }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p class=\"font-bold m-0\">\r\n\t\t\t\t\t\t\t@switch (infoAttribute.attribute.attributeType) {\r\n\t\t\t\t\t\t\t\t@case ('DATE') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"day\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('DATE_TIME') {\r\n\t\t\t\t\t\t\t\t\t<aril-value type=\"date\" [model]=\"infoAttribute?.value\" format=\"second\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@case ('BOOLEAN') {\r\n\t\t\t\t\t\t\t\t\t@if (infoAttribute.value === true || infoAttribute.value === 'true') {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Var\" />\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<aril-value type=\"text\" model=\"Yok\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@default {\r\n\t\t\t\t\t\t\t\t\t<aril-value\r\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t[model]=\"infoAttribute.valueDesc ? infoAttribute.valueDesc : infoAttribute.value\"\r\n\t\t\t\t\t\t\t\t\t\t[shouldShowCopyForClampedText]=\"true\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t}\r\n\t\t</table>\r\n\t}\r\n</ng-template>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ import { JsonPipe } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { Injectable, inject, input, EventEmitter, signal, effect, Component, ChangeDetectionStrategy, Output } from '@angular/core';
4
+ import { toSignal } from '@angular/core/rxjs-interop';
5
+ import { Observable, Subject, switchMap, catchError, EMPTY } from 'rxjs';
6
+ import * as i4 from 'primeng/progressspinner';
7
+ import { ProgressSpinnerModule } from 'primeng/progressspinner';
8
+ import * as i2 from 'primeng/sidebar';
9
+ import { SidebarModule } from 'primeng/sidebar';
10
+ import * as i1 from '@ngneat/transloco';
11
+ import { TranslocoModule } from '@ngneat/transloco';
12
+ import { BadgeComponent } from 'aril/ui/badge';
13
+ import { ButtonComponent } from 'aril/ui/button';
14
+ import 'aril/util/primitive-extensions';
15
+ import { __decorate } from 'tslib';
16
+ import { Apps } from 'aril/boot/config/apps';
17
+ import { RestClient, ServiceCall, HTTPMethods, ProxyTypes } from 'aril/http';
18
+ import * as i3 from 'primeng/api';
19
+
20
+ class TraceLogService extends RestClient {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.states = {};
24
+ }
25
+ searchByTraceId(req) {
26
+ return new Observable();
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TraceLogService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TraceLogService, providedIn: 'root' }); }
30
+ }
31
+ __decorate([
32
+ ServiceCall(HTTPMethods.POST, ProxyTypes.ClientSide, 'request-logs/filter', {}, Apps.MNG)
33
+ ], TraceLogService.prototype, "searchByTraceId", null);
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TraceLogService, decorators: [{
35
+ type: Injectable,
36
+ args: [{ providedIn: 'root' }]
37
+ }], propDecorators: { searchByTraceId: [] } });
38
+
39
+ class TraceDrawerComponent {
40
+ constructor() {
41
+ this.traceLogService = inject(TraceLogService);
42
+ this.visible = input(false);
43
+ this.traceId = input.required();
44
+ this.position = input('right');
45
+ this.width = input('min(680px, 90vw)');
46
+ this.modal = input(false);
47
+ this.pageSize = input(100);
48
+ this.startTime = input();
49
+ this.endTime = input();
50
+ this.visibleChange = new EventEmitter();
51
+ this.loading = signal(false);
52
+ this.errorMessage = signal(undefined);
53
+ this.apisixHits = signal([]);
54
+ this.request = new Subject();
55
+ this.response = toSignal(this.request.pipe(switchMap((traceId) => this.traceLogService
56
+ .searchByTraceId({
57
+ traceId,
58
+ startTime: this.startTime() ?? 20000101000000,
59
+ endTime: this.endTime() ?? (new Date().dateToLong('time') ?? 99991231235959),
60
+ pager: { pageSize: this.pageSize(), pageNumber: 1 }
61
+ })
62
+ .pipe(catchError((err) => {
63
+ this.errorMessage.set(err?.error?.message ?? err?.message ?? 'İstek başarısız oldu');
64
+ this.loading.set(false);
65
+ return EMPTY;
66
+ })))));
67
+ effect(() => {
68
+ if (this.visible() && this.traceId()) {
69
+ this.fetch(this.traceId());
70
+ }
71
+ }, { allowSignalWrites: true });
72
+ effect(() => {
73
+ const resp = this.response();
74
+ if (!resp)
75
+ return;
76
+ this.apisixHits.set(resp.response?.result ?? []);
77
+ this.loading.set(false);
78
+ this.errorMessage.set(undefined);
79
+ }, { allowSignalWrites: true });
80
+ }
81
+ onVisibleChange(value) {
82
+ this.visibleChange.emit(value);
83
+ }
84
+ retry() {
85
+ const id = this.traceId();
86
+ if (id)
87
+ this.fetch(id);
88
+ }
89
+ fetch(traceId) {
90
+ this.loading.set(true);
91
+ this.errorMessage.set(undefined);
92
+ this.apisixHits.set([]);
93
+ this.request.next(traceId);
94
+ }
95
+ statusSeverity(status) {
96
+ if (status >= 500)
97
+ return 'danger';
98
+ if (status >= 400)
99
+ return 'warning';
100
+ if (status >= 300)
101
+ return 'info';
102
+ if (status >= 200)
103
+ return 'success';
104
+ return 'secondary';
105
+ }
106
+ durationSeverity(seconds) {
107
+ const ms = (seconds ?? 0) * 1000;
108
+ if (ms >= 1000)
109
+ return 'danger';
110
+ if (ms >= 200)
111
+ return 'warning';
112
+ return 'success';
113
+ }
114
+ formatDuration(seconds) {
115
+ if (seconds === undefined || seconds === null)
116
+ return '';
117
+ const ms = seconds * 1000;
118
+ if (ms < 1)
119
+ return `${ms.toFixed(2)} ms`;
120
+ if (ms < 1000)
121
+ return `${Math.round(ms)} ms`;
122
+ return `${(ms / 1000).toFixed(2)} s`;
123
+ }
124
+ formatBytes(bytes) {
125
+ if (bytes === undefined || bytes === null)
126
+ return '-';
127
+ if (bytes < 1024)
128
+ return `${bytes} B`;
129
+ if (bytes < 1024 * 1024)
130
+ return `${(bytes / 1024).toFixed(1)} KB`;
131
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
132
+ }
133
+ formatTimestamp(ts) {
134
+ if (ts === undefined || ts === null || ts === '')
135
+ return '';
136
+ if (typeof ts === 'string')
137
+ return ts;
138
+ const s = String(ts);
139
+ if (s.length === 14) {
140
+ return `${s.slice(8, 10)}:${s.slice(10, 12)}:${s.slice(12, 14)} ${s.slice(6, 8)}.${s.slice(4, 6)}.${s.slice(0, 4)}`;
141
+ }
142
+ if (ts > 1e11) {
143
+ return new Date(ts).toLocaleString();
144
+ }
145
+ return s;
146
+ }
147
+ tryParseJson(content) {
148
+ if (!content)
149
+ return null;
150
+ const trimmed = content.trim();
151
+ if (!((trimmed.startsWith('{') && trimmed.endsWith('}')) || (trimmed.startsWith('[') && trimmed.endsWith(']')))) {
152
+ return null;
153
+ }
154
+ try {
155
+ return JSON.parse(trimmed);
156
+ }
157
+ catch {
158
+ return null;
159
+ }
160
+ }
161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TraceDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
162
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: TraceDrawerComponent, isStandalone: true, selector: "aril-trace-drawer", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, traceId: { classPropertyName: "traceId", publicName: "traceId", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, modal: { classPropertyName: "modal", publicName: "modal", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, startTime: { classPropertyName: "startTime", publicName: "startTime", isSignal: true, isRequired: false, transformFunction: null }, endTime: { classPropertyName: "endTime", publicName: "endTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n\t<p-sidebar\r\n\t\t[visible]=\"visible()\"\r\n\t\t(visibleChange)=\"onVisibleChange($event)\"\r\n\t\t[position]=\"position()\"\r\n\t\t[style]=\"{ width: width() }\"\r\n\t\t[modal]=\"modal()\"\r\n\t\t[dismissible]=\"true\"\r\n\t\t[showCloseIcon]=\"true\"\r\n\t\tstyleClass=\"aril-trace-drawer\">\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<div class=\"aril-trace-drawer__header\">\r\n\t\t\t\t<i class=\"pi pi-sitemap\"></i>\r\n\t\t\t\t<span class=\"aril-trace-drawer__title\">{{ t('traceDrawer.title') }}</span>\r\n\t\t\t\t<code class=\"aril-trace-drawer__chip\" [title]=\"traceId()\">{{ traceId() }}</code>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<div class=\"aril-trace-drawer__body\">\r\n\t\t\t@if (loading()) {\r\n\t\t\t\t<div class=\"aril-trace-drawer__state\">\r\n\t\t\t\t\t<p-progressSpinner strokeWidth=\"3\" styleClass=\"w-3rem h-3rem\"></p-progressSpinner>\r\n\t\t\t\t\t<span>{{ t('traceDrawer.loading') }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t} @else if (errorMessage()) {\r\n\t\t\t\t<div class=\"aril-trace-drawer__state aril-trace-drawer__state--error\">\r\n\t\t\t\t\t<i class=\"pi pi-exclamation-triangle\"></i>\r\n\t\t\t\t\t<p>{{ errorMessage() }}</p>\r\n\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t[label]=\"t('traceDrawer.retry')\"\r\n\t\t\t\t\t\ticon=\"REFRESH\"\r\n\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t(clickEvent)=\"retry()\" />\r\n\t\t\t\t</div>\r\n\t\t\t} @else if (apisixHits().length) {\r\n\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t<i class=\"pi pi-globe\"></i>\r\n\t\t\t\t\t\t{{ t('traceDrawer.apisixHeader') }}\r\n\t\t\t\t\t\t<aril-badge [value]=\"apisixHits().length.toString()\" severity=\"info\" [rounded]=\"true\" />\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t@for (hit of apisixHits(); track hit.id) {\r\n\t\t\t\t\t\t<div class=\"apisix-card\">\r\n\t\t\t\t\t\t\t<div class=\"apisix-card__head\">\r\n\t\t\t\t\t\t\t\t<aril-badge [value]=\"hit.status.toString()\" [severity]=\"statusSeverity(hit.status)\" />\r\n\t\t\t\t\t\t\t\t<span class=\"apisix-card__method\">{{ hit.requestMethod }}</span>\r\n\t\t\t\t\t\t\t\t<span class=\"apisix-card__uri\" [title]=\"hit.requestUri\">{{ hit.requestUri }}</span>\r\n\t\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t\t[value]=\"formatDuration(hit.responseTime)\"\r\n\t\t\t\t\t\t\t\t\t[severity]=\"durationSeverity(hit.responseTime)\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"apisix-card__meta\">\r\n\t\t\t\t\t\t\t\t@if (hit.routeName) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.route') }}</span><span>{{ hit.routeName }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.timestamp) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.timestamp') }}</span><span>{{ formatTimestamp(hit.timestamp) }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.sourceApp || hit.sourceModule) {\r\n\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.source') }}</span>\r\n\t\t\t\t\t\t\t\t\t\t<span>{{ hit.sourceApp }}{{ hit.sourceModule ? ' / ' + hit.sourceModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.targetApp || hit.targetModule) {\r\n\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.target') }}</span>\r\n\t\t\t\t\t\t\t\t\t\t<span>{{ hit.targetApp }}{{ hit.targetModule ? ' / ' + hit.targetModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.upstreamHost) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.upstream') }}</span><span>{{ hit.upstreamHost }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.username) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.user') }}</span><span>{{ hit.username }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.requestSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.requestSize') }}</span><span>{{ formatBytes(hit.requestSize) }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.responseSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.responseSize') }}</span><span>{{ formatBytes(hit.responseSize) }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t@if (hit.requestBody) {\r\n\t\t\t\t\t\t\t\t<details class=\"apisix-card__body\">\r\n\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.requestBody') }}</summary>\r\n\t\t\t\t\t\t\t\t\t@if (tryParseJson(hit.requestBody); as parsed) {\r\n\t\t\t\t\t\t\t\t\t\t<pre>{{ parsed | json }}</pre>\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<pre>{{ hit.requestBody }}</pre>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t@if (hit.responseBody) {\r\n\t\t\t\t\t\t\t\t<details class=\"apisix-card__body\">\r\n\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.responseBody') }}</summary>\r\n\t\t\t\t\t\t\t\t\t@if (tryParseJson(hit.responseBody); as parsed) {\r\n\t\t\t\t\t\t\t\t\t\t<pre>{{ parsed | json }}</pre>\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<pre>{{ hit.responseBody }}</pre>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</section>\r\n\t\t\t} @else {\r\n\t\t\t\t<div class=\"aril-trace-drawer__state\">\r\n\t\t\t\t\t<i class=\"pi pi-inbox\"></i>\r\n\t\t\t\t\t<p>{{ t('traceDrawer.empty') }}</p>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</p-sidebar>\r\n</ng-container>\r\n", styles: [":host ::ng-deep .aril-trace-drawer .p-sidebar-header{padding:1rem 1.25rem;border-bottom:1px solid var(--surface-border, #e5e7eb)}:host ::ng-deep .aril-trace-drawer .p-sidebar-content{padding:0;overflow-y:auto}.aril-trace-drawer__header{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.aril-trace-drawer__header .pi-sitemap{font-size:1.25rem;color:var(--primary-color, #1890ff)}.aril-trace-drawer__title{font-weight:600;font-size:1.1rem}.aril-trace-drawer__chip{font-size:.875rem;padding:.2rem .55rem;border-radius:4px;background:var(--surface-100, #f3f4f6);color:var(--text-color-secondary, #6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.aril-trace-drawer__body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:1.5rem}.aril-trace-drawer__state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:3rem 1rem;color:var(--text-color-secondary, #6b7280);text-align:center;font-size:.95rem}.aril-trace-drawer__state .pi{font-size:2rem}.aril-trace-drawer__state--error .pi{color:var(--red-500, #ef4444)}.aril-trace-drawer__section-title{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:1.05rem;font-weight:600}.aril-trace-drawer__section-title .pi{color:var(--primary-color, #1890ff)}.apisix-card{border:1px solid var(--surface-border, #e5e7eb);border-radius:6px;padding:.75rem;margin-bottom:.75rem;background:var(--surface-card, #ffffff);transition:box-shadow .15s ease}.apisix-card:hover{box-shadow:0 2px 8px #0000000f}.apisix-card__head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.apisix-card__method{font-weight:600;color:var(--primary-color, #1890ff);font-size:.9rem}.apisix-card__uri{font-size:.9rem;color:var(--text-color, #111827);flex:1;min-width:0;word-break:break-all;overflow-wrap:anywhere}.apisix-card__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.4rem 1rem;font-size:.9rem}.apisix-card__meta>div{display:grid;grid-template-columns:max-content 1fr;column-gap:.5rem;align-items:baseline;min-width:0}.apisix-card__meta .meta-label{color:var(--text-color-secondary, #6b7280);font-weight:500}.apisix-card__meta .meta-label:after{content:\":\"}.apisix-card__meta span:not(.meta-label){color:var(--text-color, #111827);word-break:break-word}.apisix-card__body{margin-top:.5rem}.apisix-card__body summary{cursor:pointer;font-size:.9rem;color:var(--primary-color, #1890ff);padding:.25rem 0;-webkit-user-select:none;user-select:none}.apisix-card__body summary:hover{text-decoration:underline}.apisix-card__body pre{margin:.35rem 0 0;padding:.6rem .85rem;background:var(--surface-100, #f3f4f6);border-radius:4px;font-size:.85rem;line-height:1.5;max-height:360px;overflow:auto;white-space:pre-wrap;word-break:break-word}\n"], dependencies: [{ kind: "pipe", type: JsonPipe, name: "json" }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i1.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i2.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ProgressSpinnerModule }, { kind: "component", type: i4.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: BadgeComponent, selector: "aril-badge", inputs: ["icon", "value", "severity", "rounded", "background", "styleClass", "textColor", "borderColor", "textClampCharacters"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
163
+ }
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TraceDrawerComponent, decorators: [{
165
+ type: Component,
166
+ args: [{ standalone: true, selector: 'aril-trace-drawer', imports: [JsonPipe, TranslocoModule, SidebarModule, ProgressSpinnerModule, BadgeComponent, ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\r\n\t<p-sidebar\r\n\t\t[visible]=\"visible()\"\r\n\t\t(visibleChange)=\"onVisibleChange($event)\"\r\n\t\t[position]=\"position()\"\r\n\t\t[style]=\"{ width: width() }\"\r\n\t\t[modal]=\"modal()\"\r\n\t\t[dismissible]=\"true\"\r\n\t\t[showCloseIcon]=\"true\"\r\n\t\tstyleClass=\"aril-trace-drawer\">\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<div class=\"aril-trace-drawer__header\">\r\n\t\t\t\t<i class=\"pi pi-sitemap\"></i>\r\n\t\t\t\t<span class=\"aril-trace-drawer__title\">{{ t('traceDrawer.title') }}</span>\r\n\t\t\t\t<code class=\"aril-trace-drawer__chip\" [title]=\"traceId()\">{{ traceId() }}</code>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<div class=\"aril-trace-drawer__body\">\r\n\t\t\t@if (loading()) {\r\n\t\t\t\t<div class=\"aril-trace-drawer__state\">\r\n\t\t\t\t\t<p-progressSpinner strokeWidth=\"3\" styleClass=\"w-3rem h-3rem\"></p-progressSpinner>\r\n\t\t\t\t\t<span>{{ t('traceDrawer.loading') }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t} @else if (errorMessage()) {\r\n\t\t\t\t<div class=\"aril-trace-drawer__state aril-trace-drawer__state--error\">\r\n\t\t\t\t\t<i class=\"pi pi-exclamation-triangle\"></i>\r\n\t\t\t\t\t<p>{{ errorMessage() }}</p>\r\n\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t[label]=\"t('traceDrawer.retry')\"\r\n\t\t\t\t\t\ticon=\"REFRESH\"\r\n\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t(clickEvent)=\"retry()\" />\r\n\t\t\t\t</div>\r\n\t\t\t} @else if (apisixHits().length) {\r\n\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t<i class=\"pi pi-globe\"></i>\r\n\t\t\t\t\t\t{{ t('traceDrawer.apisixHeader') }}\r\n\t\t\t\t\t\t<aril-badge [value]=\"apisixHits().length.toString()\" severity=\"info\" [rounded]=\"true\" />\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t@for (hit of apisixHits(); track hit.id) {\r\n\t\t\t\t\t\t<div class=\"apisix-card\">\r\n\t\t\t\t\t\t\t<div class=\"apisix-card__head\">\r\n\t\t\t\t\t\t\t\t<aril-badge [value]=\"hit.status.toString()\" [severity]=\"statusSeverity(hit.status)\" />\r\n\t\t\t\t\t\t\t\t<span class=\"apisix-card__method\">{{ hit.requestMethod }}</span>\r\n\t\t\t\t\t\t\t\t<span class=\"apisix-card__uri\" [title]=\"hit.requestUri\">{{ hit.requestUri }}</span>\r\n\t\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t\t[value]=\"formatDuration(hit.responseTime)\"\r\n\t\t\t\t\t\t\t\t\t[severity]=\"durationSeverity(hit.responseTime)\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"apisix-card__meta\">\r\n\t\t\t\t\t\t\t\t@if (hit.routeName) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.route') }}</span><span>{{ hit.routeName }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.timestamp) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.timestamp') }}</span><span>{{ formatTimestamp(hit.timestamp) }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.sourceApp || hit.sourceModule) {\r\n\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.source') }}</span>\r\n\t\t\t\t\t\t\t\t\t\t<span>{{ hit.sourceApp }}{{ hit.sourceModule ? ' / ' + hit.sourceModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.targetApp || hit.targetModule) {\r\n\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.target') }}</span>\r\n\t\t\t\t\t\t\t\t\t\t<span>{{ hit.targetApp }}{{ hit.targetModule ? ' / ' + hit.targetModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.upstreamHost) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.upstream') }}</span><span>{{ hit.upstreamHost }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.username) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.user') }}</span><span>{{ hit.username }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.requestSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.requestSize') }}</span><span>{{ formatBytes(hit.requestSize) }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.responseSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.responseSize') }}</span><span>{{ formatBytes(hit.responseSize) }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t@if (hit.requestBody) {\r\n\t\t\t\t\t\t\t\t<details class=\"apisix-card__body\">\r\n\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.requestBody') }}</summary>\r\n\t\t\t\t\t\t\t\t\t@if (tryParseJson(hit.requestBody); as parsed) {\r\n\t\t\t\t\t\t\t\t\t\t<pre>{{ parsed | json }}</pre>\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<pre>{{ hit.requestBody }}</pre>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t@if (hit.responseBody) {\r\n\t\t\t\t\t\t\t\t<details class=\"apisix-card__body\">\r\n\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.responseBody') }}</summary>\r\n\t\t\t\t\t\t\t\t\t@if (tryParseJson(hit.responseBody); as parsed) {\r\n\t\t\t\t\t\t\t\t\t\t<pre>{{ parsed | json }}</pre>\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<pre>{{ hit.responseBody }}</pre>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</section>\r\n\t\t\t} @else {\r\n\t\t\t\t<div class=\"aril-trace-drawer__state\">\r\n\t\t\t\t\t<i class=\"pi pi-inbox\"></i>\r\n\t\t\t\t\t<p>{{ t('traceDrawer.empty') }}</p>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</p-sidebar>\r\n</ng-container>\r\n", styles: [":host ::ng-deep .aril-trace-drawer .p-sidebar-header{padding:1rem 1.25rem;border-bottom:1px solid var(--surface-border, #e5e7eb)}:host ::ng-deep .aril-trace-drawer .p-sidebar-content{padding:0;overflow-y:auto}.aril-trace-drawer__header{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.aril-trace-drawer__header .pi-sitemap{font-size:1.25rem;color:var(--primary-color, #1890ff)}.aril-trace-drawer__title{font-weight:600;font-size:1.1rem}.aril-trace-drawer__chip{font-size:.875rem;padding:.2rem .55rem;border-radius:4px;background:var(--surface-100, #f3f4f6);color:var(--text-color-secondary, #6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.aril-trace-drawer__body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:1.5rem}.aril-trace-drawer__state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:3rem 1rem;color:var(--text-color-secondary, #6b7280);text-align:center;font-size:.95rem}.aril-trace-drawer__state .pi{font-size:2rem}.aril-trace-drawer__state--error .pi{color:var(--red-500, #ef4444)}.aril-trace-drawer__section-title{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:1.05rem;font-weight:600}.aril-trace-drawer__section-title .pi{color:var(--primary-color, #1890ff)}.apisix-card{border:1px solid var(--surface-border, #e5e7eb);border-radius:6px;padding:.75rem;margin-bottom:.75rem;background:var(--surface-card, #ffffff);transition:box-shadow .15s ease}.apisix-card:hover{box-shadow:0 2px 8px #0000000f}.apisix-card__head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.apisix-card__method{font-weight:600;color:var(--primary-color, #1890ff);font-size:.9rem}.apisix-card__uri{font-size:.9rem;color:var(--text-color, #111827);flex:1;min-width:0;word-break:break-all;overflow-wrap:anywhere}.apisix-card__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.4rem 1rem;font-size:.9rem}.apisix-card__meta>div{display:grid;grid-template-columns:max-content 1fr;column-gap:.5rem;align-items:baseline;min-width:0}.apisix-card__meta .meta-label{color:var(--text-color-secondary, #6b7280);font-weight:500}.apisix-card__meta .meta-label:after{content:\":\"}.apisix-card__meta span:not(.meta-label){color:var(--text-color, #111827);word-break:break-word}.apisix-card__body{margin-top:.5rem}.apisix-card__body summary{cursor:pointer;font-size:.9rem;color:var(--primary-color, #1890ff);padding:.25rem 0;-webkit-user-select:none;user-select:none}.apisix-card__body summary:hover{text-decoration:underline}.apisix-card__body pre{margin:.35rem 0 0;padding:.6rem .85rem;background:var(--surface-100, #f3f4f6);border-radius:4px;font-size:.85rem;line-height:1.5;max-height:360px;overflow:auto;white-space:pre-wrap;word-break:break-word}\n"] }]
167
+ }], ctorParameters: () => [], propDecorators: { visibleChange: [{
168
+ type: Output
169
+ }] } });
170
+
171
+ /**
172
+ * Generated bundle index. Do not edit.
173
+ */
174
+
175
+ export { TraceDrawerComponent };
176
+ //# sourceMappingURL=aril-ui-business-trace-drawer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aril-ui-business-trace-drawer.mjs","sources":["../../projects/aril/ui-business/trace-drawer/src/trace-log.service.ts","../../projects/aril/ui-business/trace-drawer/src/trace-drawer.component.ts","../../projects/aril/ui-business/trace-drawer/src/trace-drawer.component.html","../../projects/aril/ui-business/trace-drawer/aril-ui-business-trace-drawer.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { Apps } from 'aril/boot/config/apps';\r\nimport { HTTPMethods, ProxyTypes, RestClient, ServiceCall, ServiceCallStateMap, ServiceResponse } from 'aril/http';\r\n\r\nimport { ApisixHit } from './interfaces';\r\n\r\nexport interface TraceSearchRequest {\r\n\ttraceId: string;\r\n\tstartTime?: number;\r\n\tendTime?: number;\r\n\tpager: { pageSize: number; pageNumber: number };\r\n}\r\n\r\nexport interface TraceSearchResponse {\r\n\tresultInfo?: { totalItem?: number; totalPage?: number };\r\n\tresult: ApisixHit[];\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TraceLogService extends RestClient {\r\n\toverride states: ServiceCallStateMap<TraceLogService> = {};\r\n\r\n\t@ServiceCall(HTTPMethods.POST, ProxyTypes.ClientSide, 'request-logs/filter', {}, Apps.MNG)\r\n\tsearchByTraceId(req: TraceSearchRequest): Observable<ServiceResponse<TraceSearchResponse>> {\r\n\t\treturn new Observable<ServiceResponse<TraceSearchResponse>>();\r\n\t}\r\n}\r\n","import { JsonPipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Output, effect, inject, input, signal } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\nimport { EMPTY, Subject, catchError, switchMap } from 'rxjs';\r\n\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\n\r\nimport { TranslocoModule } from '@ngneat/transloco';\r\n\r\nimport { BadgeComponent } from 'aril/ui/badge';\r\nimport { ButtonComponent } from 'aril/ui/button';\r\nimport 'aril/util/primitive-extensions';\r\n\r\nimport { ApisixHit } from './interfaces';\r\nimport { TraceLogService } from './trace-log.service';\r\n\r\ntype Position = 'right' | 'left';\r\ntype Severity = 'success' | 'secondary' | 'info' | 'warning' | 'danger' | 'contrast' | undefined;\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-trace-drawer',\r\n\ttemplateUrl: './trace-drawer.component.html',\r\n\tstyleUrls: ['./trace-drawer.component.scss'],\r\n\timports: [JsonPipe, TranslocoModule, SidebarModule, ProgressSpinnerModule, BadgeComponent, ButtonComponent],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TraceDrawerComponent {\r\n\tprivate readonly traceLogService = inject(TraceLogService);\r\n\r\n\tvisible = input<boolean>(false);\r\n\ttraceId = input.required<string>();\r\n\tposition = input<Position>('right');\r\n\twidth = input<string>('min(680px, 90vw)');\r\n\tmodal = input<boolean>(false);\r\n\tpageSize = input<number>(100);\r\n\tstartTime = input<number | undefined>();\r\n\tendTime = input<number | undefined>();\r\n\r\n\t@Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n\tprotected readonly loading = signal(false);\r\n\tprotected readonly errorMessage = signal<string | undefined>(undefined);\r\n\tprotected readonly apisixHits = signal<ApisixHit[]>([]);\r\n\r\n\tprivate readonly request = new Subject<string>();\r\n\tprivate readonly response = toSignal(\r\n\t\tthis.request.pipe(\r\n\t\t\tswitchMap((traceId) =>\r\n\t\t\t\tthis.traceLogService\r\n\t\t\t\t\t.searchByTraceId({\r\n\t\t\t\t\t\ttraceId,\r\n\t\t\t\t\t\tstartTime: this.startTime() ?? 20000101000000,\r\n\t\t\t\t\t\tendTime: this.endTime() ?? (new Date().dateToLong('time') ?? 99991231235959),\r\n\t\t\t\t\t\tpager: { pageSize: this.pageSize(), pageNumber: 1 }\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.pipe(\r\n\t\t\t\t\t\tcatchError((err) => {\r\n\t\t\t\t\t\t\tthis.errorMessage.set(err?.error?.message ?? err?.message ?? 'İstek başarısız oldu');\r\n\t\t\t\t\t\t\tthis.loading.set(false);\r\n\t\t\t\t\t\t\treturn EMPTY;\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t)\r\n\t\t\t)\r\n\t\t)\r\n\t);\r\n\r\n\tconstructor() {\r\n\t\teffect(\r\n\t\t\t() => {\r\n\t\t\t\tif (this.visible() && this.traceId()) {\r\n\t\t\t\t\tthis.fetch(this.traceId());\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\r\n\t\teffect(\r\n\t\t\t() => {\r\n\t\t\t\tconst resp = this.response();\r\n\t\t\t\tif (!resp) return;\r\n\t\t\t\tthis.apisixHits.set(resp.response?.result ?? []);\r\n\t\t\t\tthis.loading.set(false);\r\n\t\t\t\tthis.errorMessage.set(undefined);\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected onVisibleChange(value: boolean): void {\r\n\t\tthis.visibleChange.emit(value);\r\n\t}\r\n\r\n\tprotected retry(): void {\r\n\t\tconst id = this.traceId();\r\n\t\tif (id) this.fetch(id);\r\n\t}\r\n\r\n\tprivate fetch(traceId: string): void {\r\n\t\tthis.loading.set(true);\r\n\t\tthis.errorMessage.set(undefined);\r\n\t\tthis.apisixHits.set([]);\r\n\t\tthis.request.next(traceId);\r\n\t}\r\n\r\n\tprotected statusSeverity(status: number): Severity {\r\n\t\tif (status >= 500) return 'danger';\r\n\t\tif (status >= 400) return 'warning';\r\n\t\tif (status >= 300) return 'info';\r\n\t\tif (status >= 200) return 'success';\r\n\t\treturn 'secondary';\r\n\t}\r\n\r\n\tprotected durationSeverity(seconds: number): Severity {\r\n\t\tconst ms = (seconds ?? 0) * 1000;\r\n\t\tif (ms >= 1000) return 'danger';\r\n\t\tif (ms >= 200) return 'warning';\r\n\t\treturn 'success';\r\n\t}\r\n\r\n\tprotected formatDuration(seconds: number | undefined): string {\r\n\t\tif (seconds === undefined || seconds === null) return '';\r\n\t\tconst ms = seconds * 1000;\r\n\t\tif (ms < 1) return `${ms.toFixed(2)} ms`;\r\n\t\tif (ms < 1000) return `${Math.round(ms)} ms`;\r\n\t\treturn `${(ms / 1000).toFixed(2)} s`;\r\n\t}\r\n\r\n\tprotected formatBytes(bytes: number | undefined): string {\r\n\t\tif (bytes === undefined || bytes === null) return '-';\r\n\t\tif (bytes < 1024) return `${bytes} B`;\r\n\t\tif (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\r\n\t\treturn `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\r\n\t}\r\n\r\n\tprotected formatTimestamp(ts: string | number | undefined): string {\r\n\t\tif (ts === undefined || ts === null || ts === '') return '';\r\n\t\tif (typeof ts === 'string') return ts;\r\n\t\tconst s = String(ts);\r\n\t\tif (s.length === 14) {\r\n\t\t\treturn `${s.slice(8, 10)}:${s.slice(10, 12)}:${s.slice(12, 14)} ${s.slice(6, 8)}.${s.slice(4, 6)}.${s.slice(0, 4)}`;\r\n\t\t}\r\n\t\tif (ts > 1e11) {\r\n\t\t\treturn new Date(ts).toLocaleString();\r\n\t\t}\r\n\t\treturn s;\r\n\t}\r\n\r\n\tprotected tryParseJson(content: string | undefined): unknown {\r\n\t\tif (!content) return null;\r\n\t\tconst trimmed = content.trim();\r\n\t\tif (!((trimmed.startsWith('{') && trimmed.endsWith('}')) || (trimmed.startsWith('[') && trimmed.endsWith(']')))) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\ttry {\r\n\t\t\treturn JSON.parse(trimmed);\r\n\t\t} catch {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n}\r\n","<ng-container *transloco=\"let t\">\r\n\t<p-sidebar\r\n\t\t[visible]=\"visible()\"\r\n\t\t(visibleChange)=\"onVisibleChange($event)\"\r\n\t\t[position]=\"position()\"\r\n\t\t[style]=\"{ width: width() }\"\r\n\t\t[modal]=\"modal()\"\r\n\t\t[dismissible]=\"true\"\r\n\t\t[showCloseIcon]=\"true\"\r\n\t\tstyleClass=\"aril-trace-drawer\">\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<div class=\"aril-trace-drawer__header\">\r\n\t\t\t\t<i class=\"pi pi-sitemap\"></i>\r\n\t\t\t\t<span class=\"aril-trace-drawer__title\">{{ t('traceDrawer.title') }}</span>\r\n\t\t\t\t<code class=\"aril-trace-drawer__chip\" [title]=\"traceId()\">{{ traceId() }}</code>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<div class=\"aril-trace-drawer__body\">\r\n\t\t\t@if (loading()) {\r\n\t\t\t\t<div class=\"aril-trace-drawer__state\">\r\n\t\t\t\t\t<p-progressSpinner strokeWidth=\"3\" styleClass=\"w-3rem h-3rem\"></p-progressSpinner>\r\n\t\t\t\t\t<span>{{ t('traceDrawer.loading') }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t} @else if (errorMessage()) {\r\n\t\t\t\t<div class=\"aril-trace-drawer__state aril-trace-drawer__state--error\">\r\n\t\t\t\t\t<i class=\"pi pi-exclamation-triangle\"></i>\r\n\t\t\t\t\t<p>{{ errorMessage() }}</p>\r\n\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t[label]=\"t('traceDrawer.retry')\"\r\n\t\t\t\t\t\ticon=\"REFRESH\"\r\n\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t(clickEvent)=\"retry()\" />\r\n\t\t\t\t</div>\r\n\t\t\t} @else if (apisixHits().length) {\r\n\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t<i class=\"pi pi-globe\"></i>\r\n\t\t\t\t\t\t{{ t('traceDrawer.apisixHeader') }}\r\n\t\t\t\t\t\t<aril-badge [value]=\"apisixHits().length.toString()\" severity=\"info\" [rounded]=\"true\" />\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t@for (hit of apisixHits(); track hit.id) {\r\n\t\t\t\t\t\t<div class=\"apisix-card\">\r\n\t\t\t\t\t\t\t<div class=\"apisix-card__head\">\r\n\t\t\t\t\t\t\t\t<aril-badge [value]=\"hit.status.toString()\" [severity]=\"statusSeverity(hit.status)\" />\r\n\t\t\t\t\t\t\t\t<span class=\"apisix-card__method\">{{ hit.requestMethod }}</span>\r\n\t\t\t\t\t\t\t\t<span class=\"apisix-card__uri\" [title]=\"hit.requestUri\">{{ hit.requestUri }}</span>\r\n\t\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t\t[value]=\"formatDuration(hit.responseTime)\"\r\n\t\t\t\t\t\t\t\t\t[severity]=\"durationSeverity(hit.responseTime)\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div class=\"apisix-card__meta\">\r\n\t\t\t\t\t\t\t\t@if (hit.routeName) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.route') }}</span><span>{{ hit.routeName }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.timestamp) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.timestamp') }}</span><span>{{ formatTimestamp(hit.timestamp) }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.sourceApp || hit.sourceModule) {\r\n\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.source') }}</span>\r\n\t\t\t\t\t\t\t\t\t\t<span>{{ hit.sourceApp }}{{ hit.sourceModule ? ' / ' + hit.sourceModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.targetApp || hit.targetModule) {\r\n\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.target') }}</span>\r\n\t\t\t\t\t\t\t\t\t\t<span>{{ hit.targetApp }}{{ hit.targetModule ? ' / ' + hit.targetModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.upstreamHost) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.upstream') }}</span><span>{{ hit.upstreamHost }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.username) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.user') }}</span><span>{{ hit.username }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.requestSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.requestSize') }}</span><span>{{ formatBytes(hit.requestSize) }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@if (hit.responseSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t<div><span class=\"meta-label\">{{ t('traceDrawer.responseSize') }}</span><span>{{ formatBytes(hit.responseSize) }}</span></div>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t@if (hit.requestBody) {\r\n\t\t\t\t\t\t\t\t<details class=\"apisix-card__body\">\r\n\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.requestBody') }}</summary>\r\n\t\t\t\t\t\t\t\t\t@if (tryParseJson(hit.requestBody); as parsed) {\r\n\t\t\t\t\t\t\t\t\t\t<pre>{{ parsed | json }}</pre>\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<pre>{{ hit.requestBody }}</pre>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t@if (hit.responseBody) {\r\n\t\t\t\t\t\t\t\t<details class=\"apisix-card__body\">\r\n\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.responseBody') }}</summary>\r\n\t\t\t\t\t\t\t\t\t@if (tryParseJson(hit.responseBody); as parsed) {\r\n\t\t\t\t\t\t\t\t\t\t<pre>{{ parsed | json }}</pre>\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<pre>{{ hit.responseBody }}</pre>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</section>\r\n\t\t\t} @else {\r\n\t\t\t\t<div class=\"aril-trace-drawer__state\">\r\n\t\t\t\t\t<i class=\"pi pi-inbox\"></i>\r\n\t\t\t\t\t<p>{{ t('traceDrawer.empty') }}</p>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</p-sidebar>\r\n</ng-container>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, EventEmitter, computed, Component, ChangeDetectionStrategy, Output } from '@angular/core';
3
+
4
+ class TraceIdComponent {
5
+ constructor() {
6
+ this.traceId = input.required();
7
+ this.label = input();
8
+ this.iconLeft = input('pi-sitemap');
9
+ this.iconRight = input('pi-chevron-right');
10
+ this.size = input('sm');
11
+ this.disabled = input(false);
12
+ this.clickEvent = new EventEmitter();
13
+ this.displayText = computed(() => {
14
+ const custom = this.label();
15
+ if (custom)
16
+ return custom;
17
+ const id = this.traceId() ?? '';
18
+ return id.length > 10 ? id.slice(0, 8) + '…' : id;
19
+ });
20
+ }
21
+ onClick(event) {
22
+ event.stopPropagation();
23
+ if (this.disabled())
24
+ return;
25
+ this.clickEvent.emit(this.traceId());
26
+ }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TraceIdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: TraceIdComponent, isStandalone: true, selector: "aril-trace-id", inputs: { traceId: { classPropertyName: "traceId", publicName: "traceId", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, iconLeft: { classPropertyName: "iconLeft", publicName: "iconLeft", isSignal: true, isRequired: false, transformFunction: null }, iconRight: { classPropertyName: "iconRight", publicName: "iconRight", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickEvent: "clickEvent" }, ngImport: i0, template: "<button\r\n\ttype=\"button\"\r\n\tclass=\"aril-trace-id\"\r\n\t[class.aril-trace-id--md]=\"size() === 'md'\"\r\n\t[class.aril-trace-id--disabled]=\"disabled()\"\r\n\t[attr.aria-label]=\"traceId()\"\r\n\t[title]=\"traceId()\"\r\n\t(click)=\"onClick($event)\">\r\n\t<i class=\"pi {{ iconLeft() }}\"></i>\r\n\t<span class=\"aril-trace-id__text\">{{ displayText() }}</span>\r\n\t<i class=\"pi {{ iconRight() }}\"></i>\r\n</button>\r\n", styles: [".aril-trace-id{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;font-size:.9rem;line-height:1.2;color:var(--primary-color, #1890ff);background:var(--primary-50, rgba(24, 144, 255, .08));border:1px solid transparent;border-radius:4px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.aril-trace-id:hover{background:var(--primary-100, rgba(24, 144, 255, .15));border-color:var(--primary-200, rgba(24, 144, 255, .3))}.aril-trace-id:focus-visible{outline:2px solid var(--primary-color, #1890ff);outline-offset:1px}.aril-trace-id--md{padding:.35rem .75rem;font-size:1rem}.aril-trace-id--disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.aril-trace-id .pi{font-size:.85rem}.aril-trace-id__text{white-space:nowrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TraceIdComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ standalone: true, selector: 'aril-trace-id', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n\ttype=\"button\"\r\n\tclass=\"aril-trace-id\"\r\n\t[class.aril-trace-id--md]=\"size() === 'md'\"\r\n\t[class.aril-trace-id--disabled]=\"disabled()\"\r\n\t[attr.aria-label]=\"traceId()\"\r\n\t[title]=\"traceId()\"\r\n\t(click)=\"onClick($event)\">\r\n\t<i class=\"pi {{ iconLeft() }}\"></i>\r\n\t<span class=\"aril-trace-id__text\">{{ displayText() }}</span>\r\n\t<i class=\"pi {{ iconRight() }}\"></i>\r\n</button>\r\n", styles: [".aril-trace-id{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;font-size:.9rem;line-height:1.2;color:var(--primary-color, #1890ff);background:var(--primary-50, rgba(24, 144, 255, .08));border:1px solid transparent;border-radius:4px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.aril-trace-id:hover{background:var(--primary-100, rgba(24, 144, 255, .15));border-color:var(--primary-200, rgba(24, 144, 255, .3))}.aril-trace-id:focus-visible{outline:2px solid var(--primary-color, #1890ff);outline-offset:1px}.aril-trace-id--md{padding:.35rem .75rem;font-size:1rem}.aril-trace-id--disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.aril-trace-id .pi{font-size:.85rem}.aril-trace-id__text{white-space:nowrap}\n"] }]
33
+ }], propDecorators: { clickEvent: [{
34
+ type: Output
35
+ }] } });
36
+
37
+ /**
38
+ * Generated bundle index. Do not edit.
39
+ */
40
+
41
+ export { TraceIdComponent };
42
+ //# sourceMappingURL=aril-ui-business-trace-id.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aril-ui-business-trace-id.mjs","sources":["../../projects/aril/ui-business/trace-id/src/trace-id.component.ts","../../projects/aril/ui-business/trace-id/src/trace-id.component.html","../../projects/aril/ui-business/trace-id/aril-ui-business-trace-id.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, EventEmitter, Output, input } from '@angular/core';\r\n\r\ntype Size = 'sm' | 'md';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-trace-id',\r\n\ttemplateUrl: './trace-id.component.html',\r\n\tstyleUrls: ['./trace-id.component.scss'],\r\n\timports: [],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TraceIdComponent {\r\n\ttraceId = input.required<string>();\r\n\tlabel = input<string | undefined>();\r\n\ticonLeft = input<string>('pi-sitemap');\r\n\ticonRight = input<string>('pi-chevron-right');\r\n\tsize = input<Size>('sm');\r\n\tdisabled = input<boolean>(false);\r\n\r\n\t@Output() clickEvent = new EventEmitter<string>();\r\n\r\n\tprotected readonly displayText = computed(() => {\r\n\t\tconst custom = this.label();\r\n\t\tif (custom) return custom;\r\n\t\tconst id = this.traceId() ?? '';\r\n\t\treturn id.length > 10 ? id.slice(0, 8) + '…' : id;\r\n\t});\r\n\r\n\tprotected onClick(event: MouseEvent): void {\r\n\t\tevent.stopPropagation();\r\n\t\tif (this.disabled()) return;\r\n\t\tthis.clickEvent.emit(this.traceId());\r\n\t}\r\n}\r\n","<button\r\n\ttype=\"button\"\r\n\tclass=\"aril-trace-id\"\r\n\t[class.aril-trace-id--md]=\"size() === 'md'\"\r\n\t[class.aril-trace-id--disabled]=\"disabled()\"\r\n\t[attr.aria-label]=\"traceId()\"\r\n\t[title]=\"traceId()\"\r\n\t(click)=\"onClick($event)\">\r\n\t<i class=\"pi {{ iconLeft() }}\"></i>\r\n\t<span class=\"aril-trace-id__text\">{{ displayText() }}</span>\r\n\t<i class=\"pi {{ iconRight() }}\"></i>\r\n</button>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAYa,gBAAgB,CAAA;AAR7B,IAAA,WAAA,GAAA;AASC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;QACnC,IAAK,CAAA,KAAA,GAAG,KAAK,EAAsB,CAAC;AACpC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,YAAY,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,kBAAkB,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAO,IAAI,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAU,CAAC;AAE/B,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC9C,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAC5B,YAAA,IAAI,MAAM;AAAE,gBAAA,OAAO,MAAM,CAAC;YAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YAChC,OAAO,EAAE,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACnD,SAAC,CAAC,CAAC;AAOH,KAAA;AALU,IAAA,OAAO,CAAC,KAAiB,EAAA;QAClC,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;KACrC;8GArBW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,42BCZ7B,gbAYA,EAAA,MAAA,EAAA,CAAA,4vBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDAa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;AACG,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,eAAe,EAAA,OAAA,EAGhB,EAAE,EACM,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,gbAAA,EAAA,MAAA,EAAA,CAAA,4vBAAA,CAAA,EAAA,CAAA;8BAUrC,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;AEpBR;;AAEG;;;;"}