@@ -182,20 +182,43 @@ export function mapToList(map, keyNames="key", collectedKeys=Im.Map()) {
182
182
return list
183
183
}
184
184
185
+ export const copyToClipboard = str => {
186
+ // adapted from https://hackernoon.com/copying-text-to-clipboard-with-javascript-df4d4988697f
187
+ const el = document . createElement ( "textarea" )
188
+ el . value = str
189
+ el . setAttribute ( "readonly" , "" )
190
+ el . style . position = "absolute"
191
+ el . style . left = "-9999px"
192
+
193
+ document . body . appendChild ( el )
194
+ // preserve selection
195
+ const selected =
196
+ document . getSelection ( ) . rangeCount > 0
197
+ ? document . getSelection ( ) . getRangeAt ( 0 )
198
+ : false
199
+ el . select ( )
200
+ document . execCommand ( "copy" )
201
+ document . body . removeChild ( el )
202
+ if ( selected ) {
203
+ document . getSelection ( ) . removeAllRanges ( )
204
+ document . getSelection ( ) . addRange ( selected )
205
+ }
206
+ }
207
+
185
208
export function extractFileNameFromContentDispositionHeader ( value ) {
186
209
let patterns = [
187
210
/ f i l e n a m e \* = [ ^ ' ] + ' \w * ' " ( [ ^ " ] + ) " ; ? / i,
188
211
/ f i l e n a m e \* = [ ^ ' ] + ' \w * ' ( [ ^ ; ] + ) ; ? / i,
189
212
/ f i l e n a m e = " ( [ ^ ; ] * ) ; ? " / i,
190
213
/ f i l e n a m e = ( [ ^ ; ] * ) ; ? / i
191
214
]
192
-
215
+
193
216
let responseFilename
194
217
patterns . some ( regex => {
195
218
responseFilename = regex . exec ( value )
196
219
return responseFilename !== null
197
220
} )
198
-
221
+
199
222
if ( responseFilename !== null && responseFilename . length > 1 ) {
200
223
try {
201
224
return decodeURIComponent ( responseFilename [ 1 ] )
@@ -650,15 +673,15 @@ export function paramToIdentifier(param, { returnAll = false, allowHashes = true
650
673
}
651
674
const paramName = param . get ( "name" )
652
675
const paramIn = param . get ( "in" )
653
-
676
+
654
677
let generatedIdentifiers = [ ]
655
678
656
679
// Generate identifiers in order of most to least specificity
657
680
658
681
if ( param && param . hashCode && paramIn && paramName && allowHashes ) {
659
682
generatedIdentifiers . push ( `${ paramIn } .${ paramName } .hash-${ param . hashCode ( ) } ` )
660
683
}
661
-
684
+
662
685
if ( paramIn && paramName ) {
663
686
generatedIdentifiers . push ( `${ paramIn } .${ paramName } ` )
664
687
}
0 commit comments