@pb33f/cowboy-components 0.6.7 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/dist/assets/equalizer.worker-DyLD5JTU.js +1 -0
  2. package/dist/assets/search-problems.worker-BAF8L2rX.js +1 -0
  3. package/dist/components/changelog/changelog.js +1 -1
  4. package/dist/components/charts/beefy-chart.d.ts +21 -0
  5. package/dist/components/charts/beefy-chart.js +159 -0
  6. package/dist/components/charts/chart-colors.d.ts +27 -0
  7. package/dist/components/charts/chart-colors.js +76 -0
  8. package/dist/components/charts/config.d.ts +15 -0
  9. package/dist/components/charts/config.js +35 -0
  10. package/dist/components/charts/doughnut-chart.d.ts +22 -0
  11. package/dist/components/charts/doughnut-chart.js +128 -0
  12. package/dist/components/editor/editor.d.ts +9 -3
  13. package/dist/components/editor/editor.js +115 -60
  14. package/dist/components/editor/init.d.ts +0 -0
  15. package/dist/components/editor/init.js +28 -0
  16. package/dist/components/editor/schemas/openapi3.json +1651 -0
  17. package/dist/components/editor/schemas/openapi31.json +1449 -0
  18. package/dist/components/model-icon/model-icon.js +3 -0
  19. package/dist/components/model-renderer/callback.js +2 -1
  20. package/dist/components/model-renderer/change.css.d.ts +2 -0
  21. package/dist/components/model-renderer/change.css.js +254 -0
  22. package/dist/components/model-renderer/changes.d.ts +19 -0
  23. package/dist/components/model-renderer/changes.js +306 -0
  24. package/dist/components/model-renderer/clickable-ref.d.ts +10 -6
  25. package/dist/components/model-renderer/clickable-ref.js +9 -0
  26. package/dist/components/model-renderer/components.js +1 -0
  27. package/dist/components/model-renderer/contact.js +2 -1
  28. package/dist/components/model-renderer/document.js +11 -9
  29. package/dist/components/model-renderer/encoding.js +1 -0
  30. package/dist/components/model-renderer/example.js +1 -0
  31. package/dist/components/model-renderer/external-docs.js +1 -0
  32. package/dist/components/model-renderer/has-changes.d.ts +8 -0
  33. package/dist/components/model-renderer/has-changes.js +50 -0
  34. package/dist/components/model-renderer/header.js +1 -0
  35. package/dist/components/model-renderer/info.js +3 -1
  36. package/dist/components/model-renderer/license.js +3 -3
  37. package/dist/components/model-renderer/link.js +1 -1
  38. package/dist/components/model-renderer/media-type.js +1 -1
  39. package/dist/components/model-renderer/oauth-flows.js +2 -1
  40. package/dist/components/model-renderer/operation.js +2 -1
  41. package/dist/components/model-renderer/parameter.js +1 -0
  42. package/dist/components/model-renderer/path-item.js +1 -0
  43. package/dist/components/model-renderer/paths.js +1 -0
  44. package/dist/components/model-renderer/rendered-node.js +20 -20
  45. package/dist/components/model-renderer/rendered-property.css.js +4 -0
  46. package/dist/components/model-renderer/rendered-property.js +5 -2
  47. package/dist/components/model-renderer/request-body.js +1 -1
  48. package/dist/components/model-renderer/response.js +1 -1
  49. package/dist/components/model-renderer/schema.js +57 -54
  50. package/dist/components/model-renderer/security-scheme.js +1 -1
  51. package/dist/components/model-renderer/server.js +1 -0
  52. package/dist/components/model-renderer/tag.js +3 -1
  53. package/dist/components/model-tree/tree.d.ts +7 -4
  54. package/dist/components/model-tree/tree.js +54 -25
  55. package/dist/components/paginator/paginator.css.js +5 -2
  56. package/dist/components/problem-list/problem-mainview.js +8 -1
  57. package/dist/components/rodeo/npm/download-statistic.d.ts +41 -0
  58. package/dist/components/rodeo/npm/download-statistic.js +634 -0
  59. package/dist/components/rodeo/rodeo-nav.js +1 -0
  60. package/dist/components/rodeo/rodeo.d.ts +1 -0
  61. package/dist/components/rodeo/rodeo.js +9 -2
  62. package/dist/components/rodeo/statistic.css.js +17 -0
  63. package/dist/components/rodeo/statistic.d.ts +4 -2
  64. package/dist/components/rodeo/statistic.js +15 -4
  65. package/dist/components/the-doctor/settings.css.d.ts +2 -0
  66. package/dist/components/the-doctor/settings.css.js +28 -0
  67. package/dist/components/the-doctor/settings.d.ts +13 -0
  68. package/dist/components/the-doctor/settings.js +83 -2
  69. package/dist/components/the-doctor/the-doctor.css.js +80 -47
  70. package/dist/components/the-doctor/the-doctor.d.ts +24 -6
  71. package/dist/components/the-doctor/the-doctor.js +344 -109
  72. package/dist/components/the-doctor/upload-archive.js +1 -1
  73. package/dist/components/theme-switcher/theme-switcher.d.ts +1 -1
  74. package/dist/components/theme-switcher/theme-switcher.js +5 -2
  75. package/dist/components/time-vortex/change-list-item.css.d.ts +2 -0
  76. package/dist/components/time-vortex/change-list-item.css.js +96 -0
  77. package/dist/components/time-vortex/change-list-item.d.ts +10 -0
  78. package/dist/components/time-vortex/change-list-item.js +58 -0
  79. package/dist/components/time-vortex/history-picker.css.d.ts +2 -0
  80. package/dist/components/time-vortex/history-picker.css.js +90 -0
  81. package/dist/components/time-vortex/history-picker.d.ts +18 -0
  82. package/dist/components/time-vortex/history-picker.js +143 -0
  83. package/dist/components/time-vortex/spec-summary-timeline-item.css.d.ts +2 -0
  84. package/dist/components/time-vortex/spec-summary-timeline-item.css.js +144 -0
  85. package/dist/components/time-vortex/spec-summary-timeline-item.d.ts +11 -0
  86. package/dist/components/time-vortex/spec-summary-timeline-item.js +153 -0
  87. package/dist/components/time-vortex/tardis-control.css.d.ts +2 -0
  88. package/dist/components/time-vortex/tardis-control.css.js +103 -0
  89. package/dist/components/time-vortex/tardis-control.d.ts +32 -0
  90. package/dist/components/time-vortex/tardis-control.js +286 -0
  91. package/dist/components/time-vortex/time-vortex.d.ts +17 -0
  92. package/dist/components/time-vortex/time-vortex.js +75 -0
  93. package/dist/components/time-vortex/timeline-view.css.d.ts +2 -0
  94. package/dist/components/time-vortex/timeline-view.css.js +28 -0
  95. package/dist/components/time-vortex/timeline-view.d.ts +32 -0
  96. package/dist/components/time-vortex/timeline-view.js +233 -0
  97. package/dist/components/timeline/timeline-item.css.js +95 -48
  98. package/dist/components/timeline/timeline-item.d.ts +1 -0
  99. package/dist/components/timeline/timeline-item.js +20 -1
  100. package/dist/components/timeline/timeline.css.js +46 -40
  101. package/dist/components/timeline/timeline.d.ts +1 -0
  102. package/dist/components/timeline/timeline.js +9 -5
  103. package/dist/components/toast/toast-component.css.js +4 -0
  104. package/dist/components/visualizer/equalizer.d.ts +2 -0
  105. package/dist/components/visualizer/equalizer.js +13 -5
  106. package/dist/components/visualizer/explorer.d.ts +5 -0
  107. package/dist/components/visualizer/explorer.js +41 -37
  108. package/dist/components/visualizer/foreign-object.js +3 -0
  109. package/dist/components/visualizer/nodes/callback.js +3 -1
  110. package/dist/components/visualizer/nodes/changes.css.d.ts +2 -0
  111. package/dist/components/visualizer/nodes/changes.css.js +33 -0
  112. package/dist/components/visualizer/nodes/components.js +3 -1
  113. package/dist/components/visualizer/nodes/contact.js +3 -1
  114. package/dist/components/visualizer/nodes/document.js +1 -0
  115. package/dist/components/visualizer/nodes/graph-node.d.ts +8 -7
  116. package/dist/components/visualizer/nodes/graph-node.js +55 -1
  117. package/dist/components/visualizer/nodes/header.js +3 -1
  118. package/dist/components/visualizer/nodes/info.js +3 -1
  119. package/dist/components/visualizer/nodes/license.js +8 -1
  120. package/dist/components/visualizer/nodes/link.js +3 -1
  121. package/dist/components/visualizer/nodes/media-type.js +3 -1
  122. package/dist/components/visualizer/nodes/operation.js +4 -1
  123. package/dist/components/visualizer/nodes/parameter.js +3 -1
  124. package/dist/components/visualizer/nodes/path-item.js +3 -1
  125. package/dist/components/visualizer/nodes/request-body.js +3 -1
  126. package/dist/components/visualizer/nodes/response.js +3 -1
  127. package/dist/components/visualizer/nodes/schema.js +3 -1
  128. package/dist/components/visualizer/nodes/security-scheme.js +3 -1
  129. package/dist/components/visualizer/nodes/server.js +3 -1
  130. package/dist/components/visualizer/nodes/tag.js +3 -1
  131. package/dist/components/visualizer/nodes/xml.js +3 -1
  132. package/dist/components/visualizer/orientation-controls.d.ts +1 -0
  133. package/dist/components/visualizer/orientation-controls.js +31 -16
  134. package/dist/components/visualizer/search.js +4 -3
  135. package/dist/components/warning-stripe/warning-stripe.d.ts +20 -0
  136. package/dist/components/warning-stripe/warning-stripe.js +124 -0
  137. package/dist/cowboy-components.umd.cjs +3840 -2216
  138. package/dist/css/panels.css.d.ts +2 -0
  139. package/dist/css/panels.css.js +44 -0
  140. package/dist/css/pb33f-theme.css +8 -1
  141. package/dist/css/scrollbar.css.d.ts +2 -0
  142. package/dist/css/scrollbar.css.js +16 -0
  143. package/dist/css/tabs.css.js +1 -1
  144. package/dist/events/doctor.d.ts +15 -1
  145. package/dist/events/doctor.js +5 -0
  146. package/dist/model/api-response.d.ts +6 -0
  147. package/dist/model/api-response.js +2 -0
  148. package/dist/model/chart-data.d.ts +15 -0
  149. package/dist/model/chart-data.js +1 -0
  150. package/dist/model/diagnostic-report.d.ts +5 -0
  151. package/dist/model/diagnostic-report.js +3 -0
  152. package/dist/model/document.d.ts +1 -0
  153. package/dist/model/graph.d.ts +26 -0
  154. package/dist/model/media-type.d.ts +2 -0
  155. package/dist/model/media-type.js +7 -0
  156. package/dist/model/node_type.d.ts +2 -0
  157. package/dist/model/node_type.js +2 -0
  158. package/dist/model/settings.d.ts +5 -0
  159. package/dist/model/settings.js +1 -0
  160. package/dist/model/timeline.d.ts +33 -0
  161. package/dist/model/timeline.js +1 -0
  162. package/dist/monacoeditorwork/css.worker.bundle.js +53460 -0
  163. package/dist/monacoeditorwork/editor.worker.bundle.js +13517 -0
  164. package/dist/monacoeditorwork/html.worker.bundle.js +29660 -0
  165. package/dist/monacoeditorwork/json.worker.bundle.js +21318 -0
  166. package/dist/monacoeditorwork/yaml.worker..bundle.js +37321 -0
  167. package/dist/services/color-service.d.ts +1 -0
  168. package/dist/services/color-service.js +13 -0
  169. package/dist/services/linting-service.d.ts +1 -3
  170. package/dist/services/linting-service.js +21 -29
  171. package/dist/services/model-service.d.ts +1 -1
  172. package/dist/services/model-service.js +35 -8
  173. package/dist/services/rodeo-service.d.ts +6 -0
  174. package/dist/services/rodeo-service.js +134 -0
  175. package/dist/services/timeline-service.d.ts +8 -0
  176. package/dist/services/timeline-service.js +85 -0
  177. package/dist/style.css +1 -1
  178. package/dist/workers/equalizer.worker.js +1 -1
  179. package/dist/workers/search-problems.worker.js +1 -1
  180. package/package.json +6 -1
  181. package/dist/assets/css.worker-Byh--afc.js +0 -84
  182. package/dist/assets/editor.worker-CYC0jP-p.js +0 -12
  183. package/dist/assets/equalizer.worker-CdIiiqfH.js +0 -1
  184. package/dist/assets/html.worker-DArWg-Dy.js +0 -461
  185. package/dist/assets/json.worker-heCfXoJw.js +0 -49
  186. package/dist/assets/search-problems.worker-VJi4P9Gj.js +0 -1
@@ -0,0 +1,153 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { customElement, property, } from "lit/decorators.js";
8
+ import { html, LitElement } from "lit";
9
+ import specSummaryTimelineItemCss from "./spec-summary-timeline-item.css";
10
+ import tooltipCss from "../../css/tooltip.css";
11
+ let SpecSummaryTimelineItem = class SpecSummaryTimelineItem extends LitElement {
12
+ constructor() {
13
+ super();
14
+ this.large = false;
15
+ this.selected = false;
16
+ }
17
+ render() {
18
+ let empty = html ``;
19
+ let breakingChanges = html `
20
+ <sl-icon name="heartbreak-fill" class="empty"></sl-icon>`;
21
+ let breaking = false;
22
+ if (this.specSummary.breakingChanges && this.specSummary.breakingChanges > 0) {
23
+ breakingChanges = html `
24
+ <strong>${this.specSummary.breakingChanges}</strong>
25
+ <sl-icon name="heartbreak-fill" class="breaking"></sl-icon>`;
26
+ breaking = true;
27
+ }
28
+ let totalChanges = html `
29
+ <sl-icon name="stack" class="empty"></sl-icon>`;
30
+ if (this.specSummary.totalChanges && this.specSummary.totalChanges > 0) {
31
+ totalChanges = html `
32
+ ${this.specSummary.totalChanges}
33
+ <sl-icon name="stack"></sl-icon>`;
34
+ }
35
+ let additions = html `
36
+ <sl-icon name="plus-lg" class="empty"></sl-icon>`;
37
+ if (this.specSummary.additions && this.specSummary.additions > 0) {
38
+ additions = html `
39
+ ${this.specSummary.additions}
40
+ <sl-icon name="plus-lg"></sl-icon>`;
41
+ }
42
+ let modifications = html `
43
+ <sl-icon name="pencil" class="empty"></sl-icon>`;
44
+ if (this.specSummary.modifications && this.specSummary.modifications > 0) {
45
+ modifications = html `
46
+ ${this.specSummary.modifications}
47
+ <sl-icon name="pencil"></sl-icon>`;
48
+ }
49
+ let removals = html `
50
+ <sl-icon name="x-lg" class="empty"></sl-icon>`;
51
+ if (this.specSummary.removals && this.specSummary.removals > 0) {
52
+ removals = html `
53
+ ${this.specSummary.removals}
54
+ <sl-icon name="x-lg"></sl-icon>`;
55
+ }
56
+ let diagnosis = html `
57
+ <sl-icon name="capsule" class="empty"></sl-icon>`;
58
+ if (this.specSummary.diagnosisScore && this.specSummary.diagnosisScore > 0) {
59
+ diagnosis = html `
60
+ ${this.specSummary.diagnosisScore}
61
+ <sl-icon name="capsule"></sl-icon>
62
+ ${this.specSummary.wentUp ? html `<sl-icon name="arrow-up" class="arrow ${this.large ? 'large' : ''} up"></sl-icon>` : ''}
63
+ ${this.specSummary.wentDown ? html `<sl-icon name="arrow-down" class="arrow ${this.large ? 'large' : ''} down"></sl-icon>` : ''}
64
+ `;
65
+ }
66
+ let diagnosisMessage = `diagnosis score did not change`;
67
+ if (this.specSummary.wentUp) {
68
+ diagnosisMessage = `diagnosis score went up by ${this.specSummary.scoreVariance} points`;
69
+ }
70
+ if (this.specSummary.wentDown) {
71
+ diagnosisMessage = `diagnosis score went down by ${this.specSummary.scoreVariance} points`;
72
+ }
73
+ return html `
74
+ <div class="timeline-item ${this.large ? 'justify-center' : ''} ${this.selected ? 'selected' : ''}">
75
+ <sl-tooltip content="breaking changes made" placement="top">
76
+ <div class="score ${breaking ? 'breaking-score' : ''} ${this.large ? 'large' : ''} ${this.additionalWidth(this.specSummary.breakingChanges)}">
77
+ ${breakingChanges}
78
+ </div>
79
+ </sl-tooltip>
80
+ <sl-tooltip content="total changes made" placement="top">
81
+ <div class="score ${this.large ? 'large' : ''} ${this.additionalWidth(this.specSummary.totalChanges)}">
82
+ ${totalChanges}
83
+ </div>
84
+ </sl-tooltip>
85
+ <sl-tooltip content="new additions made" placement="top">
86
+ <div class="score ${this.large ? 'large' : ''} ${this.additionalWidth(this.specSummary.additions)}">
87
+ ${additions}
88
+ </div>
89
+ </sl-tooltip>
90
+ <sl-tooltip content="property modifications made" placement="top">
91
+ <div class="score ${this.large ? 'large' : ''} ${this.additionalWidth(this.specSummary.modifications)}">
92
+ ${modifications}
93
+ </div>
94
+ </sl-tooltip>
95
+ <sl-tooltip content="properties removed" placement="top">
96
+ <div class="score ${this.large ? 'large' : ''} ${this.additionalWidth(this.specSummary.removals)}">
97
+ ${removals}
98
+ </div>
99
+ </sl-tooltip>
100
+ <sl-tooltip content="${diagnosisMessage}" placement="top">
101
+ <div class="score ${this.large ? 'large' : ''} ${this.additionalWidth(this.specSummary.diagnosisScore)}">
102
+ ${diagnosis}
103
+ </div>
104
+ </sl-tooltip>
105
+
106
+ </div>
107
+ `;
108
+ }
109
+ additionalWidth(v) {
110
+ if (!v) {
111
+ return 'gip';
112
+ }
113
+ if (v >= 100000) {
114
+ if (this.large) {
115
+ return 'sext-large';
116
+ }
117
+ return 'sext';
118
+ }
119
+ if (v >= 10000) {
120
+ if (this.large) {
121
+ return 'quint-large';
122
+ }
123
+ return 'quint';
124
+ }
125
+ if (v >= 1000) {
126
+ if (this.large) {
127
+ return 'quad-large';
128
+ }
129
+ return 'quad';
130
+ }
131
+ if (v >= 100) {
132
+ if (this.large) {
133
+ return 'triple-large';
134
+ }
135
+ return 'triple';
136
+ }
137
+ return 'no' + v;
138
+ }
139
+ };
140
+ SpecSummaryTimelineItem.styles = [specSummaryTimelineItemCss, tooltipCss];
141
+ __decorate([
142
+ property()
143
+ ], SpecSummaryTimelineItem.prototype, "specSummary", void 0);
144
+ __decorate([
145
+ property()
146
+ ], SpecSummaryTimelineItem.prototype, "large", void 0);
147
+ __decorate([
148
+ property()
149
+ ], SpecSummaryTimelineItem.prototype, "selected", void 0);
150
+ SpecSummaryTimelineItem = __decorate([
151
+ customElement("pb33f-spec-summary-timeline-item")
152
+ ], SpecSummaryTimelineItem);
153
+ export { SpecSummaryTimelineItem };
@@ -0,0 +1,2 @@
1
+ declare const _default: import("lit").CSSResult;
2
+ export default _default;
@@ -0,0 +1,103 @@
1
+ import { css } from "lit";
2
+ export default css `
3
+ :host {
4
+ --chart-color-primary: var(--primary-color);
5
+ --chart-color-error: var(--error-color);
6
+ --chart-color-secondary: var(--secondary-color);
7
+ --chart-color-third: var(--tertiary-color);
8
+ --chart-color-fourth: var(--terminal-text);
9
+ --chart-text-color: var(--font-color);
10
+ --chart-gridline-color: var(--font-color-sub3);
11
+ --chart-background-color: transparent;
12
+ }
13
+
14
+ .changes-container {
15
+
16
+ height: 100%;
17
+ }
18
+
19
+ .change-navigator {
20
+ display: flex;
21
+ flex-direction: row;
22
+ border-bottom: 1px solid var(--secondary-color-dimmer);
23
+ margin-bottom: 5px;
24
+ height: 100%;
25
+ }
26
+
27
+ .change-tree-container {
28
+
29
+ height: 100%;
30
+ width: 100%;
31
+ overflow-y: auto;
32
+ }
33
+
34
+
35
+
36
+ .change-list {
37
+ width: 100%;
38
+ height: 100%;
39
+ flex: 2;
40
+ }
41
+
42
+ em {
43
+ font-family: var(--font-stack-italic), sans-serif;
44
+ }
45
+
46
+ header {
47
+ border-bottom: 1px solid var(--secondary-color);
48
+ padding: 5px 5px 10px 10px;
49
+ }
50
+
51
+ strong {
52
+ color: var(--secondary-color);
53
+ font-family: var(--font-stack-bold), sans-serif;
54
+ }
55
+
56
+ .score {
57
+ height: 35px;
58
+ width: 45px;
59
+ font-size: 1.6rem;
60
+ text-align: center;
61
+ color: var(--font-color);
62
+ font-family: var(--font-stack-bold), sans-serif;
63
+ border: 1px solid var(--font-color-sub3);
64
+ padding: 5px;
65
+ margin-right: 5px;
66
+ position: relative;
67
+ }
68
+
69
+ .time-vortex {
70
+ width: 100%;
71
+ height: 100%;
72
+ position: relative;
73
+ padding-top: 10px;
74
+ }
75
+
76
+ .timeline-view {
77
+ overflow-y: auto;
78
+ height: calc(100vh - 130px);
79
+ }
80
+
81
+ .timeline-view::-webkit-scrollbar {
82
+ width: 8px;
83
+ }
84
+
85
+ .timeline-view::-webkit-scrollbar-track {
86
+ background-color: black;
87
+ }
88
+
89
+ .timeline-view::-webkit-scrollbar-thumb {
90
+ box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
91
+ background: var(--secondary-color-lowalpha);
92
+ padding: var(--global-padding);
93
+ }
94
+
95
+
96
+ .tardis-split-panel {
97
+ --min: 300px;
98
+ --max: calc(100vh - 400px);
99
+ height: calc(100vh - 160px);
100
+ }
101
+
102
+
103
+ `;
@@ -0,0 +1,32 @@
1
+ import { TemplateResult } from "lit";
2
+ import { GraphResponse } from "../../model/graph.js";
3
+ import { ChangeHistory, SpecSummary } from "../../model/timeline.js";
4
+ import { DoughnutChart } from "../charts/doughnut-chart.js";
5
+ import { ExplorerComponent } from "../visualizer/explorer.js";
6
+ import { Colorful } from "../charts/chart-colors.js";
7
+ import { TimelineView } from "./timeline-view.js";
8
+ import { NodeClickedEvent } from "../../events/doctor.js";
9
+ import '../charts/beefy-chart';
10
+ import '../charts/doughnut-chart.js';
11
+ import './change-list-item.js';
12
+ export declare class TardisControl extends Colorful {
13
+ static styles: import("lit").CSSResult[];
14
+ changeReport?: GraphResponse | null;
15
+ changeGraph?: GraphResponse;
16
+ history?: ChangeHistory;
17
+ chartOptions?: any;
18
+ changeDoughnut: DoughnutChart;
19
+ breakingDoughnut: DoughnutChart;
20
+ specSummary: SpecSummary | null;
21
+ explorer: ExplorerComponent;
22
+ timelineView: TimelineView;
23
+ constructor();
24
+ explorerNodeClicked(evt: CustomEvent<NodeClickedEvent>): void;
25
+ firstUpdated(): void;
26
+ fetchHistory(): void;
27
+ renderSummaryForMultiChange(): TemplateResult;
28
+ render(): TemplateResult<1>;
29
+ showSummaryOnly(): void;
30
+ set summary(summary: SpecSummary);
31
+ handleChange(resp: GraphResponse): void;
32
+ }
@@ -0,0 +1,286 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { customElement, query, state } from "lit/decorators.js";
8
+ import { html } from "lit";
9
+ import tardisControlCss from "./tardis-control.css";
10
+ import { TimelineService } from "../../services/timeline-service.js";
11
+ import { ChangesComponent } from "../model-renderer/changes.js";
12
+ import spinnerCss from "../../css/spinner.css.js";
13
+ import specSummaryTimelineItemCss from "./spec-summary-timeline-item.css.js";
14
+ import { SpecSummaryTimelineItem } from "./spec-summary-timeline-item.js";
15
+ import tabsCss from "../../css/tabs.css.js";
16
+ import { ExplorerComponent } from "../visualizer/explorer.js";
17
+ import { Colorful } from "../charts/chart-colors.js";
18
+ import { TimelineView } from "./timeline-view.js";
19
+ import panelsCss from "../../css/panels.css.js";
20
+ import scrollbarCss from "../../css/scrollbar.css.js";
21
+ import { ToastType } from "../../model/toast.js";
22
+ import { AddToast, ExplorerNodeClicked, LoadRenderedNodeIntoInspector } from "../../events/doctor.js";
23
+ import '../charts/beefy-chart';
24
+ import '../charts/doughnut-chart.js';
25
+ import './change-list-item.js';
26
+ let TardisControl = class TardisControl extends Colorful {
27
+ constructor() {
28
+ super();
29
+ this.explorer = new ExplorerComponent();
30
+ this.explorer.renderEqualizer = false;
31
+ this.explorer.equalizer.renderEqualizer = false;
32
+ this.timelineView = new TimelineView();
33
+ //@ts-ignore
34
+ this.addEventListener(ExplorerNodeClicked, this.explorerNodeClicked.bind(this));
35
+ }
36
+ explorerNodeClicked(evt) {
37
+ evt.stopPropagation();
38
+ // we only have a select number of nodes for this change, so instead of bubbling up to the doctor
39
+ if (this.changeReport) {
40
+ this.changeReport.nodesRendered.forEach((node) => {
41
+ if (node.id == evt.detail.nodeId) {
42
+ // load up this rendered node and send to the inspector panel for rendering.
43
+ this.dispatchEvent(new CustomEvent(LoadRenderedNodeIntoInspector, {
44
+ bubbles: true,
45
+ composed: true,
46
+ detail: {
47
+ renderedNode: node,
48
+ }
49
+ }));
50
+ this.explorer.activeNode = node;
51
+ this.explorer.buildLayout();
52
+ }
53
+ });
54
+ }
55
+ }
56
+ firstUpdated() {
57
+ super.firstUpdated();
58
+ this.fetchHistory();
59
+ }
60
+ fetchHistory() {
61
+ TimelineService.fetchHistory().then((history) => {
62
+ this.history = history;
63
+ if (history.changeData) {
64
+ this.timelineView.changeDatasets = history.changeData?.datasets;
65
+ this.timelineView.changeLabels = history.changeData?.labels;
66
+ }
67
+ if (history?.violationData) {
68
+ this.timelineView.violationDatasets = history.violationData?.datasets;
69
+ this.timelineView.violationLabels = history.violationData?.labels;
70
+ }
71
+ if (history.qualityData) {
72
+ this.timelineView.qualityDatasets = history.qualityData?.datasets;
73
+ this.timelineView.qualityLabels = history.qualityData?.labels;
74
+ }
75
+ this.timelineView.requestUpdate();
76
+ this.requestUpdate();
77
+ }).catch((e) => {
78
+ this.dispatchEvent(new CustomEvent(AddToast, {
79
+ bubbles: true,
80
+ composed: true,
81
+ detail: {
82
+ toast: {
83
+ type: ToastType.ERROR,
84
+ id: "timeline-error",
85
+ body: e.detail,
86
+ title: "timeline error",
87
+ }
88
+ }
89
+ }));
90
+ });
91
+ }
92
+ renderSummaryForMultiChange() {
93
+ if (this.specSummary?.totalChanges <= 1) {
94
+ return html ``;
95
+ }
96
+ const labels = ['Modified', 'Added', 'Removed'];
97
+ const breakingLabels = ['Breaking', 'Non-Breaking'];
98
+ const dataSet = [
99
+ {
100
+ labels: labels,
101
+ data: [this.specSummary?.modifications, this.specSummary?.additions, this.specSummary?.removals]
102
+ }
103
+ ];
104
+ const breakingDataSet = [
105
+ {
106
+ labels: breakingLabels,
107
+ data: [this.specSummary?.breakingChanges, this.specSummary?.totalChanges]
108
+ }
109
+ ];
110
+ let breakingChart = html ``;
111
+ if (this.specSummary?.totalChanges > 1) {
112
+ breakingChart = html `
113
+ <pb33f-doughnut-chart id="breaking-doughnut" showLegend breakingChanges width=290 height=130
114
+ .datasets=${breakingDataSet} .labels=${breakingLabels}
115
+ style="padding-left: 10px; padding-top: 10px"></pb33f-doughnut-chart>`;
116
+ }
117
+ const timelineItem = new SpecSummaryTimelineItem();
118
+ if (this.specSummary) {
119
+ timelineItem.specSummary = this.specSummary;
120
+ timelineItem.large = true;
121
+ }
122
+ return html `
123
+
124
+ <div style="width:100%; padding: 10px; display: flex">
125
+ <pb33f-doughnut-chart id="change-doughnut" showLegend changesChart width=290 height=130
126
+ .datasets=${dataSet} .labels=${labels}
127
+ style="padding-left: 10px; padding-top: 10px"></pb33f-doughnut-chart>
128
+ ${breakingChart}
129
+ </div>
130
+ ${timelineItem}`;
131
+ }
132
+ render() {
133
+ if (!this.changeReport && !this.history) {
134
+ return html `
135
+ <div class="pb33f-loader">
136
+ <div class="spin"></div>
137
+ Waiting for changes to be made in the space-time continuum...<br/>
138
+ <br/>
139
+ <div style="padding-left: 38px;">(Make some changes / edits to the OpenAPI Spec)</div>
140
+ </div>`;
141
+ }
142
+ if (!this.changeReport && this.history) {
143
+ return html `
144
+ <div class="timeline-view">
145
+ ${this.timelineView}
146
+ </div>`;
147
+ }
148
+ let changelist = [];
149
+ this.changeReport?.changes?.forEach(change => {
150
+ const ch = new ChangesComponent([change]);
151
+ ch.addPadding = true;
152
+ ch.renderChangeCountBar = false;
153
+ ch.renderBreakingBar = true;
154
+ ch.renderMeta = true;
155
+ changelist.push(ch);
156
+ });
157
+ let changeSummary = html ``;
158
+ if (changelist.length > 0) {
159
+ changeSummary = this.renderSummaryForMultiChange();
160
+ this.changeDoughnut?.refresh();
161
+ this.breakingDoughnut?.refresh();
162
+ }
163
+ const userTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
164
+ const changeTreeContainer = html `
165
+ <div class="change-tree-container scroller" slot="start">
166
+ <pb33f-model-tree expand .node=${this.changeReport?.nodeChangeTree}
167
+ class="change-tree" style="padding-top: 10px;"></pb33f-model-tree>
168
+ </div>`;
169
+ let changesView = html `${changeTreeContainer}`;
170
+ if (this.changeReport && this.changeReport.changes && this.changeReport.changes?.length > 1) {
171
+ changesView = html `
172
+ <sl-split-panel position-in-pixels="350" id="tardis-change-navigator-split-panel"
173
+ class="tardis-change-navigator-split-panel">
174
+ <sl-icon id="split-divider" slot="divider" name="grip-vertical"
175
+ class="divider-vert"></sl-icon>
176
+
177
+ ${changeTreeContainer}
178
+ <div style="position: relative; width: 100%" slot="end"> ${changeSummary}</div>
179
+ </sl-split-panel>`;
180
+ }
181
+ return html `
182
+
183
+ <header>
184
+ <strong>${changelist.length}</strong> ${changelist.length > 1 ? 'changes' : 'change'} made</strong>
185
+ <span style="color: var(--font-color-sub1"> on
186
+ <sl-format-date time-zone="${userTimeZone}" date="${this.specSummary?.created}"
187
+ time-zone-name="short" month="long" day="numeric" year="numeric" hour="2-digit"
188
+ minute="numeric" second="numeric"></sl-format-date> <em>(<sl-relative-time date="${this.specSummary?.created}"></sl-relative-time>)</em> <br/>
189
+ </span>
190
+ </header>
191
+ <div class="changes-container">
192
+
193
+ <sl-split-panel position-in-pixels="300" vertical id="tardis-split-panel" class="tardis-split-panel">
194
+ <sl-icon id="split-divider" slot="divider" name="grip-horizontal" class="divider-horiz"></sl-icon>
195
+ <div class="editor" slot="start">
196
+
197
+
198
+ <div class="change-navigator">
199
+ ${changesView}
200
+ </div>
201
+ </div>
202
+ <div class="editor" slot="end">
203
+
204
+ <sl-tab-group class="tab-group time-vortex">
205
+ <sl-tab slot="nav" panel="changelist" class="tab" id="changelist-view">
206
+ Changelog
207
+ </sl-tab>
208
+ <sl-tab slot="nav" panel="graph" class="tab" id="graph-view">
209
+ Explore Changes
210
+ </sl-tab>
211
+ <sl-tab slot="nav" panel="list" class="tab" id="list-view">
212
+ List
213
+ </sl-tab>
214
+ <sl-tab-panel name="changelist" class="tab-panel changelist-panel">
215
+ <div class="change-list">
216
+ <pb33f-paginator-navigation label="Changes" hideSparks
217
+ .values=${changelist}></pb33f-paginator-navigation>
218
+ </div>
219
+ </sl-tab-panel>
220
+ <sl-tab-panel name="graph" class="tab-panel">
221
+ ${this.explorer}
222
+ </sl-tab-panel>
223
+ <sl-tab-panel name="list" class="tab-panel">
224
+ <pb33f-change-list .changes=${this.changeReport?.changes}></pb33f-change-list>
225
+ </sl-tab-panel>
226
+
227
+ </sl-tab-group>
228
+ </div>
229
+ </div>`;
230
+ }
231
+ showSummaryOnly() {
232
+ this.specSummary = null;
233
+ this.changeReport = null;
234
+ return;
235
+ }
236
+ set summary(summary) {
237
+ this.specSummary = summary;
238
+ if (summary.changeId) {
239
+ TimelineService.fetchChange(summary.changeId)
240
+ .then(this.handleChange.bind(this))
241
+ .catch((e) => {
242
+ this.dispatchEvent(new CustomEvent(AddToast, {
243
+ bubbles: true,
244
+ composed: true,
245
+ detail: {
246
+ toast: {
247
+ type: ToastType.ERROR,
248
+ id: "timeline-error",
249
+ body: e.detail,
250
+ title: "timeline error",
251
+ }
252
+ }
253
+ }));
254
+ });
255
+ }
256
+ }
257
+ handleChange(resp) {
258
+ this.changeReport = resp;
259
+ this.explorer.updateGraphResponse(resp);
260
+ this.explorer.buildGraph();
261
+ }
262
+ };
263
+ TardisControl.styles = [specSummaryTimelineItemCss,
264
+ tardisControlCss, spinnerCss, tabsCss, panelsCss, scrollbarCss];
265
+ __decorate([
266
+ state()
267
+ ], TardisControl.prototype, "changeReport", void 0);
268
+ __decorate([
269
+ state()
270
+ ], TardisControl.prototype, "changeGraph", void 0);
271
+ __decorate([
272
+ state()
273
+ ], TardisControl.prototype, "history", void 0);
274
+ __decorate([
275
+ state()
276
+ ], TardisControl.prototype, "chartOptions", void 0);
277
+ __decorate([
278
+ query('pb33f-doughnut-chart#change-doughnut')
279
+ ], TardisControl.prototype, "changeDoughnut", void 0);
280
+ __decorate([
281
+ query('pb33f-doughnut-chart#breaking-doughnut')
282
+ ], TardisControl.prototype, "breakingDoughnut", void 0);
283
+ TardisControl = __decorate([
284
+ customElement("pb33f-tardis-control")
285
+ ], TardisControl);
286
+ export { TardisControl };
@@ -0,0 +1,17 @@
1
+ import { LitElement } from "lit";
2
+ import { TheDoctor } from "../the-doctor/the-doctor.js";
3
+ import { HistoryPicker } from "./history-picker.js";
4
+ import { TardisControl } from "./tardis-control.js";
5
+ import { RevisionClickedEvent } from "../../events/doctor.js";
6
+ export declare class TimeVortex extends LitElement {
7
+ pickerVisible: boolean;
8
+ skipChanges: boolean;
9
+ historyPicker: HistoryPicker;
10
+ tardisControl: TardisControl;
11
+ doctor: TheDoctor;
12
+ constructor();
13
+ checkHistory(): void;
14
+ updated(): void;
15
+ revisionClicked(evt: CustomEvent<RevisionClickedEvent>): void;
16
+ showTimelineSummary(): void;
17
+ }
@@ -0,0 +1,75 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement } from "lit";
8
+ import { customElement, state } from "lit/decorators.js";
9
+ import { HistoryPicker } from "./history-picker.js";
10
+ import { TimelineService } from "../../services/timeline-service.js";
11
+ import { TardisControl } from "./tardis-control.js";
12
+ import { ToastType } from "../../model/toast.js";
13
+ import { AddToast, RevisionClicked, ShowTimelineSummary, TimelineHistoryRefresh } from "../../events/doctor.js";
14
+ let TimeVortex = class TimeVortex extends LitElement {
15
+ constructor() {
16
+ super();
17
+ this.pickerVisible = false;
18
+ this.skipChanges = false;
19
+ this.historyPicker = new HistoryPicker();
20
+ this.tardisControl = new TardisControl();
21
+ this.addEventListener(TimelineHistoryRefresh, this.checkHistory);
22
+ //@ts-ignore
23
+ this.historyPicker.addEventListener(RevisionClicked, (evt) => {
24
+ this.revisionClicked(evt);
25
+ });
26
+ this.historyPicker.addEventListener(ShowTimelineSummary, this.showTimelineSummary.bind(this));
27
+ }
28
+ checkHistory() {
29
+ TimelineService.getSummary().then((summaries) => {
30
+ if (summaries.length > 0) {
31
+ this.pickerVisible = true;
32
+ this.historyPicker.specSummary = summaries;
33
+ if (this.doctor)
34
+ this.doctor.requestUpdate();
35
+ }
36
+ }).catch((e) => {
37
+ this.dispatchEvent(new CustomEvent(AddToast, {
38
+ bubbles: true,
39
+ composed: true,
40
+ detail: {
41
+ toast: {
42
+ type: ToastType.ERROR,
43
+ id: "timeline-error",
44
+ body: e.detail,
45
+ title: "timeline summary error",
46
+ }
47
+ }
48
+ }));
49
+ });
50
+ this.tardisControl.fetchHistory();
51
+ }
52
+ updated() {
53
+ this.historyPicker.skipChanges = this.skipChanges;
54
+ }
55
+ revisionClicked(evt) {
56
+ this.tardisControl.specSummary = evt.detail.specSummary;
57
+ this.doctor.selectTardis();
58
+ this.tardisControl.summary = evt.detail.specSummary;
59
+ }
60
+ showTimelineSummary() {
61
+ this.tardisControl.showSummaryOnly();
62
+ this.tardisControl.fetchHistory();
63
+ this.doctor.selectTardis();
64
+ }
65
+ };
66
+ __decorate([
67
+ state()
68
+ ], TimeVortex.prototype, "pickerVisible", void 0);
69
+ __decorate([
70
+ state()
71
+ ], TimeVortex.prototype, "skipChanges", void 0);
72
+ TimeVortex = __decorate([
73
+ customElement("pb33f-time-vortex")
74
+ ], TimeVortex);
75
+ export { TimeVortex };
@@ -0,0 +1,2 @@
1
+ declare const _default: import("lit").CSSResult;
2
+ export default _default;