openapi-explorer 0.9.310 → 0.9.314

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 (121) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/dist/{openapi-explorer.min.js → browser/openapi-explorer.min.js} +3 -3
  3. package/dist/{openapi-explorer.min.js.map → browser/openapi-explorer.min.js.map} +0 -0
  4. package/dist/es/components/api-request.js +936 -0
  5. package/dist/es/components/api-response.js +184 -0
  6. package/dist/es/components/json-tree.js +67 -0
  7. package/{src → dist/es}/components/mime-types.js +11 -17
  8. package/dist/es/components/schema-table.js +156 -0
  9. package/dist/es/components/schema-tree.js +191 -0
  10. package/dist/es/components/tag-input.js +67 -0
  11. package/{src → dist/es}/openapi-explorer-oauth-handler.js +2 -2
  12. package/{src → dist/es}/openapi-explorer.js +364 -371
  13. package/dist/es/styles/advanced-search-styles.js +2 -0
  14. package/dist/es/styles/api-request-styles.js +2 -0
  15. package/dist/es/styles/border-styles.js +2 -0
  16. package/dist/es/styles/endpoint-styles.js +2 -0
  17. package/dist/es/styles/flex-styles.js +2 -0
  18. package/dist/es/styles/font-styles.js +2 -0
  19. package/dist/es/styles/info-styles.js +2 -0
  20. package/dist/es/styles/input-styles.js +4 -0
  21. package/dist/es/styles/nav-styles.js +2 -0
  22. package/dist/es/styles/prism-styles.js +2 -0
  23. package/dist/es/styles/schema-styles.js +2 -0
  24. package/dist/es/styles/tab-styles.js +2 -0
  25. package/dist/es/styles/table-styles.js +2 -0
  26. package/dist/es/templates/advance-search-template.js +37 -0
  27. package/dist/es/templates/callback-template.js +7 -0
  28. package/dist/es/templates/code-samples-template.js +26 -0
  29. package/dist/es/templates/components-template.js +17 -0
  30. package/dist/es/templates/endpoint-template.js +94 -0
  31. package/dist/es/templates/expanded-endpoint-template.js +32 -0
  32. package/{src → dist/es}/templates/focused-endpoint-template.js +15 -15
  33. package/dist/es/templates/navbar-template.js +46 -0
  34. package/dist/es/templates/overview-template.js +9 -0
  35. package/dist/es/templates/responsiveViewMainBodyTemplate.js +30 -0
  36. package/dist/es/templates/security-scheme-template.js +330 -0
  37. package/dist/es/templates/server-template.js +42 -0
  38. package/{src → dist/es}/utils/color-utils.js +53 -16
  39. package/{src → dist/es}/utils/common-utils.js +18 -18
  40. package/{src → dist/es}/utils/schema-utils.js +248 -124
  41. package/{src → dist/es}/utils/spec-parser.js +112 -71
  42. package/dist/es/utils/theme.js +75 -0
  43. package/{src → dist/es}/utils/xml/xml.js +41 -38
  44. package/dist/lib/components/api-request.js +957 -0
  45. package/dist/lib/components/api-response.js +206 -0
  46. package/dist/lib/components/json-tree.js +82 -0
  47. package/dist/lib/components/mime-types.js +70 -0
  48. package/dist/lib/components/schema-table.js +170 -0
  49. package/dist/lib/components/schema-tree.js +206 -0
  50. package/dist/lib/components/tag-input.js +76 -0
  51. package/dist/lib/openapi-explorer-oauth-handler.js +19 -0
  52. package/dist/lib/openapi-explorer.js +817 -0
  53. package/dist/lib/styles/advanced-search-styles.js +10 -0
  54. package/dist/lib/styles/api-request-styles.js +10 -0
  55. package/dist/lib/styles/border-styles.js +10 -0
  56. package/dist/lib/styles/endpoint-styles.js +10 -0
  57. package/dist/lib/styles/flex-styles.js +10 -0
  58. package/dist/lib/styles/font-styles.js +10 -0
  59. package/dist/lib/styles/info-styles.js +10 -0
  60. package/dist/lib/styles/input-styles.js +11 -0
  61. package/dist/lib/styles/nav-styles.js +10 -0
  62. package/dist/lib/styles/prism-styles.js +10 -0
  63. package/dist/lib/styles/schema-styles.js +10 -0
  64. package/dist/lib/styles/tab-styles.js +10 -0
  65. package/dist/lib/styles/table-styles.js +10 -0
  66. package/dist/lib/templates/advance-search-template.js +42 -0
  67. package/dist/lib/templates/callback-template.js +12 -0
  68. package/dist/lib/templates/code-samples-template.js +36 -0
  69. package/dist/lib/templates/components-template.js +27 -0
  70. package/dist/lib/templates/endpoint-template.js +111 -0
  71. package/dist/lib/templates/expanded-endpoint-template.js +48 -0
  72. package/dist/lib/templates/focused-endpoint-template.js +95 -0
  73. package/dist/lib/templates/navbar-template.js +54 -0
  74. package/dist/lib/templates/overview-template.js +16 -0
  75. package/dist/lib/templates/responsiveViewMainBodyTemplate.js +47 -0
  76. package/dist/lib/templates/security-scheme-template.js +342 -0
  77. package/dist/lib/templates/server-template.js +49 -0
  78. package/dist/lib/utils/color-utils.js +112 -0
  79. package/dist/lib/utils/common-utils.js +156 -0
  80. package/dist/lib/utils/schema-utils.js +743 -0
  81. package/dist/lib/utils/spec-parser.js +361 -0
  82. package/dist/lib/utils/theme.js +84 -0
  83. package/dist/lib/utils/xml/xml.js +239 -0
  84. package/package.json +19 -6
  85. package/dist/openapi-explorer.min.js.LICENSE.txt +0 -71
  86. package/dist/openapi-explorer.min.js.LICENSE.txt.gz +0 -0
  87. package/dist/openapi-explorer.min.js.gz +0 -0
  88. package/dist/openapi-explorer.min.js.map.gz +0 -0
  89. package/dist/report.html +0 -38
  90. package/src/components/api-request.js +0 -1244
  91. package/src/components/api-response.js +0 -340
  92. package/src/components/json-tree.js +0 -129
  93. package/src/components/schema-table.js +0 -250
  94. package/src/components/schema-tree.js +0 -280
  95. package/src/components/tag-input.js +0 -109
  96. package/src/styles/advanced-search-styles.js +0 -84
  97. package/src/styles/api-request-styles.js +0 -111
  98. package/src/styles/border-styles.js +0 -24
  99. package/src/styles/css/main.css +0 -24
  100. package/src/styles/endpoint-styles.js +0 -222
  101. package/src/styles/flex-styles.js +0 -15
  102. package/src/styles/font-styles.js +0 -266
  103. package/src/styles/info-styles.js +0 -20
  104. package/src/styles/input-styles.js +0 -236
  105. package/src/styles/nav-styles.js +0 -141
  106. package/src/styles/prism-styles.js +0 -107
  107. package/src/styles/schema-styles.js +0 -121
  108. package/src/styles/tab-styles.js +0 -44
  109. package/src/styles/table-styles.js +0 -48
  110. package/src/templates/advance-search-template.js +0 -81
  111. package/src/templates/callback-template.js +0 -63
  112. package/src/templates/code-samples-template.js +0 -35
  113. package/src/templates/components-template.js +0 -43
  114. package/src/templates/endpoint-template.js +0 -175
  115. package/src/templates/expanded-endpoint-template.js +0 -104
  116. package/src/templates/navbar-template.js +0 -175
  117. package/src/templates/overview-template.js +0 -58
  118. package/src/templates/responsiveViewMainBodyTemplate.js +0 -72
  119. package/src/templates/security-scheme-template.js +0 -487
  120. package/src/templates/server-template.js +0 -106
  121. package/src/utils/theme.js +0 -163
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _litElement = require("lit-element");
7
+
8
+ var _marked = require("marked");
9
+
10
+ var _unsafeHtml = require("lit-html/directives/unsafe-html");
11
+
12
+ var _fontStyles = _interopRequireDefault(require("../styles/font-styles"));
13
+
14
+ var _schemaStyles = _interopRequireDefault(require("../styles/schema-styles"));
15
+
16
+ var _borderStyles = _interopRequireDefault(require("../styles/border-styles"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ class SchemaTree extends _litElement.LitElement {
21
+ static get properties() {
22
+ return {
23
+ data: {
24
+ type: Object
25
+ },
26
+ schemaExpandLevel: {
27
+ type: Number,
28
+ attribute: 'schema-expand-level'
29
+ },
30
+ schemaDescriptionExpanded: {
31
+ type: String,
32
+ attribute: 'schema-description-expanded'
33
+ },
34
+ schemaHideReadOnly: {
35
+ type: String,
36
+ attribute: 'schema-hide-read-only'
37
+ },
38
+ schemaHideWriteOnly: {
39
+ type: String,
40
+ attribute: 'schema-hide-write-only'
41
+ }
42
+ };
43
+ }
44
+
45
+ connectedCallback() {
46
+ super.connectedCallback();
47
+
48
+ if (!this.schemaExpandLevel || this.schemaExpandLevel < 1) {
49
+ this.schemaExpandLevel = 99999;
50
+ }
51
+
52
+ if (!this.schemaDescriptionExpanded || !'true false'.includes(this.schemaDescriptionExpanded)) {
53
+ this.schemaDescriptionExpanded = 'true';
54
+ }
55
+
56
+ if (!this.schemaHideReadOnly || !'true false'.includes(this.schemaHideReadOnly)) {
57
+ this.schemaHideReadOnly = 'true';
58
+ }
59
+
60
+ if (!this.schemaHideWriteOnly || !'true false'.includes(this.schemaHideWriteOnly)) {
61
+ this.schemaHideWriteOnly = 'true';
62
+ }
63
+ }
64
+
65
+ static get styles() {
66
+ return [_fontStyles.default, _schemaStyles.default, _borderStyles.default, (0, _litElement.css)`.tree{min-height:30px;background:#333;padding:10px;color:#fff;font-size:var(--font-size-small);text-align:left;line-height:calc(var(--font-size-small) + 6px)}.collapsed-descr .tr{max-height:calc(var(--font-size-small) + 8px)}.collapsed-descr .m-markdown-small p{line-height:calc(var(--font-size-small) + 6px)}.tree .key{max-width:300px}.key.deprecated .key-label{text-decoration:line-through}.open-bracket{display:inline-block;padding:0 20px 0 0;cursor:pointer;border:1px solid transparent;border-radius:3px}.open-bracket:hover{color:var(--primary-color);background-color:var(--hover-color);border:1px solid var(--border-color)}.close-bracket{display:inline-block;font-family:var(--font-mono)}.tr.collapsed+.inside-bracket,.tr.collapsed+.inside-bracket+.close-bracket{display:none}.inside-bracket.array,.inside-bracket.object{border-left:1px dotted var(--border-color)}.inside-bracket.xxx-of{padding:5px 0;border-style:dotted;border-width:0 0 1px 0;border-color:var(--primary-color)}`];
67
+ }
68
+ /* eslint-disable indent */
69
+
70
+
71
+ render() {
72
+ return (0, _litElement.html)` <div class="tree ${this.schemaDescriptionExpanded === 'true' ? 'expanded-descr' : 'collapsed-descr'}"> <div class="toolbar"> ${this.data && this.data['::description'] ? (0, _litElement.html)`<span class="m-markdown" style="margin-block-start:0"> ${(0, _unsafeHtml.unsafeHTML)((0, _marked.marked)(this.data['::description'] || ''))}</span>` : (0, _litElement.html)`<div>&nbsp;</div>`} <div class="toolbar-item" @click="${() => {
73
+ this.schemaDescriptionExpanded = this.schemaDescriptionExpanded === 'true' ? 'false' : 'true';
74
+ }}"> ${this.schemaDescriptionExpanded === 'true' ? 'Collapse descriptions' : 'Expand descriptions'} </div> </div> ${this.data ? (0, _litElement.html)`${this.generateTree(this.data['::type'] === 'array' ? this.data['::props'] : this.data, this.data['::type'])}` : (0, _litElement.html)`<span class="mono-font" style="color:var(--red)"> Schema not found </span>`} </div> `;
75
+ }
76
+
77
+ generateTree(data, dataType = 'object', key = '', description = '', schemaLevel = 0, indentLevel = 0) {
78
+ if (!data) {
79
+ return (0, _litElement.html)`<div class="null" style="display:inline">null</div>`;
80
+ }
81
+
82
+ if (Object.keys(data).length === 0) {
83
+ return (0, _litElement.html)`<span class="key object">${key}:{ }</span>`;
84
+ }
85
+
86
+ let keyLabel = '';
87
+ let keyDescr = '';
88
+
89
+ if (key.startsWith('::ONE~OF') || key.startsWith('::ANY~OF')) {
90
+ keyLabel = key.replace('::', '').replace('~', ' ');
91
+ } else if (key.startsWith('::OPTION')) {
92
+ const parts = key.split('~');
93
+ keyLabel = parts[1];
94
+ keyDescr = parts[2];
95
+ } else {
96
+ keyLabel = key;
97
+ }
98
+
99
+ const leftPadding = 16; // Min-width used for model keys: `td key `
100
+
101
+ const minFieldColWidth = 250 - indentLevel * leftPadding;
102
+ let openBracket = '';
103
+ let closeBracket = '';
104
+ const newSchemaLevel = data['::type'] && data['::type'].startsWith('xxx-of') ? schemaLevel : schemaLevel + 1; // const newIndentLevel = dataType === 'xxx-of-option' || data['::type'] === 'xxx-of-option' ? indentLevel : (indentLevel + 1);
105
+
106
+ const newIndentLevel = dataType === 'xxx-of-option' || data['::type'] === 'xxx-of-option' || key.startsWith('::OPTION') ? indentLevel : indentLevel + 1;
107
+
108
+ if (data['::type'] === 'object') {
109
+ if (dataType === 'array') {
110
+ if (schemaLevel < this.schemaExpandLevel) {
111
+ openBracket = (0, _litElement.html)`<span class="open-bracket array-of-object" @click="${this.toggleObjectExpand}">[{</span>`;
112
+ } else {
113
+ openBracket = (0, _litElement.html)`<span class="open-bracket array-of-object" @click="${this.toggleObjectExpand}">[{...}]</span>`;
114
+ }
115
+
116
+ closeBracket = '}]';
117
+ } else {
118
+ if (schemaLevel < this.schemaExpandLevel) {
119
+ openBracket = (0, _litElement.html)`<span class="open-bracket object" @click="${this.toggleObjectExpand}">{</span>`;
120
+ } else {
121
+ openBracket = (0, _litElement.html)`<span class="open-bracket object" @click="${this.toggleObjectExpand}">{...}</span>`;
122
+ }
123
+
124
+ closeBracket = '}';
125
+ }
126
+ } else if (data['::type'] === 'array') {
127
+ if (dataType === 'array') {
128
+ if (schemaLevel < this.schemaExpandLevel) {
129
+ openBracket = (0, _litElement.html)`<span class="open-bracket array-of-array" @click="${this.toggleObjectExpand}">[[</span>`;
130
+ } else {
131
+ openBracket = (0, _litElement.html)`<span class="open-bracket array-of-array" @click="${this.toggleObjectExpand}">[[...]]</span>`;
132
+ }
133
+
134
+ closeBracket = ']]';
135
+ } else {
136
+ if (schemaLevel < this.schemaExpandLevel) {
137
+ openBracket = (0, _litElement.html)`<span class="open-bracket array" @click="${this.toggleObjectExpand}">[</span>`;
138
+ } else {
139
+ openBracket = (0, _litElement.html)`<span class="open-bracket array" @click="${this.toggleObjectExpand}">[...]</span>`;
140
+ }
141
+
142
+ closeBracket = ']';
143
+ }
144
+ }
145
+
146
+ if (typeof data === 'object') {
147
+ const flags = data['::flags'] || {};
148
+
149
+ if (flags['🆁'] && this.schemaHideReadOnly === 'true') {
150
+ return undefined;
151
+ }
152
+
153
+ if (flags['🆆'] && this.schemaHideWriteOnly === 'true') {
154
+ return undefined;
155
+ }
156
+
157
+ const displayLine = [flags['🆁'] || flags['🆆'], description].filter(v => v).join(' ');
158
+ return (0, _litElement.html)` <div class="tr ${schemaLevel < this.schemaExpandLevel || data['::type'] && data['::type'].startsWith('xxx-of') ? 'expanded' : 'collapsed'} ${data['::type'] || 'no-type-info'}"> <div class="td key ${data['::deprecated'] ? 'deprecated' : ''}" style="min-width:${minFieldColWidth}px"> ${data['::type'] === 'xxx-of-option' || data['::type'] === 'xxx-of-array' || key.startsWith('::OPTION') ? (0, _litElement.html)`<span class="key-label xxx-of-key">${keyLabel}</span><span class="xxx-of-descr">${keyDescr}</span>` : keyLabel.endsWith('*') ? (0, _litElement.html)`<span class="key-label">${keyLabel.substring(0, keyLabel.length - 1)}</span><span style="color:var(--red)">*</span>:` : keyLabel === '::props' || keyLabel === '::ARRAY~OF' ? '' : schemaLevel > 0 ? (0, _litElement.html)`<span class="key-label">${keyLabel}:</span>` : ''} ${data['::type'] === 'xxx-of' && dataType === 'array' ? (0, _litElement.html)`<span style="color:var(--primary-color)">ARRAY</span>` : ''} ${openBracket} </div> <div class="td key-descr"> <span class="m-markdown-small" style="font-family:var(--font-mono);vertical-align:middle" title="${flags['🆁'] && 'Read only attribute' || flags['🆆'] && 'Write only attribute' || ''}"> ${(0, _unsafeHtml.unsafeHTML)((0, _marked.marked)(displayLine))} </span> </div> </div> <div class="inside-bracket ${data['::type'] || 'no-type-info'}" style="padding-left:${data['::type'] === 'xxx-of-option' || data['::type'] === 'xxx-of-array' ? 0 : leftPadding}px"> ${Array.isArray(data) && data[0] ? (0, _litElement.html)`${this.generateTree(data[0], 'xxx-of-option', '::ARRAY~OF', '', newSchemaLevel, newIndentLevel)}` : (0, _litElement.html)` ${Object.keys(data).map(dataKey => dataKey.startsWith('::') && data[dataKey]['::type'] !== 'array' && data[dataKey]['::type'] !== 'object' ? '' : (0, _litElement.html)`${this.generateTree(data[dataKey]['::type'] === 'array' ? data[dataKey]['::props'] : data[dataKey], data[dataKey]['::type'], dataKey, data[dataKey]['::description'], newSchemaLevel, newIndentLevel)}`)}`} </div> ${data['::type'] && data['::type'].includes('xxx-of') ? '' : (0, _litElement.html)`<div class="close-bracket"> ${closeBracket} </div>`} `;
159
+ } // For Primitive Data types
160
+
161
+
162
+ const {
163
+ type,
164
+ readOrWriteOnly,
165
+ constraint,
166
+ defaultValue,
167
+ allowedValues,
168
+ pattern,
169
+ schemaDescription,
170
+ schemaTitle,
171
+ deprecated
172
+ } = JSON.parse(data);
173
+
174
+ if (readOrWriteOnly === '🆁' && this.schemaHideReadOnly === 'true') {
175
+ return undefined;
176
+ }
177
+
178
+ if (readOrWriteOnly === '🆆' && this.schemaHideWriteOnly === 'true') {
179
+ return undefined;
180
+ }
181
+
182
+ const dataTypeCss = type.replace(/┃.*/g, '').replace(/[^a-zA-Z0-9+]/g, '').substring(0, 4).toLowerCase();
183
+ return (0, _litElement.html)` <div class="tr primitive"> <div class="td key ${deprecated ? 'deprecated' : ''}" style="min-width:${minFieldColWidth}px"> ${keyLabel.endsWith('*') ? (0, _litElement.html)`<span class="key-label">${keyLabel.substring(0, keyLabel.length - 1)}</span><span style="color:var(--red)">*</span>:` : key.startsWith('::OPTION') ? (0, _litElement.html)`<span class="key-label xxx-of-key">${keyLabel}</span><span class="xxx-of-descr">${keyDescr}</span>` : schemaLevel > 0 ? (0, _litElement.html)`<span class="key-label">${keyLabel}:</span>` : ''} <span class="${dataTypeCss}"> ${dataType === 'array' ? `${type}[]` : `${type}`} </span> </div> <div class="td key-descr"> <span class="m-markdown-small" style="font-family:var(--font-mono);vertical-align:middle" title="${readOrWriteOnly === '🆁' && 'Read only attribute' || readOrWriteOnly === '🆆' && 'Write only attribute' || ''}"> ${(0, _unsafeHtml.unsafeHTML)((0, _marked.marked)(`${readOrWriteOnly && `${readOrWriteOnly} ` || ''}${dataType === 'array' && description || `${schemaTitle ? `**${schemaTitle}:**` : ''} ${schemaDescription}` || ''}`))} </span> ${constraint ? (0, _litElement.html)`<div style="display:inline-block;line-break:anywhere;margin-right:8px"><span class="bold-text">Constraints: </span>${constraint}</div>` : ''} ${defaultValue ? (0, _litElement.html)`<div style="display:inline-block;line-break:anywhere;margin-right:8px"><span class="bold-text">Default: </span>${defaultValue}</div>` : ''} ${allowedValues ? (0, _litElement.html)`<div style="display:inline-block;line-break:anywhere;margin-right:8px"><span class="bold-text">Allowed: </span>${allowedValues}</div>` : ''} ${pattern ? (0, _litElement.html)`<div style="display:inline-block;line-break:anywhere;margin-right:8px"><span class="bold-text">Pattern: </span>${pattern}</div>` : ''} </div> </div> `;
184
+ }
185
+ /* eslint-enable indent */
186
+
187
+
188
+ toggleObjectExpand(e) {
189
+ const rowEl = e.target.closest('.tr');
190
+
191
+ if (rowEl.classList.contains('expanded')) {
192
+ rowEl.classList.replace('expanded', 'collapsed');
193
+ e.target.innerHTML = e.target.classList.contains('array-of-object') ? '[{...}]' : e.target.classList.contains('array-of-array') ? '[[...]]' : e.target.classList.contains('array') ? '[...]' : '{...}';
194
+ } else {
195
+ rowEl.classList.replace('collapsed', 'expanded');
196
+ e.target.innerHTML = e.target.classList.contains('array-of-object') ? '[{' : e.target.classList.contains('array-of-array') ? '[[' : e.target.classList.contains('object') ? '{' : '[';
197
+ }
198
+ }
199
+
200
+ }
201
+
202
+ exports.default = SchemaTree;
203
+
204
+ if (!customElements.get('openapi-explorer')) {
205
+ customElements.define('schema-tree', SchemaTree);
206
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _litElement = require("lit-element");
7
+
8
+ class TagInput extends _litElement.LitElement {
9
+ render() {
10
+ const tagItemTemplate = (0, _litElement.html)`${(this.value || []).filter(v => v.trim()).map(v => (0, _litElement.html)`<span class="tag">${v}</span>`)}`;
11
+ return (0, _litElement.html)` <div class="tags" tabindex="0"> ${tagItemTemplate} <input type="text" class="editor" @paste="${e => this.afterPaste(e)}" @keydown="${this.afterKeyDown}" placeholder="${this.placeholder || ''}"> </div> `;
12
+ }
13
+
14
+ static get properties() {
15
+ return {
16
+ placeholder: {
17
+ type: String
18
+ },
19
+ value: {
20
+ type: Array,
21
+ attribute: 'value'
22
+ }
23
+ };
24
+ }
25
+
26
+ connectedCallback() {
27
+ super.connectedCallback();
28
+
29
+ if (!Array.isArray(this.value)) {
30
+ this.value = this.value !== '' ? [this.value] : [];
31
+ }
32
+ }
33
+
34
+ attributeChangedCallback(name, oldVal, newVal) {
35
+ if (name === 'value') {
36
+ if (newVal && oldVal !== newVal) {
37
+ this.value = newVal.split(',').filter(v => v.trim());
38
+ }
39
+ }
40
+
41
+ super.attributeChangedCallback(name, oldVal, newVal);
42
+ }
43
+
44
+ afterPaste(e) {
45
+ const clipboardData = e.clipboardData || window.clipboardData;
46
+ const pastedData = clipboardData.getData('Text');
47
+ const pastedArray = pastedData && pastedData.split(',').filter(v => v.trim()) || [];
48
+ this.value = this.value.concat(pastedArray);
49
+ e.preventDefault();
50
+ }
51
+
52
+ afterKeyDown(e) {
53
+ if (e.keyCode === 13) {
54
+ e.stopPropagation();
55
+ e.preventDefault();
56
+ this.value = this.value.concat(e.target.value || []);
57
+ e.target.value = '';
58
+ } else if (e.keyCode === 8) {
59
+ if (e.target.value.length === 0) {
60
+ this.value = this.value.slice(0, -1);
61
+ }
62
+ }
63
+ }
64
+
65
+ static get styles() {
66
+ return [(0, _litElement.css)`.tags{display:flex;flex-wrap:wrap;outline:0;padding:0;border-radius:var(--border-radius);border:1px solid var(--border-color);cursor:text;overflow:hidden;background:var(--input-bg)}.editor,.tag{padding:3px;margin:2px}.tag{border:1px solid var(--border-color);background-color:var(--bg3);color:var(--fg3);border-radius:var(--border-radius);word-break:break-all;font-size:var(--font-size-small)}.tag:hover~#cursor{display:block}.editor{flex:1;border:1px solid transparent;color:var(--fg);min-width:60px;outline:0;line-height:inherit;font-family:inherit;background:0 0;font-size:calc(var(--font-size-small) + 1px)}.editor::placeholder{color:var(--placeholder-color);opacity:1}`];
67
+ }
68
+
69
+ } // Register the element with the browser
70
+
71
+
72
+ exports.default = TagInput;
73
+
74
+ if (!customElements.get('openapi-explorer')) {
75
+ customElements.define('tag-input', TagInput);
76
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _securitySchemeTemplate = require("./templates/security-scheme-template");
7
+
8
+ class OpenapiExplorerOauthHandler extends HTMLElement {
9
+ connectedCallback() {
10
+ (0, _securitySchemeTemplate.checkForAuthToken)(true);
11
+ }
12
+
13
+ }
14
+
15
+ exports.default = OpenapiExplorerOauthHandler;
16
+
17
+ if (!customElements.get('openapi-explorer-oauth-handler')) {
18
+ customElements.define('openapi-explorer-oauth-handler', OpenapiExplorerOauthHandler);
19
+ }