PageSourceSearch

https://www.flor.com/on/demandware.static/Sites-flor-us-Site/-/en_US/v1791011810743/fetch.bundle.js

js flor.com collected 2026-10-03 22:47:59 UTC 18,341 bytes, 654 lines download raw bytes

vendor: 18,341 bytes, lines 1-654
1"use strict";
2(self["webpackChunksfra_boilerplate"] = self["webpackChunksfra_boilerplate"] || []).push([[553],{
3
4/***/ 8624
5(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6
7__webpack_require__.r(__webpack_exports__);
8/* harmony export */ __webpack_require__.d(__webpack_exports__, {
9/* harmony export */   DOMException: () => (/* binding */ DOMException),
10/* harmony export */   Headers: () => (/* binding */ Headers),
11/* harmony export */   Request: () => (/* binding */ Request),
12/* harmony export */   Response: () => (/* binding */ Response),
13/* harmony export */   fetch: () => (/* binding */ fetch)
14/* harmony export */ });
15/* eslint-disable no-prototype-builtins */
16var g =
17  (typeof globalThis !== 'undefined' && globalThis) ||
18  (typeof self !== 'undefined' && self) ||
19  // eslint-disable-next-line no-undef
20  (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g) ||
21  {}
22
23var support = {
24  searchParams: 'URLSearchParams' in g,
25  iterable: 'Symbol' in g && 'iterator' in Symbol,
26  blob:
27    'FileReader' in g &&
28    'Blob' in g &&
29    (function() {
30      try {
31        new Blob()
32        return true
33      } catch (e) {
34        return false
35      }
36    })(),
37  formData: 'FormData' in g,
38  arrayBuffer: 'ArrayBuffer' in g
39}
40
41function isDataView(obj) {
42  return obj && DataView.prototype.isPrototypeOf(obj)
43}
44
45if (support.arrayBuffer) {
46  var viewClasses = [
47    '[object Int8Array]',
48    '[object Uint8Array]',
49    '[object Uint8ClampedArray]',
50    '[object Int16Array]',
51    '[object Uint16Array]',
52    '[object Int32Array]',
53    '[object Uint32Array]',
54    '[object Float32Array]',
55    '[object Float64Array]'
56  ]
57
58  var isArrayBufferView =
59    ArrayBuffer.isView ||
60    function(obj) {
61      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1
62    }
63}
64
65function normalizeName(name) {
66  if (typeof name !== 'string') {
67    name = String(name)
68  }
69  if (/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {
70    throw new TypeError('Invalid character in header field name: "' + name + '"')
71  }
72  return name.toLowerCase()
73}
74
75function normalizeValue(value) {
76  if (typeof value !== 'string') {
77    value = String(value)
78  }
79  return value
80}
81
82// Build a destructive iterator for the value list
83function iteratorFor(items) {
84  var iterator = {
85    next: function() {
86      var value = items.shift()
87      return {done: value === undefined, value: value}
88    }
89  }
90
91  if (support.iterable) {
92    iterator[Symbol.iterator] = function() {
93      return iterator
94    }
95  }
96
97  return iterator
98}
99
100function Headers(headers) {
101  this.map = {}
102
103  if (headers instanceof Headers) {
104    headers.forEach(function(value, name) {
105      this.append(name, value)
106    }, this)
107  } else if (Array.isArray(headers)) {
108    headers.forEach(function(header) {
109      if (header.length != 2) {
110        throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)
111      }
112      this.append(header[0], header[1])
113    }, this)
114  } else if (headers) {
115    Object.getOwnPropertyNames(headers).forEach(function(name) {
116      this.append(name, headers[name])
117    }, this)
118  }
119}
120
121Headers.prototype.append = function(name, value) {
122  name = normalizeName(name)
123  value = normalizeValue(value)
124  var oldValue = this.map[name]
125  this.map[name] = oldValue ? oldValue + ', ' + value : value
126}
127
128Headers.prototype['delete'] = function(name) {
129  delete this.map[normalizeName(name)]
130}
131
132Headers.prototype.get = function(name) {
133  name = normalizeName(name)
134  return this.has(name) ? this.map[name] : null
135}
136
137Headers.prototype.has = function(name) {
138  return this.map.hasOwnProperty(normalizeName(name))
139}
140
141Headers.prototype.set = function(name, value) {
142  this.map[normalizeName(name)] = normalizeValue(value)
143}
144
145Headers.prototype.forEach = function(callback, thisArg) {
146  for (var name in this.map) {
147    if (this.map.hasOwnProperty(name)) {
148      callback.call(thisArg, this.map[name], name, this)
149    }
150  }
151}
152
153Headers.prototype.keys = function() {
154  var items = []
155  this.forEach(function(value, name) {
156    items.push(name)
157  })
158  return iteratorFor(items)
159}
160
161Headers.prototype.values = function() {
162  var items = []
163  this.forEach(function(value) {
164    items.push(value)
165  })
166  return iteratorFor(items)
167}
168
169Headers.prototype.entries = function() {
170  var items = []
171  this.forEach(function(value, name) {
172    items.push([name, value])
173  })
174  return iteratorFor(items)
175}
176
177if (support.iterable) {
178  Headers.prototype[Symbol.iterator] = Headers.prototype.entries
179}
180
181function consumed(body) {
182  if (body._noBody) return
183  if (body.bodyUsed) {
184    return Promise.reject(new TypeError('Already read'))
185  }
186  body.bodyUsed = true
187}
188
189function fileReaderReady(reader) {
190  return new Promise(function(resolve, reject) {
191    reader.onload = function() {
192      resolve(reader.result)
193    }
194    reader.onerror = function() {
195      reject(reader.error)
196    }
197  })
198}
199
200function readBlobAsArrayBuffer(blob) {
201  var reader = new FileReader()
202  var promise = fileReaderReady(reader)
203  reader.readAsArrayBuffer(blob)
204  return promise
205}
206
207function readBlobAsText(blob) {
208  var reader = new FileReader()
209  var promise = fileReaderReady(reader)
210  var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type)
211  var encoding = match ? match[1] : 'utf-8'
212  reader.readAsText(blob, encoding)
213  return promise
214}
215
216function readArrayBufferAsText(buf) {
217  var view = new Uint8Array(buf)
218  var chars = new Array(view.length)
219
220  for (var i = 0; i < view.length; i++) {
221    chars[i] = String.fromCharCode(view[i])
222  }
223  return chars.join('')
224}
225
226function bufferClone(buf) {
227  if (buf.slice) {
228    return buf.slice(0)
229  } else {
230    var view = new Uint8Array(buf.byteLength)
231    view.set(new Uint8Array(buf))
232    return view.buffer
233  }
234}
235
236function Body() {
237  this.bodyUsed = false
238
239  this._initBody = function(body) {
240    /*
241      fetch-mock wraps the Response object in an ES6 Proxy to
242      provide useful test harness features such as flush. However, on
243      ES5 browsers without fetch or Proxy support pollyfills must be used;
244      the proxy-pollyfill is unable to proxy an attribute unless it exists
245      on the object before the Proxy is created. This change ensures
246      Response.bodyUsed exists on the instance, while maintaining the
247      semantic of setting Request.bodyUsed in the constructor before
248      _initBody is called.
249    */
250    // eslint-disable-next-line no-self-assign
251    this.bodyUsed = this.bodyUsed
252    this._bodyInit = body
253    if (!body) {
254      this._noBody = true;
255      this._bodyText = ''
256    } else if (typeof body === 'string') {
257      this._bodyText = body
258    } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {
259      this._bodyBlob = body
260    } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {
261      this._bodyFormData = body
262    } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
263      this._bodyText = body.toString()
264    } else if (support.arrayBuffer && support.blob && isDataView(body)) {
265      this._bodyArrayBuffer = bufferClone(body.buffer)
266      // IE 10-11 can't handle a DataView body.
267      this._bodyInit = new Blob([this._bodyArrayBuffer])
268    } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {
269      this._bodyArrayBuffer = bufferClone(body)
270    } else {
271      this._bodyText = body = Object.prototype.toString.call(body)
272    }
273
274    if (!this.headers.get('content-type')) {
275      if (typeof body === 'string') {
276        this.headers.set('content-type', 'text/plain;charset=UTF-8')
277      } else if (this._bodyBlob && this._bodyBlob.type) {
278        this.headers.set('content-type', this._bodyBlob.type)
279      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
280        this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')
281      }
282    }
283  }
284
285  if (support.blob) {
286    this.blob = function() {
287      var rejected = consumed(this)
288      if (rejected) {
289        return rejected
290      }
291
292      if (this._bodyBlob) {
293        return Promise.resolve(this._bodyBlob)
294      } else if (this._bodyArrayBuffer) {
295        return Promise.resolve(new Blob([this._bodyArrayBuffer]))
296      } else if (this._bodyFormData) {
297        throw new Error('could not read FormData body as blob')
298      } else {
299        return Promise.resolve(new Blob([this._bodyText]))
300      }
301    }
302  }
303
304  this.arrayBuffer = function() {
305    if (this._bodyArrayBuffer) {
306      var isConsumed = consumed(this)
307      if (isConsumed) {
308        return isConsumed
309      } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {
310        return Promise.resolve(
311          this._bodyArrayBuffer.buffer.slice(
312            this._bodyArrayBuffer.byteOffset,
313            this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength
314          )
315        )
316      } else {
317        return Promise.resolve(this._bodyArrayBuffer)
318      }
319    } else if (support.blob) {
320      return this.blob().then(readBlobAsArrayBuffer)
321    } else {
322      throw new Error('could not read as ArrayBuffer')
323    }
324  }
325
326  this.text = function() {
327    var rejected = consumed(this)
328    if (rejected) {
329      return rejected
330    }
331
332    if (this._bodyBlob) {
333      return readBlobAsText(this._bodyBlob)
334    } else if (this._bodyArrayBuffer) {
335      return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))
336    } else if (this._bodyFormData) {
337      throw new Error('could not read FormData body as text')
338    } else {
339      return Promise.resolve(this._bodyText)
340    }
341  }
342
343  if (support.formData) {
344    this.formData = function() {
345      return this.text().then(decode)
346    }
347  }
348
349  this.json = function() {
350    return this.text().then(JSON.parse)
351  }
352
353  return this
354}
355
356// HTTP methods whose capitalization should be normalized
357var methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE']
358
359function normalizeMethod(method) {
360  var upcased = method.toUpperCase()
361  return methods.indexOf(upcased) > -1 ? upcased : method
362}
363
364function Request(input, options) {
365  if (!(this instanceof Request)) {
366    throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.')
367  }
368
369  options = options || {}
370  var body = options.body
371
372  if (input instanceof Request) {
373    if (input.bodyUsed) {
374      throw new TypeError('Already read')
375    }
376    this.url = input.url
377    this.credentials = input.credentials
378    if (!options.headers) {
379      this.headers = new Headers(input.headers)
380    }
381    this.method = input.method
382    this.mode = input.mode
383    this.signal = input.signal
384    if (!body && input._bodyInit != null) {
385      body = input._bodyInit
386      input.bodyUsed = true
387    }
388  } else {
389    this.url = String(input)
390  }
391
392  this.credentials = options.credentials || this.credentials || 'same-origin'
393  if (options.headers || !this.headers) {
394    this.headers = new Headers(options.headers)
395  }
396  this.method = normalizeMethod(options.method || this.method || 'GET')
397  this.mode = options.mode || this.mode || null
398  this.signal = options.signal || this.signal || (function () {
399    if ('AbortController' in g) {
400      var ctrl = new AbortController();
401      return ctrl.signal;
402    }
403  }());
404  this.referrer = null
405
406  if ((this.method === 'GET' || this.method === 'HEAD') && body) {
407    throw new TypeError('Body not allowed for GET or HEAD requests')
408  }
409  this._initBody(body)
410
411  if (this.method === 'GET' || this.method === 'HEAD') {
412    if (options.cache === 'no-store' || options.cache === 'no-cache') {
413      // Search for a '_' parameter in the query string
414      var reParamSearch = /([?&])_=[^&]*/
415      if (reParamSearch.test(this.url)) {
416        // If it already exists then set the value with the current time
417        this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())
418      } else {
419        // Otherwise add a new '_' parameter to the end with the current time
420        var reQueryString = /\?/
421        this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()
422      }
423    }
424  }
425}
426
427Request.prototype.clone = function() {
428  return new Request(this, {body: this._bodyInit})
429}
430
431function decode(body) {
432  var form = new FormData()
433  body
434    .trim()
435    .split('&')
436    .forEach(function(bytes) {
437      if (bytes) {
438        var split = bytes.split('=')
439        var name = split.shift().replace(/\+/g, ' ')
440        var value = split.join('=').replace(/\+/g, ' ')
441        form.append(decodeURIComponent(name), decodeURIComponent(value))
442      }
443    })
444  return form
445}
446
447function parseHeaders(rawHeaders) {
448  var headers = new Headers()
449  // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space
450  // https://tools.ietf.org/html/rfc7230#section-3.2
451  var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' ')
452  // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill
453  // https://github.com/github/fetch/issues/748
454  // https://github.com/zloirock/core-js/issues/751
455  preProcessedHeaders
456    .split('\r')
457    .map(function(header) {
458      return header.indexOf('\n') === 0 ? header.substr(1, header.length) : header
459    })
460    .forEach(function(line) {
461      var parts = line.split(':')
462      var key = parts.shift().trim()
463      if (key) {
464        var value = parts.join(':').trim()
465        try {
466          headers.append(key, value)
467        } catch (error) {
468          console.warn('Response ' + error.message)
469        }
470      }
471    })
472  return headers
473}
474
475Body.call(Request.prototype)
476
477function Response(bodyInit, options) {
478  if (!(this instanceof Response)) {
479    throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.')
480  }
481  if (!options) {
482    options = {}
483  }
484
485  this.type = 'default'
486  this.status = options.status === undefined ? 200 : options.status
487  if (this.status < 200 || this.status > 599) {
488    throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].")
489  }
490  this.ok = this.status >= 200 && this.status < 300
491  this.statusText = options.statusText === undefined ? '' : '' + options.statusText
492  this.headers = new Headers(options.headers)
493  this.url = options.url || ''
494  this._initBody(bodyInit)
495}
496
497Body.call(Response.prototype)
498
499Response.prototype.clone = function() {
500  return new Response(this._bodyInit, {
501    status: this.status,
502    statusText: this.statusText,
503    headers: new Headers(this.headers),
504    url: this.url
505  })
506}
507
508Response.error = function() {
509  var response = new Response(null, {status: 200, statusText: ''})
510  response.status = 0
511  response.type = 'error'
512  return response
513}
514
515var redirectStatuses = [301, 302, 303, 307, 308]
516
517Response.redirect = function(url, status) {
518  if (redirectStatuses.indexOf(status) === -1) {
519    throw new RangeError('Invalid status code')
520  }
521
522  return new Response(null, {status: status, headers: {location: url}})
523}
524
525var DOMException = g.DOMException
526try {
527  new DOMException()
528} catch (err) {
529  DOMException = function(message, name) {
530    this.message = message
531    this.name = name
532    var error = Error(message)
533    this.stack = error.stack
534  }
535  DOMException.prototype = Object.create(Error.prototype)
536  DOMException.prototype.constructor = DOMException
537}
538
539function fetch(input, init) {
540  return new Promise(function(resolve, reject) {
541    var request = new Request(input, init)
542
543    if (request.signal && request.signal.aborted) {
544      return reject(new DOMException('Aborted', 'AbortError'))
545    }
546
547    var xhr = new XMLHttpRequest()
548
549    function abortXhr() {
550      xhr.abort()
551    }
552
553    xhr.onload = function() {
554      var options = {
555        status: xhr.status,
556        statusText: xhr.statusText,
557        headers: parseHeaders(xhr.getAllResponseHeaders() || '')
558      }
559      options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')
560      var body = 'response' in xhr ? xhr.response : xhr.responseText
561      setTimeout(function() {
562        resolve(new Response(body, options))
563      }, 0)
564    }
565
566    xhr.onerror = function() {
567      setTimeout(function() {
568        reject(new TypeError('Network request failed'))
569      }, 0)
570    }
571
572    xhr.ontimeout = function() {
573      setTimeout(function() {
574        reject(new TypeError('Network request failed'))
575      }, 0)
576    }
577
578    xhr.onabort = function() {
579      setTimeout(function() {
580        reject(new DOMException('Aborted', 'AbortError'))
581      }, 0)
582    }
583
584    function fixUrl(url) {
585      try {
586        return url === '' && g.location.href ? g.location.href : url
587      } catch (e) {
588        return url
589      }
590    }
591
592    xhr.open(request.method, fixUrl(request.url), true)
593
594    if (request.credentials === 'include') {
595      xhr.withCredentials = true
596    } else if (request.credentials === 'omit') {
597      xhr.withCredentials = false
598    }
599
600    if ('responseType' in xhr) {
601      if (support.blob) {
602        xhr.responseType = 'blob'
603      } else if (
604        support.arrayBuffer
605      ) {
606        xhr.responseType = 'arraybuffer'
607      }
608    }
609
610    if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {
611      var names = [];
612      Object.getOwnPropertyNames(init.headers).forEach(function(name) {
613        names.push(normalizeName(name))
614        xhr.setRequestHeader(name, normalizeValue(init.headers[name]))
615      })
616      request.headers.forEach(function(value, name) {
617        if (names.indexOf(name) === -1) {
618          xhr.setRequestHeader(name, value)
619        }
620      })
621    } else {
622      request.headers.forEach(function(value, name) {
623        xhr.setRequestHeader(name, value)
624      })
625    }
626
627    if (request.signal) {
628      request.signal.addEventListener('abort', abortXhr)
629
630      xhr.onreadystatechange = function() {
631        // DONE (success or failure)
632        if (xhr.readyState === 4) {
633          request.signal.removeEventListener('abort', abortXhr)
634        }
635      }
636    }
637
638    xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)
639  })
640}
641
642fetch.polyfill = true
643
644if (!g.fetch) {
645  g.fetch = fetch
646  g.Headers = Headers
647  g.Request = Request
648  g.Response = Response
649}
650
651
652/***/ }
653
654}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.