aril 1.2.18 → 1.2.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/boot/config/apps/src/interfaces.d.ts +7 -1
- package/boot/config/apps/src/route-permissions.d.ts +2 -2
- package/esm2022/boot/config/api/src/interfaces.mjs +3 -2
- package/esm2022/boot/config/apps/src/apps.service.mjs +5 -5
- package/esm2022/boot/config/apps/src/auth.guard.mjs +4 -4
- package/esm2022/boot/config/apps/src/interfaces.mjs +2 -1
- package/esm2022/boot/config/apps/src/route-permissions.mjs +24 -6
- package/esm2022/boot/config/apps/src/showdowDOMWrapper.mjs +4 -4
- package/esm2022/boot/config/plugins/src/plugins.service.mjs +7 -5
- package/esm2022/boot/host/src/app.component.mjs +4 -4
- package/esm2022/boot/host/src/bootstrap.mjs +5 -3
- package/esm2022/boot/mfe/src/app.component.mjs +4 -4
- package/esm2022/boot/mfe/src/bootstrap.mjs +5 -3
- package/esm2022/boot/pages/src/forbidden.component.mjs +4 -4
- package/esm2022/boot/pages/src/notFound.component.mjs +4 -4
- package/esm2022/http/src/httpBackend.mjs +4 -4
- package/esm2022/i18n/src/i18n.module.mjs +5 -5
- package/esm2022/i18n/src/loader.mjs +4 -4
- package/esm2022/keycloak/src/auth.interceptor.mjs +5 -2
- package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +4 -4
- package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +4 -4
- package/esm2022/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.mjs +4 -4
- package/esm2022/theme/layout/app/favorite-pages/favorite-pages.service.mjs +4 -4
- package/esm2022/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.mjs +4 -4
- package/esm2022/theme/layout/app/general-search/general-search.component.mjs +4 -4
- package/esm2022/theme/layout/app/history/history-sidebar.component.mjs +4 -4
- package/esm2022/theme/layout/app/history/history.service.mjs +4 -4
- package/esm2022/theme/layout/app/layout/app.layout.component.mjs +4 -4
- package/esm2022/theme/layout/app/layout/mfe.layout.component.mjs +4 -4
- package/esm2022/theme/layout/app/notifications/notifications-sidebar.component.mjs +4 -4
- package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +4 -4
- package/esm2022/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.mjs +4 -4
- package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +4 -4
- package/esm2022/theme/layout/app/profileSidebar/profile.service.mjs +4 -4
- package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +4 -4
- package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +4 -4
- package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +18 -6
- package/esm2022/theme/layout/service/app.layout.service.mjs +4 -4
- package/esm2022/theme/layout/service/app.menu.service.mjs +4 -4
- package/esm2022/theme/layout/service/breadcrumb.service.mjs +4 -4
- package/esm2022/theme/layout/service/notifications.service.mjs +4 -4
- package/esm2022/theme/layout/service/search.service.mjs +4 -4
- package/esm2022/theme/layout/service/selection-group.service.mjs +4 -4
- package/esm2022/ui/autoComplete/src/auto-complete.component.mjs +4 -4
- package/esm2022/ui/badge/src/badge.component.mjs +4 -4
- package/esm2022/ui/button/src/button.component.mjs +8 -5
- package/esm2022/ui/button/src/split-button.component.mjs +4 -4
- package/esm2022/ui/calendar/src/calendar.component.mjs +4 -4
- package/esm2022/ui/charts/src/amCharts/column/column-chart.component.mjs +4 -4
- package/esm2022/ui/charts/src/amCharts/line/line-chart.component.mjs +4 -4
- package/esm2022/ui/charts/src/amCharts/pie/pie-chart.component.mjs +4 -4
- package/esm2022/ui/charts/src/highCharts/area/area-chart.component.mjs +4 -4
- package/esm2022/ui/charts/src/highCharts/bar/bar-chart.component.mjs +4 -4
- package/esm2022/ui/charts/src/highCharts/column/column-chart.component.mjs +4 -4
- package/esm2022/ui/charts/src/highCharts/gauge/solid-gauge.component.mjs +4 -4
- package/esm2022/ui/charts/src/highCharts/heatmap/heatMap-chart.component.mjs +4 -4
- package/esm2022/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.mjs +4 -4
- package/esm2022/ui/charts/src/highCharts/line/line-chart-series.component.mjs +4 -4
- package/esm2022/ui/charts/src/highCharts/line/line-chart.component.mjs +4 -4
- package/esm2022/ui/charts/src/highCharts/pie/pie-chart.component.mjs +4 -4
- package/esm2022/ui/checkbox/src/check-box.component.mjs +4 -4
- package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +4 -4
- package/esm2022/ui/chip/src/chip.component.mjs +4 -4
- package/esm2022/ui/collapse-reorder-list/src/collapse-reorder-list.component.mjs +4 -4
- package/esm2022/ui/dxEditor/src/dx-editor.component.mjs +4 -4
- package/esm2022/ui/dxField/src/dx-field.component.mjs +4 -4
- package/esm2022/ui/editor/src/aril-editor.component.mjs +4 -4
- package/esm2022/ui/field/src/field.component.mjs +4 -4
- package/esm2022/ui/fileUpload/src/file-upload.component.mjs +4 -4
- package/esm2022/ui/form/index.mjs +5 -5
- package/esm2022/ui/form/src/form-submit-button.component.mjs +4 -4
- package/esm2022/ui/form/src/form.component.mjs +4 -4
- package/esm2022/ui/img-viewer/src/img-viewer.component.mjs +4 -4
- package/esm2022/ui/json-diff-comparison/src/json-diff.component.mjs +4 -4
- package/esm2022/ui/lib/src/form/form-error-message.component.mjs +4 -4
- package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +4 -4
- package/esm2022/ui/lib/src/grid/enum-color-picker.pipe.mjs +4 -4
- package/esm2022/ui/lib/src/grid/flex-grid.directive.mjs +4 -4
- package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +4 -4
- package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +4 -4
- package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +4 -4
- package/esm2022/ui/lib/src/input/input-error-message.pipe.mjs +4 -4
- package/esm2022/ui/lib/src/input/value-accessor.directive.mjs +4 -4
- package/esm2022/ui/loader/src/loader.component.mjs +4 -4
- package/esm2022/ui/mask/src/mask.component.mjs +4 -4
- package/esm2022/ui/multiSelect/src/multi-select.component.mjs +4 -4
- package/esm2022/ui/number/src/number.component.mjs +4 -4
- package/esm2022/ui/operation-types-dialog/src/operation-types-dialog.component.mjs +4 -4
- package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +4 -4
- package/esm2022/ui/panel/src/panel.component.mjs +4 -4
- package/esm2022/ui/password/src/password.component.mjs +4 -4
- package/esm2022/ui/pdf-viewer/src/pdf-viewer.component.mjs +4 -4
- package/esm2022/ui/progressbar/src/progressbar.component.mjs +4 -4
- package/esm2022/ui/radioButton/src/radio-button.component.mjs +4 -4
- package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +4 -4
- package/esm2022/ui/selectBox/src/select-box.component.mjs +4 -4
- package/esm2022/ui/switch/src/switch.component.mjs +4 -4
- package/esm2022/ui/table/index.mjs +5 -5
- package/esm2022/ui/table/src/export-overlay-panel.component.mjs +4 -4
- package/esm2022/ui/table/src/table-column.component.mjs +4 -4
- package/esm2022/ui/table/src/table.component.mjs +4 -4
- package/esm2022/ui/table-expand/index.mjs +5 -5
- package/esm2022/ui/table-expand/src/table-column.component.mjs +4 -4
- package/esm2022/ui/table-expand/src/table-expand-area.component.mjs +4 -4
- package/esm2022/ui/table-expand/src/table.component.mjs +4 -4
- package/esm2022/ui/tag/src/tag.component.mjs +4 -4
- package/esm2022/ui/tagBox/src/tag-box.component.mjs +4 -4
- package/esm2022/ui/text/src/text.component.mjs +4 -4
- package/esm2022/ui/textArea/src/text-area.component.mjs +4 -4
- package/esm2022/ui/toggle-button/src/toggle-button.component.mjs +4 -4
- package/esm2022/ui/tooltip/src/tooltip-component.mjs +4 -4
- package/esm2022/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.mjs +4 -4
- package/esm2022/ui/translate-input/src/aril-translate-input.component.mjs +4 -4
- package/esm2022/ui/tree/src/tree.component.mjs +4 -4
- package/esm2022/ui/treeSelect/src/treeSelect.component.mjs +4 -4
- package/esm2022/ui/treeTable/src/tree-table.component.mjs +4 -4
- package/esm2022/ui/value/src/value.component.mjs +4 -4
- package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +4 -4
- package/esm2022/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.mjs +4 -4
- package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +4 -4
- package/esm2022/ui-business/image-viewer/src/aril-image-viewer.component.mjs +4 -4
- package/esm2022/ui-business/multiple-ref-value/src/multiple-ref-value.component.mjs +4 -4
- package/esm2022/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.mjs +4 -4
- package/esm2022/ui-business/operation-types-dialog/src/operation-types-dialog.component.mjs +4 -4
- package/esm2022/ui-business/pdf-preview-modal/src/pdf-preview-modal.component.mjs +4 -4
- package/esm2022/ui-business/ref-value/src/ref-value.component.mjs +4 -4
- package/esm2022/ui-business/rolePicker/src/role-picker.component.mjs +4 -4
- package/esm2022/ui-business/trace-drawer/src/app-log.service.mjs +4 -4
- package/esm2022/ui-business/trace-drawer/src/trace-drawer.component.mjs +4 -4
- package/esm2022/ui-business/trace-drawer/src/trace-log.service.mjs +4 -4
- package/esm2022/ui-business/trace-id/src/trace-id.component.mjs +4 -4
- package/esm2022/ui-business/userPicker/src/user-picker.component.mjs +4 -4
- package/esm2022/util/activity/aril-util-activity.mjs +5 -0
- package/esm2022/util/activity/index.mjs +4 -0
- package/esm2022/util/activity/src/activity.constants.mjs +4 -0
- package/esm2022/util/activity/src/activity.service.mjs +198 -0
- package/esm2022/util/activity/src/activity.types.mjs +2 -0
- package/esm2022/util/block/src/block.mjs +7 -7
- package/esm2022/util/directives/src/detail-page-customization/detail-page-customization.directive.mjs +4 -4
- package/esm2022/util/directives/src/dialog-component/plugin-dialog.component.mjs +4 -4
- package/esm2022/util/directives/src/dialog-service/plugin-dialog.service.mjs +4 -4
- package/esm2022/util/lib/src/module-router.mjs +4 -4
- package/esm2022/util/pipes/src/distance-to-now.pipe.mjs +4 -4
- package/esm2022/util/pipes/src/get-column-by-field.pipe.mjs +4 -4
- package/esm2022/util/pipes/src/parse.pipe.mjs +4 -4
- package/esm2022/util/pipes/src/round-number.pipe.mjs +4 -4
- package/esm2022/util/pipes/src/safe.pipe.mjs +4 -4
- package/esm2022/util/pipes/src/translate-json/translate-json.pipe.mjs +4 -4
- package/esm2022/util/pub-sub/src/pub-sub.service.mjs +4 -4
- package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +4 -4
- package/esm2022/util/unwrap/src/unwrap-tag.directive.mjs +4 -4
- package/fesm2022/{aril-app.component-wxP3y8dg.mjs → aril-app.component-CwZZhJcO.mjs} +5 -4
- package/fesm2022/{aril-app.component-wxP3y8dg.mjs.map → aril-app.component-CwZZhJcO.mjs.map} +1 -1
- package/fesm2022/aril-boot-base.mjs +1 -1
- package/fesm2022/aril-boot-base.mjs.map +1 -1
- package/fesm2022/aril-boot-bridge.mjs.map +1 -1
- package/fesm2022/aril-boot-config-api.mjs +3 -2
- package/fesm2022/aril-boot-config-api.mjs.map +1 -1
- package/fesm2022/aril-boot-config-apps.mjs +35 -16
- package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
- package/fesm2022/aril-boot-config-plugins.mjs +7 -5
- package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
- package/fesm2022/aril-boot-config-translate.mjs.map +1 -1
- package/fesm2022/aril-boot-host.mjs +8 -6
- package/fesm2022/aril-boot-host.mjs.map +1 -1
- package/fesm2022/{aril-boot-mfe-app.component-7IjAmjz0.mjs → aril-boot-mfe-app.component-DwYgUUdL.mjs} +6 -5
- package/fesm2022/{aril-boot-mfe-app.component-7IjAmjz0.mjs.map → aril-boot-mfe-app.component-DwYgUUdL.mjs.map} +1 -1
- package/fesm2022/{aril-boot-mfe-aril-boot-mfe-KXDpUyv7.mjs → aril-boot-mfe-aril-boot-mfe-hJkkFa_a.mjs} +8 -6
- package/fesm2022/{aril-boot-mfe-aril-boot-mfe-KXDpUyv7.mjs.map → aril-boot-mfe-aril-boot-mfe-hJkkFa_a.mjs.map} +1 -1
- package/fesm2022/aril-boot-mfe.mjs +2 -1
- package/fesm2022/aril-boot-mfe.mjs.map +1 -1
- package/fesm2022/aril-boot-pages.mjs +6 -6
- package/fesm2022/aril-boot-pages.mjs.map +1 -1
- package/fesm2022/aril-http.mjs +3 -3
- package/fesm2022/aril-http.mjs.map +1 -1
- package/fesm2022/aril-i18n.mjs +7 -7
- package/fesm2022/aril-i18n.mjs.map +1 -1
- package/fesm2022/aril-keycloak.mjs +4 -1
- package/fesm2022/aril-keycloak.mjs.map +1 -1
- package/fesm2022/aril-provider.mjs +1 -1
- package/fesm2022/aril-provider.mjs.map +1 -1
- package/fesm2022/aril-theme-layout.mjs +85 -74
- package/fesm2022/aril-theme-layout.mjs.map +1 -1
- package/fesm2022/aril-ui-autoComplete.mjs +6 -6
- package/fesm2022/aril-ui-autoComplete.mjs.map +1 -1
- package/fesm2022/aril-ui-badge.mjs +4 -4
- package/fesm2022/aril-ui-badge.mjs.map +1 -1
- package/fesm2022/aril-ui-business-assetPicker.mjs +5 -5
- package/fesm2022/aril-ui-business-assetPicker.mjs.map +1 -1
- package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs +5 -5
- package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs.map +1 -1
- package/fesm2022/aril-ui-business-enumPicker.mjs +5 -5
- package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -1
- package/fesm2022/aril-ui-business-image-viewer.mjs +3 -3
- package/fesm2022/aril-ui-business-image-viewer.mjs.map +1 -1
- package/fesm2022/aril-ui-business-multiple-ref-value.mjs +4 -4
- package/fesm2022/aril-ui-business-multiple-ref-value.mjs.map +1 -1
- package/fesm2022/aril-ui-business-notification-templates-dialog.mjs +3 -3
- package/fesm2022/aril-ui-business-notification-templates-dialog.mjs.map +1 -1
- package/fesm2022/aril-ui-business-operation-types-dialog.mjs +3 -3
- package/fesm2022/aril-ui-business-operation-types-dialog.mjs.map +1 -1
- package/fesm2022/aril-ui-business-pdf-preview-modal.mjs +3 -3
- package/fesm2022/aril-ui-business-pdf-preview-modal.mjs.map +1 -1
- package/fesm2022/aril-ui-business-ref-value.mjs +4 -4
- package/fesm2022/aril-ui-business-ref-value.mjs.map +1 -1
- package/fesm2022/aril-ui-business-rolePicker.mjs +4 -4
- package/fesm2022/aril-ui-business-rolePicker.mjs.map +1 -1
- package/fesm2022/aril-ui-business-trace-drawer.mjs +10 -10
- package/fesm2022/aril-ui-business-trace-drawer.mjs.map +1 -1
- package/fesm2022/aril-ui-business-trace-id.mjs +4 -4
- package/fesm2022/aril-ui-business-trace-id.mjs.map +1 -1
- package/fesm2022/aril-ui-business-userPicker.mjs +3 -3
- package/fesm2022/aril-ui-business-userPicker.mjs.map +1 -1
- package/fesm2022/aril-ui-button.mjs +10 -7
- package/fesm2022/aril-ui-button.mjs.map +1 -1
- package/fesm2022/aril-ui-calendar.mjs +3 -3
- package/fesm2022/aril-ui-calendar.mjs.map +1 -1
- package/fesm2022/aril-ui-charts.mjs +37 -37
- package/fesm2022/aril-ui-charts.mjs.map +1 -1
- package/fesm2022/aril-ui-checkbox.mjs +6 -6
- package/fesm2022/aril-ui-checkbox.mjs.map +1 -1
- package/fesm2022/aril-ui-chip.mjs +4 -4
- package/fesm2022/aril-ui-chip.mjs.map +1 -1
- package/fesm2022/aril-ui-collapse-reorder-list.mjs +4 -4
- package/fesm2022/aril-ui-collapse-reorder-list.mjs.map +1 -1
- package/fesm2022/aril-ui-dxEditor.mjs +4 -4
- package/fesm2022/aril-ui-dxEditor.mjs.map +1 -1
- package/fesm2022/aril-ui-dxField.mjs +4 -4
- package/fesm2022/aril-ui-dxField.mjs.map +1 -1
- package/fesm2022/aril-ui-editor.mjs +4 -4
- package/fesm2022/aril-ui-editor.mjs.map +1 -1
- package/fesm2022/aril-ui-field.mjs +4 -4
- package/fesm2022/aril-ui-field.mjs.map +1 -1
- package/fesm2022/aril-ui-fileUpload.mjs +4 -4
- package/fesm2022/aril-ui-fileUpload.mjs.map +1 -1
- package/fesm2022/aril-ui-form.mjs +11 -11
- package/fesm2022/aril-ui-form.mjs.map +1 -1
- package/fesm2022/aril-ui-img-viewer.mjs +3 -3
- package/fesm2022/aril-ui-img-viewer.mjs.map +1 -1
- package/fesm2022/aril-ui-json-diff-comparison.mjs +4 -4
- package/fesm2022/aril-ui-json-diff-comparison.mjs.map +1 -1
- package/fesm2022/aril-ui-lib.mjs +28 -28
- package/fesm2022/aril-ui-lib.mjs.map +1 -1
- package/fesm2022/aril-ui-loader.mjs +3 -3
- package/fesm2022/aril-ui-loader.mjs.map +1 -1
- package/fesm2022/aril-ui-mask.mjs +3 -3
- package/fesm2022/aril-ui-mask.mjs.map +1 -1
- package/fesm2022/aril-ui-multiSelect.mjs +3 -3
- package/fesm2022/aril-ui-multiSelect.mjs.map +1 -1
- package/fesm2022/aril-ui-number.mjs +3 -3
- package/fesm2022/aril-ui-number.mjs.map +1 -1
- package/fesm2022/aril-ui-operation-types-dialog.mjs +3 -3
- package/fesm2022/aril-ui-operation-types-dialog.mjs.map +1 -1
- package/fesm2022/aril-ui-overlayPanel.mjs +4 -4
- package/fesm2022/aril-ui-overlayPanel.mjs.map +1 -1
- package/fesm2022/aril-ui-panel.mjs +4 -4
- package/fesm2022/aril-ui-panel.mjs.map +1 -1
- package/fesm2022/aril-ui-password.mjs +3 -3
- package/fesm2022/aril-ui-password.mjs.map +1 -1
- package/fesm2022/aril-ui-pdf-viewer.mjs +3 -3
- package/fesm2022/aril-ui-pdf-viewer.mjs.map +1 -1
- package/fesm2022/aril-ui-progressbar.mjs +3 -3
- package/fesm2022/aril-ui-progressbar.mjs.map +1 -1
- package/fesm2022/aril-ui-radioButton.mjs +3 -3
- package/fesm2022/aril-ui-radioButton.mjs.map +1 -1
- package/fesm2022/aril-ui-relativeDateSelector.mjs +4 -4
- package/fesm2022/aril-ui-relativeDateSelector.mjs.map +1 -1
- package/fesm2022/aril-ui-selectBox.mjs +5 -5
- package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
- package/fesm2022/aril-ui-switch.mjs +3 -3
- package/fesm2022/aril-ui-switch.mjs.map +1 -1
- package/fesm2022/aril-ui-table-expand.mjs +14 -14
- package/fesm2022/aril-ui-table-expand.mjs.map +1 -1
- package/fesm2022/aril-ui-table.mjs +15 -15
- package/fesm2022/aril-ui-table.mjs.map +1 -1
- package/fesm2022/aril-ui-tag.mjs +3 -3
- package/fesm2022/aril-ui-tag.mjs.map +1 -1
- package/fesm2022/aril-ui-tagBox.mjs +5 -5
- package/fesm2022/aril-ui-tagBox.mjs.map +1 -1
- package/fesm2022/aril-ui-text.mjs +3 -3
- package/fesm2022/aril-ui-text.mjs.map +1 -1
- package/fesm2022/aril-ui-textArea.mjs +3 -3
- package/fesm2022/aril-ui-textArea.mjs.map +1 -1
- package/fesm2022/aril-ui-toggle-button.mjs +4 -4
- package/fesm2022/aril-ui-toggle-button.mjs.map +1 -1
- package/fesm2022/aril-ui-tooltip.mjs +3 -3
- package/fesm2022/aril-ui-tooltip.mjs.map +1 -1
- package/fesm2022/aril-ui-translate-input.mjs +6 -6
- package/fesm2022/aril-ui-translate-input.mjs.map +1 -1
- package/fesm2022/aril-ui-tree.mjs +4 -4
- package/fesm2022/aril-ui-tree.mjs.map +1 -1
- package/fesm2022/aril-ui-treeSelect.mjs +4 -4
- package/fesm2022/aril-ui-treeSelect.mjs.map +1 -1
- package/fesm2022/aril-ui-treeTable.mjs +4 -4
- package/fesm2022/aril-ui-treeTable.mjs.map +1 -1
- package/fesm2022/aril-ui-value.mjs +5 -5
- package/fesm2022/aril-ui-value.mjs.map +1 -1
- package/fesm2022/aril-util-activity.mjs +208 -0
- package/fesm2022/aril-util-activity.mjs.map +1 -0
- package/fesm2022/aril-util-block.mjs +6 -6
- package/fesm2022/aril-util-block.mjs.map +1 -1
- package/fesm2022/aril-util-directives.mjs +10 -10
- package/fesm2022/aril-util-directives.mjs.map +1 -1
- package/fesm2022/aril-util-lib.mjs +3 -3
- package/fesm2022/aril-util-lib.mjs.map +1 -1
- package/fesm2022/aril-util-pipes.mjs +18 -18
- package/fesm2022/aril-util-pipes.mjs.map +1 -1
- package/fesm2022/aril-util-primitive-extensions.mjs.map +1 -1
- package/fesm2022/aril-util-pub-sub.mjs +3 -3
- package/fesm2022/aril-util-pub-sub.mjs.map +1 -1
- package/fesm2022/aril-util-sync-active-tab-route.mjs +4 -4
- package/fesm2022/aril-util-sync-active-tab-route.mjs.map +1 -1
- package/fesm2022/aril-util-unwrap.mjs +3 -3
- package/fesm2022/aril-util-unwrap.mjs.map +1 -1
- package/fesm2022/aril.mjs +13 -10
- package/fesm2022/aril.mjs.map +1 -1
- package/package.json +233 -227
- package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.d.ts +16 -0
- package/theme/layout/app/history/history-sidebar.component.d.ts +16 -0
- package/theme/layout/app/notifications/notifications-sidebar.component.d.ts +16 -0
- package/theme/layout/app/site-map/site-map-sidebar.component.d.ts +16 -0
- package/theme/layout/app/topbar/app.topbar.component.d.ts +5 -0
- package/theme/layout/app/topbar/app.topbar.component.html +3 -0
- package/theme/layout/app/topbar/app.topbar.component.scss +31 -0
- package/theme/layout/app/topbar/app.topbar.component.ts +14 -1
- package/ui/autoComplete/src/auto-complete.component.d.ts +8 -8
- package/ui/badge/src/badge.component.d.ts +9 -9
- package/ui/button/src/button.component.d.ts +14 -12
- package/ui/button/src/split-button.component.d.ts +1 -1
- package/ui/calendar/src/calendar.component.d.ts +22 -22
- package/ui/charts/src/amCharts/column/column-chart.component.d.ts +4 -4
- package/ui/charts/src/amCharts/line/line-chart.component.d.ts +5 -5
- package/ui/charts/src/amCharts/pie/pie-chart.component.d.ts +4 -4
- package/ui/charts/src/highCharts/area/area-chart.component.d.ts +3 -3
- package/ui/charts/src/highCharts/bar/bar-chart.component.d.ts +7 -7
- package/ui/charts/src/highCharts/column/column-chart.component.d.ts +9 -9
- package/ui/charts/src/highCharts/gauge/solid-gauge.component.d.ts +3 -3
- package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.d.ts +4 -4
- package/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.d.ts +5 -5
- package/ui/charts/src/highCharts/line/line-chart-series.component.d.ts +4 -4
- package/ui/charts/src/highCharts/line/line-chart.component.d.ts +4 -4
- package/ui/charts/src/highCharts/pie/pie-chart.component.d.ts +7 -7
- package/ui/checkbox/src/check-box.component.d.ts +3 -3
- package/ui/checkbox/src/tri-state-checkbox.component.d.ts +2 -2
- package/ui/chip/src/chip.component.d.ts +7 -7
- package/ui/collapse-reorder-list/src/collapse-reorder-list.component.d.ts +4 -4
- package/ui/dxEditor/src/dx-editor.component.d.ts +5 -5
- package/ui/dxField/src/dx-field.component.d.ts +5 -5
- package/ui/editor/src/aril-editor.component.d.ts +3 -3
- package/ui/field/src/field.component.d.ts +9 -9
- package/ui/fileUpload/src/file-upload.component.d.ts +14 -14
- package/ui/form/src/form-submit-button.component.d.ts +1 -1
- package/ui/form/src/form.component.d.ts +1 -1
- package/ui/img-viewer/src/img-viewer.component.d.ts +1 -1
- package/ui/lib/src/form/form-error-message.directive.d.ts +1 -1
- package/ui/mask/src/mask.component.d.ts +6 -6
- package/ui/multiSelect/src/multi-select.component.d.ts +13 -13
- package/ui/number/src/number.component.d.ts +15 -15
- package/ui/overlayPanel/src/overlay-panel.component.d.ts +1 -1
- package/ui/panel/src/panel.component.d.ts +6 -6
- package/ui/password/src/password.component.d.ts +4 -4
- package/ui/pdf-viewer/src/pdf-viewer.component.d.ts +12 -12
- package/ui/progressbar/src/progressbar.component.d.ts +3 -3
- package/ui/radioButton/src/radio-button.component.d.ts +3 -3
- package/ui/selectBox/src/select-box.component.d.ts +10 -10
- package/ui/switch/src/switch.component.d.ts +1 -1
- package/ui/table/src/export-overlay-panel.component.d.ts +2 -2
- package/ui/table/src/table-column.component.d.ts +11 -11
- package/ui/table/src/table.component.d.ts +35 -35
- package/ui/table-expand/src/table-column.component.d.ts +6 -6
- package/ui/table-expand/src/table.component.d.ts +20 -20
- package/ui/tag/src/tag.component.d.ts +4 -6
- package/ui/tagBox/src/tag-box.component.d.ts +7 -7
- package/ui/text/src/text.component.d.ts +5 -5
- package/ui/textArea/src/text-area.component.d.ts +5 -5
- package/ui/toggle-button/src/toggle-button.component.d.ts +1 -1
- package/ui/tooltip/src/tooltip-component.d.ts +8 -8
- package/ui/translate-input/src/aril-translate-input.component.d.ts +2 -2
- package/ui/tree/src/tree.component.d.ts +8 -8
- package/ui/treeSelect/src/treeSelect.component.d.ts +12 -12
- package/ui/treeTable/src/tree-table.component.d.ts +5 -5
- package/ui/value/src/value.component.d.ts +15 -15
- package/ui-business/assetPicker/src/asset-picker.component.d.ts +11 -11
- package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.d.ts +3 -6
- package/ui-business/enumPicker/src/enum-picker.component.d.ts +23 -23
- package/ui-business/image-viewer/src/aril-image-viewer.component.d.ts +8 -8
- package/ui-business/multiple-ref-value/src/multiple-ref-value.component.d.ts +2 -5
- package/ui-business/ref-value/src/ref-value.component.d.ts +5 -5
- package/ui-business/rolePicker/src/role-picker.component.d.ts +6 -6
- package/ui-business/trace-drawer/src/trace-drawer.component.d.ts +8 -8
- package/ui-business/trace-id/src/trace-id.component.d.ts +6 -6
- package/ui-business/userPicker/src/user-picker.component.d.ts +3 -3
- package/util/activity/index.d.ts +3 -0
- package/util/activity/src/activity.constants.d.ts +3 -0
- package/util/activity/src/activity.service.d.ts +29 -0
- package/util/activity/src/activity.types.d.ts +13 -0
- package/util/block/src/block.d.ts +4 -4
- package/util/lib/src/types.d.ts +16 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aril-ui-business-rolePicker.mjs","sources":["../../projects/aril/ui-business/rolePicker/src/role-picker.component.ts","../../projects/aril/ui-business/rolePicker/src/role-picker.component.html","../../projects/aril/ui-business/rolePicker/aril-ui-business-rolePicker.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, OnInit, Output, effect, input, signal } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { BaseInputComponent, InputErrorMessagePipe, ValueAccessorDirective } from 'aril/ui/lib';\r\n\r\nimport { RoleResponseDTO, SelectBoxItem, SuggestionsDTO } from './interface';\r\nimport { Apps } from 'aril/boot/config/apps';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-role-picker[formControl], aril-role-picker[formControlName]',\r\n\ttemplateUrl: './role-picker.component.html',\r\n\timports: [ReactiveFormsModule, AutoCompleteModule],\r\n\tproviders: [InputErrorMessagePipe],\r\n\thostDirectives: [ValueAccessorDirective]\r\n})\r\nexport class RolePickerComponent extends BaseInputComponent {\r\n\tplaceholder = input<string>('Arama...');\r\n\tforceSelection = input<boolean>(false);\r\n\tmultiple = input<boolean>(false);\r\n\r\n\tfilteredSelectionItems!: string[];\r\n\r\n\tbaseUrl = input<string | null>(API_CONFIGS.getExternalAppEndpoint(Apps.MW));\r\n\troleEndPointUrl = input<string>('/user-management/roles/by-client-reference-key?clientReferenceKey=');\r\n\tclient = input<string>('thor');\r\n\troleItems: any = [];\r\n\tselectionItems: string[] = [];\r\n\r\n\t@Output() SelectionChanged = new EventEmitter<SelectBoxItem>();\r\n\r\n\tconstructor(private http: HttpClient, private translocoService: TranslocoService) {\r\n\t\tsuper();\r\n\t\teffect(() => {\r\n\t\t\tif (this.client())\r\n\t\t\t\tthis.getRoleItems().then((roleItems) => {\r\n\t\t\t\t\t//const x: string[] = this.ngControl.value;\r\n//\r\n\t\t\t\t\t//const y: { key: string; text: string }[] = roleItems;\r\n//\r\n\t\t\t\t\t//const matched = y.filter((item) => x.includes(item.text));\r\n//\r\n\t\t\t\t\t//this.ngControl.control.setValue(matched);\r\n\t\t\t\t\t\r\n\t\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tasync getRoleItems() {\r\n\t\tthis.roleItems = await firstValueFrom(\r\n\t\t\tthis.http.get<RoleResponseDTO[]>(this.baseUrl() + this.roleEndPointUrl() + this.client())\r\n\t\t).then((roleItems) => {\r\n\t\t\troleItems.forEach((item: RoleResponseDTO) => {\r\n\t\t\t\tthis.selectionItems.push(\r\n\t\t\t\t item.name\r\n\t\t\t);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\treturn this.selectionItems;\r\n\t}\r\n\r\n\tcompleteMethod(event: any) {\r\n\t\tconst query = event.query;\r\n\r\n\t\tthis.filteredSelectionItems = this.filterSelection(query, this.selectionItems);\r\n\t}\r\n\r\n\tfilterSelection(query: string, selectionItems: string[]): string[] {\r\n\t\tconst filtered: string[] =\r\n\t\t\tthis.multiple() ? (selectionItems.filter((item) => item === query) ?? []) : [];\r\n\r\n\t\tconst lang = this.translocoService.getActiveLang();\r\n\t\tconst lowerQuery = query.toLocaleLowerCase(lang);\r\n\t\treturn [\r\n\t\t\t...new Set([\r\n\t\t\t\t...filtered,\r\n\t\t\t\t...selectionItems.filter((selectionItem) => {\r\n\t\t\t\t\treturn selectionItem.toLocaleLowerCase(lang).indexOf(lowerQuery) == 0;\r\n\t\t\t\t})\r\n\t\t\t])\r\n\t\t];\r\n\t}\r\n}\r\n","<p-autoComplete\r\n\t[optionLabel]=\"undefined\"\r\n\t[optionValue]=\"undefined\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[multiple]=\"multiple()\"\r\n\t[forceSelection]=\"forceSelection()\"\r\n\t[delay]=\"400\"\r\n\t[suggestions]=\"filteredSelectionItems\"\r\n\t(completeMethod)=\"completeMethod($event)\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t[autoHighlight]=\"true\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\r\n\tappendTo=\"body\">\r\n<!--\t<ng-template let-item pTemplate=\"item\">\r\n\t\t<div>\r\n\t\t\t<span>{{ item?.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n\t-->\r\n</p-autoComplete>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAwBM,MAAO,mBAAoB,SAAQ,kBAAkB,CAAA;IAe1D,
|
|
1
|
+
{"version":3,"file":"aril-ui-business-rolePicker.mjs","sources":["../../projects/aril/ui-business/rolePicker/src/role-picker.component.ts","../../projects/aril/ui-business/rolePicker/src/role-picker.component.html","../../projects/aril/ui-business/rolePicker/aril-ui-business-rolePicker.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, OnInit, Output, effect, input, signal } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { BaseInputComponent, InputErrorMessagePipe, ValueAccessorDirective } from 'aril/ui/lib';\r\n\r\nimport { RoleResponseDTO, SelectBoxItem, SuggestionsDTO } from './interface';\r\nimport { Apps } from 'aril/boot/config/apps';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-role-picker[formControl], aril-role-picker[formControlName]',\r\n\ttemplateUrl: './role-picker.component.html',\r\n\timports: [ReactiveFormsModule, AutoCompleteModule],\r\n\tproviders: [InputErrorMessagePipe],\r\n\thostDirectives: [ValueAccessorDirective]\r\n})\r\nexport class RolePickerComponent extends BaseInputComponent {\r\n\tplaceholder = input<string>('Arama...');\r\n\tforceSelection = input<boolean>(false);\r\n\tmultiple = input<boolean>(false);\r\n\r\n\tfilteredSelectionItems!: string[];\r\n\r\n\tbaseUrl = input<string | null>(API_CONFIGS.getExternalAppEndpoint(Apps.MW));\r\n\troleEndPointUrl = input<string>('/user-management/roles/by-client-reference-key?clientReferenceKey=');\r\n\tclient = input<string>('thor');\r\n\troleItems: any = [];\r\n\tselectionItems: string[] = [];\r\n\r\n\t@Output() SelectionChanged = new EventEmitter<SelectBoxItem>();\r\n\r\n\tconstructor(private http: HttpClient, private translocoService: TranslocoService) {\r\n\t\tsuper();\r\n\t\teffect(() => {\r\n\t\t\tif (this.client())\r\n\t\t\t\tthis.getRoleItems().then((roleItems) => {\r\n\t\t\t\t\t//const x: string[] = this.ngControl.value;\r\n//\r\n\t\t\t\t\t//const y: { key: string; text: string }[] = roleItems;\r\n//\r\n\t\t\t\t\t//const matched = y.filter((item) => x.includes(item.text));\r\n//\r\n\t\t\t\t\t//this.ngControl.control.setValue(matched);\r\n\t\t\t\t\t\r\n\t\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tasync getRoleItems() {\r\n\t\tthis.roleItems = await firstValueFrom(\r\n\t\t\tthis.http.get<RoleResponseDTO[]>(this.baseUrl() + this.roleEndPointUrl() + this.client())\r\n\t\t).then((roleItems) => {\r\n\t\t\troleItems.forEach((item: RoleResponseDTO) => {\r\n\t\t\t\tthis.selectionItems.push(\r\n\t\t\t\t item.name\r\n\t\t\t);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\treturn this.selectionItems;\r\n\t}\r\n\r\n\tcompleteMethod(event: any) {\r\n\t\tconst query = event.query;\r\n\r\n\t\tthis.filteredSelectionItems = this.filterSelection(query, this.selectionItems);\r\n\t}\r\n\r\n\tfilterSelection(query: string, selectionItems: string[]): string[] {\r\n\t\tconst filtered: string[] =\r\n\t\t\tthis.multiple() ? (selectionItems.filter((item) => item === query) ?? []) : [];\r\n\r\n\t\tconst lang = this.translocoService.getActiveLang();\r\n\t\tconst lowerQuery = query.toLocaleLowerCase(lang);\r\n\t\treturn [\r\n\t\t\t...new Set([\r\n\t\t\t\t...filtered,\r\n\t\t\t\t...selectionItems.filter((selectionItem) => {\r\n\t\t\t\t\treturn selectionItem.toLocaleLowerCase(lang).indexOf(lowerQuery) == 0;\r\n\t\t\t\t})\r\n\t\t\t])\r\n\t\t];\r\n\t}\r\n}\r\n","<p-autoComplete\r\n\t[optionLabel]=\"undefined\"\r\n\t[optionValue]=\"undefined\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[multiple]=\"multiple()\"\r\n\t[forceSelection]=\"forceSelection()\"\r\n\t[delay]=\"400\"\r\n\t[suggestions]=\"filteredSelectionItems\"\r\n\t(completeMethod)=\"completeMethod($event)\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t[autoHighlight]=\"true\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\r\n\tappendTo=\"body\">\r\n<!--\t<ng-template let-item pTemplate=\"item\">\r\n\t\t<div>\r\n\t\t\t<span>{{ item?.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n\t-->\r\n</p-autoComplete>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JsonPipe } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Injectable, inject, input, EventEmitter, signal, computed, effect,
|
|
3
|
+
import { Injectable, inject, input, EventEmitter, signal, computed, effect, Output, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
4
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { Observable, Subject, switchMap, map, catchError, EMPTY } from 'rxjs';
|
|
6
6
|
import * as i4 from 'primeng/progressspinner';
|
|
@@ -32,8 +32,8 @@ class AppLogService extends RestClient {
|
|
|
32
32
|
getRefValues(req) {
|
|
33
33
|
return new Observable();
|
|
34
34
|
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
36
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppLogService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppLogService, providedIn: 'root' }); }
|
|
37
37
|
}
|
|
38
38
|
__decorate([
|
|
39
39
|
ServiceCall(HTTPMethods.POST, ProxyTypes.ClientSide, 'application-logs/filter', {}, Apps.MW)
|
|
@@ -41,7 +41,7 @@ __decorate([
|
|
|
41
41
|
__decorate([
|
|
42
42
|
ServiceCall(HTTPMethods.GETBYPARAMS, ProxyTypes.ClientSide, 'application-logs/ref-values', {}, Apps.MW)
|
|
43
43
|
], AppLogService.prototype, "getRefValues", null);
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppLogService, decorators: [{
|
|
45
45
|
type: Injectable,
|
|
46
46
|
args: [{ providedIn: 'root' }]
|
|
47
47
|
}], propDecorators: { searchByTraceId: [], getRefValues: [] } });
|
|
@@ -54,13 +54,13 @@ class TraceLogService extends RestClient {
|
|
|
54
54
|
searchByTraceId(req) {
|
|
55
55
|
return new Observable();
|
|
56
56
|
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
58
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraceLogService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
58
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraceLogService, providedIn: 'root' }); }
|
|
59
59
|
}
|
|
60
60
|
__decorate([
|
|
61
61
|
ServiceCall(HTTPMethods.POST, ProxyTypes.ClientSide, 'request-logs/filter', {}, Apps.MNG)
|
|
62
62
|
], TraceLogService.prototype, "searchByTraceId", null);
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraceLogService, decorators: [{
|
|
64
64
|
type: Injectable,
|
|
65
65
|
args: [{ providedIn: 'root' }]
|
|
66
66
|
}], propDecorators: { searchByTraceId: [] } });
|
|
@@ -322,10 +322,10 @@ class TraceDrawerComponent {
|
|
|
322
322
|
return null;
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
326
|
-
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\">{{ traceId() }}</code>\r\n\t\t\t\t<i\r\n\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\tclass=\"pi pi-share-alt aril-trace-drawer__share\"\r\n\t\t\t\t\t[pTooltip]=\"t('traceDrawer.shareLink')\"\r\n\t\t\t\t\ttooltipPosition=\"bottom\"\r\n\t\t\t\t\t(click)=\"shareLink()\"></i>\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 [label]=\"t('traceDrawer.retry')\" icon=\"REFRESH\" color=\"primary\" (clickEvent)=\"retry()\" />\r\n\t\t\t\t</div>\r\n\t\t\t} @else {\r\n\t\t\t\t@if (refValueEntries().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-tags\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.refValuesHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"refValueEntries().length.toString()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t<div class=\"ref-values\">\r\n\t\t\t\t\t\t\t@for (entry of refValueEntries(); track entry[0]) {\r\n\t\t\t\t\t\t\t\t<div class=\"ref-values__row\">\r\n\t\t\t\t\t\t\t\t\t<span class=\"ref-values__key\">{{ entry[0] }}</span>\r\n\t\t\t\t\t\t\t\t\t<div class=\"ref-values__chips\">\r\n\t\t\t\t\t\t\t\t\t\t@for (val of entry[1]; track val) {\r\n\t\t\t\t\t\t\t\t\t\t\t<code class=\"ref-values__chip\">{{ val }}</code>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\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</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (apisixHits().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-globe\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.apisixHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"apisixHits().length + ' / ' + totalItem()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t@for (hit of apisixHits(); track hit.id) {\r\n\t\t\t\t\t\t\t<details class=\"trace-row trace-row--{{ statusSeverity(hit.status) }}\">\r\n\t\t\t\t\t\t\t\t<summary class=\"trace-row__summary\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right trace-row__chevron\"></i>\r\n\t\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\t<span class=\"trace-row__tag\">{{ hit.requestMethod }}</span>\r\n\t\t\t\t\t\t\t\t\t<span class=\"trace-row__main\">{{ hit.requestUri }}</span>\r\n\t\t\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t\t\t[value]=\"formatDuration(hit.responseTime)\"\r\n\t\t\t\t\t\t\t\t\t\t[severity]=\"durationSeverity(hit.responseTime)\" />\r\n\t\t\t\t\t\t\t\t\t@if (hit.timestamp) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__time\">{{ formatTimestamp(hit.timestamp) }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-code trace-row__action\"\r\n\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('traceDrawer.copyCurl')\"\r\n\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"left\"\r\n\t\t\t\t\t\t\t\t\t\t(click)=\"$event.preventDefault(); $event.stopPropagation(); copyAsCurl(hit)\"></i>\r\n\t\t\t\t\t\t\t\t</summary>\r\n\t\t\t\t\t\t\t\t<div class=\"trace-row__body\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.routeName) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.route') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.routeName }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.sourceApp || hit.sourceModule) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\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\t\t<span>{{ hit.sourceApp }}{{ hit.sourceModule ? ' / ' + hit.sourceModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.targetApp || hit.targetModule) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\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\t\t<span>{{ hit.targetApp }}{{ hit.targetModule ? ' / ' + hit.targetModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.upstreamHost) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.upstream') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.upstreamHost }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.username) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.user') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.username }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.requestSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.requestSize') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ formatBytes(hit.requestSize) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.responseSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.responseSize') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ formatBytes(hit.responseSize) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t@if (hit.requestBody) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\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\t\t@if (tryParseJson(hit.requestBody); as parsed) {\r\n\t\t\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\t\t} @else {\r\n\t\t\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\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (hit.responseBody) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\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\t\t@if (tryParseJson(hit.responseBody); as parsed) {\r\n\t\t\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\t\t} @else {\r\n\t\t\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\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (hasMore()) {\r\n\t\t\t\t\t\t\t<div class=\"aril-trace-drawer__load-more\">\r\n\t\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\t\t[label]=\"t('traceDrawer.loadMore')\"\r\n\t\t\t\t\t\t\t\t\ticon=\"CHEVRON_DOWN\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[loading]=\"loadingMore()\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"loadingMore()\"\r\n\t\t\t\t\t\t\t\t\t(clickEvent)=\"loadMore()\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (appLogs().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-list\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.appLogsHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"appLogs().length + ' / ' + appLogsTotal()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t@for (log of appLogs(); track log.id) {\r\n\t\t\t\t\t\t\t<details class=\"trace-row trace-row--{{ levelSeverity(log.level) }}\">\r\n\t\t\t\t\t\t\t\t<summary class=\"trace-row__summary\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right trace-row__chevron\"></i>\r\n\t\t\t\t\t\t\t\t\t@if (log.level) {\r\n\t\t\t\t\t\t\t\t\t\t<aril-badge [value]=\"log.level\" [severity]=\"levelSeverity(log.level)\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.module) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__tag\">{{ log.module }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<span class=\"trace-row__main\">{{ log.message }}</span>\r\n\t\t\t\t\t\t\t\t\t@if (log.timestamp) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__time\">{{ formatTimestamp(log.timestamp) }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</summary>\r\n\t\t\t\t\t\t\t\t<div class=\"trace-row__body\">\r\n\t\t\t\t\t\t\t\t\t@if (log.message) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__message\">{{ log.message }}</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.username || log.app) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t@if (log.app) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\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\t\t\t><span>{{ log.app }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t@if (log.username) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.user') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ log.username }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.errorDetail) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\" open>\r\n\t\t\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.appLogErrorDetail') }}</summary>\r\n\t\t\t\t\t\t\t\t\t\t\t<pre>{{ log.errorDetail }}</pre>\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.referenceFields?.length) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.appLogRefFields') }}</summary>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t@for (rf of log.referenceFields; track rf.field) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ rf.field }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ rf.value }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (appLogsHasMore()) {\r\n\t\t\t\t\t\t\t<div class=\"aril-trace-drawer__load-more\">\r\n\t\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\t\t[label]=\"t('traceDrawer.loadMore')\"\r\n\t\t\t\t\t\t\t\t\ticon=\"CHEVRON_DOWN\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[loading]=\"appLogsLoadingMore()\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"appLogsLoadingMore()\"\r\n\t\t\t\t\t\t\t\t\t(clickEvent)=\"loadMoreAppLogs()\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (!apisixHits().length && !appLogs().length && !refValueEntries().length) {\r\n\t\t\t\t\t<div class=\"aril-trace-drawer__state\">\r\n\t\t\t\t\t\t<i class=\"pi pi-inbox\"></i>\r\n\t\t\t\t\t\t<p>{{ t('traceDrawer.empty') }}</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\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{display:flex;flex-direction:column;height:100%}:host ::ng-deep .aril-trace-drawer .p-sidebar-header{padding:1rem 1.25rem;border-bottom:1px solid var(--surface-border, #e5e7eb);flex:0 0 auto}:host ::ng-deep .aril-trace-drawer .p-sidebar-content{padding:0;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}.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__share{cursor:pointer;font-size:1rem;padding:.4rem;border-radius:4px;color:var(--primary-color, #1890ff);transition:background .15s ease}.aril-trace-drawer__share:hover{background:var(--surface-100, #f3f4f6)}.aril-trace-drawer__body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:1.5rem;min-height:min-content}.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 .5rem;font-size:1rem;font-weight:600}.aril-trace-drawer__section-title .pi{color:var(--primary-color, #1890ff)}.trace-row{display:block;border:1px solid var(--surface-border, #e5e7eb);border-left:3px solid var(--surface-border, #e5e7eb);background:var(--surface-card, #ffffff);border-radius:4px;overflow:hidden;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.trace-row+.trace-row{margin-top:.4rem}.trace-row:hover{border-top-color:var(--surface-300, #d1d5db);border-right-color:var(--surface-300, #d1d5db);border-bottom-color:var(--surface-300, #d1d5db);box-shadow:0 1px 3px #0000000a}.trace-row[open]{background:var(--surface-50, #fafafa);border-top-color:var(--surface-300, #d1d5db);border-right-color:var(--surface-300, #d1d5db);border-bottom-color:var(--surface-300, #d1d5db);box-shadow:0 1px 4px #0000000d}.trace-row--success{border-left-color:var(--green-500, #22c55e)}.trace-row--info{border-left-color:var(--blue-500, #3b82f6)}.trace-row--warning{border-left-color:var(--orange-500, #f97316)}.trace-row--danger{border-left-color:var(--red-500, #ef4444)}.trace-row--secondary{border-left-color:var(--gray-400, #9ca3af)}.trace-row__summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem}.trace-row__summary::-webkit-details-marker{display:none}.trace-row__summary:hover{background:var(--surface-50, #fafafa)}.trace-row[open] .trace-row__summary:hover{background:var(--surface-100, #f3f4f6)}.trace-row__chevron{color:var(--text-color-secondary, #6b7280);font-size:.7rem;transition:transform .15s ease;flex-shrink:0}.trace-row[open] .trace-row__chevron{transform:rotate(90deg)}.trace-row__tag{font-weight:600;color:var(--primary-color, #1890ff);font-size:.8rem;white-space:nowrap;flex-shrink:0;letter-spacing:.02em}.trace-row__main{font-size:.85rem;color:var(--text-color, #111827);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trace-row__time{font-size:.75rem;color:var(--text-color-secondary, #6b7280);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.trace-row__action{cursor:pointer;padding:.25rem;border-radius:4px;color:var(--text-color-secondary, #6b7280);flex-shrink:0;transition:background .15s ease,color .15s ease}.trace-row__action:hover{background:var(--surface-100, #f3f4f6);color:var(--primary-color, #1890ff)}.trace-row__body{padding:.5rem .75rem .75rem;border-top:1px solid var(--surface-border, #e5e7eb);display:flex;flex-direction:column;gap:.5rem;background:var(--surface-0, #ffffff)}.trace-row__message{font-size:.85rem;color:var(--text-color, #111827);line-height:1.5;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;background:var(--surface-100, #f3f4f6);border-radius:4px;padding:.5rem .65rem}.trace-row__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.25rem .75rem;font-size:.8rem}.trace-row__meta>div{display:grid;grid-template-columns:max-content 1fr;column-gap:.4rem;align-items:baseline;min-width:0}.trace-row__meta .meta-label{color:var(--text-color-secondary, #6b7280);font-weight:500}.trace-row__meta .meta-label:after{content:\":\"}.trace-row__meta span:not(.meta-label){color:var(--text-color, #111827);word-break:break-word}.trace-row__sub{margin:0}.trace-row__sub summary{cursor:pointer;font-size:.8rem;color:var(--primary-color, #1890ff);padding:.15rem 0;-webkit-user-select:none;user-select:none}.trace-row__sub summary:hover{text-decoration:underline}.trace-row__sub pre{margin:.25rem 0 0;padding:.5rem .75rem;background:var(--surface-100, #f3f4f6);border-radius:4px;font-size:.78rem;line-height:1.45;max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-word}.aril-trace-drawer__load-more{display:flex;justify-content:center;margin-top:.5rem}.ref-values{display:flex;flex-direction:column;gap:.4rem;border:1px solid var(--surface-border, #e5e7eb);border-radius:4px;background:var(--surface-card, #ffffff);padding:.6rem .75rem}.ref-values__row{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;column-gap:.75rem;row-gap:.25rem;align-items:baseline}.ref-values__key{font-size:.8rem;font-weight:600;color:var(--text-color-secondary, #6b7280);letter-spacing:.02em;overflow-wrap:anywhere}.ref-values__key:after{content:\":\"}.ref-values__chips{display:flex;flex-wrap:wrap;gap:.3rem;min-width:0}.ref-values__chip{font-size:.78rem;padding:.15rem .5rem;border-radius:4px;background:var(--surface-100, #f3f4f6);color:var(--text-color, #111827);border:1px solid var(--surface-border, #e5e7eb);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}\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: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { 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 }); }
|
|
325
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraceDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
326
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", 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\">{{ traceId() }}</code>\r\n\t\t\t\t<i\r\n\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\tclass=\"pi pi-share-alt aril-trace-drawer__share\"\r\n\t\t\t\t\t[pTooltip]=\"t('traceDrawer.shareLink')\"\r\n\t\t\t\t\ttooltipPosition=\"bottom\"\r\n\t\t\t\t\t(click)=\"shareLink()\"></i>\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 [label]=\"t('traceDrawer.retry')\" icon=\"REFRESH\" color=\"primary\" (clickEvent)=\"retry()\" />\r\n\t\t\t\t</div>\r\n\t\t\t} @else {\r\n\t\t\t\t@if (refValueEntries().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-tags\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.refValuesHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"refValueEntries().length.toString()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t<div class=\"ref-values\">\r\n\t\t\t\t\t\t\t@for (entry of refValueEntries(); track entry[0]) {\r\n\t\t\t\t\t\t\t\t<div class=\"ref-values__row\">\r\n\t\t\t\t\t\t\t\t\t<span class=\"ref-values__key\">{{ entry[0] }}</span>\r\n\t\t\t\t\t\t\t\t\t<div class=\"ref-values__chips\">\r\n\t\t\t\t\t\t\t\t\t\t@for (val of entry[1]; track val) {\r\n\t\t\t\t\t\t\t\t\t\t\t<code class=\"ref-values__chip\">{{ val }}</code>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\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</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (apisixHits().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-globe\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.apisixHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"apisixHits().length + ' / ' + totalItem()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t@for (hit of apisixHits(); track hit.id) {\r\n\t\t\t\t\t\t\t<details class=\"trace-row trace-row--{{ statusSeverity(hit.status) }}\">\r\n\t\t\t\t\t\t\t\t<summary class=\"trace-row__summary\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right trace-row__chevron\"></i>\r\n\t\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\t<span class=\"trace-row__tag\">{{ hit.requestMethod }}</span>\r\n\t\t\t\t\t\t\t\t\t<span class=\"trace-row__main\">{{ hit.requestUri }}</span>\r\n\t\t\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t\t\t[value]=\"formatDuration(hit.responseTime)\"\r\n\t\t\t\t\t\t\t\t\t\t[severity]=\"durationSeverity(hit.responseTime)\" />\r\n\t\t\t\t\t\t\t\t\t@if (hit.timestamp) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__time\">{{ formatTimestamp(hit.timestamp) }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-code trace-row__action\"\r\n\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('traceDrawer.copyCurl')\"\r\n\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"left\"\r\n\t\t\t\t\t\t\t\t\t\t(click)=\"$event.preventDefault(); $event.stopPropagation(); copyAsCurl(hit)\"></i>\r\n\t\t\t\t\t\t\t\t</summary>\r\n\t\t\t\t\t\t\t\t<div class=\"trace-row__body\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.routeName) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.route') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.routeName }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.sourceApp || hit.sourceModule) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\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\t\t<span>{{ hit.sourceApp }}{{ hit.sourceModule ? ' / ' + hit.sourceModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.targetApp || hit.targetModule) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\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\t\t<span>{{ hit.targetApp }}{{ hit.targetModule ? ' / ' + hit.targetModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.upstreamHost) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.upstream') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.upstreamHost }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.username) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.user') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.username }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.requestSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.requestSize') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ formatBytes(hit.requestSize) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.responseSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.responseSize') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ formatBytes(hit.responseSize) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t@if (hit.requestBody) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\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\t\t@if (tryParseJson(hit.requestBody); as parsed) {\r\n\t\t\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\t\t} @else {\r\n\t\t\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\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (hit.responseBody) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\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\t\t@if (tryParseJson(hit.responseBody); as parsed) {\r\n\t\t\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\t\t} @else {\r\n\t\t\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\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (hasMore()) {\r\n\t\t\t\t\t\t\t<div class=\"aril-trace-drawer__load-more\">\r\n\t\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\t\t[label]=\"t('traceDrawer.loadMore')\"\r\n\t\t\t\t\t\t\t\t\ticon=\"CHEVRON_DOWN\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[loading]=\"loadingMore()\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"loadingMore()\"\r\n\t\t\t\t\t\t\t\t\t(clickEvent)=\"loadMore()\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (appLogs().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-list\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.appLogsHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"appLogs().length + ' / ' + appLogsTotal()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t@for (log of appLogs(); track log.id) {\r\n\t\t\t\t\t\t\t<details class=\"trace-row trace-row--{{ levelSeverity(log.level) }}\">\r\n\t\t\t\t\t\t\t\t<summary class=\"trace-row__summary\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right trace-row__chevron\"></i>\r\n\t\t\t\t\t\t\t\t\t@if (log.level) {\r\n\t\t\t\t\t\t\t\t\t\t<aril-badge [value]=\"log.level\" [severity]=\"levelSeverity(log.level)\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.module) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__tag\">{{ log.module }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<span class=\"trace-row__main\">{{ log.message }}</span>\r\n\t\t\t\t\t\t\t\t\t@if (log.timestamp) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__time\">{{ formatTimestamp(log.timestamp) }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</summary>\r\n\t\t\t\t\t\t\t\t<div class=\"trace-row__body\">\r\n\t\t\t\t\t\t\t\t\t@if (log.message) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__message\">{{ log.message }}</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.username || log.app) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t@if (log.app) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\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\t\t\t><span>{{ log.app }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t@if (log.username) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.user') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ log.username }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.errorDetail) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\" open>\r\n\t\t\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.appLogErrorDetail') }}</summary>\r\n\t\t\t\t\t\t\t\t\t\t\t<pre>{{ log.errorDetail }}</pre>\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.referenceFields?.length) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.appLogRefFields') }}</summary>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t@for (rf of log.referenceFields; track rf.field) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ rf.field }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ rf.value }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (appLogsHasMore()) {\r\n\t\t\t\t\t\t\t<div class=\"aril-trace-drawer__load-more\">\r\n\t\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\t\t[label]=\"t('traceDrawer.loadMore')\"\r\n\t\t\t\t\t\t\t\t\ticon=\"CHEVRON_DOWN\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[loading]=\"appLogsLoadingMore()\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"appLogsLoadingMore()\"\r\n\t\t\t\t\t\t\t\t\t(clickEvent)=\"loadMoreAppLogs()\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (!apisixHits().length && !appLogs().length && !refValueEntries().length) {\r\n\t\t\t\t\t<div class=\"aril-trace-drawer__state\">\r\n\t\t\t\t\t\t<i class=\"pi pi-inbox\"></i>\r\n\t\t\t\t\t\t<p>{{ t('traceDrawer.empty') }}</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\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{display:flex;flex-direction:column;height:100%}:host ::ng-deep .aril-trace-drawer .p-sidebar-header{padding:1rem 1.25rem;border-bottom:1px solid var(--surface-border, #e5e7eb);flex:0 0 auto}:host ::ng-deep .aril-trace-drawer .p-sidebar-content{padding:0;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}.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__share{cursor:pointer;font-size:1rem;padding:.4rem;border-radius:4px;color:var(--primary-color, #1890ff);transition:background .15s ease}.aril-trace-drawer__share:hover{background:var(--surface-100, #f3f4f6)}.aril-trace-drawer__body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:1.5rem;min-height:min-content}.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 .5rem;font-size:1rem;font-weight:600}.aril-trace-drawer__section-title .pi{color:var(--primary-color, #1890ff)}.trace-row{display:block;border:1px solid var(--surface-border, #e5e7eb);border-left:3px solid var(--surface-border, #e5e7eb);background:var(--surface-card, #ffffff);border-radius:4px;overflow:hidden;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.trace-row+.trace-row{margin-top:.4rem}.trace-row:hover{border-top-color:var(--surface-300, #d1d5db);border-right-color:var(--surface-300, #d1d5db);border-bottom-color:var(--surface-300, #d1d5db);box-shadow:0 1px 3px #0000000a}.trace-row[open]{background:var(--surface-50, #fafafa);border-top-color:var(--surface-300, #d1d5db);border-right-color:var(--surface-300, #d1d5db);border-bottom-color:var(--surface-300, #d1d5db);box-shadow:0 1px 4px #0000000d}.trace-row--success{border-left-color:var(--green-500, #22c55e)}.trace-row--info{border-left-color:var(--blue-500, #3b82f6)}.trace-row--warning{border-left-color:var(--orange-500, #f97316)}.trace-row--danger{border-left-color:var(--red-500, #ef4444)}.trace-row--secondary{border-left-color:var(--gray-400, #9ca3af)}.trace-row__summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem}.trace-row__summary::-webkit-details-marker{display:none}.trace-row__summary:hover{background:var(--surface-50, #fafafa)}.trace-row[open] .trace-row__summary:hover{background:var(--surface-100, #f3f4f6)}.trace-row__chevron{color:var(--text-color-secondary, #6b7280);font-size:.7rem;transition:transform .15s ease;flex-shrink:0}.trace-row[open] .trace-row__chevron{transform:rotate(90deg)}.trace-row__tag{font-weight:600;color:var(--primary-color, #1890ff);font-size:.8rem;white-space:nowrap;flex-shrink:0;letter-spacing:.02em}.trace-row__main{font-size:.85rem;color:var(--text-color, #111827);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trace-row__time{font-size:.75rem;color:var(--text-color-secondary, #6b7280);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.trace-row__action{cursor:pointer;padding:.25rem;border-radius:4px;color:var(--text-color-secondary, #6b7280);flex-shrink:0;transition:background .15s ease,color .15s ease}.trace-row__action:hover{background:var(--surface-100, #f3f4f6);color:var(--primary-color, #1890ff)}.trace-row__body{padding:.5rem .75rem .75rem;border-top:1px solid var(--surface-border, #e5e7eb);display:flex;flex-direction:column;gap:.5rem;background:var(--surface-0, #ffffff)}.trace-row__message{font-size:.85rem;color:var(--text-color, #111827);line-height:1.5;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;background:var(--surface-100, #f3f4f6);border-radius:4px;padding:.5rem .65rem}.trace-row__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.25rem .75rem;font-size:.8rem}.trace-row__meta>div{display:grid;grid-template-columns:max-content 1fr;column-gap:.4rem;align-items:baseline;min-width:0}.trace-row__meta .meta-label{color:var(--text-color-secondary, #6b7280);font-weight:500}.trace-row__meta .meta-label:after{content:\":\"}.trace-row__meta span:not(.meta-label){color:var(--text-color, #111827);word-break:break-word}.trace-row__sub{margin:0}.trace-row__sub summary{cursor:pointer;font-size:.8rem;color:var(--primary-color, #1890ff);padding:.15rem 0;-webkit-user-select:none;user-select:none}.trace-row__sub summary:hover{text-decoration:underline}.trace-row__sub pre{margin:.25rem 0 0;padding:.5rem .75rem;background:var(--surface-100, #f3f4f6);border-radius:4px;font-size:.78rem;line-height:1.45;max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-word}.aril-trace-drawer__load-more{display:flex;justify-content:center;margin-top:.5rem}.ref-values{display:flex;flex-direction:column;gap:.4rem;border:1px solid var(--surface-border, #e5e7eb);border-radius:4px;background:var(--surface-card, #ffffff);padding:.6rem .75rem}.ref-values__row{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;column-gap:.75rem;row-gap:.25rem;align-items:baseline}.ref-values__key{font-size:.8rem;font-weight:600;color:var(--text-color-secondary, #6b7280);letter-spacing:.02em;overflow-wrap:anywhere}.ref-values__key:after{content:\":\"}.ref-values__chips{display:flex;flex-wrap:wrap;gap:.3rem;min-width:0}.ref-values__chip{font-size:.78rem;padding:.15rem .5rem;border-radius:4px;background:var(--surface-100, #f3f4f6);color:var(--text-color, #111827);border:1px solid var(--surface-border, #e5e7eb);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}\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: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { 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 }); }
|
|
327
327
|
}
|
|
328
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
328
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraceDrawerComponent, decorators: [{
|
|
329
329
|
type: Component,
|
|
330
330
|
args: [{ standalone: true, selector: 'aril-trace-drawer', imports: [JsonPipe, TranslocoModule, SidebarModule, ProgressSpinnerModule, TooltipModule, 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\">{{ traceId() }}</code>\r\n\t\t\t\t<i\r\n\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\tclass=\"pi pi-share-alt aril-trace-drawer__share\"\r\n\t\t\t\t\t[pTooltip]=\"t('traceDrawer.shareLink')\"\r\n\t\t\t\t\ttooltipPosition=\"bottom\"\r\n\t\t\t\t\t(click)=\"shareLink()\"></i>\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 [label]=\"t('traceDrawer.retry')\" icon=\"REFRESH\" color=\"primary\" (clickEvent)=\"retry()\" />\r\n\t\t\t\t</div>\r\n\t\t\t} @else {\r\n\t\t\t\t@if (refValueEntries().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-tags\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.refValuesHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"refValueEntries().length.toString()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t<div class=\"ref-values\">\r\n\t\t\t\t\t\t\t@for (entry of refValueEntries(); track entry[0]) {\r\n\t\t\t\t\t\t\t\t<div class=\"ref-values__row\">\r\n\t\t\t\t\t\t\t\t\t<span class=\"ref-values__key\">{{ entry[0] }}</span>\r\n\t\t\t\t\t\t\t\t\t<div class=\"ref-values__chips\">\r\n\t\t\t\t\t\t\t\t\t\t@for (val of entry[1]; track val) {\r\n\t\t\t\t\t\t\t\t\t\t\t<code class=\"ref-values__chip\">{{ val }}</code>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\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</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (apisixHits().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-globe\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.apisixHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"apisixHits().length + ' / ' + totalItem()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t@for (hit of apisixHits(); track hit.id) {\r\n\t\t\t\t\t\t\t<details class=\"trace-row trace-row--{{ statusSeverity(hit.status) }}\">\r\n\t\t\t\t\t\t\t\t<summary class=\"trace-row__summary\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right trace-row__chevron\"></i>\r\n\t\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\t<span class=\"trace-row__tag\">{{ hit.requestMethod }}</span>\r\n\t\t\t\t\t\t\t\t\t<span class=\"trace-row__main\">{{ hit.requestUri }}</span>\r\n\t\t\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t\t\t[value]=\"formatDuration(hit.responseTime)\"\r\n\t\t\t\t\t\t\t\t\t\t[severity]=\"durationSeverity(hit.responseTime)\" />\r\n\t\t\t\t\t\t\t\t\t@if (hit.timestamp) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__time\">{{ formatTimestamp(hit.timestamp) }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-code trace-row__action\"\r\n\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('traceDrawer.copyCurl')\"\r\n\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"left\"\r\n\t\t\t\t\t\t\t\t\t\t(click)=\"$event.preventDefault(); $event.stopPropagation(); copyAsCurl(hit)\"></i>\r\n\t\t\t\t\t\t\t\t</summary>\r\n\t\t\t\t\t\t\t\t<div class=\"trace-row__body\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.routeName) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.route') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.routeName }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.sourceApp || hit.sourceModule) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\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\t\t<span>{{ hit.sourceApp }}{{ hit.sourceModule ? ' / ' + hit.sourceModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.targetApp || hit.targetModule) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\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\t\t<span>{{ hit.targetApp }}{{ hit.targetModule ? ' / ' + hit.targetModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.upstreamHost) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.upstream') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.upstreamHost }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.username) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.user') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.username }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.requestSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.requestSize') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ formatBytes(hit.requestSize) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.responseSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.responseSize') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ formatBytes(hit.responseSize) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t@if (hit.requestBody) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\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\t\t@if (tryParseJson(hit.requestBody); as parsed) {\r\n\t\t\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\t\t} @else {\r\n\t\t\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\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (hit.responseBody) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\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\t\t@if (tryParseJson(hit.responseBody); as parsed) {\r\n\t\t\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\t\t} @else {\r\n\t\t\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\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (hasMore()) {\r\n\t\t\t\t\t\t\t<div class=\"aril-trace-drawer__load-more\">\r\n\t\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\t\t[label]=\"t('traceDrawer.loadMore')\"\r\n\t\t\t\t\t\t\t\t\ticon=\"CHEVRON_DOWN\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[loading]=\"loadingMore()\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"loadingMore()\"\r\n\t\t\t\t\t\t\t\t\t(clickEvent)=\"loadMore()\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (appLogs().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-list\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.appLogsHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"appLogs().length + ' / ' + appLogsTotal()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t@for (log of appLogs(); track log.id) {\r\n\t\t\t\t\t\t\t<details class=\"trace-row trace-row--{{ levelSeverity(log.level) }}\">\r\n\t\t\t\t\t\t\t\t<summary class=\"trace-row__summary\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right trace-row__chevron\"></i>\r\n\t\t\t\t\t\t\t\t\t@if (log.level) {\r\n\t\t\t\t\t\t\t\t\t\t<aril-badge [value]=\"log.level\" [severity]=\"levelSeverity(log.level)\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.module) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__tag\">{{ log.module }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<span class=\"trace-row__main\">{{ log.message }}</span>\r\n\t\t\t\t\t\t\t\t\t@if (log.timestamp) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__time\">{{ formatTimestamp(log.timestamp) }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</summary>\r\n\t\t\t\t\t\t\t\t<div class=\"trace-row__body\">\r\n\t\t\t\t\t\t\t\t\t@if (log.message) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__message\">{{ log.message }}</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.username || log.app) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t@if (log.app) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\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\t\t\t><span>{{ log.app }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t@if (log.username) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.user') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ log.username }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.errorDetail) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\" open>\r\n\t\t\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.appLogErrorDetail') }}</summary>\r\n\t\t\t\t\t\t\t\t\t\t\t<pre>{{ log.errorDetail }}</pre>\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.referenceFields?.length) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.appLogRefFields') }}</summary>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t@for (rf of log.referenceFields; track rf.field) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ rf.field }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ rf.value }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (appLogsHasMore()) {\r\n\t\t\t\t\t\t\t<div class=\"aril-trace-drawer__load-more\">\r\n\t\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\t\t[label]=\"t('traceDrawer.loadMore')\"\r\n\t\t\t\t\t\t\t\t\ticon=\"CHEVRON_DOWN\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[loading]=\"appLogsLoadingMore()\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"appLogsLoadingMore()\"\r\n\t\t\t\t\t\t\t\t\t(clickEvent)=\"loadMoreAppLogs()\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (!apisixHits().length && !appLogs().length && !refValueEntries().length) {\r\n\t\t\t\t\t<div class=\"aril-trace-drawer__state\">\r\n\t\t\t\t\t\t<i class=\"pi pi-inbox\"></i>\r\n\t\t\t\t\t\t<p>{{ t('traceDrawer.empty') }}</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\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{display:flex;flex-direction:column;height:100%}:host ::ng-deep .aril-trace-drawer .p-sidebar-header{padding:1rem 1.25rem;border-bottom:1px solid var(--surface-border, #e5e7eb);flex:0 0 auto}:host ::ng-deep .aril-trace-drawer .p-sidebar-content{padding:0;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}.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__share{cursor:pointer;font-size:1rem;padding:.4rem;border-radius:4px;color:var(--primary-color, #1890ff);transition:background .15s ease}.aril-trace-drawer__share:hover{background:var(--surface-100, #f3f4f6)}.aril-trace-drawer__body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:1.5rem;min-height:min-content}.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 .5rem;font-size:1rem;font-weight:600}.aril-trace-drawer__section-title .pi{color:var(--primary-color, #1890ff)}.trace-row{display:block;border:1px solid var(--surface-border, #e5e7eb);border-left:3px solid var(--surface-border, #e5e7eb);background:var(--surface-card, #ffffff);border-radius:4px;overflow:hidden;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.trace-row+.trace-row{margin-top:.4rem}.trace-row:hover{border-top-color:var(--surface-300, #d1d5db);border-right-color:var(--surface-300, #d1d5db);border-bottom-color:var(--surface-300, #d1d5db);box-shadow:0 1px 3px #0000000a}.trace-row[open]{background:var(--surface-50, #fafafa);border-top-color:var(--surface-300, #d1d5db);border-right-color:var(--surface-300, #d1d5db);border-bottom-color:var(--surface-300, #d1d5db);box-shadow:0 1px 4px #0000000d}.trace-row--success{border-left-color:var(--green-500, #22c55e)}.trace-row--info{border-left-color:var(--blue-500, #3b82f6)}.trace-row--warning{border-left-color:var(--orange-500, #f97316)}.trace-row--danger{border-left-color:var(--red-500, #ef4444)}.trace-row--secondary{border-left-color:var(--gray-400, #9ca3af)}.trace-row__summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem}.trace-row__summary::-webkit-details-marker{display:none}.trace-row__summary:hover{background:var(--surface-50, #fafafa)}.trace-row[open] .trace-row__summary:hover{background:var(--surface-100, #f3f4f6)}.trace-row__chevron{color:var(--text-color-secondary, #6b7280);font-size:.7rem;transition:transform .15s ease;flex-shrink:0}.trace-row[open] .trace-row__chevron{transform:rotate(90deg)}.trace-row__tag{font-weight:600;color:var(--primary-color, #1890ff);font-size:.8rem;white-space:nowrap;flex-shrink:0;letter-spacing:.02em}.trace-row__main{font-size:.85rem;color:var(--text-color, #111827);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trace-row__time{font-size:.75rem;color:var(--text-color-secondary, #6b7280);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.trace-row__action{cursor:pointer;padding:.25rem;border-radius:4px;color:var(--text-color-secondary, #6b7280);flex-shrink:0;transition:background .15s ease,color .15s ease}.trace-row__action:hover{background:var(--surface-100, #f3f4f6);color:var(--primary-color, #1890ff)}.trace-row__body{padding:.5rem .75rem .75rem;border-top:1px solid var(--surface-border, #e5e7eb);display:flex;flex-direction:column;gap:.5rem;background:var(--surface-0, #ffffff)}.trace-row__message{font-size:.85rem;color:var(--text-color, #111827);line-height:1.5;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;background:var(--surface-100, #f3f4f6);border-radius:4px;padding:.5rem .65rem}.trace-row__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.25rem .75rem;font-size:.8rem}.trace-row__meta>div{display:grid;grid-template-columns:max-content 1fr;column-gap:.4rem;align-items:baseline;min-width:0}.trace-row__meta .meta-label{color:var(--text-color-secondary, #6b7280);font-weight:500}.trace-row__meta .meta-label:after{content:\":\"}.trace-row__meta span:not(.meta-label){color:var(--text-color, #111827);word-break:break-word}.trace-row__sub{margin:0}.trace-row__sub summary{cursor:pointer;font-size:.8rem;color:var(--primary-color, #1890ff);padding:.15rem 0;-webkit-user-select:none;user-select:none}.trace-row__sub summary:hover{text-decoration:underline}.trace-row__sub pre{margin:.25rem 0 0;padding:.5rem .75rem;background:var(--surface-100, #f3f4f6);border-radius:4px;font-size:.78rem;line-height:1.45;max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-word}.aril-trace-drawer__load-more{display:flex;justify-content:center;margin-top:.5rem}.ref-values{display:flex;flex-direction:column;gap:.4rem;border:1px solid var(--surface-border, #e5e7eb);border-radius:4px;background:var(--surface-card, #ffffff);padding:.6rem .75rem}.ref-values__row{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;column-gap:.75rem;row-gap:.25rem;align-items:baseline}.ref-values__key{font-size:.8rem;font-weight:600;color:var(--text-color-secondary, #6b7280);letter-spacing:.02em;overflow-wrap:anywhere}.ref-values__key:after{content:\":\"}.ref-values__chips{display:flex;flex-wrap:wrap;gap:.3rem;min-width:0}.ref-values__chip{font-size:.78rem;padding:.15rem .5rem;border-radius:4px;background:var(--surface-100, #f3f4f6);color:var(--text-color, #111827);border:1px solid var(--surface-border, #e5e7eb);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}\n"] }]
|
|
331
331
|
}], ctorParameters: () => [], propDecorators: { visibleChange: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aril-ui-business-trace-drawer.mjs","sources":["../../projects/aril/ui-business/trace-drawer/src/app-log.service.ts","../../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 { AppLogRefValues, AppLogSearchRequest, AppLogSearchResponse } from './interfaces';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AppLogService extends RestClient {\r\n\toverride states: ServiceCallStateMap<AppLogService> = {};\r\n\r\n\t@ServiceCall(HTTPMethods.POST, ProxyTypes.ClientSide, 'application-logs/filter', {}, Apps.MW)\r\n\tsearchByTraceId(req: AppLogSearchRequest): Observable<ServiceResponse<AppLogSearchResponse>> {\r\n\t\treturn new Observable<ServiceResponse<AppLogSearchResponse>>();\r\n\t}\r\n\r\n\t@ServiceCall(HTTPMethods.GETBYPARAMS, ProxyTypes.ClientSide, 'application-logs/ref-values', {}, Apps.MW)\r\n\tgetRefValues(req: { traceId: string }): Observable<ServiceResponse<AppLogRefValues>> {\r\n\t\treturn new Observable<ServiceResponse<AppLogRefValues>>();\r\n\t}\r\n}\r\n","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, computed, effect, inject, input, signal } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\nimport { EMPTY, Subject, catchError, map, switchMap } from 'rxjs';\r\n\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\nimport { KeycloakService } from 'keycloak-angular';\r\nimport { MessageService } from 'primeng/api';\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 { AppLogService } from './app-log.service';\r\nimport { ApisixHit, AppLogItem, AppLogRefValues } 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, TooltipModule, BadgeComponent, ButtonComponent],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TraceDrawerComponent {\r\n\tprivate readonly traceLogService = inject(TraceLogService);\r\n\tprivate readonly appLogService = inject(AppLogService);\r\n\tprivate readonly messageService = inject(MessageService);\r\n\tprivate readonly translocoService = inject(TranslocoService);\r\n\tprivate readonly keycloakService = inject(KeycloakService);\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>(10);\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 loadingMore = signal(false);\r\n\tprotected readonly errorMessage = signal<string | undefined>(undefined);\r\n\tprotected readonly apisixHits = signal<ApisixHit[]>([]);\r\n\tprotected readonly totalItem = signal(0);\r\n\tprotected readonly pageNumber = signal(1);\r\n\r\n\tprotected readonly appLogs = signal<AppLogItem[]>([]);\r\n\tprotected readonly appLogsLoadingMore = signal(false);\r\n\tprotected readonly appLogsTotal = signal(0);\r\n\tprotected readonly appLogsPage = signal(1);\r\n\r\n\tprotected readonly refValues = signal<AppLogRefValues>({});\r\n\tprotected readonly refValueEntries = computed(() =>\r\n\t\tObject.entries(this.refValues()).filter(([, values]) => values?.length)\r\n\t);\r\n\r\n\tprotected readonly hasMore = computed(() => this.apisixHits().length < this.totalItem());\r\n\tprotected readonly appLogsHasMore = computed(() => this.appLogs().length < this.appLogsTotal());\r\n\r\n\tprivate readonly request = new Subject<{ traceId: string; pageNumber: number; append: boolean }>();\r\n\tprivate readonly appLogsRequest = new Subject<{ traceId: string; pageNumber: number; append: boolean }>();\r\n\tprivate readonly refValuesRequest = new Subject<string>();\r\n\tprivate readonly response = toSignal(\r\n\t\tthis.request.pipe(\r\n\t\t\tswitchMap((req) =>\r\n\t\t\t\tthis.traceLogService\r\n\t\t\t\t\t.searchByTraceId({\r\n\t\t\t\t\t\ttraceId: req.traceId,\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: req.pageNumber }\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.pipe(\r\n\t\t\t\t\t\tmap((resp) => ({ resp, append: req.append })),\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\tthis.loadingMore.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\tprivate readonly appLogsResponse = toSignal(\r\n\t\tthis.appLogsRequest.pipe(\r\n\t\t\tswitchMap((req) =>\r\n\t\t\t\tthis.appLogService\r\n\t\t\t\t\t.searchByTraceId({\r\n\t\t\t\t\t\ttraceId: req.traceId,\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: req.pageNumber }\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.pipe(\r\n\t\t\t\t\t\tmap((resp) => ({ resp, append: req.append })),\r\n\t\t\t\t\t\tcatchError(() => {\r\n\t\t\t\t\t\t\tthis.appLogsLoadingMore.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\tprivate readonly refValuesResponse = toSignal(\r\n\t\tthis.refValuesRequest.pipe(\r\n\t\t\tswitchMap((traceId) =>\r\n\t\t\t\tthis.appLogService.getRefValues({ traceId }).pipe(\r\n\t\t\t\t\tcatchError(() => EMPTY)\r\n\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 wrapped = this.response();\r\n\t\t\t\tif (!wrapped) return;\r\n\t\t\t\tconst result = wrapped.resp.response?.result ?? [];\r\n\t\t\t\tconst total = wrapped.resp.response?.resultInfo?.totalItem ?? 0;\r\n\t\t\t\tthis.apisixHits.update((prev) => (wrapped.append ? [...prev, ...result] : result));\r\n\t\t\t\tthis.totalItem.set(total);\r\n\t\t\t\tthis.loading.set(false);\r\n\t\t\t\tthis.loadingMore.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\r\n\t\teffect(\r\n\t\t\t() => {\r\n\t\t\t\tconst wrapped = this.appLogsResponse();\r\n\t\t\t\tif (!wrapped) return;\r\n\t\t\t\tconst result = wrapped.resp.response?.result ?? [];\r\n\t\t\t\tconst total = wrapped.resp.response?.resultInfo?.totalItem ?? 0;\r\n\t\t\t\tthis.appLogs.update((prev) => (wrapped.append ? [...prev, ...result] : result));\r\n\t\t\t\tthis.appLogsTotal.set(total);\r\n\t\t\t\tthis.appLogsLoadingMore.set(false);\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 wrapped = this.refValuesResponse();\r\n\t\t\t\tif (!wrapped) return;\r\n\t\t\t\tthis.refValues.set(wrapped.response ?? {});\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected loadMore(): void {\r\n\t\tconst id = this.traceId();\r\n\t\tif (!id || this.loadingMore() || !this.hasMore()) return;\r\n\t\tconst next = this.pageNumber() + 1;\r\n\t\tthis.pageNumber.set(next);\r\n\t\tthis.loadingMore.set(true);\r\n\t\tthis.request.next({ traceId: id, pageNumber: next, append: true });\r\n\t}\r\n\r\n\tprotected loadMoreAppLogs(): void {\r\n\t\tconst id = this.traceId();\r\n\t\tif (!id || this.appLogsLoadingMore() || !this.appLogsHasMore()) return;\r\n\t\tconst next = this.appLogsPage() + 1;\r\n\t\tthis.appLogsPage.set(next);\r\n\t\tthis.appLogsLoadingMore.set(true);\r\n\t\tthis.appLogsRequest.next({ traceId: id, pageNumber: next, append: true });\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\tprotected shareLink(): void {\r\n\t\tconst id = this.traceId();\r\n\t\tif (!id) return;\r\n\t\tconst base = window.location.href.split('?')[0];\r\n\t\tconst url = `${base}?traceId=${encodeURIComponent(id)}`;\r\n\t\tnavigator.clipboard.writeText(url).then(() => {\r\n\t\t\tthis.messageService.add({\r\n\t\t\t\tseverity: 'success',\r\n\t\t\t\tsummary: this.translocoService.translate('traceDrawer.linkCopied'),\r\n\t\t\t\tkey: 'toast-root'\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tprotected async copyAsCurl(hit: ApisixHit): Promise<void> {\r\n\t\tconst token = await this.keycloakService.getToken().catch(() => '');\r\n\t\tconst cmd = this.buildCurl(hit, token);\r\n\t\tawait navigator.clipboard.writeText(cmd);\r\n\t\tthis.messageService.add({\r\n\t\t\tseverity: 'success',\r\n\t\t\tsummary: this.translocoService.translate('traceDrawer.curlCopied'),\r\n\t\t\tkey: 'toast-root'\r\n\t\t});\r\n\t}\r\n\r\n\tprivate buildCurl(hit: ApisixHit, token: string): string {\r\n\t\tconst method = (hit.requestMethod ?? 'GET').toUpperCase();\r\n\t\tconst host = hit.upstreamHost ? hit.upstreamHost.replace(/\\/+$/, '') : '';\r\n\t\tconst uri = hit.requestUri ?? '';\r\n\t\tconst url = host ? (host.startsWith('http') ? `${host}${uri}` : `https://${host}${uri}`) : uri;\r\n\t\tconst escape = (s: string) => s.replace(/'/g, `'\\\\''`);\r\n\t\tconst lines = [`curl -X ${method} '${escape(url)}'`];\r\n\t\tif (token) lines.push(`-H 'Authorization: Bearer ${escape(token)}'`);\r\n\t\tconst body = hit.requestBody?.trim();\r\n\t\tif (body) {\r\n\t\t\tconst isJson = (body.startsWith('{') && body.endsWith('}')) || (body.startsWith('[') && body.endsWith(']'));\r\n\t\t\tif (isJson) lines.push(`-H 'Content-Type: application/json'`);\r\n\t\t\tlines.push(`-d '${escape(body)}'`);\r\n\t\t}\r\n\t\treturn lines.join(' \\\\\\n ');\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.totalItem.set(0);\r\n\t\tthis.pageNumber.set(1);\r\n\t\tthis.appLogs.set([]);\r\n\t\tthis.appLogsTotal.set(0);\r\n\t\tthis.appLogsPage.set(1);\r\n\t\tthis.refValues.set({});\r\n\t\tthis.request.next({ traceId, pageNumber: 1, append: false });\r\n\t\tthis.appLogsRequest.next({ traceId, pageNumber: 1, append: false });\r\n\t\tthis.refValuesRequest.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 levelSeverity(level: string | undefined): Severity {\r\n\t\tswitch ((level ?? '').toUpperCase()) {\r\n\t\t\tcase 'ERROR':\r\n\t\t\tcase 'FATAL':\r\n\t\t\t\treturn 'danger';\r\n\t\t\tcase 'WARN':\r\n\t\t\tcase 'WARNING':\r\n\t\t\t\treturn 'warning';\r\n\t\t\tcase 'INFO':\r\n\t\t\t\treturn 'info';\r\n\t\t\tcase 'DEBUG':\r\n\t\t\tcase 'TRACE':\r\n\t\t\t\treturn 'secondary';\r\n\t\t\tdefault:\r\n\t\t\t\treturn 'secondary';\r\n\t\t}\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\">{{ traceId() }}</code>\r\n\t\t\t\t<i\r\n\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\tclass=\"pi pi-share-alt aril-trace-drawer__share\"\r\n\t\t\t\t\t[pTooltip]=\"t('traceDrawer.shareLink')\"\r\n\t\t\t\t\ttooltipPosition=\"bottom\"\r\n\t\t\t\t\t(click)=\"shareLink()\"></i>\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 [label]=\"t('traceDrawer.retry')\" icon=\"REFRESH\" color=\"primary\" (clickEvent)=\"retry()\" />\r\n\t\t\t\t</div>\r\n\t\t\t} @else {\r\n\t\t\t\t@if (refValueEntries().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-tags\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.refValuesHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"refValueEntries().length.toString()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t<div class=\"ref-values\">\r\n\t\t\t\t\t\t\t@for (entry of refValueEntries(); track entry[0]) {\r\n\t\t\t\t\t\t\t\t<div class=\"ref-values__row\">\r\n\t\t\t\t\t\t\t\t\t<span class=\"ref-values__key\">{{ entry[0] }}</span>\r\n\t\t\t\t\t\t\t\t\t<div class=\"ref-values__chips\">\r\n\t\t\t\t\t\t\t\t\t\t@for (val of entry[1]; track val) {\r\n\t\t\t\t\t\t\t\t\t\t\t<code class=\"ref-values__chip\">{{ val }}</code>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\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</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (apisixHits().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-globe\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.apisixHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"apisixHits().length + ' / ' + totalItem()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t@for (hit of apisixHits(); track hit.id) {\r\n\t\t\t\t\t\t\t<details class=\"trace-row trace-row--{{ statusSeverity(hit.status) }}\">\r\n\t\t\t\t\t\t\t\t<summary class=\"trace-row__summary\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right trace-row__chevron\"></i>\r\n\t\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\t<span class=\"trace-row__tag\">{{ hit.requestMethod }}</span>\r\n\t\t\t\t\t\t\t\t\t<span class=\"trace-row__main\">{{ hit.requestUri }}</span>\r\n\t\t\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t\t\t[value]=\"formatDuration(hit.responseTime)\"\r\n\t\t\t\t\t\t\t\t\t\t[severity]=\"durationSeverity(hit.responseTime)\" />\r\n\t\t\t\t\t\t\t\t\t@if (hit.timestamp) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__time\">{{ formatTimestamp(hit.timestamp) }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-code trace-row__action\"\r\n\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('traceDrawer.copyCurl')\"\r\n\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"left\"\r\n\t\t\t\t\t\t\t\t\t\t(click)=\"$event.preventDefault(); $event.stopPropagation(); copyAsCurl(hit)\"></i>\r\n\t\t\t\t\t\t\t\t</summary>\r\n\t\t\t\t\t\t\t\t<div class=\"trace-row__body\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.routeName) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.route') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.routeName }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.sourceApp || hit.sourceModule) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\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\t\t<span>{{ hit.sourceApp }}{{ hit.sourceModule ? ' / ' + hit.sourceModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.targetApp || hit.targetModule) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\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\t\t<span>{{ hit.targetApp }}{{ hit.targetModule ? ' / ' + hit.targetModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.upstreamHost) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.upstream') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.upstreamHost }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.username) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.user') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.username }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.requestSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.requestSize') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ formatBytes(hit.requestSize) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.responseSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.responseSize') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ formatBytes(hit.responseSize) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t@if (hit.requestBody) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\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\t\t@if (tryParseJson(hit.requestBody); as parsed) {\r\n\t\t\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\t\t} @else {\r\n\t\t\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\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (hit.responseBody) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\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\t\t@if (tryParseJson(hit.responseBody); as parsed) {\r\n\t\t\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\t\t} @else {\r\n\t\t\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\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (hasMore()) {\r\n\t\t\t\t\t\t\t<div class=\"aril-trace-drawer__load-more\">\r\n\t\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\t\t[label]=\"t('traceDrawer.loadMore')\"\r\n\t\t\t\t\t\t\t\t\ticon=\"CHEVRON_DOWN\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[loading]=\"loadingMore()\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"loadingMore()\"\r\n\t\t\t\t\t\t\t\t\t(clickEvent)=\"loadMore()\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (appLogs().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-list\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.appLogsHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"appLogs().length + ' / ' + appLogsTotal()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t@for (log of appLogs(); track log.id) {\r\n\t\t\t\t\t\t\t<details class=\"trace-row trace-row--{{ levelSeverity(log.level) }}\">\r\n\t\t\t\t\t\t\t\t<summary class=\"trace-row__summary\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right trace-row__chevron\"></i>\r\n\t\t\t\t\t\t\t\t\t@if (log.level) {\r\n\t\t\t\t\t\t\t\t\t\t<aril-badge [value]=\"log.level\" [severity]=\"levelSeverity(log.level)\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.module) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__tag\">{{ log.module }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<span class=\"trace-row__main\">{{ log.message }}</span>\r\n\t\t\t\t\t\t\t\t\t@if (log.timestamp) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__time\">{{ formatTimestamp(log.timestamp) }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</summary>\r\n\t\t\t\t\t\t\t\t<div class=\"trace-row__body\">\r\n\t\t\t\t\t\t\t\t\t@if (log.message) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__message\">{{ log.message }}</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.username || log.app) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t@if (log.app) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\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\t\t\t><span>{{ log.app }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t@if (log.username) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.user') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ log.username }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.errorDetail) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\" open>\r\n\t\t\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.appLogErrorDetail') }}</summary>\r\n\t\t\t\t\t\t\t\t\t\t\t<pre>{{ log.errorDetail }}</pre>\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.referenceFields?.length) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.appLogRefFields') }}</summary>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t@for (rf of log.referenceFields; track rf.field) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ rf.field }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ rf.value }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (appLogsHasMore()) {\r\n\t\t\t\t\t\t\t<div class=\"aril-trace-drawer__load-more\">\r\n\t\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\t\t[label]=\"t('traceDrawer.loadMore')\"\r\n\t\t\t\t\t\t\t\t\ticon=\"CHEVRON_DOWN\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[loading]=\"appLogsLoadingMore()\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"appLogsLoadingMore()\"\r\n\t\t\t\t\t\t\t\t\t(clickEvent)=\"loadMoreAppLogs()\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (!apisixHits().length && !appLogs().length && !refValueEntries().length) {\r\n\t\t\t\t\t<div class=\"aril-trace-drawer__state\">\r\n\t\t\t\t\t\t<i class=\"pi pi-inbox\"></i>\r\n\t\t\t\t\t\t<p>{{ t('traceDrawer.empty') }}</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\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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"}
|
|
1
|
+
{"version":3,"file":"aril-ui-business-trace-drawer.mjs","sources":["../../projects/aril/ui-business/trace-drawer/src/app-log.service.ts","../../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 { AppLogRefValues, AppLogSearchRequest, AppLogSearchResponse } from './interfaces';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AppLogService extends RestClient {\r\n\toverride states: ServiceCallStateMap<AppLogService> = {};\r\n\r\n\t@ServiceCall(HTTPMethods.POST, ProxyTypes.ClientSide, 'application-logs/filter', {}, Apps.MW)\r\n\tsearchByTraceId(req: AppLogSearchRequest): Observable<ServiceResponse<AppLogSearchResponse>> {\r\n\t\treturn new Observable<ServiceResponse<AppLogSearchResponse>>();\r\n\t}\r\n\r\n\t@ServiceCall(HTTPMethods.GETBYPARAMS, ProxyTypes.ClientSide, 'application-logs/ref-values', {}, Apps.MW)\r\n\tgetRefValues(req: { traceId: string }): Observable<ServiceResponse<AppLogRefValues>> {\r\n\t\treturn new Observable<ServiceResponse<AppLogRefValues>>();\r\n\t}\r\n}\r\n","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, computed, effect, inject, input, signal } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\nimport { EMPTY, Subject, catchError, map, switchMap } from 'rxjs';\r\n\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\nimport { KeycloakService } from 'keycloak-angular';\r\nimport { MessageService } from 'primeng/api';\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 { AppLogService } from './app-log.service';\r\nimport { ApisixHit, AppLogItem, AppLogRefValues } 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, TooltipModule, BadgeComponent, ButtonComponent],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TraceDrawerComponent {\r\n\tprivate readonly traceLogService = inject(TraceLogService);\r\n\tprivate readonly appLogService = inject(AppLogService);\r\n\tprivate readonly messageService = inject(MessageService);\r\n\tprivate readonly translocoService = inject(TranslocoService);\r\n\tprivate readonly keycloakService = inject(KeycloakService);\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>(10);\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 loadingMore = signal(false);\r\n\tprotected readonly errorMessage = signal<string | undefined>(undefined);\r\n\tprotected readonly apisixHits = signal<ApisixHit[]>([]);\r\n\tprotected readonly totalItem = signal(0);\r\n\tprotected readonly pageNumber = signal(1);\r\n\r\n\tprotected readonly appLogs = signal<AppLogItem[]>([]);\r\n\tprotected readonly appLogsLoadingMore = signal(false);\r\n\tprotected readonly appLogsTotal = signal(0);\r\n\tprotected readonly appLogsPage = signal(1);\r\n\r\n\tprotected readonly refValues = signal<AppLogRefValues>({});\r\n\tprotected readonly refValueEntries = computed(() =>\r\n\t\tObject.entries(this.refValues()).filter(([, values]) => values?.length)\r\n\t);\r\n\r\n\tprotected readonly hasMore = computed(() => this.apisixHits().length < this.totalItem());\r\n\tprotected readonly appLogsHasMore = computed(() => this.appLogs().length < this.appLogsTotal());\r\n\r\n\tprivate readonly request = new Subject<{ traceId: string; pageNumber: number; append: boolean }>();\r\n\tprivate readonly appLogsRequest = new Subject<{ traceId: string; pageNumber: number; append: boolean }>();\r\n\tprivate readonly refValuesRequest = new Subject<string>();\r\n\tprivate readonly response = toSignal(\r\n\t\tthis.request.pipe(\r\n\t\t\tswitchMap((req) =>\r\n\t\t\t\tthis.traceLogService\r\n\t\t\t\t\t.searchByTraceId({\r\n\t\t\t\t\t\ttraceId: req.traceId,\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: req.pageNumber }\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.pipe(\r\n\t\t\t\t\t\tmap((resp) => ({ resp, append: req.append })),\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\tthis.loadingMore.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\tprivate readonly appLogsResponse = toSignal(\r\n\t\tthis.appLogsRequest.pipe(\r\n\t\t\tswitchMap((req) =>\r\n\t\t\t\tthis.appLogService\r\n\t\t\t\t\t.searchByTraceId({\r\n\t\t\t\t\t\ttraceId: req.traceId,\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: req.pageNumber }\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.pipe(\r\n\t\t\t\t\t\tmap((resp) => ({ resp, append: req.append })),\r\n\t\t\t\t\t\tcatchError(() => {\r\n\t\t\t\t\t\t\tthis.appLogsLoadingMore.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\tprivate readonly refValuesResponse = toSignal(\r\n\t\tthis.refValuesRequest.pipe(\r\n\t\t\tswitchMap((traceId) =>\r\n\t\t\t\tthis.appLogService.getRefValues({ traceId }).pipe(\r\n\t\t\t\t\tcatchError(() => EMPTY)\r\n\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 wrapped = this.response();\r\n\t\t\t\tif (!wrapped) return;\r\n\t\t\t\tconst result = wrapped.resp.response?.result ?? [];\r\n\t\t\t\tconst total = wrapped.resp.response?.resultInfo?.totalItem ?? 0;\r\n\t\t\t\tthis.apisixHits.update((prev) => (wrapped.append ? [...prev, ...result] : result));\r\n\t\t\t\tthis.totalItem.set(total);\r\n\t\t\t\tthis.loading.set(false);\r\n\t\t\t\tthis.loadingMore.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\r\n\t\teffect(\r\n\t\t\t() => {\r\n\t\t\t\tconst wrapped = this.appLogsResponse();\r\n\t\t\t\tif (!wrapped) return;\r\n\t\t\t\tconst result = wrapped.resp.response?.result ?? [];\r\n\t\t\t\tconst total = wrapped.resp.response?.resultInfo?.totalItem ?? 0;\r\n\t\t\t\tthis.appLogs.update((prev) => (wrapped.append ? [...prev, ...result] : result));\r\n\t\t\t\tthis.appLogsTotal.set(total);\r\n\t\t\t\tthis.appLogsLoadingMore.set(false);\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 wrapped = this.refValuesResponse();\r\n\t\t\t\tif (!wrapped) return;\r\n\t\t\t\tthis.refValues.set(wrapped.response ?? {});\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\t}\r\n\r\n\tprotected loadMore(): void {\r\n\t\tconst id = this.traceId();\r\n\t\tif (!id || this.loadingMore() || !this.hasMore()) return;\r\n\t\tconst next = this.pageNumber() + 1;\r\n\t\tthis.pageNumber.set(next);\r\n\t\tthis.loadingMore.set(true);\r\n\t\tthis.request.next({ traceId: id, pageNumber: next, append: true });\r\n\t}\r\n\r\n\tprotected loadMoreAppLogs(): void {\r\n\t\tconst id = this.traceId();\r\n\t\tif (!id || this.appLogsLoadingMore() || !this.appLogsHasMore()) return;\r\n\t\tconst next = this.appLogsPage() + 1;\r\n\t\tthis.appLogsPage.set(next);\r\n\t\tthis.appLogsLoadingMore.set(true);\r\n\t\tthis.appLogsRequest.next({ traceId: id, pageNumber: next, append: true });\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\tprotected shareLink(): void {\r\n\t\tconst id = this.traceId();\r\n\t\tif (!id) return;\r\n\t\tconst base = window.location.href.split('?')[0];\r\n\t\tconst url = `${base}?traceId=${encodeURIComponent(id)}`;\r\n\t\tnavigator.clipboard.writeText(url).then(() => {\r\n\t\t\tthis.messageService.add({\r\n\t\t\t\tseverity: 'success',\r\n\t\t\t\tsummary: this.translocoService.translate('traceDrawer.linkCopied'),\r\n\t\t\t\tkey: 'toast-root'\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tprotected async copyAsCurl(hit: ApisixHit): Promise<void> {\r\n\t\tconst token = await this.keycloakService.getToken().catch(() => '');\r\n\t\tconst cmd = this.buildCurl(hit, token);\r\n\t\tawait navigator.clipboard.writeText(cmd);\r\n\t\tthis.messageService.add({\r\n\t\t\tseverity: 'success',\r\n\t\t\tsummary: this.translocoService.translate('traceDrawer.curlCopied'),\r\n\t\t\tkey: 'toast-root'\r\n\t\t});\r\n\t}\r\n\r\n\tprivate buildCurl(hit: ApisixHit, token: string): string {\r\n\t\tconst method = (hit.requestMethod ?? 'GET').toUpperCase();\r\n\t\tconst host = hit.upstreamHost ? hit.upstreamHost.replace(/\\/+$/, '') : '';\r\n\t\tconst uri = hit.requestUri ?? '';\r\n\t\tconst url = host ? (host.startsWith('http') ? `${host}${uri}` : `https://${host}${uri}`) : uri;\r\n\t\tconst escape = (s: string) => s.replace(/'/g, `'\\\\''`);\r\n\t\tconst lines = [`curl -X ${method} '${escape(url)}'`];\r\n\t\tif (token) lines.push(`-H 'Authorization: Bearer ${escape(token)}'`);\r\n\t\tconst body = hit.requestBody?.trim();\r\n\t\tif (body) {\r\n\t\t\tconst isJson = (body.startsWith('{') && body.endsWith('}')) || (body.startsWith('[') && body.endsWith(']'));\r\n\t\t\tif (isJson) lines.push(`-H 'Content-Type: application/json'`);\r\n\t\t\tlines.push(`-d '${escape(body)}'`);\r\n\t\t}\r\n\t\treturn lines.join(' \\\\\\n ');\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.totalItem.set(0);\r\n\t\tthis.pageNumber.set(1);\r\n\t\tthis.appLogs.set([]);\r\n\t\tthis.appLogsTotal.set(0);\r\n\t\tthis.appLogsPage.set(1);\r\n\t\tthis.refValues.set({});\r\n\t\tthis.request.next({ traceId, pageNumber: 1, append: false });\r\n\t\tthis.appLogsRequest.next({ traceId, pageNumber: 1, append: false });\r\n\t\tthis.refValuesRequest.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 levelSeverity(level: string | undefined): Severity {\r\n\t\tswitch ((level ?? '').toUpperCase()) {\r\n\t\t\tcase 'ERROR':\r\n\t\t\tcase 'FATAL':\r\n\t\t\t\treturn 'danger';\r\n\t\t\tcase 'WARN':\r\n\t\t\tcase 'WARNING':\r\n\t\t\t\treturn 'warning';\r\n\t\t\tcase 'INFO':\r\n\t\t\t\treturn 'info';\r\n\t\t\tcase 'DEBUG':\r\n\t\t\tcase 'TRACE':\r\n\t\t\t\treturn 'secondary';\r\n\t\t\tdefault:\r\n\t\t\t\treturn 'secondary';\r\n\t\t}\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\">{{ traceId() }}</code>\r\n\t\t\t\t<i\r\n\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\tclass=\"pi pi-share-alt aril-trace-drawer__share\"\r\n\t\t\t\t\t[pTooltip]=\"t('traceDrawer.shareLink')\"\r\n\t\t\t\t\ttooltipPosition=\"bottom\"\r\n\t\t\t\t\t(click)=\"shareLink()\"></i>\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 [label]=\"t('traceDrawer.retry')\" icon=\"REFRESH\" color=\"primary\" (clickEvent)=\"retry()\" />\r\n\t\t\t\t</div>\r\n\t\t\t} @else {\r\n\t\t\t\t@if (refValueEntries().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-tags\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.refValuesHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"refValueEntries().length.toString()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t<div class=\"ref-values\">\r\n\t\t\t\t\t\t\t@for (entry of refValueEntries(); track entry[0]) {\r\n\t\t\t\t\t\t\t\t<div class=\"ref-values__row\">\r\n\t\t\t\t\t\t\t\t\t<span class=\"ref-values__key\">{{ entry[0] }}</span>\r\n\t\t\t\t\t\t\t\t\t<div class=\"ref-values__chips\">\r\n\t\t\t\t\t\t\t\t\t\t@for (val of entry[1]; track val) {\r\n\t\t\t\t\t\t\t\t\t\t\t<code class=\"ref-values__chip\">{{ val }}</code>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\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</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (apisixHits().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-globe\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.apisixHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"apisixHits().length + ' / ' + totalItem()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t@for (hit of apisixHits(); track hit.id) {\r\n\t\t\t\t\t\t\t<details class=\"trace-row trace-row--{{ statusSeverity(hit.status) }}\">\r\n\t\t\t\t\t\t\t\t<summary class=\"trace-row__summary\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right trace-row__chevron\"></i>\r\n\t\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\t<span class=\"trace-row__tag\">{{ hit.requestMethod }}</span>\r\n\t\t\t\t\t\t\t\t\t<span class=\"trace-row__main\">{{ hit.requestUri }}</span>\r\n\t\t\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t\t\t[value]=\"formatDuration(hit.responseTime)\"\r\n\t\t\t\t\t\t\t\t\t\t[severity]=\"durationSeverity(hit.responseTime)\" />\r\n\t\t\t\t\t\t\t\t\t@if (hit.timestamp) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__time\">{{ formatTimestamp(hit.timestamp) }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-code trace-row__action\"\r\n\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('traceDrawer.copyCurl')\"\r\n\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"left\"\r\n\t\t\t\t\t\t\t\t\t\t(click)=\"$event.preventDefault(); $event.stopPropagation(); copyAsCurl(hit)\"></i>\r\n\t\t\t\t\t\t\t\t</summary>\r\n\t\t\t\t\t\t\t\t<div class=\"trace-row__body\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.routeName) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.route') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.routeName }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.sourceApp || hit.sourceModule) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\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\t\t<span>{{ hit.sourceApp }}{{ hit.sourceModule ? ' / ' + hit.sourceModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.targetApp || hit.targetModule) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\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\t\t<span>{{ hit.targetApp }}{{ hit.targetModule ? ' / ' + hit.targetModule : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.upstreamHost) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.upstream') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.upstreamHost }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.username) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.user') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ hit.username }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.requestSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.requestSize') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ formatBytes(hit.requestSize) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t@if (hit.responseSize !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.responseSize') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ formatBytes(hit.responseSize) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t@if (hit.requestBody) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\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\t\t@if (tryParseJson(hit.requestBody); as parsed) {\r\n\t\t\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\t\t} @else {\r\n\t\t\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\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (hit.responseBody) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\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\t\t@if (tryParseJson(hit.responseBody); as parsed) {\r\n\t\t\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\t\t} @else {\r\n\t\t\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\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (hasMore()) {\r\n\t\t\t\t\t\t\t<div class=\"aril-trace-drawer__load-more\">\r\n\t\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\t\t[label]=\"t('traceDrawer.loadMore')\"\r\n\t\t\t\t\t\t\t\t\ticon=\"CHEVRON_DOWN\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[loading]=\"loadingMore()\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"loadingMore()\"\r\n\t\t\t\t\t\t\t\t\t(clickEvent)=\"loadMore()\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (appLogs().length) {\r\n\t\t\t\t\t<section class=\"aril-trace-drawer__section\">\r\n\t\t\t\t\t\t<h3 class=\"aril-trace-drawer__section-title\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-list\"></i>\r\n\t\t\t\t\t\t\t{{ t('traceDrawer.appLogsHeader') }}\r\n\t\t\t\t\t\t\t<aril-badge [value]=\"appLogs().length + ' / ' + appLogsTotal()\" [rounded]=\"true\" />\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t@for (log of appLogs(); track log.id) {\r\n\t\t\t\t\t\t\t<details class=\"trace-row trace-row--{{ levelSeverity(log.level) }}\">\r\n\t\t\t\t\t\t\t\t<summary class=\"trace-row__summary\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right trace-row__chevron\"></i>\r\n\t\t\t\t\t\t\t\t\t@if (log.level) {\r\n\t\t\t\t\t\t\t\t\t\t<aril-badge [value]=\"log.level\" [severity]=\"levelSeverity(log.level)\" />\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.module) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__tag\">{{ log.module }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<span class=\"trace-row__main\">{{ log.message }}</span>\r\n\t\t\t\t\t\t\t\t\t@if (log.timestamp) {\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"trace-row__time\">{{ formatTimestamp(log.timestamp) }}</span>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</summary>\r\n\t\t\t\t\t\t\t\t<div class=\"trace-row__body\">\r\n\t\t\t\t\t\t\t\t\t@if (log.message) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__message\">{{ log.message }}</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.username || log.app) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t@if (log.app) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\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\t\t\t><span>{{ log.app }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t@if (log.username) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ t('traceDrawer.user') }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ log.username }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.errorDetail) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\" open>\r\n\t\t\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.appLogErrorDetail') }}</summary>\r\n\t\t\t\t\t\t\t\t\t\t\t<pre>{{ log.errorDetail }}</pre>\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (log.referenceFields?.length) {\r\n\t\t\t\t\t\t\t\t\t\t<details class=\"trace-row__sub\">\r\n\t\t\t\t\t\t\t\t\t\t\t<summary>{{ t('traceDrawer.appLogRefFields') }}</summary>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"trace-row__meta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t@for (rf of log.referenceFields; track rf.field) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"meta-label\">{{ rf.field }}</span\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t><span>{{ rf.value }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</details>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (appLogsHasMore()) {\r\n\t\t\t\t\t\t\t<div class=\"aril-trace-drawer__load-more\">\r\n\t\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\t\t[label]=\"t('traceDrawer.loadMore')\"\r\n\t\t\t\t\t\t\t\t\ticon=\"CHEVRON_DOWN\"\r\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[loading]=\"appLogsLoadingMore()\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"appLogsLoadingMore()\"\r\n\t\t\t\t\t\t\t\t\t(clickEvent)=\"loadMoreAppLogs()\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</section>\r\n\t\t\t\t}\r\n\t\t\t\t@if (!apisixHits().length && !appLogs().length && !refValueEntries().length) {\r\n\t\t\t\t\t<div class=\"aril-trace-drawer__state\">\r\n\t\t\t\t\t\t<i class=\"pi pi-inbox\"></i>\r\n\t\t\t\t\t\t<p>{{ t('traceDrawer.empty') }}</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\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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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, EventEmitter, computed,
|
|
2
|
+
import { input, EventEmitter, computed, Output, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
class TraceIdComponent {
|
|
5
5
|
constructor() {
|
|
@@ -24,10 +24,10 @@ class TraceIdComponent {
|
|
|
24
24
|
return;
|
|
25
25
|
this.clickEvent.emit(this.traceId());
|
|
26
26
|
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraceIdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", 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
29
|
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraceIdComponent, decorators: [{
|
|
31
31
|
type: Component,
|
|
32
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
33
|
}], propDecorators: { clickEvent: [{
|
|
@@ -1 +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
|
|
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;QAClC,IAAA,CAAA,KAAK,GAAG,KAAK,EAAsB;AACnC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,YAAY,CAAC;AACtC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,kBAAkB,CAAC;AAC7C,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAO,IAAI,CAAC;AACxB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAU;AAE9B,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC9C,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE;AAC3B,YAAA,IAAI,MAAM;AAAE,gBAAA,OAAO,MAAM;YACzB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;YAC/B,OAAO,EAAE,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE;AAClD,QAAA,CAAC,CAAC;AAOF,IAAA;AALU,IAAA,OAAO,CAAC,KAAiB,EAAA;QAClC,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACrC;+GArBY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,42BCZ7B,gbAYA,EAAA,MAAA,EAAA,CAAA,4vBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDAa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;AACG,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,eAAe,EAAA,OAAA,EAGhB,EAAE,EAAA,eAAA,EACM,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,gbAAA,EAAA,MAAA,EAAA,CAAA,4vBAAA,CAAA,EAAA;8BAUrC,UAAU,EAAA,CAAA;sBAAnB;;;AEpBF;;AAEG;;;;"}
|