1{"version":3,"sources":["webpack://wagtail/webpack/runtime/chunk loaded","webpack://wagtail/./node_modules/events/events.js","webpack://wagtail/./client/src/components/StreamField/blocks/BaseSequenceBlock.js","webpack://wagtail/./client/src/components/StreamField/blocks/FieldBlock.js","webpack://wagtail/./client/src/components/StreamField/blocks/ListBlock.js","webpack://wagtail/./client/src/components/StreamField/blocks/StaticBlock.js","webpack://wagtail/./client/src/components/StreamField/blocks/StreamBlock.js","webpack://wagtail/./client/src/components/StreamField/blocks/StructBlock.js","webpack://wagtail/./client/src/entrypoints/admin/telepath/blocks.js","webpack://wagtail/./client/src/utils/text.ts","webpack://wagtail/./node_modules/uuid/dist/esm-browser/rng.js","webpack://wagtail/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://wagtail/./node_modules/uuid/dist/esm-browser/regex.js","webpack://wagtail/./node_modules/uuid/dist/esm-browser/validate.js","webpack://wagtail/./node_modules/uuid/dist/esm-browser/v1.js","webpack://wagtail/./node_modules/uuid/dist/esm-browser/parse.js","webpack://wagtail/./node_modules/uuid/dist/esm-browser/v35.js","webpack://wagtail/./node_modules/uuid/dist/esm-browser/md5.js","webpack://wagtail/./node_modules/uuid/dist/esm-browser/v3.js","webpack://wagtail/./node_modules/uuid/dist/esm-browser/v4.js","webpack://wagtail/./node_modules/uuid/dist/esm-browser/sha1.js","webpack://wagtail/./node_modules/uuid/dist/esm-browser/v5.js","webpack://wagtail/./node_modules/uuid/dist/esm-browser/nil.js","webpack://wagtail/./node_modules/uuid/dist/esm-browser/version.js","webpack://wagtail/webpack/bootstrap","webpack://wagtail/webpack/runtime/compat get default export","webpack://wagtail/webpack/runtime/define property getters","webpack://wagtail/webpack/runtime/global","webpack://wagtail/webpack/runtime/harmony module decorator","webpack://wagtail/webpack/runtime/hasOwnProperty shorthand","webpack://wagtail/webpack/runtime/make namespace object","webpack://wagtail/webpack/runtime/runtimeId","webpack://wagtail/webpack/runtime/jsonp chunk loading","webpack://wagtail/webpack/startup"],"names":["deferred","ReflectOwnKeys","R","Reflect","ReflectApply","apply","target","receiver","args","Function","prototype","call","ownKeys","Object","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","Number","isNaN","value","EventEmitter","init","this","module","exports","once","emitter","name","Promise","resolve","reject","eventListener","undefined","errorListener","removeListener","slice","arguments","err","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","TypeError","_getMaxListeners","that","_addListener","type","prepend","m","events","existing","warning","create","newListener","emit","unshift","push","length","warned","w","Error","String","count","console","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","bind","_listeners","unwrap","evlistener","arr","ret","Array","i","unwrapListeners","arrayClone","listenerCount","n","copy","defineProperty","enumerable","get","set","arg","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","error","er","message","context","handler","len","listeners","addListener","on","prependListener","prependOnceListener","list","position","originalListener","shift","index","pop","spliceOne","off","removeAllListeners","key","keys","rawListeners","eventNames","extendStatics","__extends","d","b","setPrototypeOf","__proto__","p","hasOwnProperty","__","constructor","__read","o","Symbol","iterator","r","e","ar","next","done","__values","s","__importDefault","mod","__esModule","BaseSequenceBlock","BaseInsertionControl","BaseSequenceChild","events_1","text_1","ActionButton","sequenceChild","render","container","_this","label","strings","labelIdentifier","dom","$","escapeHtml","icon","onClick","append","enableEvent","enable","disableEvent","disable","initiallyDisabled","removeAttr","attr","MoveUpButton","_super","moveUp","MoveDownButton","moveDown","DuplicateButton","duplicate","animate","DeleteButton","blockDef","placeholder","prefix","id","initialState","sequence","opts","collapsed","meta","replaceWith","element","blockElement","find","actionsContainerElement","titleElement","contentElement","deletedInput","indexInput","click","toggleCollapsedState","addActionButton","block","collapse","hide","setTimeout","slideDown","button","moveBlockUp","moveBlockDown","duplicateBlock","deleteBlock","markDeleted","_a","_b","_c","val","slideUp","dequeue","fadeOut","contentPath","window","comments","getContentPath","commentApp","invalidateContentPath","enableDuplication","disableDuplication","enableMoveUp","disableMoveUp","enableMoveDown","disableMoveDown","setIndex","newIndex","setError","focus","getTextLabel","maxLength","text","dispatchEvent","CustomEvent","bubbles","expand","show","onRequestInsert","_createChild","_createInsertionControl","_getChildDataForInsertion","clear","countInput","sequenceContainer","empty","children","blockCounter","document","createElement","inserters","_onRequestInsert","_insert","soft","childBlockDef","existingInserterElement","blockPlaceholder","inserterPlaceholder","insertAfter","child","splice","inserter","inserterOpts","isFirstChild","isLastChild","moveBlock","oldIndex","inserterToMove","childToMove","insertBefore","maxIndex","setState","values","forEach","insert","getState","map","getValue","e_1","result","childLabel","newResult","endsWith","e_1_1","FieldBlockDefinition","FieldBlock","initialError","classname","widgetElement","widget","messages","idForLabel","helpText","helpElement","classList","add","innerHTML","querySelector","appendChild","showAddCommentButton","fieldCommentControlElement","addCommentButtonElement","setAttribute","ADD_COMMENT","initAddCommentButton","errorList","querySelectorAll","remove","errorElement","join","ListBlockDefinition","ListBlock","ListBlockValidationError","BaseSequenceBlock_1","blockErrors","nonBlockErrors","ListChild","InsertPosition","ADD","helpIcon","initialChildState","childState","nonBlockError","childNodes","blockError","blockIndex","StaticBlockDefinition","StaticBlock","html","_state","_errorList","StreamBlockDefinition","StreamBlock","StreamBlockValidationError","uuid_1","StreamChild","StreamBlockMenu","groupedChildBlockDefs","addButton","toggle","outerContainer","innerContainer","hasRenderedMenu","isOpen","canAddBlock","disabledBlockTypes","Set","close","renderMenu","group","blockDefs","heading","grid","blockType","setNewBlockRestrictions","open","addClass","removeClass","checkBlockCounts","maxNum","_loop_1","this_1","blockCounts","counts","max_num","filter","has","childBlockDefsByName","initialChildStates","v4","StructBlockDefinition","StructBlock","StructBlockValidationError","childBlocks","formTemplate","replace","dom_1","childBlockDefs","childBlockElement","childBlock","dom_2","childDom","required","labelElement","name_1","blockName","name_2","name_3","childDef","firstChildName","FieldBlock_1","StaticBlock_1","StructBlock_1","ListBlock_1","StreamBlock_1","wagtailStreamField","blocks","initBlockWidget","body","blockDefData","JSON","parse","dataset","telepath","unpack","blockValue","errors","register","unsafe","getRandomValues","rnds8","Uint8Array","rng","crypto","msCrypto","uuid","byteToHex","toString","substr","_nodeId","_clockseq","offset","toLowerCase","_lastMSecs","_lastNSecs","options","buf","node","clockseq","seedBytes","random","msecs","Date","now","nsecs","dt","tl","tmh","v","parseInt","version","hashfunc","generateUUID","namespace","str","unescape","encodeURIComponent","bytes","charCodeAt","stringToBytes","DNS","URL","getOutputLength","inputLength8","safeAdd","x","y","lsw","md5cmn","q","a","t","num","cnt","md5ff","c","md5gg","md5hh","md5ii","v35","msg","input","output","length32","hexTab","hex","charAt","md5ToHexEncodedArray","olda","oldb","oldc","oldd","wordsToMd5","length8","Uint32Array","bytesToWords","rnds","f","z","ROTL","K","H","isArray","l","N","Math","ceil","M","_i","j","pow","floor","_i2","W","_t","_t2","T","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","every","getter","definition","g","globalThis","hmd","obj","prop","toStringTag","installedChunks","849","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"mappings":"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","file":"wagtail/admin/static/wagtailadmin/js/telepath/blocks.js","sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tresult = fn();\n\t\t}\n\t}\n\treturn result;\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n  ? R.apply\n  : function ReflectApply(target, receiver, args) {\n    return Function.prototype.apply.call(target, receiver, args);\n  }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n  ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target)\n      .concat(Object.getOwnPropertySymbols(target));\n  };\n} else {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target);\n  };\n}\n\nfunction ProcessEmitWarning(warning) {\n  if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n  return value !== value;\n}\n\nfunction EventEmitter() {\n  EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n  if (typeof listener !== 'function') {\n    throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n  }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n  enumerable: true,\n  get: function() {\n    return defaultMaxListeners;\n  },\n  set: function(arg) {\n    if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n      throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n    }\n    defaultMaxListeners = arg;\n  }\n});\n\nEventEmitter.init = function() {\n\n  if (this._events === undefined ||\n      this._events === Object.getPrototypeOf(this)._events) {\n    this._events = Object.create(null);\n    this._eventsCount = 0;\n  }\n\n  this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n  if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n    throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n  }\n  this._maxListeners = n;\n  return this;\n};\n\nfunction _getMaxListeners(that) {\n  if (that._maxListeners === undefined)\n    return EventEmitter.defaultMaxListeners;\n  return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n  return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n  var args = [];\n  for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n  var doError = (type === 'error');\n\n  var events = this._events;\n  if (events !== undefined)\n    doError = (doError && events.error === undefined);\n  else if (!doError)\n    return false;\n\n  // If there is no 'error' event listener then throw.\n  if (doError) {\n    var er;\n    if (args.length > 0)\n      er = args[0];\n    if (er instanceof Error) {\n      // Note: The comments on the `throw` lines are intentional, they show\n      // up in Node's output if this results in an unhandled exception.\n      throw er; // Unhandled 'error' event\n    }\n    // At least give some kind of context to the user\n    var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n    err.context = er;\n    throw err; // Unhandled 'error' event\n  }\n\n  var handler = events[type];\n\n  if (handler === undefined)\n    return false;\n\n  if (typeof handler === 'function') {\n    ReflectApply(handler, this, args);\n  } else {\n    var len = handler.length;\n    var listeners = arrayClone(handler, len);\n    for (var i = 0; i < len; ++i)\n      ReflectApply(listeners[i], this, args);\n  }\n\n  return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n  var m;\n  var events;\n  var existing;\n\n  checkListener(listener);\n\n  events = target._events;\n  if (events === undefined) {\n    events = target._events = Object.create(null);\n    target._eventsCount = 0;\n  } else {\n    // To avoid recursion in the case that type === \"newListener\"! Before\n    // adding it to the listeners, first emit \"newListener\".\n    if (events.newListener !== undefined) {\n      target.emit('newListener', type,\n                  listener.listener ? listener.listener : listener);\n\n      // Re-assign `events` because a newListener handler could have caused the\n      // this._events to be assigned to a new object\n      events = target._events;\n    }\n    existing = events[type];\n  }\n\n  if (existing === undefined) {\n    // Optimize the case of one listener. Don't need the extra array object.\n    existing = events[type] = listener;\n    ++target._eventsCount;\n  } else {\n    if (typeof existing === 'function') {\n      // Adding the second element, need to change to array.\n      existing = events[type] =\n        prepend ? [listener, existing] : [existing, listener];\n      // If we've already got an array, just append.\n    } else if (prepend) {\n      existing.unshift(listener);\n    } else {\n      existing.push(listener);\n    }\n\n    // Check for listener leak\n    m = _getMaxListeners(target);\n    if (m > 0 && existing.length > m && !existing.warned) {\n      existing.warned = true;\n      // No error code for this since it is a Warning\n      // eslint-disable-next-line no-restricted-syntax\n      var w = new Error('Possible EventEmitter memory leak detected. ' +\n                          existing.length + ' ' + String(type) + ' listeners ' +\n                          'added. Use emitter.setMaxListeners() to ' +\n                          'increase limit');\n      w.name = 'MaxListenersExceededWarning';\n      w.emitter = target;\n      w.type = type;\n      w.count = existing.length;\n      ProcessEmitWarning(w);\n    }\n  }\n\n  return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n  return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n    function prependListener(type, listener) {\n      return _addListener(this, type, listener, true);\n    };\n\nfunction onceWrapper() {\n  if (!this.fired) {\n    this.target.removeListener(this.type, this.wrapFn);\n    this.fired = true;\n    if (arguments.length === 0)\n      return this.listener.call(this.target);\n    return this.listener.apply(this.target, arguments);\n  }\n}\n\nfunction _onceWrap(target, type, listener) {\n  var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n  var wrapped = onceWrapper.bind(state);\n  wrapped.listener = listener;\n  state.wrapFn = wrapped;\n  return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n  checkListener(listener);\n  this.on(type, _onceWrap(this, type, listener));\n  return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n    function prependOnceListener(type, listener) {\n      checkListener(listener);\n      this.prependListener(type, _onceWrap(this, type, listener));\n      return this;\n    };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n    function removeListener(type, listener) {\n      var list, events, position, i, originalListener;\n\n      checkListener(listener);\n\n      events = this._events;\n      if (events === undefined)\n        return this;\n\n      list = events[type];\n      if (list === undefined)\n        return this;\n\n      if (list === listener || list.listener === listener) {\n        if (--this._eventsCount === 0)\n          this._events = Object.create(null);\n        else {\n          delete events[type];\n          if (events.removeListener)\n            this.emit('removeListener', type, list.listener || listener);\n        }\n      } else if (typeof list !== 'function') {\n        position = -1;\n\n        for (i = list.length - 1; i >= 0; i--) {\n          if (list[i] === listener || list[i].listener === listener) {\n            originalListener = list[i].listener;\n            position = i;\n            break;\n          }\n        }\n\n        if (position < 0)\n          return this;\n\n        if (position === 0)\n          list.shift();\n        else {\n          spliceOne(list, position);\n        }\n\n        if (list.length === 1)\n          events[type] = list[0];\n\n        if (events.removeListener !== undefined)\n          this.emit('removeListener', type, originalListener || listener);\n      }\n\n      return this;\n    };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n    function removeAllListeners(type) {\n      var listeners, events, i;\n\n      events = this._events;\n      if (events === undefined)\n        return this;\n\n      // not listening for removeListener, no need to emit\n      if (events.removeListener === undefined) {\n        if (arguments.length === 0) {\n          this._events = Object.create(null);\n          this._eventsCount = 0;\n        } else if (events[type] !== undefined) {\n          if (--this._eventsCount === 0)\n            this._events = Object.create(null);\n          else\n            delete events[type];\n        }\n        return this;\n      }\n\n      // emit removeListener for all listeners on all events\n      if (arguments.length === 0) {\n        var keys = Object.keys(events);\n        var key;\n        for (i = 0; i < keys.length; ++i) {\n          key = keys[i];\n          if (key === 'removeListener') continue;\n          this.removeAllListeners(key);\n        }\n        this.removeAllListeners('removeListener');\n        this._events = Object.create(null);\n        this._eventsCount = 0;\n        return this;\n      }\n\n      listeners = events[type];\n\n      if (typeof listeners === 'function') {\n        this.removeListener(type, listeners);\n      } else if (listeners !== undefined) {\n        // LIFO order\n        for (i = listeners.length - 1; i >= 0; i--) {\n          this.removeListener(type, listeners[i]);\n        }\n      }\n\n      return this;\n    };\n\nfunction _listeners(target, type, unwrap) {\n  var events = target._events;\n\n  if (events === undefined)\n    return [];\n\n  var evlistener = events[type];\n  if (evlistener === undefined)\n    return [];\n\n  if (typeof evlistener === 'function')\n    return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n  return unwrap ?\n    unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n  return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n  return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n  if (typeof emitter.listenerCount === 'function') {\n    return emitter.listenerCount(type);\n  } else {\n    return listenerCount.call(emitter, type);\n  }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n  var events = this._events;\n\n  if (events !== undefined) {\n    var evlistener = events[type];\n\n    if (typeof evlistener === 'function') {\n      return 1;\n    } else if (evlistener !== undefined) {\n      return evlistener.length;\n    }\n  }\n\n  return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n  return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n  var copy = new Array(n);\n  for (var i = 0; i < n; ++i)\n    copy[i] = arr[i];\n  return copy;\n}\n\nfunction spliceOne(list, index) {\n  for (; index + 1 < list.length; index++)\n    list[index] = list[index + 1];\n  list.pop();\n}\n\nfunction unwrapListeners(arr) {\n  var ret = new Array(arr.length);\n  for (var i = 0; i < ret.length; ++i) {\n    ret[i] = arr[i].listener || arr[i];\n  }\n  return ret;\n}\n\nfunction once(emitter, name) {\n  return new Promise(function (resolve, reject) {\n    function eventListener() {\n      if (errorListener !== undefined) {\n        emitter.removeListener('error', errorListener);\n      }\n      resolve([].slice.call(arguments));\n    };\n    var errorListener;\n\n    // Adding an error listener is not optional because\n    // if an error is thrown on an event emitter we cannot\n    // guarantee that the actual event we are waiting will\n    // be fired. The result could be a silent way to create\n    // memory or file descriptor leaks, which is something\n    // we should avoid.\n    if (name !== 'error') {\n      errorListener = function errorListener(err) {\n        emitter.removeListener(name, eventListener);\n        reject(err);\n      };\n\n      emitter.once('error', errorListener);\n    }\n\n    emitter.once(name, eventListener);\n  });\n}\n","\"use strict\";\n/* eslint-disable no-underscore-dangle */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nexports.BaseSequenceBlock = exports.BaseInsertionControl = exports.BaseSequenceChild = void 0;\n/* global $ */\nvar events_1 = __importDefault(require(\"events\"));\nvar text_1 = require(\"../../../utils/text\");\nvar ActionButton = /** @class */ (function () {\n    function ActionButton(sequenceChild) {\n        this.sequenceChild = sequenceChild;\n    }\n    ActionButton.prototype.render = function (container) {\n        var _this = this;\n        var label = this.sequenceChild.strings[this.labelIdentifier] || this.labelIdentifier;\n        this.dom = $(\"\\n      <button type=\\\"button\\\" class=\\\"c-sf-block__actions__single\\\" title=\\\"\" + text_1.escapeHtml(label) + \"\\\">\\n        <i class=\\\"icon icon-\" + text_1.escapeHtml(this.icon) + \"\\\" aria-hidden=\\\"true\\\"></i>\\n      </button>\\n    \");\n        this.dom.on('click', function () {\n            if (_this.onClick)\n                _this.onClick();\n            return false; // don't propagate to header's onclick event (which collapses the block)\n        });\n        $(container).append(this.dom);\n        if (this.enableEvent) {\n            this.sequenceChild.on(this.enableEvent, function () {\n                _this.enable();\n            });\n        }\n        if (this.disableEvent) {\n            this.sequenceChild.on(this.disableEvent, function () {\n                _this.disable();\n            });\n        }\n        if (this.initiallyDisabled) {\n            this.disable();\n        }\n    };\n    ActionButton.prototype.enable = function () {\n        this.dom.removeAttr('disabled');\n    };\n    ActionButton.prototype.disable = function () {\n        this.dom.attr('disabled', 'true');\n    };\n    return ActionButton;\n}());\nvar MoveUpButton = /** @class */ (function (_super) {\n    __extends(MoveUpButton, _super);\n    function MoveUpButton() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.enableEvent = 'enableMoveUp';\n        _this.disableEvent = 'disableMoveUp';\n        _this.initiallyDisabled = true;\n        _this.icon = 'arrow-up';\n        _this.labelIdentifier = 'MOVE_UP';\n        return _this;\n    }\n    MoveUpButton.prototype.onClick = function () {\n        this.sequenceChild.moveUp();\n    };\n    return MoveUpButton;\n}(ActionButton));\nvar MoveDownButton = /** @class */ (function (_super) {\n    __extends(MoveDownButton, _super);\n    function MoveDownButton() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.enableEvent = 'enableMoveDown';\n        _this.disableEvent = 'disableMoveDown';\n        _this.initiallyDisabled = true;\n        _this.icon = 'arrow-down';\n        _this.labelIdentifier = 'MOVE_DOWN';\n        return _this;\n    }\n    MoveDownButton.prototype.onClick = function () {\n        this.sequenceChild.moveDown();\n    };\n    return MoveDownButton;\n}(ActionButton));\nvar DuplicateButton = /** @class */ (function (_super) {\n    __extends(DuplicateButton, _super);\n    function DuplicateButton() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.enableEvent = 'enableDuplication';\n        _this.disableEvent = 'disableDuplication';\n        _this.icon = 'duplicate';\n        _this.labelIdentifier = 'DUPLICATE';\n        return _this;\n    }\n    DuplicateButton.prototype.onClick = function () {\n        this.sequenceChild.duplicate({ animate: true });\n    };\n    return DuplicateButton;\n}(ActionButton));\nvar DeleteButton = /** @class */ (function (_super) {\n    __extends(DeleteButton, _super);\n    function DeleteButton() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.icon = 'bin';\n        _this.labelIdentifier = 'DELETE';\n        return _this;\n    }\n    DeleteButton.prototype.onClick = function () {\n        this.sequenceChild[\"delete\"]({ animate: true });\n    };\n    return DeleteButton;\n}(ActionButton));\nvar BaseSequenceChild = /** @class */ (function (_super) {\n    __extends(BaseSequenceChild, _super);\n    function BaseSequenceChild(blockDef, placeholder, prefix, index, id, initialState, sequence, opts) {\n        var _this = this;\n        _this.blockDef = blockDef;\n        _this.type = blockDef.name;\n        _this.prefix = prefix;\n        _this.index = index;\n        _this.id = id;\n        _this.sequence = sequence;\n        var animate = opts && opts.animate;\n        _this.collapsed = opts && opts.collapsed;\n        _this.strings = (opts && opts.strings) || {};\n        var dom = $(\"\\n      <div aria-hidden=\\\"false\\\" \" + (_this.id ? \"data-contentpath=\\\"\" + text_1.escapeHtml(_this.id) + \"\\\"\" : 'data-contentpath-disabled') + \">\\n        <input type=\\\"hidden\\\"  name=\\\"\" + _this.prefix + \"-deleted\\\" value=\\\"\\\">\\n        <input type=\\\"hidden\\\" name=\\\"\" + _this.prefix + \"-order\\\" value=\\\"\" + index + \"\\\">\\n        <input type=\\\"hidden\\\" name=\\\"\" + _this.prefix + \"-type\\\" value=\\\"\" + text_1.escapeHtml(_this.type || '') + \"\\\">\\n        <input type=\\\"hidden\\\" name=\\\"\" + _this.prefix + \"-id\\\" value=\\\"\" + text_1.escapeHtml(_this.id || '') + \"\\\">\\n\\n        <div>\\n          <div class=\\\"c-sf-container__block-container\\\">\\n            <div class=\\\"c-sf-block\\\">\\n              <div data-block-header class=\\\"c-sf-block__header c-sf-block__header--collapsible\\\">\\n                <span class=\\\"c-sf-block__header__icon\\\">\\n                  <i class=\\\"icon icon-\" + text_1.escapeHtml(_this.blockDef.meta.icon) + \"\\\"></i>\\n                </span>\\n                <h3 data-block-title class=\\\"c-sf-block__header__title\\\"></h3>\\n                <div class=\\\"c-sf-block__actions\\\" data-block-actions>\\n                  <span class=\\\"c-sf-block__type\\\">\" + text_1.escapeHtml(_this.blockDef.meta.label) + \"</span>\\n                </div>\\n              </div>\\n              <div data-block-content class=\\\"c-sf-block__content\\\" aria-hidden=\\\"false\\\">\\n                <div class=\\\"c-sf-block__content-inner\\\">\\n                  <div data-streamfield-block></div>\\n                </div>\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    \");\n        $(placeholder).replaceWith(dom);\n        _this.element = dom.get(0);\n        var blockElement = dom.find('[data-streamfield-block]').get(0);\n        _this.actionsContainerElement = dom.find('[data-block-actions]').get(0);\n        _this.titleElement = dom.find('[data-block-title]');\n        _this.contentElement = dom.find('[data-block-content]');\n        _this.deletedInput = dom.find(\"input[name=\\\"\" + _this.prefix + \"-deleted\\\"]\");\n        _this.indexInput = dom.find(\"input[name=\\\"\" + _this.prefix + \"-order\\\"]\");\n        dom.find('[data-block-header]').click(function () {\n            _this.toggleCollapsedState();\n        });\n        _this.addActionButton(new MoveUpButton(_this));\n        _this.addActionButton(new MoveDownButton(_this));\n        _this.addActionButton(new DuplicateButton(_this));\n        _this.addActionButton(new DeleteButton(_this));\n        _this.block = _this.blockDef.render(blockElement, _this.prefix + '-value', initialState);\n        if (_this.collapsed) {\n            _this.collapse();\n        }\n        if (animate) {\n            dom.hide();\n            setTimeout(function () {\n                dom.slideDown();\n            }, 10);\n        }\n        return _this;\n    }\n    BaseSequenceChild.prototype.addActionButton = function (button) {\n        button.render(this.actionsContainerElement);\n    };\n    BaseSequenceChild.prototype.moveUp = function () {\n        this.sequence.moveBlockUp(this.index);\n    };\n    BaseSequenceChild.prototype.moveDown = function () {\n        this.sequence.moveBlockDown(this.index);\n    };\n    BaseSequenceChild.prototype.duplicate = function (opts) {\n        this.sequence.duplicateBlock(this.index, opts);\n    };\n    BaseSequenceChild.prototype[\"delete\"] = function (opts) {\n        this.sequence.deleteBlock(this.index, opts);\n    };\n    BaseSequenceChild.prototype.markDeleted = function (_a) {\n        var _b;\n        var _c = _a.animate, animate = _c === void 0 ? false : _c;\n        this.deletedInput.val('1');\n        if (animate) {\n            $(this.element).slideUp().dequeue()\n                .fadeOut()\n                .attr('aria-hidden', 'true');\n        }\n        else {\n            $(this.element).hide().attr('aria-hidden', 'true');\n        }\n        // Inform the comment app that the content path of this block is no longer valid\n        // This will hide any comments that were previously on the block\n        var contentPath = (_b = window.comments) === null || _b === void 0 ? void 0 : _b.getContentPath(this.element);\n        if (contentPath && window.comments.commentApp) {\n            window.comments.commentApp.invalidateContentPath(contentPath);\n        }\n    };\n    BaseSequenceChild.prototype.enableDuplication = function () {\n        this.emit('enableDuplication');\n    };\n    BaseSequenceChild.prototype.disableDuplication = function () {\n        this.emit('disableDuplication');\n    };\n    BaseSequenceChild.prototype.enableMoveUp = function () {\n        this.emit('enableMoveUp');\n    };\n    BaseSequenceChild.prototype.disableMoveUp = function () {\n        this.emit('disableMoveUp');\n    };\n    BaseSequenceChild.prototype.enableMoveDown = function () {\n        this.emit('enableMoveDown');\n    };\n    BaseSequenceChild.prototype.disableMoveDown = function () {\n        this.emit('disableMoveDown');\n    };\n    BaseSequenceChild.prototype.setIndex = function (newIndex) {\n        this.index = newIndex;\n        this.indexInput.val(newIndex);\n    };\n    BaseSequenceChild.prototype.setError = function (error) {\n        this.block.setError(error);\n    };\n    BaseSequenceChild.prototype.focus = function (opts) {\n        this.block.focus(opts);\n    };\n    BaseSequenceChild.prototype.getTextLabel = function (opts) {\n        if (this.block.getTextLabel) {\n            return this.block.getTextLabel(opts);\n        }\n        return null;\n    };\n    BaseSequenceChild.prototype.collapse = function () {\n        this.contentElement.hide().attr('aria-hidden', 'true');\n        var label = this.getTextLabel({ maxLength: 50 });\n        this.titleElement.text(label || '');\n        this.collapsed = true;\n        this.contentElement.get(0).dispatchEvent(new CustomEvent('commentAnchorVisibilityChange', { bubbles: true }));\n    };\n    BaseSequenceChild.prototype.expand = function () {\n        this.contentElement.show().attr('aria-hidden', 'false');\n        this.titleElement.text('');\n        this.collapsed = false;\n        this.contentElement.get(0).dispatchEvent(new CustomEvent('commentAnchorVisibilityChange', { bubbles: true }));\n    };\n    BaseSequenceChild.prototype.toggleCollapsedState = function () {\n        if (this.collapsed) {\n            this.expand();\n        }\n        else {\n            this.collapse();\n        }\n    };\n    return BaseSequenceChild;\n}(events_1[\"default\"]));\nexports.BaseSequenceChild = BaseSequenceChild;\nvar BaseInsertionControl = /** @class */ (function () {\n    /* Base class for controls that appear between blocks in a sequence, to allow inserting new\n    blocks at that point. Subclasses should render an HTML structure with a single root element\n    (replacing the placeholder passed to the constructor) and set it as this.element.\n    When the user requests to insert a block, we call onRequestInsert passing the index number\n    and a dict of control-specific options. */\n    function BaseInsertionControl(placeholder, opts) {\n        this.index = opts && opts.index;\n        this.onRequestInsert = opts && opts.onRequestInsert;\n    }\n    BaseInsertionControl.prototype.setIndex = function (newIndex) {\n        this.index = newIndex;\n    };\n    BaseInsertionControl.prototype[\"delete\"] = function (_a) {\n        var _b = _a.animate, animate = _b === void 0 ? false : _b;\n        if (animate) {\n            $(this.element).slideUp().attr('aria-hidden', 'true');\n        }\n        else {\n            $(this.element).hide().attr('aria-hidden', 'true');\n        }\n    };\n    return BaseInsertionControl;\n}());\nexports.BaseInsertionControl = BaseInsertionControl;\nvar BaseSequenceBlock = /** @class */ (function () {\n    function BaseSequenceBlock() {\n    }\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    BaseSequenceBlock.prototype._createChild = function (blockDef, placeholder, prefix, index, id, initialState, sequence, opts) {\n        throw new Error('not implemented');\n    };\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    BaseSequenceBlock.prototype._createInsertionControl = function (placeholder, opts) {\n        throw new Error('not implemented');\n    };\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    BaseSequenceBlock.prototype._getChildDataForInsertion = function (opts) {\n        throw new Error('not implemented');\n    };\n    BaseSequenceBlock.prototype.clear = function () {\n        var _this = this;\n        this.countInput.val(0);\n        this.sequenceContainer.empty();\n        this.children = [];\n        this.blockCounter = 0;\n        // Create initial insertion control\n        var placeholder = document.createElement('div');\n        this.sequenceContainer.append(placeholder);\n        this.inserters = [\n            this._createInsertionControl(placeholder, {\n                index: 0,\n                onRequestInsert: function (newIndex, opts) {\n                    _this._onRequestInsert(newIndex, opts);\n                },\n                strings: this.blockDef.meta.strings,\n            })\n        ];\n    };\n    BaseSequenceBlock.prototype._onRequestInsert = function (index, opts) {\n        /* handler for an 'insert new block' action */\n        var _a = __read(this._getChildDataForInsertion(opts), 3), blockDef = _a[0], initialState = _a[1], id = _a[2];\n        var newChild = this._insert(blockDef, initialState, id || null, index, { animate: true });\n        // focus the newly added field if we can do so without obtrusive UI behaviour\n        newChild.focus({ soft: true });\n    };\n    BaseSequenceBlock.prototype._insert = function (childBlockDef, initialState, id, index, opts) {\n        var _this = this;\n        var prefix = this.prefix + '-' + this.blockCounter;\n        var animate = opts && opts.animate;\n        var collapsed = opts && opts.collapsed;\n        this.blockCounter++;\n        /*\n        a new inserter and block will be inserted AFTER the inserter with the given index;\n        e.g if there are 3 blocks the children of sequenceContainer will be\n        [inserter 0, block 0, inserter 1, block 1, inserter 2, block 2, inserter 3]\n        and inserting a new block at index 1 will create a new block 1 and inserter 2 after the\n        current inserter 1, and increment everything after that point\n        */\n        var existingInserterElement = this.inserters[index].element;\n        var blockPlaceholder = document.createElement('div');\n        var inserterPlaceholder = document.createElement('div');\n        $(blockPlaceholder).insertAfter(existingInserterElement);\n        $(inserterPlaceholder).insertAfter(blockPlaceholder);\n        /* shuffle up indexes of all blocks / inserters above this index */\n        for (var i = index; i < this.children.length; i++) {\n            this.children[i].setIndex(i + 1);\n        }\n        for (var i = index + 1; i < this.inserters.length; i++) {\n            this.inserters[i].setIndex(i + 1);\n        }\n        var child = this._createChild(childBlockDef, blockPlaceholder, prefix, index, id, initialState, this, {\n            animate: animate,\n            collapsed: collapsed,\n            strings: this.blockDef.meta.strings,\n        });\n        this.children.splice(index, 0, child);\n        var inserter = this._createInsertionControl(inserterPlaceholder, {\n            index: index + 1,\n            onRequestInsert: function (newIndex, inserterOpts) {\n                _this._onRequestInsert(newIndex, inserterOpts);\n            },\n            strings: this.blockDef.meta.strings,\n            animate: animate,\n        });\n        this.inserters.splice(index + 1, 0, inserter);\n        this.countInput.val(this.blockCounter);\n        var isFirstChild = (index === 0);\n        var isLastChild = (index === this.children.length - 1);\n        if (!isFirstChild) {\n            child.enableMoveUp();\n            if (isLastChild) {\n                /* previous child (which was previously the last one) can now move down */\n                this.children[index - 1].enableMoveDown();\n            }\n        }\n        if (!isLastChild) {\n            child.enableMoveDown();\n            if (isFirstChild) {\n                /* next child (which was previously the first one) can now move up */\n                this.children[index + 1].enableMoveUp();\n            }\n        }\n        return child;\n    };\n    BaseSequenceBlock.prototype.deleteBlock = function (index, opts) {\n        var animate = opts && opts.animate;\n        this.children[index].markDeleted({ animate: animate });\n        this.inserters[index][\"delete\"]({ animate: animate });\n        this.children.splice(index, 1);\n        this.inserters.splice(index, 1);\n        /* index numbers of children / inserters above this index now need updating to match\n        their array indexes */\n        for (var i = index; i < this.children.length; i++) {\n            this.children[i].setIndex(i);\n        }\n        for (var i = index; i < this.inserters.length; i++) {\n            this.inserters[i].setIndex(i);\n        }\n        if (index === 0 && this.children.length > 0) {\n            /* we have removed the first child; the new first child cannot be moved up */\n            this.children[0].disableMoveUp();\n        }\n        if (index === this.children.length && this.children.length > 0) {\n            /* we have removed the last child; the new last child cannot be moved down */\n            this.children[this.children.length - 1].disableMoveDown();\n        }\n    };\n    BaseSequenceBlock.prototype.moveBlock = function (oldIndex, newIndex) {\n        if (oldIndex === newIndex)\n            return;\n        var inserterToMove = this.inserters[oldIndex];\n        var childToMove = this.children[oldIndex];\n        /* move HTML elements */\n        if (newIndex > oldIndex) {\n            $(inserterToMove.element).insertAfter(this.children[newIndex].element);\n        }\n        else {\n            $(inserterToMove.element).insertBefore(this.inserters[newIndex].element);\n        }\n        $(childToMove.element).insertAfter(inserterToMove.element);\n        /* reorder items in the `inserters` and `children` arrays */\n        this.inserters.splice(oldIndex, 1);\n        this.inserters.splice(newIndex, 0, inserterToMove);\n        this.children.splice(oldIndex, 1);\n        this.children.splice(newIndex, 0, childToMove);\n        /* update index properties of moved items */\n        if (newIndex > oldIndex) {\n            for (var i = oldIndex; i <= newIndex; i++) {\n                this.inserters[i].setIndex(i);\n                this.children[i].setIndex(i);\n            }\n        }\n        else {\n            for (var i = newIndex; i <= oldIndex; i++) {\n                this.inserters[i].setIndex(i);\n                this.children[i].setIndex(i);\n            }\n        }\n        /* enable/disable up/down arrows as required */\n        var maxIndex = this.children.length - 1;\n        if (oldIndex === 0) {\n            childToMove.enableMoveUp();\n            this.children[0].disableMoveUp();\n        }\n        if (oldIndex === maxIndex) {\n            childToMove.enableMoveDown();\n            this.children[maxIndex].disableMoveDown();\n        }\n        if (newIndex === 0) {\n            childToMove.disableMoveUp();\n            this.children[1].enableMoveUp();\n        }\n        if (newIndex === maxIndex) {\n            childToMove.disableMoveDown();\n            this.children[maxIndex - 1].enableMoveDown();\n        }\n    };\n    BaseSequenceBlock.prototype.moveBlockUp = function (index) {\n        this.moveBlock(index, index - 1);\n    };\n    BaseSequenceBlock.prototype.moveBlockDown = function (index) {\n        this.moveBlock(index, index + 1);\n    };\n    BaseSequenceBlock.prototype.setState = function (values) {\n        var _this = this;\n        this.clear();\n        values.forEach(function (val, i) {\n            _this.insert(val, i);\n        });\n    };\n    BaseSequenceBlock.prototype.getState = function () {\n        return this.children.map(function (child) { return child.getState(); });\n    };\n    BaseSequenceBlock.prototype.getValue = function () {\n        return this.children.map(function (child) { return child.getValue(); });\n    };\n    BaseSequenceBlock.prototype.getTextLabel = function (opts) {\n        var e_1, _a;\n        /* Use as many child text labels as we can fit into maxLength */\n        var maxLength = opts && opts.maxLength;\n        var result = '';\n        try {\n            for (var _b = __values(this.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var child = _c.value;\n                var childLabel = child.getTextLabel({ maxLength: maxLength });\n                if (childLabel) {\n                    if (!result) {\n                        // always use the first child, truncated as necessary\n                        result = childLabel;\n                    }\n                    else {\n                        var newResult = (result + ', ' + childLabel);\n                        if (maxLength && newResult.length > maxLength - 1) {\n                            // too long, so don't add this; return the current list with an ellipsis instead\n                            if (!result.endsWith('…'))\n                                result += '…';\n                            return result;\n                        }\n                        result = newResult;\n                    }\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return result;\n    };\n    BaseSequenceBlock.prototype.focus = function (opts) {\n        if (this.children.length) {\n            this.children[0].focus(opts);\n        }\n    };\n    return BaseSequenceBlock;\n}());\nexports.BaseSequenceBlock = BaseSequenceBlock;\n","\"use strict\";\n/* global $ */\nexports.__esModule = true;\nexports.FieldBlockDefinition = exports.FieldBlock = void 0;\nvar text_1 = require(\"../../../utils/text\");\nvar FieldBlock = /** @class */ (function () {\n    function FieldBlock(blockDef, placeholder, prefix, initialState, initialError) {\n        this.blockDef = blockDef;\n        this.type = blockDef.name;\n        var dom = $(\"\\n      <div class=\\\"\" + text_1.escapeHtml(this.blockDef.meta.classname) + \"\\\">\\n        <div class=\\\"field-content\\\">\\n          <div class=\\\"input\\\">\\n            <div data-streamfield-widget></div>\\n            <span></span>\\n          </div>\\n        </div>\\n      </div>\\n    \");\n        $(placeholder).replaceWith(dom);\n        var widgetElement = dom.find('[data-streamfield-widget]').get(0);\n        this.element = dom[0];\n        try {\n            this.widget = this.blockDef.widget.render(widgetElement, prefix, prefix, initialState);\n        }\n        catch (e) {\n            // eslint-disable-next-line no-console\n            console.error(e);\n            this.setError([\n                { messages: ['This widget failed to render, please check the console for details'] }\n            ]);\n            return;\n        }\n        this.idForLabel = this.widget.idForLabel;\n        if (this.blockDef.meta.helpText) {\n            var helpElement = document.createElement('p');\n            helpElement.classList.add('help');\n            helpElement.innerHTML = this.blockDef.meta.helpText; // unescaped, as per Django conventions\n            this.element.querySelector('.field-content').appendChild(helpElement);\n        }\n        if (window.comments && this.blockDef.meta.showAddCommentButton) {\n            var fieldCommentControlElement = document.createElement('div');\n            fieldCommentControlElement.classList.add('field-comment-control');\n            this.element.appendChild(fieldCommentControlElement);\n            var addCommentButtonElement = document.createElement('button');\n            addCommentButtonElement.type = 'button';\n            addCommentButtonElement.setAttribute('aria-label', blockDef.meta.strings.ADD_COMMENT);\n            addCommentButtonElement.setAttribute('data-comment-add', '');\n            addCommentButtonElement.classList.add('button');\n            addCommentButtonElement.classList.add('button-secondary');\n            addCommentButtonElement.classList.add('button-small');\n            addCommentButtonElement.classList.add('u-hidden');\n            addCommentButtonElement.innerHTML = ('<svg class=\"icon icon-comment-add initial icon-default\" aria-hidden=\"true\" focusable=\"false\">'\n                + '<use href=\"#icon-comment-add\"></use></svg>'\n                + '<svg class=\"icon icon-comment-add initial icon-reversed\" aria-hidden=\"true\" focusable=\"false\">'\n                + '<use href=\"#icon-comment-add-reversed\"></use></svg>');\n            fieldCommentControlElement.appendChild(addCommentButtonElement);\n            window.comments.initAddCommentButton(addCommentButtonElement);\n        }\n        if (initialError) {\n            this.setError(initialError);\n        }\n    }\n    FieldBlock.prototype.setState = function (state) {\n        if (this.widget) {\n            this.widget.setState(state);\n        }\n    };\n    FieldBlock.prototype.setError = function (errorList) {\n        this.element.querySelectorAll(':scope > .field-content > .error-message').forEach(function (element) { return element.remove(); });\n        if (errorList) {\n            this.element.classList.add('error');\n            var errorElement = document.createElement('p');\n            errorElement.classList.add('error-message');\n            errorElement.innerHTML = errorList.map(function (error) { return \"<span>\" + text_1.escapeHtml(error.messages[0]) + \"</span>\"; }).join('');\n            this.element.querySelector('.field-content').appendChild(errorElement);\n        }\n        else {\n            this.element.classList.remove('error');\n        }\n    };\n    FieldBlock.prototype.getState = function () {\n        return this.widget.getState();\n    };\n    FieldBlock.prototype.getValue = function () {\n        return this.widget.getValue();\n    };\n    FieldBlock.prototype.getTextLabel = function (opts) {\n        if (this.widget.getTextLabel) {\n            return this.widget.getTextLabel(opts);\n        }\n        return null;\n    };\n    FieldBlock.prototype.focus = function (opts) {\n        if (this.widget) {\n            this.widget.focus(opts);\n        }\n    };\n    return FieldBlock;\n}());\nexports.FieldBlock = FieldBlock;\nvar FieldBlockDefinition = /** @class */ (function () {\n    function FieldBlockDefinition(name, widget, meta) {\n        this.name = name;\n        this.widget = widget;\n        this.meta = meta;\n    }\n    FieldBlockDefinition.prototype.render = function (placeholder, prefix, initialState, initialError) {\n        return new FieldBlock(this, placeholder, prefix, initialState, initialError);\n    };\n    return FieldBlockDefinition;\n}());\nexports.FieldBlockDefinition = FieldBlockDefinition;\n","\"use strict\";\n/* eslint-disable no-underscore-dangle */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nexports.__esModule = true;\nexports.ListBlockDefinition = exports.ListBlock = exports.ListBlockValidationError = void 0;\nvar BaseSequenceBlock_1 = require(\"./BaseSequenceBlock\");\nvar text_1 = require(\"../../../utils/text\");\n/* global $ */\nvar ListBlockValidationError = /** @class */ (function () {\n    function ListBlockValidationError(blockErrors, nonBlockErrors) {\n        this.blockErrors = blockErrors;\n        this.nonBlockErrors = nonBlockErrors;\n    }\n    return ListBlockValidationError;\n}());\nexports.ListBlockValidationError = ListBlockValidationError;\nvar ListChild = /** @class */ (function (_super) {\n    __extends(ListChild, _super);\n    function ListChild() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /*\n    wrapper for an item inside a ListBlock\n    */\n    ListChild.prototype.getState = function () {\n        return this.block.getState();\n    };\n    ListChild.prototype.getValue = function () {\n        return this.block.getValue();\n    };\n    return ListChild;\n}(BaseSequenceBlock_1.BaseSequenceChild));\nvar InsertPosition = /** @class */ (function (_super) {\n    __extends(InsertPosition, _super);\n    /*\n    Represents a position in the DOM where a new list item can be inserted.\n  \n    This renders a + button. Later, these could also be used to represent drop zones for drag+drop reordering.\n    */\n    function InsertPosition(placeholder, opts) {\n        var _this = _super.call(this, placeholder, opts) || this;\n        _this.onRequestInsert = opts && opts.onRequestInsert;\n        var animate = opts && opts.animate;\n        var button = $(\"\\n      <button type=\\\"button\\\" title=\\\"\" + text_1.escapeHtml(opts.strings.ADD) + \"\\\" data-streamfield-list-add\\n          class=\\\"c-sf-add-button c-sf-add-button--visible\\\">\\n        <i aria-hidden=\\\"true\\\">+</i>\\n      </button>\\n    \");\n        $(placeholder).replaceWith(button);\n        _this.element = button.get(0);\n        button.click(function () {\n            if (_this.onRequestInsert) {\n                _this.onRequestInsert(_this.index);\n            }\n        });\n        if (animate) {\n            button.hide().slideDown();\n        }\n        return _this;\n    }\n    return InsertPosition;\n}(BaseSequenceBlock_1.BaseInsertionControl));\nvar ListBlock = /** @class */ (function (_super) {\n    __extends(ListBlock, _super);\n    function ListBlock(blockDef, placeholder, prefix, initialState, initialError) {\n        var _this = this;\n        _this.blockDef = blockDef;\n        _this.type = blockDef.name;\n        _this.prefix = prefix;\n        var dom = $(\"\\n      <div class=\\\"c-sf-container \" + text_1.escapeHtml(_this.blockDef.meta.classname || '') + \"\\\">\\n        <input type=\\\"hidden\\\" name=\\\"\" + text_1.escapeHtml(prefix) + \"-count\\\" data-streamfield-list-count value=\\\"0\\\">\\n\\n        <div data-streamfield-list-container></div>\\n      </div>\\n    \");\n        $(placeholder).replaceWith(dom);\n        if (_this.blockDef.meta.helpText) {\n            // help text is left unescaped as per Django conventions\n            $(\"\\n        <span>\\n          <div class=\\\"help\\\">\\n            \" + _this.blockDef.meta.helpIcon + \"\\n            \" + _this.blockDef.meta.helpText + \"\\n          </div>\\n        </span>\\n      \").insertBefore(dom);\n        }\n        _this.children = [];\n        _this.inserters = [];\n        _this.blockCounter = 0;\n        _this.countInput = dom.find('[data-streamfield-list-count]');\n        _this.sequenceContainer = dom.find('[data-streamfield-list-container]');\n        _this.container = dom;\n        _this.setState(initialState || []);\n        if (initialError) {\n            _this.setError(initialError);\n        }\n        return _this;\n    }\n    ListBlock.prototype._getChildDataForInsertion = function () {\n        /* Called when an 'insert new block' action is triggered: given a dict of data from the insertion control,\n        return the block definition and initial state to be used for the new block.\n        For a ListBlock, no data is passed from the insertion control, as there is a single fixed child block definition.\n        */\n        var blockDef = this.blockDef.childBlockDef;\n        var initialState = this.blockDef.initialChildState;\n        return [blockDef, initialState];\n    };\n    ListBlock.prototype._createChild = function (blockDef, placeholder, prefix, index, id, initialState, sequence, opts) {\n        return new ListChild(blockDef, placeholder, prefix, index, id, initialState, sequence, opts);\n    };\n    ListBlock.prototype._createInsertionControl = function (placeholder, opts) {\n        return new InsertPosition(placeholder, opts);\n    };\n    ListBlock.prototype.insert = function (value, index, opts) {\n        return this._insert(this.blockDef.childBlockDef, value, null, index, opts);\n    };\n    ListBlock.prototype.duplicateBlock = function (index, opts) {\n        var child = this.children[index];\n        var childState = child.getState();\n        var animate = opts && opts.animate;\n        this.insert(childState, index + 1, { animate: animate, collapsed: child.collapsed });\n        this.children[index + 1].focus({ soft: true });\n    };\n    ListBlock.prototype.setError = function (errorList) {\n        var _this = this;\n        if (errorList.length !== 1) {\n            return;\n        }\n        var error = errorList[0];\n        // Non block errors\n        var container = this.container[0];\n        container.querySelectorAll(':scope > .help-block.help-critical').forEach(function (element) { return element.remove(); });\n        if (error.nonBlockErrors.length > 0) {\n            // Add a help block for each error raised\n            error.nonBlockErrors.forEach(function (nonBlockError) {\n                var errorElement = document.createElement('p');\n                errorElement.classList.add('help-block');\n                errorElement.classList.add('help-critical');\n                errorElement.innerHTML = text_1.escapeHtml(nonBlockError.messages[0]);\n                container.insertBefore(errorElement, container.childNodes[0]);\n            });\n        }\n        // error.blockErrors = a list with the same length as the data,\n        // with nulls for items without errors\n        error.blockErrors.forEach(function (blockError, blockIndex) {\n            if (blockError) {\n                _this.children[blockIndex].setError(blockError);\n            }\n        });\n    };\n    return ListBlock;\n}(BaseSequenceBlock_1.BaseSequenceBlock));\nexports.ListBlock = ListBlock;\nvar ListBlockDefinition = /** @class */ (function () {\n    function ListBlockDefinition(name, childBlockDef, initialChildState, meta) {\n        this.name = name;\n        this.childBlockDef = childBlockDef;\n        this.initialChildState = initialChildState;\n        this.meta = meta;\n    }\n    ListBlockDefinition.prototype.render = function (placeholder, prefix, initialState, initialError) {\n        return new ListBlock(this, placeholder, prefix, initialState, initialError);\n    };\n    return ListBlockDefinition;\n}());\nexports.ListBlockDefinition = ListBlockDefinition;\n","\"use strict\";\nexports.__esModule = true;\nexports.StaticBlockDefinition = exports.StaticBlock = void 0;\nvar text_1 = require(\"../../../utils/text\");\nvar StaticBlock = /** @class */ (function () {\n    function StaticBlock(blockDef, placeholder) {\n        this.blockDef = blockDef;\n        var element = document.createElement('div');\n        if (this.blockDef.meta.html) {\n            element.innerHTML = this.blockDef.meta.html;\n        }\n        else {\n            element.innerHTML = text_1.escapeHtml(this.blockDef.meta.text);\n        }\n        placeholder.replaceWith(element);\n    }\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n    StaticBlock.prototype.setState = function (_state) { };\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\n    StaticBlock.prototype.setError = function (_errorList) { };\n    StaticBlock.prototype.getState = function () {\n        return null;\n    };\n    StaticBlock.prototype.getValue = function () {\n        return null;\n    };\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    StaticBlock.prototype.focus = function () { };\n    return StaticBlock;\n}());\nexports.StaticBlock = StaticBlock;\nvar StaticBlockDefinition = /** @class */ (function () {\n    function StaticBlockDefinition(name, meta) {\n        this.name = name;\n        this.meta = meta;\n    }\n    StaticBlockDefinition.prototype.render = function (placeholder) {\n        return new StaticBlock(this, placeholder);\n    };\n    return StaticBlockDefinition;\n}());\nexports.StaticBlockDefinition = StaticBlockDefinition;\n","\"use strict\";\n/* eslint-disable no-underscore-dangle */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nexports.__esModule = true;\nexports.StreamBlockDefinition = exports.StreamBlock = exports.StreamBlockValidationError = void 0;\nvar uuid_1 = require(\"uuid\");\nvar BaseSequenceBlock_1 = require(\"./BaseSequenceBlock\");\nvar text_1 = require(\"../../../utils/text\");\n/* global $ */\nvar StreamBlockValidationError = /** @class */ (function () {\n    function StreamBlockValidationError(nonBlockErrors, blockErrors) {\n        this.nonBlockErrors = nonBlockErrors;\n        this.blockErrors = blockErrors;\n    }\n    return StreamBlockValidationError;\n}());\nexports.StreamBlockValidationError = StreamBlockValidationError;\nvar StreamChild = /** @class */ (function (_super) {\n    __extends(StreamChild, _super);\n    function StreamChild() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /*\n    wrapper for a block inside a StreamBlock, handling StreamBlock-specific metadata\n    such as id\n    */\n    StreamChild.prototype.getState = function () {\n        return {\n            type: this.type,\n            value: this.block.getState(),\n            id: this.id,\n        };\n    };\n    StreamChild.prototype.getValue = function () {\n        return {\n            type: this.type,\n            value: this.block.getValue(),\n            id: this.id,\n        };\n    };\n    return StreamChild;\n}(BaseSequenceBlock_1.BaseSequenceChild));\nvar StreamBlockMenu = /** @class */ (function (_super) {\n    __extends(StreamBlockMenu, _super);\n    function StreamBlockMenu(placeholder, opts) {\n        var _this = _super.call(this, placeholder, opts) || this;\n        _this.groupedChildBlockDefs = opts.groupedChildBlockDefs;\n        var animate = opts.animate;\n        var dom = $(\"\\n      <div>\\n        <button data-streamblock-menu-open type=\\\"button\\\" title=\\\"\" + text_1.escapeHtml(opts.strings.ADD) + \"\\\"\\n            class=\\\"c-sf-add-button c-sf-add-button--visible\\\">\\n          <i aria-hidden=\\\"true\\\">+</i>\\n        </button>\\n        <div data-streamblock-menu-outer>\\n          <div data-streamblock-menu-inner class=\\\"c-sf-add-panel\\\"></div>\\n        </div>\\n      </div>\\n    \");\n        $(placeholder).replaceWith(dom);\n        _this.element = dom.get(0);\n        _this.addButton = dom.find('[data-streamblock-menu-open]');\n        _this.addButton.click(function () {\n            _this.toggle();\n        });\n        _this.outerContainer = dom.find('[data-streamblock-menu-outer]');\n        _this.innerContainer = dom.find('[data-streamblock-menu-inner]');\n        _this.hasRenderedMenu = false;\n        _this.isOpen = false;\n        _this.canAddBlock = true;\n        _this.disabledBlockTypes = new Set();\n        _this.close({ animate: false });\n        if (animate) {\n            dom.hide().slideDown();\n        }\n        return _this;\n    }\n    StreamBlockMenu.prototype.renderMenu = function () {\n        var _this = this;\n        if (this.hasRenderedMenu)\n            return;\n        this.hasRenderedMenu = true;\n        this.groupedChildBlockDefs.forEach(function (_a) {\n            var _b = __read(_a, 2), group = _b[0], blockDefs = _b[1];\n            if (group) {\n                var heading = $('<h4 class=\"c-sf-add-panel__group-title\"></h4>').text(group);\n                _this.innerContainer.append(heading);\n            }\n            var grid = $('<div class=\"c-sf-add-panel__grid\"></div>');\n            _this.innerContainer.append(grid);\n            blockDefs.forEach(function (blockDef) {\n                var button = $(\"\\n          <button type=\\\"button\\\" class=\\\"c-sf-button action-add-block-\" + text_1.escapeHtml(blockDef.name) + \"\\\">\\n            <span class=\\\"c-sf-button__icon\\\">\\n              <i class=\\\"icon icon-\" + text_1.escapeHtml(blockDef.meta.icon) + \"\\\"></i>\\n            </span>\\n            <span class=\\\"c-sf-button__label\\\">\" + text_1.escapeHtml(blockDef.meta.label) + \"</span>\\n          </button>\\n        \");\n                grid.append(button);\n                button.click(function () {\n                    if (_this.onRequestInsert) {\n                        _this.onRequestInsert(_this.index, { type: blockDef.name });\n                    }\n                    _this.close({ animate: true });\n                });\n            });\n        });\n        // Disable buttons for any disabled block types\n        this.disabledBlockTypes.forEach(function (blockType) {\n            $(\"button.action-add-block-\" + text_1.escapeHtml(blockType), _this.innerContainer).attr('disabled', 'true');\n        });\n    };\n    StreamBlockMenu.prototype.setNewBlockRestrictions = function (canAddBlock, disabledBlockTypes) {\n        var _this = this;\n        this.canAddBlock = canAddBlock;\n        this.disabledBlockTypes = disabledBlockTypes;\n        // Disable/enable menu open button\n        if (this.canAddBlock) {\n            this.addButton.removeAttr('disabled');\n        }\n        else {\n            this.addButton.attr('disabled', 'true');\n        }\n        // Close menu if its open and we no longer can add blocks\n        if (!canAddBlock && this.isOpen) {\n            this.close({ animate: true });\n        }\n        // Disable/enable individual block type buttons\n        $('button', this.innerContainer).removeAttr('disabled');\n        disabledBlockTypes.forEach(function (blockType) {\n            $(\"button.action-add-block-\" + text_1.escapeHtml(blockType), _this.innerContainer).attr('disabled', 'true');\n        });\n    };\n    StreamBlockMenu.prototype.toggle = function () {\n        if (this.isOpen) {\n            this.close({ animate: true });\n        }\n        else {\n            this.open({ animate: true });\n        }\n    };\n    StreamBlockMenu.prototype.open = function (opts) {\n        if (!this.canAddBlock) {\n            return;\n        }\n        this.renderMenu();\n        if (opts && opts.animate) {\n            this.outerContainer.slideDown();\n        }\n        else {\n            this.outerContainer.show();\n        }\n        this.addButton.addClass('c-sf-add-button--close');\n        this.outerContainer.attr('aria-hidden', 'false');\n        this.isOpen = true;\n    };\n    StreamBlockMenu.prototype.close = function (opts) {\n        if (opts && opts.animate) {\n            this.outerContainer.slideUp();\n        }\n        else {\n            this.outerContainer.hide();\n        }\n        this.addButton.removeClass('c-sf-add-button--close');\n        this.outerContainer.attr('aria-hidden', 'true');\n        this.isOpen = false;\n    };\n    return StreamBlockMenu;\n}(BaseSequenceBlock_1.BaseInsertionControl));\nvar StreamBlock = /** @class */ (function (_super) {\n    __extends(StreamBlock, _super);\n    function StreamBlock(blockDef, placeholder, prefix, initialState, initialError) {\n        var _this = this;\n        _this.blockDef = blockDef;\n        _this.type = blockDef.name;\n        _this.prefix = prefix;\n        var dom = $(\"\\n      <div class=\\\"c-sf-container \" + text_1.escapeHtml(_this.blockDef.meta.classname || '') + \"\\\">\\n        <input type=\\\"hidden\\\" name=\\\"\" + text_1.escapeHtml(prefix) + \"-count\\\" data-streamfield-stream-count value=\\\"0\\\">\\n        <div data-streamfield-stream-container></div>\\n      </div>\\n    \");\n        $(placeholder).replaceWith(dom);\n        if (_this.blockDef.meta.helpText) {\n            // help text is left unescaped as per Django conventions\n            $(\"\\n        <span>\\n          <div class=\\\"help\\\">\\n            \" + _this.blockDef.meta.helpIcon + \"\\n            \" + _this.blockDef.meta.helpText + \"\\n          </div>\\n        </span>\\n      \").insertBefore(dom);\n        }\n        // StreamChild objects for the current (non-deleted) child blocks\n        _this.children = [];\n        // Insertion control objects - there are one more of these than there are children.\n        // The control at index n will insert a block at index n\n        _this.inserters = [];\n        // Incrementing counter used to generate block prefixes, also reflected in the\n        // 'count' hidden input. This count includes deleted items\n        _this.blockCounter = 0;\n        _this.countInput = dom.find('[data-streamfield-stream-count]');\n        // Parent element of insert control and block elements (potentially including deleted items,\n        // which are left behind as hidden elements with a '-deleted' input so that the\n        // server-side form handler knows to skip it)\n        _this.sequenceContainer = dom.find('[data-streamfield-stream-container]');\n        _this.setState(initialState || []);\n        _this.container = dom;\n        if (initialError) {\n            _this.setError(initialError);\n        }\n        return _this;\n    }\n    /*\n     * Called whenever a block is added or removed\n     *\n     * Updates the state of add / duplicate block buttons to prevent too many blocks being inserted.\n     */\n    StreamBlock.prototype.checkBlockCounts = function () {\n        this.canAddBlock = true;\n        if (typeof this.blockDef.meta.maxNum === 'number' && this.children.length >= this.blockDef.meta.maxNum) {\n            this.canAddBlock = false;\n        }\n        // If we can add blocks, check if there are any block types that have count limits\n        this.disabledBlockTypes = new Set();\n        if (this.canAddBlock) {\n            var _loop_1 = function (blockType) {\n                if (this_1.blockDef.meta.blockCounts.hasOwnProperty(blockType)) {\n                    var counts = this_1.blockDef.meta.blockCounts[blockType];\n                    if (typeof counts.max_num === 'number') {\n                        var currentBlockCount = this_1.children.filter(function (child) { return child.type === blockType; }).length;\n                        if (currentBlockCount >= counts.max_num) {\n                            this_1.disabledBlockTypes.add(blockType);\n                        }\n                    }\n                }\n            };\n            var this_1 = this;\n            // eslint-disable-next-line no-restricted-syntax\n            for (var blockType in this.blockDef.meta.blockCounts) {\n                _loop_1(blockType);\n            }\n        }\n        for (var i = 0; i < this.children.length; i++) {\n            var canDuplicate = this.canAddBlock && !this.disabledBlockTypes.has(this.children[i].type);\n            if (canDuplicate) {\n                this.children[i].enableDuplication();\n            }\n            else {\n                this.children[i].disableDuplication();\n            }\n        }\n        for (var i = 0; i < this.inserters.length; i++) {\n            this.inserters[i].setNewBlockRestrictions(this.canAddBlock, this.disabledBlockTypes);\n        }\n    };\n    StreamBlock.prototype._createChild = function (blockDef, placeholder, prefix, index, id, initialState, sequence, opts) {\n        return new StreamChild(blockDef, placeholder, prefix, index, id, initialState, sequence, opts);\n    };\n    StreamBlock.prototype._createInsertionControl = function (placeholder, opts) {\n        // eslint-disable-next-line no-param-reassign\n        opts.groupedChildBlockDefs = this.blockDef.groupedChildBlockDefs;\n        return new StreamBlockMenu(placeholder, opts);\n    };\n    StreamBlock.prototype.insert = function (_a, index, opts) {\n        var type = _a.type, value = _a.value, id = _a.id;\n        var childBlockDef = this.blockDef.childBlockDefsByName[type];\n        return this._insert(childBlockDef, value, id, index, opts);\n    };\n    StreamBlock.prototype._insert = function (childBlockDef, value, id, index, opts) {\n        var result = _super.prototype._insert.call(this, childBlockDef, value, id, index, opts);\n        this.checkBlockCounts();\n        return result;\n    };\n    StreamBlock.prototype._getChildDataForInsertion = function (_a) {\n        var type = _a.type;\n        /* Called when an 'insert new block' action is triggered: given a dict of data from the insertion control,\n        return the block definition and initial state to be used for the new block.\n        For a StreamBlock, the dict of data consists of 'type' (the chosen block type name, as a string).\n        */\n        var blockDef = this.blockDef.childBlockDefsByName[type];\n        var initialState = this.blockDef.initialChildStates[type];\n        return [blockDef, initialState, uuid_1.v4()];\n    };\n    StreamBlock.prototype.clear = function () {\n        _super.prototype.clear.call(this);\n        this.checkBlockCounts();\n    };\n    StreamBlock.prototype.duplicateBlock = function (index, opts) {\n        var child = this.children[index];\n        var childState = child.getState();\n        var animate = opts && opts.animate;\n        childState.id = null;\n        this.insert(childState, index + 1, { animate: animate, collapsed: child.collapsed });\n        // focus the newly added field if we can do so without obtrusive UI behaviour\n        this.children[index + 1].focus({ soft: true });\n        this.checkBlockCounts();\n    };\n    StreamBlock.prototype.deleteBlock = function (index, opts) {\n        _super.prototype.deleteBlock.call(this, index, opts);\n        this.checkBlockCounts();\n    };\n    StreamBlock.prototype.setState = function (values) {\n        _super.prototype.setState.call(this, values);\n        if (values.length === 0) {\n            /* for an empty list, begin with the menu open */\n            this.inserters[0].open({ animate: false });\n        }\n    };\n    StreamBlock.prototype.setError = function (errorList) {\n        if (errorList.length !== 1) {\n            return;\n        }\n        var error = errorList[0];\n        // Non block errors\n        var container = this.container[0];\n        container.querySelectorAll(':scope > .help-block.help-critical').forEach(function (element) { return element.remove(); });\n        if (error.nonBlockErrors.length > 0) {\n            // Add a help block for each error raised\n            error.nonBlockErrors.forEach(function (nonBlockError) {\n                var errorElement = document.createElement('p');\n                errorElement.classList.add('help-block');\n                errorElement.classList.add('help-critical');\n                errorElement.innerHTML = text_1.escapeHtml(nonBlockError.messages[0]);\n                container.insertBefore(errorElement, container.childNodes[0]);\n            });\n        }\n        // Block errors\n        // eslint-disable-next-line no-restricted-syntax\n        for (var blockIndex in error.blockErrors) {\n            if (error.blockErrors.hasOwnProperty(blockIndex)) {\n                this.children[blockIndex].setError(error.blockErrors[blockIndex]);\n            }\n        }\n    };\n    return StreamBlock;\n}(BaseSequenceBlock_1.BaseSequenceBlock));\nexports.StreamBlock = StreamBlock;\nvar StreamBlockDefinition = /** @class */ (function () {\n    function StreamBlockDefinition(name, groupedChildBlockDefs, initialChildStates, meta) {\n        var _this = this;\n        this.name = name;\n        this.groupedChildBlockDefs = groupedChildBlockDefs;\n        this.initialChildStates = initialChildStates;\n        this.childBlockDefsByName = {};\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        this.groupedChildBlockDefs.forEach(function (_a) {\n            var _b = __read(_a, 2), group = _b[0], blockDefs = _b[1];\n            blockDefs.forEach(function (blockDef) {\n                _this.childBlockDefsByName[blockDef.name] = blockDef;\n            });\n        });\n        this.meta = meta;\n    }\n    StreamBlockDefinition.prototype.render = function (placeholder, prefix, initialState, initialError) {\n        return new StreamBlock(this, placeholder, prefix, initialState, initialError);\n    };\n    return StreamBlockDefinition;\n}());\nexports.StreamBlockDefinition = StreamBlockDefinition;\n","\"use strict\";\n/* global $ */\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nexports.__esModule = true;\nexports.StructBlockDefinition = exports.StructBlock = exports.StructBlockValidationError = void 0;\nvar text_1 = require(\"../../../utils/text\");\nvar StructBlockValidationError = /** @class */ (function () {\n    function StructBlockValidationError(blockErrors) {\n        this.blockErrors = blockErrors;\n    }\n    return StructBlockValidationError;\n}());\nexports.StructBlockValidationError = StructBlockValidationError;\nvar StructBlock = /** @class */ (function () {\n    function StructBlock(blockDef, placeholder, prefix, initialState, initialError) {\n        var _this = this;\n        var state = initialState || {};\n        this.blockDef = blockDef;\n        this.type = blockDef.name;\n        this.childBlocks = {};\n        if (blockDef.meta.formTemplate) {\n            var html = blockDef.meta.formTemplate.replace(/__PREFIX__/g, prefix);\n            var dom_1 = $(html);\n            $(placeholder).replaceWith(dom_1);\n            this.blockDef.childBlockDefs.forEach(function (childBlockDef) {\n                var childBlockElement = dom_1.find('[data-structblock-child=\"' + childBlockDef.name + '\"]').get(0);\n                var childBlock = childBlockDef.render(childBlockElement, prefix + '-' + childBlockDef.name, state[childBlockDef.name], initialError === null || initialError === void 0 ? void 0 : initialError.blockErrors[childBlockDef.name]);\n                _this.childBlocks[childBlockDef.name] = childBlock;\n            });\n        }\n        else {\n            var dom_2 = $(\"\\n        <div class=\\\"\" + text_1.escapeHtml(this.blockDef.meta.classname || '') + \"\\\">\\n        </div>\\n      \");\n            $(placeholder).replaceWith(dom_2);\n            if (this.blockDef.meta.helpText) {\n                // help text is left unescaped as per Django conventions\n                dom_2.append(\"\\n          <span>\\n            <div class=\\\"help\\\">\\n              \" + this.blockDef.meta.helpIcon + \"\\n              \" + this.blockDef.meta.helpText + \"\\n            </div>\\n          </span>\\n        \");\n            }\n            this.blockDef.childBlockDefs.forEach(function (childBlockDef) {\n                var childDom = $(\"\\n          <div class=\\\"field \" + (childBlockDef.meta.required ? 'required' : '') + \"\\\" data-contentpath=\\\"\" + childBlockDef.name + \"\\\">\\n            <label class=\\\"field__label\\\">\" + text_1.escapeHtml(childBlockDef.meta.label) + \"</label>\\n            <div data-streamfield-block></div>\\n          </div>\\n        \");\n                dom_2.append(childDom);\n                var childBlockElement = childDom.find('[data-streamfield-block]').get(0);\n                var labelElement = childDom.find('label').get(0);\n                var childBlock = childBlockDef.render(childBlockElement, prefix + '-' + childBlockDef.name, state[childBlockDef.name], initialError === null || initialError === void 0 ? void 0 : initialError.blockErrors[childBlockDef.name]);\n                _this.childBlocks[childBlockDef.name] = childBlock;\n                if (childBlock.idForLabel) {\n                    labelElement.setAttribute('for', childBlock.idForLabel);\n                }\n            });\n        }\n    }\n    StructBlock.prototype.setState = function (state) {\n        // eslint-disable-next-line guard-for-in, no-restricted-syntax\n        for (var name_1 in state) {\n            this.childBlocks[name_1].setState(state[name_1]);\n        }\n    };\n    StructBlock.prototype.setError = function (errorList) {\n        if (errorList.length !== 1) {\n            return;\n        }\n        var error = errorList[0];\n        // eslint-disable-next-line no-restricted-syntax\n        for (var blockName in error.blockErrors) {\n            if (error.blockErrors.hasOwnProperty(blockName)) {\n                this.childBlocks[blockName].setError(error.blockErrors[blockName]);\n            }\n        }\n    };\n    StructBlock.prototype.getState = function () {\n        var state = {};\n        // eslint-disable-next-line guard-for-in, no-restricted-syntax\n        for (var name_2 in this.childBlocks) {\n            state[name_2] = this.childBlocks[name_2].getState();\n        }\n        return state;\n    };\n    StructBlock.prototype.getValue = function () {\n        var value = {};\n        // eslint-disable-next-line guard-for-in, no-restricted-syntax\n        for (var name_3 in this.childBlocks) {\n            value[name_3] = this.childBlocks[name_3].getValue();\n        }\n        return value;\n    };\n    StructBlock.prototype.getTextLabel = function (opts) {\n        var e_1, _a;\n        try {\n            /* Use the text label of the first child block to return one */\n            for (var _b = __values(this.blockDef.childBlockDefs), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var childDef = _c.value;\n                var child = this.childBlocks[childDef.name];\n                if (child.getTextLabel) {\n                    var val = child.getTextLabel(opts);\n                    if (val)\n                        return val;\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        // no usable label found\n        return null;\n    };\n    StructBlock.prototype.focus = function (opts) {\n        if (this.blockDef.childBlockDefs.length) {\n            var firstChildName = this.blockDef.childBlockDefs[0].name;\n            this.childBlocks[firstChildName].focus(opts);\n        }\n    };\n    return StructBlock;\n}());\nexports.StructBlock = StructBlock;\nvar StructBlockDefinition = /** @class */ (function () {\n    function StructBlockDefinition(name, childBlockDefs, meta) {\n        this.name = name;\n        this.childBlockDefs = childBlockDefs;\n        this.meta = meta;\n    }\n    StructBlockDefinition.prototype.render = function (placeholder, prefix, initialState, initialError) {\n        return new StructBlock(this, placeholder, prefix, initialState, initialError);\n    };\n    return StructBlockDefinition;\n}());\nexports.StructBlockDefinition = StructBlockDefinition;\n","\"use strict\";\nexports.__esModule = true;\nvar FieldBlock_1 = require(\"../../../components/StreamField/blocks/FieldBlock\");\nvar StaticBlock_1 = require(\"../../../components/StreamField/blocks/StaticBlock\");\nvar StructBlock_1 = require(\"../../../components/StreamField/blocks/StructBlock\");\nvar ListBlock_1 = require(\"../../../components/StreamField/blocks/ListBlock\");\nvar StreamBlock_1 = require(\"../../../components/StreamField/blocks/StreamBlock\");\nvar wagtailStreamField = window.wagtailStreamField || {};\nwagtailStreamField.blocks = {\n    FieldBlock: FieldBlock_1.FieldBlock,\n    FieldBlockDefinition: FieldBlock_1.FieldBlockDefinition,\n    StaticBlock: StaticBlock_1.StaticBlock,\n    StaticBlockDefinition: StaticBlock_1.StaticBlockDefinition,\n    StructBlock: StructBlock_1.StructBlock,\n    StructBlockDefinition: StructBlock_1.StructBlockDefinition,\n    StructBlockValidationError: StructBlock_1.StructBlockValidationError,\n    ListBlock: ListBlock_1.ListBlock,\n    ListBlockDefinition: ListBlock_1.ListBlockDefinition,\n    ListBlockValidationError: ListBlock_1.ListBlockValidationError,\n    StreamBlock: StreamBlock_1.StreamBlock,\n    StreamBlockDefinition: StreamBlock_1.StreamBlockDefinition,\n    StreamBlockValidationError: StreamBlock_1.StreamBlockValidationError,\n};\nfunction initBlockWidget(id) {\n    /*\n    Initialises the top-level element of a BlockWidget\n    (i.e. the form widget for a StreamField).\n    Receives the ID of a DOM element with the attributes:\n      data-block: JSON-encoded block definition to be passed to telepath.unpack\n        to obtain a Javascript representation of the block\n        (i.e. an instance of one of the Block classes below)\n      data-value: JSON-encoded value for this block\n    */\n    var body = document.querySelector('#' + id + '[data-block]');\n    // unpack the block definition and value\n    var blockDefData = JSON.parse(body.dataset.block);\n    var blockDef = window.telepath.unpack(blockDefData);\n    var blockValue = JSON.parse(body.dataset.value);\n    var blockErrors = window.telepath.unpack(JSON.parse(body.dataset.errors));\n    // replace the 'body' element with the populated HTML structure for the block\n    blockDef.render(body, id, blockValue, blockErrors);\n}\nwindow.initBlockWidget = initBlockWidget;\nwindow.telepath.register('wagtail.blocks.FieldBlock', FieldBlock_1.FieldBlockDefinition);\nwindow.telepath.register('wagtail.blocks.StaticBlock', StaticBlock_1.StaticBlockDefinition);\nwindow.telepath.register('wagtail.blocks.StructBlock', StructBlock_1.StructBlockDefinition);\nwindow.telepath.register('wagtail.blocks.StructBlockValidationError', StructBlock_1.StructBlockValidationError);\nwindow.telepath.register('wagtail.blocks.ListBlock', ListBlock_1.ListBlockDefinition);\nwindow.telepath.register('wagtail.blocks.ListBlockValidationError', ListBlock_1.ListBlockValidationError);\nwindow.telepath.register('wagtail.blocks.StreamBlock', StreamBlock_1.StreamBlockDefinition);\nwindow.telepath.register('wagtail.blocks.StreamBlockValidationError', StreamBlock_1.StreamBlockValidationError);\nwindow.wagtailStreamField = wagtailStreamField;\n","\"use strict\";\nexports.__esModule = true;\nexports.escapeHtml = void 0;\n// https://stackoverflow.com/questions/6234773/can-i-escape-html-special-chars-in-javascript\nfunction escapeHtml(unsafe) {\n    return unsafe\n        .replace(/&/g, '&amp;')\n        .replace(/</g, '&lt;')\n        .replace(/>/g, '&gt;')\n        .replace(/\"/g, '&quot;')\n        .replace(/'/g, '&#039;');\n}\nexports.escapeHtml = escapeHtml;\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n  // lazy load so that environments that need to polyfill have a chance to do so\n  if (!getRandomValues) {\n    // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n    // find the complete implementation of crypto (msCrypto) on IE11.\n    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n    if (!getRandomValues) {\n      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n    }\n  }\n\n  return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n  byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  // Note: Be careful editing this code!  It's been tuned for performance\n  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n  var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one\n  // of the following:\n  // - One or more input array values don't map to a hex octet (leading to\n  // \"undefined\" in the uuid)\n  // - Invalid input values for the RFC `version` or `variant` fields\n\n  if (!validate(uuid)) {\n    throw TypeError('Stringified UUID is invalid');\n  }\n\n  return uuid;\n}\n\nexport default stringify;","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n  return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n  var i = buf && offset || 0;\n  var b = buf || new Array(16);\n  options = options || {};\n  var node = options.node || _nodeId;\n  var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n  // specified.  We do this lazily to minimize issues related to insufficient\n  // system entropy.  See #189\n\n  if (node == null || clockseq == null) {\n    var seedBytes = options.random || (options.rng || rng)();\n\n    if (node == null) {\n      // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n      node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n    }\n\n    if (clockseq == null) {\n      // Per 4.2.2, randomize (14 bit) clockseq\n      clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n    }\n  } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n  // (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so\n  // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n  // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n  var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n  // cycle to simulate higher resolution clock\n\n  var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n  var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n  if (dt < 0 && options.clockseq === undefined) {\n    clockseq = clockseq + 1 & 0x3fff;\n  } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n  // time interval\n\n\n  if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n    nsecs = 0;\n  } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n  if (nsecs >= 10000) {\n    throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n  }\n\n  _lastMSecs = msecs;\n  _lastNSecs = nsecs;\n  _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n  msecs += 12219292800000; // `time_low`\n\n  var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n  b[i++] = tl >>> 24 & 0xff;\n  b[i++] = tl >>> 16 & 0xff;\n  b[i++] = tl >>> 8 & 0xff;\n  b[i++] = tl & 0xff; // `time_mid`\n\n  var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n  b[i++] = tmh >>> 8 & 0xff;\n  b[i++] = tmh & 0xff; // `time_high_and_version`\n\n  b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n  b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n  b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n  b[i++] = clockseq & 0xff; // `node`\n\n  for (var n = 0; n < 6; ++n) {\n    b[i + n] = node[n];\n  }\n\n  return buf || stringify(b);\n}\n\nexport default v1;","import validate from './validate.js';\n\nfunction parse(uuid) {\n  if (!validate(uuid)) {\n    throw TypeError('Invalid UUID');\n  }\n\n  var v;\n  var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n  arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n  arr[1] = v >>> 16 & 0xff;\n  arr[2] = v >>> 8 & 0xff;\n  arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n  arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n  arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n  arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n  arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n  arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n  arr[9] = v & 0xff; // Parse ........-....-....-....-############\n  // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n  arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n  arr[11] = v / 0x100000000 & 0xff;\n  arr[12] = v >>> 24 & 0xff;\n  arr[13] = v >>> 16 & 0xff;\n  arr[14] = v >>> 8 & 0xff;\n  arr[15] = v & 0xff;\n  return arr;\n}\n\nexport default parse;","import stringify from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n  str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n  var bytes = [];\n\n  for (var i = 0; i < str.length; ++i) {\n    bytes.push(str.charCodeAt(i));\n  }\n\n  return bytes;\n}\n\nexport var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function (name, version, hashfunc) {\n  function generateUUID(value, namespace, buf, offset) {\n    if (typeof value === 'string') {\n      value = stringToBytes(value);\n    }\n\n    if (typeof namespace === 'string') {\n      namespace = parse(namespace);\n    }\n\n    if (namespace.length !== 16) {\n      throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n    } // Compute hash of namespace and value, Per 4.3\n    // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n    // hashfunc([...namespace, ... value])`\n\n\n    var bytes = new Uint8Array(16 + value.length);\n    bytes.set(namespace);\n    bytes.set(value, namespace.length);\n    bytes = hashfunc(bytes);\n    bytes[6] = bytes[6] & 0x0f | version;\n    bytes[8] = bytes[8] & 0x3f | 0x80;\n\n    if (buf) {\n      offset = offset || 0;\n\n      for (var i = 0; i < 16; ++i) {\n        buf[offset + i] = bytes[i];\n      }\n\n      return buf;\n    }\n\n    return stringify(bytes);\n  } // Function#name is not settable on some platforms (#270)\n\n\n  try {\n    generateUUID.name = name; // eslint-disable-next-line no-empty\n  } catch (err) {} // For CommonJS default export support\n\n\n  generateUUID.DNS = DNS;\n  generateUUID.URL = URL;\n  return generateUUID;\n}","/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n  if (typeof bytes === 'string') {\n    var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n    bytes = new Uint8Array(msg.length);\n\n    for (var i = 0; i < msg.length; ++i) {\n      bytes[i] = msg.charCodeAt(i);\n    }\n  }\n\n  return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n  var output = [];\n  var length32 = input.length * 32;\n  var hexTab = '0123456789abcdef';\n\n  for (var i = 0; i < length32; i += 8) {\n    var x = input[i >> 5] >>> i % 32 & 0xff;\n    var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n    output.push(hex);\n  }\n\n  return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n  return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n  /* append padding */\n  x[len >> 5] |= 0x80 << len % 32;\n  x[getOutputLength(len) - 1] = len;\n  var a = 1732584193;\n  var b = -271733879;\n  var c = -1732584194;\n  var d = 271733878;\n\n  for (var i = 0; i < x.length; i += 16) {\n    var olda = a;\n    var oldb = b;\n    var oldc = c;\n    var oldd = d;\n    a = md5ff(a, b, c, d, x[i], 7, -680876936);\n    d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n    c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n    b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n    a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n    d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n    c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n    b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n    a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n    d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n    c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n    b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n    a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n    d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n    c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n    b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n    a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n    d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n    c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n    b = md5gg(b, c, d, a, x[i], 20, -373897302);\n    a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n    d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n    c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n    b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n    a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n    d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n    c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n    b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n    a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n    d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n    c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n    b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n    a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n    d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n    c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n    b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n    a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n    d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n    c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n    b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n    a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n    d = md5hh(d, a, b, c, x[i], 11, -358537222);\n    c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n    b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n    a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n    d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n    c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n    b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n    a = md5ii(a, b, c, d, x[i], 6, -198630844);\n    d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n    c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n    b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n    a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n    d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n    c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n    b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n    a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n    d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n    c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n    b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n    a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n    d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n    c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n    b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n    a = safeAdd(a, olda);\n    b = safeAdd(b, oldb);\n    c = safeAdd(c, oldc);\n    d = safeAdd(d, oldd);\n  }\n\n  return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n  if (input.length === 0) {\n    return [];\n  }\n\n  var length8 = input.length * 8;\n  var output = new Uint32Array(getOutputLength(length8));\n\n  for (var i = 0; i < length8; i += 8) {\n    output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n  }\n\n  return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n  var lsw = (x & 0xffff) + (y & 0xffff);\n  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n  return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n  return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n  return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n  return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n  return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n  return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n  return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;","import v35 from './v35.js';\nimport md5 from './md5.js';\nvar v3 = v35('v3', 0x30, md5);\nexport default v3;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n  options = options || {};\n  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n  rnds[6] = rnds[6] & 0x0f | 0x40;\n  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n  if (buf) {\n    offset = offset || 0;\n\n    for (var i = 0; i < 16; ++i) {\n      buf[offset + i] = rnds[i];\n    }\n\n    return buf;\n  }\n\n  return stringify(rnds);\n}\n\nexport default v4;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n  switch (s) {\n    case 0:\n      return x & y ^ ~x & z;\n\n    case 1:\n      return x ^ y ^ z;\n\n    case 2:\n      return x & y ^ x & z ^ y & z;\n\n    case 3:\n      return x ^ y ^ z;\n  }\n}\n\nfunction ROTL(x, n) {\n  return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n  var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n  var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n  if (typeof bytes === 'string') {\n    var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n    bytes = [];\n\n    for (var i = 0; i < msg.length; ++i) {\n      bytes.push(msg.charCodeAt(i));\n    }\n  } else if (!Array.isArray(bytes)) {\n    // Convert Array-like to Array\n    bytes = Array.prototype.slice.call(bytes);\n  }\n\n  bytes.push(0x80);\n  var l = bytes.length / 4 + 2;\n  var N = Math.ceil(l / 16);\n  var M = new Array(N);\n\n  for (var _i = 0; _i < N; ++_i) {\n    var arr = new Uint32Array(16);\n\n    for (var j = 0; j < 16; ++j) {\n      arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n    }\n\n    M[_i] = arr;\n  }\n\n  M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n  M[N - 1][14] = Math.floor(M[N - 1][14]);\n  M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n  for (var _i2 = 0; _i2 < N; ++_i2) {\n    var W = new Uint32Array(80);\n\n    for (var t = 0; t < 16; ++t) {\n      W[t] = M[_i2][t];\n    }\n\n    for (var _t = 16; _t < 80; ++_t) {\n      W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n    }\n\n    var a = H[0];\n    var b = H[1];\n    var c = H[2];\n    var d = H[3];\n    var e = H[4];\n\n    for (var _t2 = 0; _t2 < 80; ++_t2) {\n      var s = Math.floor(_t2 / 20);\n      var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n      e = d;\n      d = c;\n      c = ROTL(b, 30) >>> 0;\n      b = a;\n      a = T;\n    }\n\n    H[0] = H[0] + a >>> 0;\n    H[1] = H[1] + b >>> 0;\n    H[2] = H[2] + c >>> 0;\n    H[3] = H[3] + d >>> 0;\n    H[4] = H[4] + e >>> 0;\n  }\n\n  return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nvar v5 = v35('v5', 0x50, sha1);\nexport default v5;","export default '00000000-0000-0000-0000-000000000000';","import validate from './validate.js';\n\nfunction version(uuid) {\n  if (!validate(uuid)) {\n    throw TypeError('Invalid UUID');\n  }\n\n  return parseInt(uuid.substr(14, 1), 16);\n}\n\nexport default version;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.j = 849;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t849: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkwagtail\"] = self[\"webpackChunkwagtail\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\n__webpack_require__.O(undefined, [751], function() { return __webpack_require__(76819); })\nvar __webpack_exports__ = __webpack_require__.O(undefined, [751], function() { return __webpack_require__(90971); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"sourceRoot":""}