openapi-explorer 0.9.311 → 0.9.312

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 (123) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/dist/{openapi-explorer.min.js → browser/openapi-explorer.min.js} +1 -1
  3. package/dist/{openapi-explorer.min.js.LICENSE.txt → browser/openapi-explorer.min.js.LICENSE.txt} +1 -1
  4. package/dist/browser/openapi-explorer.min.js.LICENSE.txt.gz +0 -0
  5. package/dist/browser/openapi-explorer.min.js.gz +0 -0
  6. package/dist/{openapi-explorer.min.js.map → browser/openapi-explorer.min.js.map} +0 -0
  7. package/dist/{openapi-explorer.min.js.map.gz → browser/openapi-explorer.min.js.map.gz} +0 -0
  8. package/dist/{report.html → browser/report.html} +1 -1
  9. package/dist/es/components/api-request.js +936 -0
  10. package/dist/es/components/api-response.js +184 -0
  11. package/dist/es/components/json-tree.js +67 -0
  12. package/{src → dist/es}/components/mime-types.js +10 -16
  13. package/dist/es/components/schema-table.js +156 -0
  14. package/dist/es/components/schema-tree.js +191 -0
  15. package/dist/es/components/tag-input.js +67 -0
  16. package/{src → dist/es}/openapi-explorer-oauth-handler.js +2 -2
  17. package/{src → dist/es}/openapi-explorer.js +364 -371
  18. package/dist/es/styles/advanced-search-styles.js +2 -0
  19. package/dist/es/styles/api-request-styles.js +2 -0
  20. package/dist/es/styles/border-styles.js +2 -0
  21. package/dist/es/styles/endpoint-styles.js +2 -0
  22. package/dist/es/styles/flex-styles.js +2 -0
  23. package/dist/es/styles/font-styles.js +2 -0
  24. package/dist/es/styles/info-styles.js +2 -0
  25. package/dist/es/styles/input-styles.js +4 -0
  26. package/dist/es/styles/nav-styles.js +2 -0
  27. package/dist/es/styles/prism-styles.js +2 -0
  28. package/dist/es/styles/schema-styles.js +2 -0
  29. package/dist/es/styles/tab-styles.js +2 -0
  30. package/dist/es/styles/table-styles.js +2 -0
  31. package/dist/es/templates/advance-search-template.js +37 -0
  32. package/dist/es/templates/callback-template.js +7 -0
  33. package/dist/es/templates/code-samples-template.js +26 -0
  34. package/dist/es/templates/components-template.js +17 -0
  35. package/dist/es/templates/endpoint-template.js +94 -0
  36. package/dist/es/templates/expanded-endpoint-template.js +32 -0
  37. package/{src → dist/es}/templates/focused-endpoint-template.js +15 -15
  38. package/dist/es/templates/navbar-template.js +46 -0
  39. package/dist/es/templates/overview-template.js +9 -0
  40. package/dist/es/templates/responsiveViewMainBodyTemplate.js +30 -0
  41. package/dist/es/templates/security-scheme-template.js +330 -0
  42. package/dist/es/templates/server-template.js +42 -0
  43. package/{src → dist/es}/utils/color-utils.js +53 -16
  44. package/{src → dist/es}/utils/common-utils.js +18 -18
  45. package/{src → dist/es}/utils/schema-utils.js +248 -124
  46. package/{src → dist/es}/utils/spec-parser.js +112 -71
  47. package/dist/es/utils/theme.js +75 -0
  48. package/{src → dist/es}/utils/xml/xml.js +41 -38
  49. package/dist/lib/components/api-request.js +957 -0
  50. package/dist/lib/components/api-response.js +206 -0
  51. package/dist/lib/components/json-tree.js +82 -0
  52. package/dist/lib/components/mime-types.js +70 -0
  53. package/dist/lib/components/schema-table.js +170 -0
  54. package/dist/lib/components/schema-tree.js +206 -0
  55. package/dist/lib/components/tag-input.js +76 -0
  56. package/dist/lib/openapi-explorer-oauth-handler.js +19 -0
  57. package/dist/lib/openapi-explorer.js +817 -0
  58. package/dist/lib/styles/advanced-search-styles.js +10 -0
  59. package/dist/lib/styles/api-request-styles.js +10 -0
  60. package/dist/lib/styles/border-styles.js +10 -0
  61. package/dist/lib/styles/endpoint-styles.js +10 -0
  62. package/dist/lib/styles/flex-styles.js +10 -0
  63. package/dist/lib/styles/font-styles.js +10 -0
  64. package/dist/lib/styles/info-styles.js +10 -0
  65. package/dist/lib/styles/input-styles.js +11 -0
  66. package/dist/lib/styles/nav-styles.js +10 -0
  67. package/dist/lib/styles/prism-styles.js +10 -0
  68. package/dist/lib/styles/schema-styles.js +10 -0
  69. package/dist/lib/styles/tab-styles.js +10 -0
  70. package/dist/lib/styles/table-styles.js +10 -0
  71. package/dist/lib/templates/advance-search-template.js +42 -0
  72. package/dist/lib/templates/callback-template.js +12 -0
  73. package/dist/lib/templates/code-samples-template.js +36 -0
  74. package/dist/lib/templates/components-template.js +27 -0
  75. package/dist/lib/templates/endpoint-template.js +111 -0
  76. package/dist/lib/templates/expanded-endpoint-template.js +48 -0
  77. package/dist/lib/templates/focused-endpoint-template.js +95 -0
  78. package/dist/lib/templates/navbar-template.js +54 -0
  79. package/dist/lib/templates/overview-template.js +16 -0
  80. package/dist/lib/templates/responsiveViewMainBodyTemplate.js +47 -0
  81. package/dist/lib/templates/security-scheme-template.js +342 -0
  82. package/dist/lib/templates/server-template.js +49 -0
  83. package/dist/lib/utils/color-utils.js +112 -0
  84. package/dist/lib/utils/common-utils.js +156 -0
  85. package/dist/lib/utils/schema-utils.js +743 -0
  86. package/dist/lib/utils/spec-parser.js +361 -0
  87. package/dist/lib/utils/theme.js +84 -0
  88. package/dist/lib/utils/xml/xml.js +239 -0
  89. package/package.json +18 -6
  90. package/dist/openapi-explorer.min.js.LICENSE.txt.gz +0 -0
  91. package/dist/openapi-explorer.min.js.gz +0 -0
  92. package/src/components/api-request.js +0 -1244
  93. package/src/components/api-response.js +0 -340
  94. package/src/components/json-tree.js +0 -129
  95. package/src/components/schema-table.js +0 -250
  96. package/src/components/schema-tree.js +0 -280
  97. package/src/components/tag-input.js +0 -109
  98. package/src/styles/advanced-search-styles.js +0 -84
  99. package/src/styles/api-request-styles.js +0 -111
  100. package/src/styles/border-styles.js +0 -24
  101. package/src/styles/css/main.css +0 -24
  102. package/src/styles/endpoint-styles.js +0 -222
  103. package/src/styles/flex-styles.js +0 -15
  104. package/src/styles/font-styles.js +0 -266
  105. package/src/styles/info-styles.js +0 -20
  106. package/src/styles/input-styles.js +0 -236
  107. package/src/styles/nav-styles.js +0 -141
  108. package/src/styles/prism-styles.js +0 -107
  109. package/src/styles/schema-styles.js +0 -121
  110. package/src/styles/tab-styles.js +0 -44
  111. package/src/styles/table-styles.js +0 -48
  112. package/src/templates/advance-search-template.js +0 -81
  113. package/src/templates/callback-template.js +0 -63
  114. package/src/templates/code-samples-template.js +0 -35
  115. package/src/templates/components-template.js +0 -43
  116. package/src/templates/endpoint-template.js +0 -175
  117. package/src/templates/expanded-endpoint-template.js +0 -104
  118. package/src/templates/navbar-template.js +0 -175
  119. package/src/templates/overview-template.js +0 -58
  120. package/src/templates/responsiveViewMainBodyTemplate.js +0 -72
  121. package/src/templates/security-scheme-template.js +0 -487
  122. package/src/templates/server-template.js +0 -106
  123. 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
+ }