diff --git "a/modules/quill/streamlit_quill/frontend/build/static/js/2.c8ea490a.chunk.js.map" "b/modules/quill/streamlit_quill/frontend/build/static/js/2.c8ea490a.chunk.js.map" --- "a/modules/quill/streamlit_quill/frontend/build/static/js/2.c8ea490a.chunk.js.map" +++ "b/modules/quill/streamlit_quill/frontend/build/static/js/2.c8ea490a.chunk.js.map" @@ -1,3 +1 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:69be5f59f0490d7732a06ef00c8f96dc850b12532ebac6615db73172b0e94597 -size 3733272 +{"version":3,"sources":["../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/react/index.js","../node_modules/lodash/_root.js","../node_modules/lodash/_getNative.js","../../src/event.mjs","../../src/event-target.mjs","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/AwaitValue.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncIterator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js","../node_modules/flatbuffers/js/flatbuffers.mjs","../node_modules/text-encoding-utf-8/lib/encoding.lib.mjs","../util/utf8.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../io/interfaces.ts","../util/compat.ts","../util/buffer.ts","../io/adapters.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../vector.ts","../fb/Schema.ts","../fb/Message.ts","../enum.ts","../util/bit.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../visitor.ts","../visitor/typecomparator.ts","../type.ts","../data.ts","../util/pretty.ts","../builder/valid.ts","../builder/buffer.ts","../builder.ts","../builder/bool.ts","../builder/null.ts","../builder/date.ts","../builder/decimal.ts","../builder/dictionary.ts","../builder/fixedsizebinary.ts","../util/math.ts","../builder/float.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../util/bn.ts","../builder/int.ts","../builder/time.ts","../builder/timestamp.ts","../builder/interval.ts","../builder/binary.ts","../builder/utf8.ts","../builder/run.ts","../vector/row.ts","../util/vector.ts","../vector/chunked.ts","../column.ts","../util/args.ts","../schema.ts","../builder/list.ts","../builder/fixedsizelist.ts","../builder/map.ts","../builder/struct.ts","../builder/union.ts","../visitor/set.ts","../fb/File.ts","../visitor/builderctor.ts","../builder/index.ts","../ipc/metadata/file.ts","../io/stream.ts","../io/file.ts","../util/int.ts","../visitor/vectorloader.ts","../visitor/typeassembler.ts","../ipc/metadata/json.ts","../ipc/metadata/message.ts","../ipc/message.ts","../visitor/vectorassembler.ts","../ipc/writer.ts","../util/recordbatch.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../vector/base.ts","../vector/binary.ts","../vector/bool.ts","../vector/date.ts","../vector/decimal.ts","../vector/dictionary.ts","../vector/fixedsizebinary.ts","../vector/fixedsizelist.ts","../vector/float.ts","../vector/interval.ts","../vector/int.ts","../vector/list.ts","../vector/map.ts","../vector/null.ts","../vector/struct.ts","../vector/timestamp.ts","../vector/time.ts","../vector/union.ts","../vector/utf8.ts","../util/fn.ts","../visitor/get.ts","../visitor/indexof.ts","../visitor/iterator.ts","../visitor/toarray.ts","../visitor/bytewidth.ts","../visitor/vectorctor.ts","../vector/index.ts","../table.ts","../recordbatch.ts","../ipc/reader.ts","../io/whatwg/builder.ts","../compute/predicate.ts","../compute/dataframe.ts","../Arrow.ts","../Arrow.dom.ts","../io/whatwg/iterable.ts","../io/whatwg/reader.ts","../io/whatwg/writer.ts","../node_modules/streamlit-component-lib/dist/ArrowTable.js","../node_modules/streamlit-component-lib/dist/streamlit.js","../node_modules/streamlit-component-lib/dist/StreamlitReact.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_Symbol.js","../node_modules/webpack/buildin/global.js","../node_modules/lodash/isArray.js","../node_modules/react-dom/index.js","../node_modules/quill/dist/quill.js","../node_modules/object-assign/index.js","../node_modules/lodash/eq.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/isObject.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/isBuffer.js","../node_modules/webpack/buildin/module.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/isLength.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../src/index.tsx","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/katex/dist/katex.js","../node_modules/quill-image-resize-module-plus/image-resize.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_WeakMap.js","../node_modules/buffer/index.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js"],"names":["module","exports","require","freeGlobal","freeSelf","self","Object","root","Function","baseIsNative","getValue","object","key","value","undefined","privateData","WeakMap","wrappers","pd","event","retv","get","console","assert","setCancelFlag","data","passiveListener","cancelable","canceled","preventDefault","error","Event","eventTarget","set","this","eventPhase","currentTarget","stopped","immediateStopped","timeStamp","Date","now","defineProperty","enumerable","keys","i","length","defineRedirectDescriptor","configurable","defineCallDescriptor","apply","arguments","getWrapper","proto","prototype","wrapper","BaseEvent","CustomEvent","call","create","constructor","writable","isFunc","getOwnPropertyDescriptor","defineWrapper","getPrototypeOf","isStopped","setPassiveListener","type","composedPath","stopPropagation","stopImmediatePropagation","Boolean","bubbles","composed","cancelBubble","initEvent","window","setPrototypeOf","listenersMap","isObject","x","getListeners","listeners","TypeError","defineEventAttribute","eventTargetPrototype","eventName","node","listenerType","listener","next","prev","delete","newNode","passive","once","defineEventAttributeDescriptor","defineCustomEventTarget","eventNames","CustomEventTarget","EventTarget","Array","isArray","types","Map","addEventListener","options","optionsIsObj","capture","removeEventListener","dispatchEvent","wrappedEvent","wrapEvent","err","handleEvent","setEventPhase","setCurrentTarget","defaultPrevented","_arrayLikeToArray","arr","len","arr2","_unsupportedIterableToArray","o","minLen","n","toString","slice","name","from","test","_createForOfIteratorHelper","Symbol","iterator","F","s","done","e","_e","f","it","normalCompletion","didErr","step","_e2","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","Promise","then","_asyncToGenerator","fn","args","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","_slicedToArray","_arr","_n","_d","_s","_i","push","_AwaitValue","wrapped","_awaitAsyncGenerator","AsyncGenerator","front","back","resume","result","wrappedAwait","settle","_invoke","request","_wrapAsyncGenerator","_asyncIterator","iterable","method","asyncIterator","_asyncGeneratorDelegate","inner","awaitWrap","iter","waiting","pump","flatbuffers","inRange","a","min","max","ToDictionary","Offset","Table","SIZEOF_SHORT","SIZEOF_INT","FILE_IDENTIFIER_LENGTH","Encoding","UTF8_BYTES","UTF16_STRING","int32","Int32Array","float32","Float32Array","buffer","float64","Float64Array","isLittleEndian","Uint16Array","Uint8Array","Long","low","high","ZERO","toFloat64","equals","other","Builder","opt_initial_size","initial_size","bb","ByteBuffer","allocate","space","minalign","vtable","vtable_in_use","isNested","object_start","vtables","vector_num_elems","force_defaults","clear","capacity","forceDefaults","dataBuffer","asUint8Array","bytes","subarray","position","offset","prep","size","additional_bytes","align_size","old_buf_size","growByteBuffer","pad","byte_size","writeInt8","writeInt16","writeInt32","writeInt64","writeFloat32","writeFloat64","addInt8","addInt16","addInt32","addInt64","addFloat32","addFloat64","addFieldInt8","voffset","defaultValue","slot","addFieldInt16","addFieldInt32","addFieldInt64","addFieldFloat32","addFieldFloat64","addFieldOffset","addOffset","addFieldStruct","nested","obj","Error","notNested","new_buf_size","nbb","setPosition","startObject","numfields","endObject","vtableloc","trimmed_size","existing_vtable","vt1","outer_loop","vt2","readInt16","j","finish","root_table","opt_file_identifier","file_identifier","charCodeAt","requiredField","table","field","table_start","vtable_start","readInt32","startVector","elem_size","num_elems","alignment","endVector","createString","utf8","codePoint","createLong","bytes_","position_","readInt8","readUint8","readUint16","readUint32","readInt64","readUint64","readFloat32","readFloat64","writeUint8","writeUint16","writeUint32","writeUint64","getBufferIdentifier","String","fromCharCode","__offset","bb_pos","vtable_offset","__union","t","__string","opt_encoding","b","c","__indirect","__vector","__vector_len","__has_identifier","ident","Stream","tokens","endOfStream","read","shift","prepend","token","unshift","pop","decoderError","fatal","opt_code_point","TextDecoder","encoding","toLowerCase","_streaming","_BOMseen","_decoder","_fatal","_ignoreBOM","TextEncoder","_encoder","_options","UTF8Decoder","utf8_code_point","utf8_bytes_seen","utf8_bytes_needed","utf8_lower_boundary","utf8_upper_boundary","handler","stream","bite","code_point","UTF8Encoder","count","temp","decode","input","ArrayBuffer","byteOffset","byteLength","input_stream","code_points","indexOf","cp","codePointsToString","encode","opt_string","string","u","d","stringToCodePoints","_Buffer","Buffer","useNativeEncoders","decodeUtf8","decoder","encodeUtf8","encoder","_setPrototypeOf","p","__proto__","_inherits","subClass","superClass","_getPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_typeof","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","Super","NewTarget","ITERATOR_DONE","freeze","_json","_getDOMStream","tee","_getNodeStream","pipe","pipeTo","duplex","pipeThrough","_DOMStream","toDOMStream","_nodeStream","toNodeStream","_values","resolvers","_closedPromise","r","_closedPromiseResolve","reason","return","_ensureOpen","_error","_","abort","close","BigIntUnavailableError","BigIntUnavailable","asIntN","asUintN","BigInt","BigIntCtor","BigIntAvailable","BigInt64ArrayUnavailableError","BigInt64Array","BigInt64ArrayCtor","BigUint64ArrayUnavailableError","BigUint64Array","BigUint64ArrayCtor","isNumber","isBoolean","isFunction","isPromise","isIterable","isAsyncIterable","isArrowJSON","isIteratorResult","isFileHandle","isFetchResponse","toArrayBufferViewIterator","SharedArrayBuf","SharedArrayBuffer","memcpy","source","targetByteOffset","sourceByteLength","targetByteLength","dst","src","Math","joinUint8Arrays","chunks","sliced","xOffset","yOffset","xLen","yLen","y","collapseContiguousByteRanges","reduce","index","Infinity","toArrayBufferView","ArrayBufferViewCtor","isView","BYTES_PER_ELEMENT","toInt8Array","Int8Array","toInt16Array","Int16Array","toInt32Array","toUint16Array","toUint32Array","Uint32Array","toFloat32Array","toFloat64Array","toUint8ClampedArray","Uint8ClampedArray","ArrayCtor","wrap","buffers","toInt8ArrayIterator","toInt16ArrayIterator","toInt32ArrayIterator","toUint8ArrayIterator","toUint16ArrayIterator","toUint32ArrayIterator","toFloat32ArrayIterator","toFloat64ArrayIterator","toUint8ClampedArrayIterator","toArrayBufferViewAsyncIterator","emit","toInt8ArrayAsyncIterator","toInt16ArrayAsyncIterator","toInt32ArrayAsyncIterator","toUint8ArrayAsyncIterator","toUint16ArrayAsyncIterator","toUint32ArrayAsyncIterator","toFloat32ArrayAsyncIterator","toFloat64ArrayAsyncIterator","toUint8ClampedArrayAsyncIterator","rebaseValueOffsets","valueOffsets","compareArrayLike","fromIterable","fromAsyncIterable","fromDOMStream","fromNodeStream","byteRange","cmd","bufferLength","threw","isNaN","throw","releaseLock","byobReader","defaultReader","supportsBYOB","reader","getBYOBReader","getDefaultReader","catch","readFromBYOBReader","mode","readInto","onEvent","cleanup","events","evt","destroy","race","map","isFinite","_defineProperty","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties","property","receiver","base","hasOwnProperty","desc","flatbuf","arrow","apache","org","MetadataVersion","UnionMode","Precision","DateUnit","TimeUnit","IntervalUnit","Type","Endianness","Null","__init","builder","startNull","endNull","Struct_","startStruct_","endStruct_","List","startList","endList","LargeList","startLargeList","endLargeList","FixedSizeList","listSize","startFixedSizeList","addListSize","endFixedSizeList","keysSorted","startMap","addKeysSorted","endMap","Union","Sparse","typeIdsOffset","numElems","startUnion","addMode","addTypeIds","endUnion","Int","bitWidth","isSigned","startInt","addBitWidth","addIsSigned","endInt","FloatingPoint","HALF","precision","startFloatingPoint","addPrecision","endFloatingPoint","Utf8","startUtf8","endUtf8","Binary","startBinary","endBinary","LargeUtf8","startLargeUtf8","endLargeUtf8","LargeBinary","startLargeBinary","endLargeBinary","FixedSizeBinary","byteWidth","startFixedSizeBinary","addByteWidth","endFixedSizeBinary","Bool","startBool","endBool","Decimal","scale","startDecimal","addScale","endDecimal","MILLISECOND","unit","startDate","addUnit","endDate","Time","startTime","endTime","Timestamp","SECOND","optionalEncoding","timezoneOffset","startTimestamp","addTimezone","endTimestamp","Interval","YEAR_MONTH","startInterval","endInterval","Duration","startDuration","endDuration","KeyValue","keyOffset","valueOffset","startKeyValue","addKey","addValue","endKeyValue","DictionaryEncoding","id","indexTypeOffset","isOrdered","startDictionaryEncoding","addId","addIndexType","addIsOrdered","endDictionaryEncoding","Field","NONE","nameOffset","nullable","typeType","typeOffset","dictionaryOffset","childrenOffset","customMetadataOffset","startField","addName","addNullable","addTypeType","addType","addDictionary","addChildren","addCustomMetadata","endField","Schema","Little","endianness","fieldsOffset","startSchema","addEndianness","addFields","endSchema","MessageHeader","FieldNode","null_count","RecordBatch","nodesOffset","buffersOffset","startRecordBatch","addLength","addNodes","addBuffers","endRecordBatch","DictionaryBatch","dataOffset","isDelta","startDictionaryBatch","addData","addIsDelta","endDictionaryBatch","Message","V1","version","headerType","headerOffset","bodyLength","startMessage","addVersion","addHeaderType","addHeader","addBodyLength","endMessage","BufferType","iterateBits","getBool","_data","_index","byte","bit","getBit","setBool","truncateBitmap","bitmap","alignedSize","packBools","values","xs","begin","context","byteIndex","remaining","popcnt_bit_range","lhs","rhs","sum","rhsInside","lhsInside","popcnt_array","cnt","pos","view","DataView","popcnt_uint32","getUint32","getUint16","getUint8","uint32","_toConsumableArray","nodes","visit","getVisitFn","throwIfNotFound","_node","visitor","dtype","inferDType","visitNull","visitBool","visitInt","Int8","visitInt8","Int16","visitInt16","Int32","visitInt32","Int64","visitInt64","Uint8","visitUint8","Uint16","visitUint16","Uint32","visitUint32","Uint64","visitUint64","Float","visitFloat","Float16","visitFloat16","Float32","visitFloat32","Float64","visitFloat64","visitUtf8","visitBinary","visitFixedSizeBinary","visitDate","DateDay","visitDateDay","DateMillisecond","visitDateMillisecond","visitTimestamp","TimestampSecond","visitTimestampSecond","TimestampMillisecond","visitTimestampMillisecond","TimestampMicrosecond","visitTimestampMicrosecond","TimestampNanosecond","visitTimestampNanosecond","visitTime","TimeSecond","visitTimeSecond","TimeMillisecond","visitTimeMillisecond","TimeMicrosecond","visitTimeMicrosecond","TimeNanosecond","visitTimeNanosecond","visitDecimal","visitList","Struct","visitStruct","visitUnion","DenseUnion","visitDenseUnion","SparseUnion","visitSparseUnion","Dictionary","visitDictionary","visitInterval","IntervalDayTime","visitIntervalDayTime","IntervalYearMonth","visitIntervalYearMonth","visitFixedSizeList","visitMap","typeId","SINGLE","DOUBLE","MICROSECOND","NANOSECOND","DAY","DAY_TIME","Dense","schema","compareFields","fields","others","every","compareField","compareConstructor","compareAny","compareInt","compareFloat","compareDate","compareTimestamp","timezone","compareTime","compareUnion","typeIds","children","compareInterval","indices","dictionary","toStringTag","ArrayType","child","valueType","join","typeIdToChildIndex","idx","atomicDictionaryId","getId","strideForType","nullCount","childData","floor","_nullCount","Data","stride","nullBitmap","childStride","_sliceBuffers","clone","_sliceChildren","newLength","fill","VALIDITY","TYPE","OFFSET","DATA","valueOffsetsOrChildren","valueToString","toPrimitive","JSON","stringify","createIsValidFunction","nullValues","fnBody","noNaNs","valueToCase","roundLengthUpToNearest64Bytes","BPE","_resize","extra","reserved","array","reserve","numValid","val","cur","buffer64","ArrayType64","_ArrayType64","nulls","finished","_nulls","_isValid","new","flush","setValid","isValid","setValue","_setValue","valid","numChildren","offsets","_offsets","_typeIds","last","numInvalid","reservedLength","reservedByteLength","queueingStrategy","highWaterMark","sizeProperty","numChunks","append","toVector","opts","_pendingLength","pending","_pending","current","_flush","pendingLength","_flushPending","hashFn","_dictionaryOffset","_keysToIndices","valueToKey","keysToIndices","_dictionary","curr","concat","f64","u32","uint16ToFloat64","h","expo","sigf","sign","NaN","float64ToUint16","Parent","Class","bind","bignumToString","bignumToBigInt","isArrowBigNumSymbol","for","BigNum","SignedBigNum","UnsignedBigNum","DecimalBigNum","bignumToNumber","bn","hi","lo","signed","words","number","decimalToString","digits","base64","base32","checks","reverse","toJSON","valueOf","hint","assign","memo","num","BN","toBigInt","kParent","kRowIndex","kKeyToIdx","kIdxToVal","kCustomInspect","parent","numKeys","ktoi","itov","getIndex","ki","vi","kr","vr","k","v","has","callbackfn","thisArg","callback","m","str","createRowProxy","getChildAt","defineRowProxyProperties","findIndex","tmp","row","getter","setter","getKey","RowProxyHandler","isExtensible","deleteProperty","preventExtensions","ownKeys","clampIndex","adjust","clampRange","end","big0","isNaNFast","createElementComparator","search","typeofSearch","valueOfSearch","comparators","createSubElementsComparator","creatMapComparator","createArrayLikeComparator","createVectorComparator","createObjectComparator","compareArray","compareObject","vec","compareVector","lKeyItr","rKeyItr","rValItr","rVal","lKey","rKey","calculateOffsets","_type","_chunks","_chunkOffsets","_length","_numChildren","chunk","Chunked","flatten","_sliceInternal","columns","_children","vector","mid","isValidInternal","getInternal","element","indexOfInternal","toArray","arraySet","typedSet","chunkIndex","fromIndex","start","found","slices","chunkOffsets","chunkLength","chunkOffset","to","isDictionary","_indices","vectors","selectChunkArgs","_field","Column","column","metadata","rest","some","_chunk","selectArgs","Ctor","vals","_selectArgs","selectFieldArgs","_selectChunkArgs","res","selectVectorChildrenArgs","_selectVectorChildrenArgs","ret","entries","fieldIndex","valueIndex","dictionaries","generateDictionaryMap","compareSchemas","columnNames","names","columnIndices","curFields","mergeMaps","newFields","f2","newDictionaries","m1","m2","_run","run","childIndex","_valueToChildTypeId","childTypeId","setEpochMsToMillisecondsLong","epochMs","setVariableWidthBytes","setDateDay","setEpochMsToDays","setDateMillisecond","setNumeric","values64","long","setTimestampSecond","setTimestampMillisecond","setTimestampMicrosecond","setEpochMsToMicrosecondsLong","setTimestampNanosecond","setEpochMsToNanosecondsLong","setTimeSecond","setTimeMillisecond","setTimeMicrosecond","setTimeNanosecond","setDenseUnion","setSparseUnion","setIntervalDayTime","setIntervalYearMonth","itr","_setStructVectorValue","_setStructArrayValue","_setStructObjectValue","newBuilder","defaultOptions","getChildOptions","T","Footer","Block","schemaOffset","dictionariesOffset","recordBatchesOffset","startFooter","addSchema","addDictionaries","addRecordBatches","endFooter","metaDataLength","_Block","_Footer","V4","recordBatches","dictionaryBatches","_recordBatches","_dictionaryBatches","numRecordBatches","block","getRecordBatch","numDictionaries","getDictionaryBatch","buf","footer","getRootAsFooter","startRecordBatchesVector","rb","startDictionariesVector","db","dictionaryBatchesOffset","finishFooterBuffer","_footer","fileBlock","recordBatchesLength","dictionariesLength","FileBlock","createBlock","sync","toUint8Array","peek","AsyncByteStream","body","cancel","closed","readAt","getInt32","nBytes","file","_handle","stat","bytesRead","intAsHex","kPowersOfTen","L","R","product","lessThan","_times","_plus","out_buffer","fromString","out","posn","group","parseInt","substr","multiple","times","plus","left","right","this_high","other_high","negate","startsWith","L0","L1","L2","L3","R0","R1","R2","R3","multiply","sums","Int128","nodesIndex","buffersIndex","nextFieldNode","readNullBitmap","readData","readOffsets","visitMany","readTypeIds","readDictionary","nextBufferRange","sources","isTimestamp","isInt","isTime","isDate","convertArray","isDecimal","isBinary","isFixedSizeBinary","binaryDataFromJSON","isBool","isUtf8","joined","startTypeIdsVector","createTypeIdsVector","indexType","recordBatchFromJSON","fieldNodesFromJSON","fieldNodes","validity","buffersFromJSON","schemaFieldsFromJSON","_schema","fromJSON","fieldChildrenFromJSON","customMetadataFromJSON","_metadata","indexTypeFromJSON","typeFromJSON","_Field","_Schema","_Message","_KeyValue","_FieldNode","_Endianness","_DictionaryBatch","header","_version","_headerType","_createHeader","_bodyLength","msg","message","messageHeaderFromJSON","_message","getRootAsMessage","decodeMessageHeader","isSchema","isRecordBatch","isDictionaryBatch","finishMessageBuffer","_nodes","_buffers","_isDelta","_id","decodeFieldNodes","batch","nodesLength","decodeBuffers","bufferRegions","buffersLength","decodeSchemaFields","fieldsLength","decodeFieldChildren","childrenLength","decodeCustomMetadata","entry","customMetadataLength","customMetadata","decodeIndexType","decodeFieldType","typeIdsArray","childOffsets","childrenVectorOffset","createChildrenVector","metadataOffset","createCustomMetadataVector","dictType","dictMeta","fieldOffsets","startFieldsVector","fieldsVectorOffset","createFieldsVector","platformIsLittleEndian","Big","recordBatch","startNodesVector","nodesVectorOffset","startBuffersVector","b_","buffersVectorOffset","dictionaryBatch","createFieldNode","createBuffer","setInt16","invalidMessageMetadata","expected","actual","invalidMessageBodyLength","readMetadataLength","readMetadata","throwIfNull","readMessage","PADDING","metadataLength","_body","_batchIndex","_dictionaryIndex","batches","flattenDataSources","MAGIC","checkForMagicArrowString","magicLength","magicAndPadding","magicX2AndPadding","_byteLength","_bufferRegions","RangeError","isNull","addBuffer","_nullV","assembler","VectorAssembler","vectorChildren","assembleResult","assembleFlatVector","assembleFlatListVector","firstOffset","lastOffset","assembleListVector","assembleNestedVector","maxChildTypeId","childLengths","shiftedOffsets","unshiftedOffsets","childLength","_position","_started","_sink","_dictionaryBlocks","_recordBatchBlocks","_dictionaryDeltaOffsets","autoDestroy","writeLegacyIpcFormat","_autoDestroy","_writeLegacyIpcFormat","writeAll","writeAllAsync","reset","sink","objectMode","_writeFooter","compareTo","_writeSchema","payload","_writeRecordBatch","flatbufferSize","prefixSize","nPaddingBytes","_write","of","_writePadding","write","_writeMessage","assemble","_writeDictionaries","_writeBodyBuffers","padding","_writeDictionaryBatch","writableStrategy","readableStrategy","writer","RecordBatchStreamWriter","_writeMagic","RecordBatchFileWriter","noopBuf","nullBufs","bitmapLength","ensureSameLengthData","batchLength","l","batchData","_changeLengthAndBackfillNullBitmap","distributeColumnsIntoRecordBatches","distributeVectorsIntoRecordBatches","vecs","batchArgs","numBatches","numColumns","Number","POSITIVE_INFINITY","distributeChildData","uniformlyDistributeChunksAcrossRecordBatches","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","_bindDataAccessors","VectorName","isConcatSpreadable","vectorFromValuesWithType","ArrowType","InputType","typeCtor","dataCtor","ctor","is64bit","_values64","toBigInt64Array","toBigUint64Array","_row","bound","partial0","partial2","epochMillisecondsLongToMs","epochMillisecondsToDate","getVariableWidthBytes","getDateDay","epochDaysToMs","epochDaysToDate","getDateMillisecond","epochMillisecondsLongToDate","getNumeric","getTimestampSecond","getTimestampMillisecond","getTimestampMicrosecond","epochMicrosecondsLongToMs","getTimestampNanosecond","epochNanosecondsLongToMs","getTimeSecond","getTimeMillisecond","getDenseUnion","getSparseUnion","getIntervalDayTime","getIntervalYearMonth","interval","int32s","_vector","decimal","indexOfValue","searchElement","indexOfNull","compare","indexOfUnion","vectorIterator","getFn","nullByte","nullBit","nullableIterator","arrayOfVector","variableWidthColumnErrorMessage","____","visitFields","newDataType","throughIterable","transform","throughAsyncIterable","getByteWidth","wrapNullableSet","VectorCtor","partialType0","getColumnAt","getColumnIndex","Writer","nameToIndex","selectAt","columnName","newIdx","oldToNew","_f","_fs","empty","fromStruct","tableFromIterable","tableFromAsyncIterable","isSync","open","opening","cols","_dictionaries","collect","fs","vs","DictionaryCollector","readAllSync","impl","_impl","isAsync","isFile","isStream","readRecordBatch","RecordBatchReader","fromArrowJSON","fromFileHandle","fromAsyncByteStream","fromByteStream","readAllAsync","_recordBatchIndex","_loadVectors","_reader","shouldAutoDestroy","readSchema","_readNextMessageAndValidate","readMessageBody","_loadRecordBatch","_loadDictionaryBatch","_readFooter","_readDictionaryBatch","seek","_numChunks","_finished","_bufferedSize","builderOptions","_controller","_builder","_getSize","chunkByteLength","readableHighWaterMark","writableHighWaterMark","ReadableStream","_maybeFlush","WritableStream","_writeValueAndReturnChunkSize","bufferedSize","controller","desiredSize","_enqueue","enqueue","Value","ge","le","eq","colidx","expr","_bindLitLit","_bindLitCol","_bindColLit","_bindColCol","accum","And","Or","_batch","rtrn","left_func","right_func","col","lit","col_func","lastDictionary","reverseLookup","lastKey","func","countBy","scan","scanReverse","predicate","batchIndex","numRows","count_by","countByteLength","ceil","log","counts","_predicate","isBound","FilteredDataFrame","and","bm","hwm","pull","asyncIterableAsReadableDOMStream","iterableAsReadableDOMStream","queue","readable","ComponentMessageType","ArrowTable","indexBuffer","columnsBuffer","styler","_this","getCell","rowIndex","columnIndex","isBlankCell","headerRows","headerColumns","isIndexCell","isColumnsCell","classNames","content","dataColumnIndex","getContent","columnsTable","dataRowIndex","uuid","indexTable","displayValuesTable","dataTable","getColumnTypeId","nanosToDate","caption","displayValues","styles","numCols","rows","dataRows","dataColumns","serialize","nanos","__assign","Streamlit","API_VERSION","RENDER_EVENT","registeredMessageListener","setComponentReady","onMessageEvent","sendBackMsg","COMPONENT_READY","apiVersion","setFrameHeight","height","document","scrollHeight","lastFrameHeight","SET_FRAME_HEIGHT","setComponentValue","dataType","isTypedArray","SET_COMPONENT_VALUE","onRenderMessage","dataframeArgs","argsDataframeToObject","eventData","disabled","detail","argsDataframe","argsDataframeArrow","_a","toArrowTable","fromEntries","df","postMessage","isStreamlitMessage","__extends","extendStatics","__","_super","StreamlitComponentBase","componentDidMount","componentDidUpdate","React","PureComponent","withStreamlitConnection","WrappedComponent","ComponentWrapper","onRenderEvent","state","componentError","componentWillUnmount","renderEvent","setState","renderData","render","createElement","width","innerWidth","getDerivedStateFromError","hoistNonReactStatics","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","getRawTag","objectToString","symToStringTag","nativeCreate","getNative","isKeyable","__data__","g","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","process","factory","modules","installedModules","__webpack_require__","moduleId","__esModule","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","find","query","register","Container","default","Format","Leaf","Embed","Scroll","Inline","Text","Attributor","Attribute","Style","Store","ParchmentError","attributes","classes","tags","scope","match","ANY","Node","TEXT_NODE","LEVEL","BLOCK","INLINE","HTMLElement","getAttribute","split","tagName","DATA_KEY","BlotClass","bubble","blot","parentNode","Definitions","Definition","blotName","attrName","keyName","className","toUpperCase","tagNames","tag","diff","equal","extend","op","NULL_CHARACTER","Delta","ops","insert","text","newOp","retain","lastOp","splice","chop","partition","passed","failed","initial","changeLength","elem","hasNext","nextOp","compose","thisIter","otherIter","firstOther","firstLeft","peekType","peekLength","delta","thisOp","otherOp","strings","diffResult","component","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","priority","transformPosition","nextType","hasOwn","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","copy","copyIsArray","deep","BlockEmbed","bubbleFormats","_get","_extend2","_interopRequireDefault","_quillDelta2","_parchment2","_break2","_inline2","_text2","_Parchment$Embed","domNode","formats","attribute","BLOCK_ATTRIBUTE","format","def","endsWith","insertBefore","insertAt","BLOCK_BLOT","_Parchment$Block","_this2","cache","descendants","leaf","lines","tail","ref","head","remove","force","statics","defaultChild","allowedChildren","overload","expandConfig","sliceIterator","_editor2","_emitter4","_module2","_selection","_selection2","_logger2","_theme2","debug","Quill","container","html","innerHTML","trim","classList","add","__quill","addContainer","setAttribute","scrollingContainer","emitter","scroll","whitelist","editor","selection","theme","keyboard","addModule","clipboard","history","init","on","EDITOR_CHANGE","TEXT_CHANGE","toggle","isBlank","SCROLL_UPDATE","mutations","range","lastRange","modify","update","contents","convert","setContents","placeholder","readOnly","disable","limit","level","imports","path","overwrite","warn","refNode","setRange","_this3","_overload","_overload2","deleteText","enable","enabled","scrollTop","focus","scrollIntoView","_this4","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","getLength","_overload7","_overload8","getContents","getFormat","MAX_VALUE","getRange","_overload9","_overload10","getText","hasFocus","embed","_this7","insertEmbed","_this8","_overload11","_overload12","insertText","contains","off","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","deleted","applied","applyDelta","_overload15","_overload16","Range","USER","_this11","userConfig","DEFAULTS","import","themeConfig","config","moduleConfig","moduleClass","toolbar","querySelector","modifier","strict","isEnabled","oldDelta","shiftRange","_emitter","_emitter2","_map","_map2","_map3","_map4","_Parchment$Inline","BLOT","isolate","moveChildren","selfIndex","order","otherIndex","_parchment","TextBlot","_Parchment$Text","_eventemitter2","_len","_key","querySelectorAll","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","_len2","_key2","_ref","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","_console","namespace","ns","logger","newLevel","pSlice","objectKeys","isArguments","deepEqual","getTime","isUndefinedOrNull","isBuffer","ka","kb","sort","objEquiv","attributeBit","ATTRIBUTE","item","canAdd","replace","removeAttribute","Code","_block2","_Inline","CodeBlock","textContent","frag","_descendant","descendant","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","lastIndexOf","appendChild","optimize","removeChild","unwrap","TAB","_op2","_code2","_cursor2","_block","_clone2","_deepEqual2","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","image","list","bullet","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","suffix","cursorIndex","textBlot","oldValue","CONTENTS","oldText","newText","diffDelta","combined","merged","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","setTimeout","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","restore","_format","nativeRange","collapsed","after","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","normalized","normalizedToRange","activeElement","positions","indexes","startContainer","endContainer","childNodes","lastChild","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","first","scrollBounds","removeAllRanges","addRange","blur","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","build","makeBlot","forEachAt","criteria","lengthLeft","detach","childBlot","refBlot","insertInto","targetParent","inclusive","addedNodes","removedNodes","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","nextSibling","replaceChild","FormatBlot","replaceWith","replacement","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","_instanceof","nativeMap","nativeSet","nativePromise","Set","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","_clone","__isArray","__isRegExp","RegExp","__getRegExpFlags","lastIndex","__isDate","allocUnsafe","keyChild","valueChild","entryChild","attrs","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","re","flags","global","ignoreCase","multiline","clonePrototype","_container2","isLine","_Parchment$Scroll","_line","_line2","_line3","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill2","navigator","platform","Keyboard","_Module","bindings","addBinding","ENTER","shiftKey","handleEnter","metaKey","ctrlKey","altKey","userAgent","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","listen","binding","normalize","which","keyCode","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLine11","_quill$getLine13","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine17","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","createTextNode","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","sanitize","_inline","Link","url","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","_keyboard2","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","select","buildPicker","style","display","label","togglePicker","escape","option","tabIndex","hasAttribute","selectItem","buildItem","selected","buildLabel","buildOptions","trigger","selectedIndex","createEvent","isActive","_embed2","_scroll2","_clipboard2","_history2","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","attr","ClassAttributor","camelize","parts","part","StyleAttributor","Theme","themes","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","record","undo","redo","dest","stack","changeDelta","undoDelta","timestamp","delay","maxStack","deleteLength","changeIndex","endsWithNewlineChange","BaseTooltip","_colorPicker2","_iconPicker2","_picker2","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","tooltip","textbox","hide","pickers","picker","extendToolbar","buttons","icons","button","selects","fillSelect","align","handlers","formula","edit","fileInput","files","FileReader","onload","readAsDataURL","click","video","_Tooltip","boundsContainer","save","preview","linkRange","restoreFocus","extractVideoUrl","LinkedList","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","ScrollBlot","MutationObserver","observe","disconnect","records","mark","markParent","previousSibling","grandChild","InlineBlot","obj1","obj2","prop","isEqual","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","searchString","subjectString","execCommand","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","longtext","shorttext","hm","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","prefixLength","text1_a","text1_b","text2_a","text2_b","hm1","hm2","mid_common","diff_halfMatch_","diffs_a","diffs_b","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","k1start","k1end","k2start","k2end","k1","k1_offset","y1","x1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","diff_bisect_","diff_compute_","diff_cleanupMerge","pointer","count_delete","count_insert","text_delete","text_insert","changes","norm","current_pos","next_pos","split_pos","d_left","d_right","cursor_normalize_diff","ndiffs","cursor_pointer","d_next","merge_tuples","fix_cursor","compact","starts_with_pair_end","fixed_diffs","fix_emoji","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","Events","EE","EventEmitter","_events","_eventsCount","exists","available","ee","a1","a2","a3","a4","a5","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","deltaEndsWith","ELEMENT_NODE","fontStyle","computeStyle","italic","fontWeight","bold","applyFormat","parseFloat","textIndent","matchAlias","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchers","selector","matcher","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","nodeType","childrenDelta","paste","pair","_pair","getComputedStyle","endText","nextElementSibling","nodeHeight","offsetHeight","marginTop","marginBottom","offsetTop","whiteSpace","replacer","collapse","Bold","addControls","Toolbar","_ret","controls","addHandler","_this$quill$selection","_quill$selection$getR","prompt","addButton","groups","control","addSelect","clean","direction","link","_picker","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","offsetWidth","rootBounds","verticalShift","_base","_base2","_link2","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","show","_core2","_indent","_blockquote2","_header2","_list","_list2","_bold2","_italic2","_script2","_strike2","_underline2","_image2","_video2","_code","_formula2","_syntax2","_toolbar2","_bubble2","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","_Container","listEventHandler","_bold","Italic","_Bold","Script","Strike","Underline","_link","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","clearTimeout","code","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","marginLeft","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","baseGetTag","funcToString","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","SetCache","arraySome","cacheHas","bitmask","customizer","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","stubFalse","freeExports","freeModule","webpackPolyfill","deprecate","paths","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","dirtyProps","cleanProps","generation","onEditorChange","rangeOrDelta","oldRangeOrDelta","onEditorChangeText","unprivilegedEditor","onEditorChangeSelection","isControlled","validateProps","Children","only","lastDeltaChangeSet","shouldComponentUpdate","nextProps","nextState","prevContents","getEditorContents","nextContents","isEqualValue","setEditorContents","setEditorReadOnly","shouldComponentRegenerate","instantiateEditor","destroyEditor","prevProps","prevState","regenerationSnapshot","postpone","setEditorSelection","createEditor","getEditingArea","getEditorConfig","unhookEditor","getEditor","setEditorTabIndex","hookEditor","makeUnprivilegedEditor","getEditorSelection","nextValue","sel","getHTML","editingArea","findDOMNode","renderEditingArea","preserveWhitespace","properties","cloneElement","onKeyPress","onKeyDown","onKeyUp","onChange","nextSelection","currentSelection","hasGainedFocus","hasLostFocus","onChangeSelection","onFocus","onBlur","Component","ReactQuill","MapShim","__entries__","ctx","isBrowser","global$1","requestAnimationFrame$1","requestAnimationFrame","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","throttle","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","_b","getInstance","instance_","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","getBordersSize","getHTMLElementContentRect","clientWidth","clientHeight","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","round","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","abs","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","ResizeObserver","__webpack_exports__","SourceLocation","lexer","second","loc","Token_Token","Token","noexpand","treatAsRelax","endToken","ParseError","underlined","src_ParseError","uppercase","ESCAPE_LOOKUP","\"","ESCAPE_REGEX","getBaseElem","utils","deflt","setting","defaultIfUndefined","hyphenate","isCharacterBox","baseElem","protocolFromUrl","exec","Settings_Settings","Settings","displayMode","output","leqno","fleqn","macros","minRuleThickness","colorIsTextColor","trust","maxSize","maxExpand","globalGroup","_proto","reportNonstrict","errorCode","errorMsg","useStrictBehavior","isTrusted","cramped","sup","Style_styles","_sup","sub","_sub","fracNum","_fracNum","fracDen","_fracDen","cramp","_cramp","_text","isTight","src_Style","DISPLAY","TEXT","SCRIPT","SCRIPTSCRIPT","scriptData","blocks","allBlocks","supportedCodepoint","codepoint","svgGeometry_path","leftParenInner","rightParenInner","doubleleftarrow","doublerightarrow","leftarrow","leftbrace","leftbraceunder","leftgroup","leftgroupunder","leftharpoon","leftharpoonplus","leftharpoondown","leftharpoondownplus","lefthook","leftlinesegment","leftmapsto","leftToFrom","longequal","midbrace","midbraceunder","oiintSize1","oiintSize2","oiiintSize1","oiiintSize2","rightarrow","rightbrace","rightbraceunder","rightgroup","rightgroupunder","rightharpoon","rightharpoonplus","rightharpoondown","rightharpoondownplus","righthook","rightlinesegment","rightToFrom","twoheadleftarrow","twoheadrightarrow","tilde1","tilde2","tilde3","tilde4","widehat1","widehat2","widehat3","widehat4","widecheck1","widecheck2","widecheck3","widecheck4","baraboveleftarrow","rightarrowabovebar","baraboveshortleftharpoon","rightharpoonaboveshortbar","shortbaraboveleftharpoon","shortrightharpoonabovebar","tree_DocumentFragment","DocumentFragment","maxFontSize","hasClass","toNode","createDocumentFragment","toMarkup","markup","toText","createClass","cls","initNode","color","getColor","_toNode","_toMarkup","domTree_Span","Span","domTree_Anchor","Anchor","_proto2","domTree_Img","Img","alt","_proto3","iCombinations","domTree_SymbolNode","SymbolNode","skew","script","scriptFromCodepoint","_proto4","span","marginRight","needsSpan","escaped","SvgNode","_proto5","createElementNS","domTree_PathNode","PathNode","pathName","alternate","_proto6","LineNode","_proto7","assertSymbolDomNode","fontMetricsData","sigmasAndXis","slant","stretch","shrink","xHeight","quad","extraSpace","num1","num2","num3","denom1","denom2","sup1","sup2","sup3","sub1","sub2","supDrop","subDrop","delim1","delim2","axisHeight","defaultRuleThickness","bigOpSpacing1","bigOpSpacing2","bigOpSpacing3","bigOpSpacing4","bigOpSpacing5","sqrtRuleThickness","ptPerEm","doubleRuleSep","arrayRuleWidth","fboxsep","fboxrule","extraCharacterMap","getCharacterMetrics","character","font","ch","metrics","fontMetricsBySizeIndex","ATOMS","NON_ATOMS","src_symbols","defineSymbol","acceptUnicodeChar","main","ams","bin","mathord","rel","ligatures","symbols_i","symbols_ch","src_symbols_i","_ch","letters","symbols_i2","_ch2","symbols_wideChar","symbols_i3","_ch3","symbols_i4","_ch4","_i5","_ch5","wideLatinLetterData","wideNumeralData","sizeStyleMap","sizeMultipliers","sizeAtStyle","Options_Options","Options","textSize","phantom","fontFamily","fontShape","sizeMultiplier","_fontMetrics","BASESIZE","extension","havingStyle","havingCrampedStyle","havingSize","havingBaseStyle","wantSize","havingBaseSizing","withColor","withPhantom","withFont","withTextFontFamily","withTextFontWeight","withTextFontShape","sizingClasses","oldOptions","baseSizingClasses","fontMetrics","sizeIndex","cssEmPerMu","getGlobalMetrics","src_Options","ptPerUnit","relativeUnit","validUnit","units_calculateSize","sizeValue","unitOptions","buildCommon_lookupSymbol","fontName","buildCommon_makeSymbol","symbolNode","lookup","buildCommon_canCombine","_style","sizeElementFromChildren","buildCommon_makeSpan","buildCommon_makeSvgSpan","buildCommon_makeFragment","fragment","retrieveTextFontName","baseFontName","fontMap","variant","svgData","buildCommon","makeSymbol","mathsym","makeSpan","makeSvgSpan","makeLineSpan","thickness","borderBottomWidth","makeAnchor","makeFragment","wrapFragment","makeVList","params","_getVListChildrenAndD","positionType","oldChildren","_depth","currPos","positionData","firstChild","getVListChildrenAndDepth","pstrutSize","pstrut","realChildren","minPos","maxPos","_i2","_child","_elem","wrapperClasses","wrapperStyle","childWrap","vlist","emptySpan","depthStrut","topStrut","makeOrd","isFont","fontOrFamily","_wideCharacterFont","wideChar","wide_character_wideCharacterFont","wideFontName","wideFontClass","fontClasses","fontData","fontClass","boldsymbol","_fontName","_fontName3","_fontName2","makeGlue","measurement","rule","staticSvg","_svgData$value","svgNode","tryCombineChars","chars","thinspace","mediumspace","thickspace","spacings","mord","mop","mbin","mrel","minner","mopen","mclose","mpunct","tightSpacings","_functions","_htmlGroupBuilders","_mathmlGroupBuilders","defineFunction","htmlBuilder","mathmlBuilder","numArgs","argTypes","greediness","allowedInText","allowedInMath","numOptionalArgs","infix","defineFunctionBuilders","ordargument","buildHTML_makeSpan","binLeftCanceller","binRightCanceller","styleMap","DomEnum","buildHTML_buildExpression","expression","isRealGroup","surrounding","buildHTML_buildGroup","glueOptions","dummyPrev","dummyNext","isRoot","traverseNonSpaceNodes","prevType","getTypeOfDomTree","partialGroup","buildHTML_checkPartialGroup","nonspace","insertAfter","getOutermostNode","makeNullDelimiter","moreClasses","baseOptions","groupNode","multiplier","buildHTMLUnbreakable","strut","verticalAlign","buildHTML","tree","tagChild","nobreak","htmlNode","newDocumentFragment","mathMLTree_MathNode","MathNode","mathMLTree_TextNode","TextNode","mathMLTree","SpaceNode","buildMathML_makeText","buildMathML_makeRow","buildMathML_getVariant","buildMathML_buildExpression","isOrdgroup","buildMathML_buildGroup","lastGroup","_group","_lastGroup$children","_lastGroup$children2","_lastGroup$children3","buildExpressionRow","buildMathML","texExpression","isDisplayMode","forMathmlOnly","annotation","semantics","math","wrapperClass","buildTree_optionsFromSettings","settings","buildTree_displayWrap","buildTree_buildTree","katexNode","mathMLNode","_htmlNode","stretchyCodePoint","widehat","widecheck","widetilde","utilde","overleftarrow","underleftarrow","xleftarrow","overrightarrow","underrightarrow","xrightarrow","underbrace","overbrace","overgroup","undergroup","overleftrightarrow","underleftrightarrow","xleftrightarrow","Overrightarrow","xRightarrow","overleftharpoon","xleftharpoonup","overrightharpoon","xrightharpoonup","xLeftarrow","xLeftrightarrow","xhookleftarrow","xhookrightarrow","xmapsto","xrightharpoondown","xleftharpoondown","xrightleftharpoons","xleftrightharpoons","xtwoheadleftarrow","xtwoheadrightarrow","xlongequal","xtofrom","xrightleftarrows","xrightequilibrium","xleftequilibrium","katexImagesData","overlinesegment","underlinesegment","stretchy","img","totalHeight","borderColor","_buildSvgSpan_","viewBoxWidth","viewBoxHeight","_height","numChars","imgIndex","minWidth","widthClasses","aligns","spans","_minWidth","_viewBoxHeight","_height2","numSvgChildren","_path","_svgNode","_span","buildSvgSpan_","assertNodeType","assertSymbolNodeType","typedNode","checkSymbolNodeType","accent_htmlBuilder","grp","supSubGroup","assertSpan","isShifty","baseChar","accentBody","clearance","isStretchy","accent","accentFull","accentWrap","accent_mathmlBuilder","accentNode","NON_STRETCHY_ACCENT_REGEX","funcName","parser","innerGroup","kern","arrow_paddedNode","optArgs","below","lowerGroup","newOptions","upperGroup","arrowBody","arrowShift","upperShift","lowerShift","arrowNode","upperNode","lowerNode","_lowerNode","color_htmlBuilder","elements","color_mathmlBuilder","breakOnTokenText","gullet","parseExpression","newRow","newLine","globalMap","def_checkControlSequence","tok","letCommand","macro","unexpandable","isExpandable","consumeSpaces","fetch","parseFunction","consumeArgs","expandTokens","popToken","getRHS","_ref4","middle","pushToken","delimiter_getMetrics","delimiter_styleWrap","delim","toStyle","delimSizeMultiplier","centerSpan","delimiter_makeLargeDelim","center","delimiter_mathrmSize","delimiter_makeInner","sizeClass","lap","delimiter_makeStackedDelim","heightTotal","repeat","topMetrics","topHeightTotal","repeatMetrics","repeatHeightTotal","bottomMetrics","bottomHeightTotal","middleHeightTotal","middleFactor","middleMetrics","minHeight","repeatCount","realHeightTotal","shiftOfExtraElement","inners","overlap","innerSpan","delimiter_sqrtSvg","sqrtName","extraViniculum","hLinePad","sqrtMain","sqrtSize1","sqrtSize2","sqrtSize3","sqrtSize4","sqrtTall","sqrtPath","pathNode","svg","stackLargeDelimiters","stackAlwaysDelimiters","stackNeverDelimiters","sizeToMaxHeight","stackNeverDelimiterSequence","stackAlwaysDelimiterSequence","stackLargeDelimiterSequence","delimTypeToFont","traverseSequence","sequence","heightDepth","delimiter_makeCustomSizedDelim","delimType","delimiter_makeSmallDelim","delimiter","advanceWidth","spanHeight","texHeight","ruleWidth","delimiterExtend","maxDistFromAxis","delimiterSizes","mclass","delimiters","checkDelimiter","symDelim","assertParsed","leftrightDepth","expect","rightColor","leftDelim","rightDelim","innerHeight","innerDepth","hadMiddle","isMiddle","colorOptions","leftNode","rightNode","middleDelim","middleNode","enclose_htmlBuilder","imgShift","isSingleChar","ruleThickness","borderStyle","borderWidth","enclose_mathmlBuilder","thk","_environments","defineEnvironment","getHLines","hlineInfo","nxt","consume","parseArray","hskipBeforeAndAfter","addJot","arraystretch","colSeparationType","beginGroup","expandMacroAsText","rowGaps","hLinesBeforeRow","cell","endGroup","nextToken","cr","dCellStyle","envName","array_htmlBuilder","nr","nc","hlines","pt","arraycolsep","baselineskip","jot","arrayskip","arstrutHeight","arstrutDepth","setHLinePos","hlinesInGap","isDashed","inrow","outrow","elt","rowGap","gap","colSep","colDescrNum","colDescriptions","colDescr","firstSeparator","separator","lineType","borderRightWidth","borderRightStyle","margin","sepwidth","pregap","postgap","dashes","vListElems","hline","lineShift","alignMap","array_mathmlBuilder","menclose","columnLines","prevTypeWasAlign","iStart","iEnd","_cols","spacing","rowLines","array_alignedHandler","numMaths","emptyGroup","arg0","isAligned","_i3","styling","curMaths","_i4","nde","ca","src_environments","nameGroup","env","_parser$parseArgument","parseArguments","_args","endNameToken","mclass_makeSpan","mclass_htmlBuilder","mclass_mathmlBuilder","lspace","rspace","binrelClass","atom","family","baseArg","shiftedArg","baseOp","limits","alwaysHandleSupSub","parentIsSupSub","suppressBaseShift","supsub","font_htmlBuilder","font_mathmlBuilder","fontAliases","genfrac_adjustStyle","originalStyle","genfrac_htmlBuilder","nstyle","dstyle","numerm","numer","continued","hStrut","dStrut","ruleSpacing","numShift","denomShift","frac","delimSize","denomm","denom","hasBarLine","barSize","midShift","candidateClearance","genfrac_mathmlBuilder","isDisplay","withDelims","leftOp","rightOp","stylArray","delimFromValue","delimString","barNode","styl","textOrd","_ref5","horizBrace_htmlBuilder","braceBody","isOver","vSpan","command","formatUnsupportedCmd","trustContext","class","keyVal","mathml","includegraphics_sizeData","totalheight","toFixed","mathFunction","muUnit","dimension","fix","outerMode","switchMode","mathchoice_chooseMathStyle","scriptscript","assembleSupSub_assembleSupSub","supGroup","subGroup","baseShift","finalGroup","_bottom","noSuccessor","op_htmlBuilder","hasLimits","large","stash","oval","op_mathmlBuilder","operator","singleCharBigOps","fName","singleCharIntegrals","operatorname_htmlBuilder","childText","sizingGroup","isAllString","word","identifier","semisimple","amount","dy","borderTopWidth","sizeFuncs","smashHeight","smashDepth","tbArg","smashedNode","theta","phi","lineClearance","minDelimiterHeight","_delimiter$sqrtImage","delimDepth","paddingLeft","rootm","toShift","rootVList","rootVListWrap","styling_styleMap","newStyle","builderDelegate","supsub_htmlBuilderDelegate","supm","subm","minSupShift","valueBase","valueSup","valueSub","supShift","subShift","_newOptions","isOiint","maxWidth","psi","vlistElem","_vlistElem","isBrace","defaultVariant","cssSpace","regularSpace","ord","tag_pad","padNode","textFontFamilies","textFontWeights","textFontShapes","optionsWithFont","makeVerb","star","src_functions","controlWordWhitespaceRegex","combiningDiacriticalMarksEndRegex","combiningDiacriticalMarkString","Lexer_Lexer","Lexer","tokenRegex","catcodes","setCatcode","char","lex","nlIndex","controlMatch","Namespace_Namespace","Namespace","builtins","globalMacros","undefStack","undefs","undef","builtinMacros","defineMacro","expandOnce","future","digitToNumber","digit","macros_newcommand","existsOK","nonexistsOK","isDefined","argText","expandNextToken","dotsByToken","thedots","expandAfterFuture","spaceAfterDots","latexRaiseA","implicitCommands","MacroExpander_MacroExpander","MacroExpander","expansionCount","feed","newMode","pushTokens","_this$stack","startOfArg","expandableOnly","topToken","expansion","_getExpansion","_tokens","expanded","expandMacro","oldStackLength","definition","stripped","bodyLexer","unicodeAccents","unicodeSymbols","Parser_Parser","Parser","parse","breakOnInfix","endOfExpression","parseAtom","formLigatures","handleInfixNodes","overIndex","numerNode","denomNode","numerBody","denomBody","callFunction","handleSupSubscript","symbolToken","parseGroup","SUPSUB_GREEDINESS","textordArray","superscript","subscript","_limits","prime","primes","funcData","_this$parseArguments","totalArgs","baseGreediness","argType","isOptional","parseGroupOfType","optional","parseColorGroup","parseSizeGroup","parseUrlGroup","parseStringGroup","modeName","raw","groupBegin","groupEnd","beginToken","firstToken","lastToken","parseRegexGroup","regex","endOfGroup","parseSymbol","nucleus","src_parseTree","toParse","katex_render","baseNode","katex_renderToDomTree","compatMode","katex_renderError","katex_0","renderToString","__parse","__renderToDomTree","__renderToHTMLTree","buildTree_buildHTMLTree","__setFontMetrics","__defineSymbol","__defineMacro","__domTree","BaseModule","resizer","onCreate","onDestroy","onUpdate","overlay","requestUpdate","isLength","baseAssignValue","Stack","assignMergeValue","baseFor","baseMergeDeep","keysIn","safeGet","baseMerge","srcIndex","srcValue","identity","overRest","setToString","getPrototype","overArg","reIsUint","objectProto","baseIsArguments","isObjectLike","arrayLikeKeys","baseKeysIn","isArrayLike","overlayStyles","border","imageMaxStyles","imageMinStyles","handleStyles","opacity","displayStyles","textAlign","toolbarStyles","toolbarButtonStyles","background","toolbarButtonSvgStyles","strokeWidth","DisplaySize","_BaseModule","_temp","getCurrentSize","float","dispRect","_dispRect","naturalWidth","naturalHeight","Resize","boxes","imageMaxWidth","imageMinWidth","addBox","positionBoxes","setCursor","handleXOffset","handleYOffset","box","handleMousedown","dragBox","touches","dragStartX","clientX","preDragWidth","handleDrag","handleMouseup","deltaX","_width","el","__WEBPACK_IMPORTED_MODULE_0_parchment__","__WEBPACK_IMPORTED_MODULE_0_parchment___default","__WEBPACK_IMPORTED_MODULE_1_quill_assets_icons_align_left_svg__","__WEBPACK_IMPORTED_MODULE_1_quill_assets_icons_align_left_svg___default","__WEBPACK_IMPORTED_MODULE_2_quill_assets_icons_align_center_svg__","__WEBPACK_IMPORTED_MODULE_2_quill_assets_icons_align_center_svg___default","__WEBPACK_IMPORTED_MODULE_3_quill_assets_icons_align_right_svg__","__WEBPACK_IMPORTED_MODULE_3_quill_assets_icons_align_right_svg___default","__WEBPACK_IMPORTED_MODULE_4__BaseModule__","FloatStyle","MarginStyle","DisplayStyle","_defineAlignments","_addToolbarButtons","alignments","icon","isApplied","_selectButton","borderLeftWidth","baseRest","customDefaultsMerge","mergeWith","defaultsDeep","__WEBPACK_IMPORTED_MODULE_0_lodash_defaultsDeep__","__WEBPACK_IMPORTED_MODULE_0_lodash_defaultsDeep___default","__WEBPACK_IMPORTED_MODULE_1__DefaultOptions__","__WEBPACK_IMPORTED_MODULE_2__modules_DisplaySize__","__WEBPACK_IMPORTED_MODULE_3__modules_Toolbar__","__WEBPACK_IMPORTED_MODULE_4__modules_Resize__","knownModules","ImageResize","initializeModules","removeModules","moduleClasses","ModuleClass","repositionElements","handleClick","showOverlay","hideOverlay","setUserSelect","checkImage","imgRect","containerRect","scrollLeft","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","stackClear","stackDelete","stackGet","stackHas","stackSet","baseTimes","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","objValue","objectCreate","baseCreate","createBaseFor","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","typedArrayTags","isPrototype","nativeKeysIn","isProto","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArrayLikeObject","toPlainObject","mergeFunc","stacked","isCommon","isTyped","constant","baseSetToString","iteratee","arrayBuffer","isDeep","cloneArrayBuffer","typedArray","assignValue","isNew","coreJsData","isIterateeCall","assigner","guard","fromRight","keysFunc","nativeObjectToString","isOwn","unmasked","maskSrcKey","uid","IE_PROTO","assocIndexOf","getMapData","freeProcess","nativeMax","otherArgs","shortOut","nativeNow","lastCalled","stamp","pairs","LARGE_ARRAY_SIZE","objectCtorString","createAssigner","copyObject","parent_1","length_1","eval","q","w","z","A","B","C","encodeURIComponent","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","refs","updater","G","H","isReactComponent","forceUpdate","I","isPureReactComponent","J","K","__self","__source","M","$$typeof","_owner","O","P","Q","keyPrefix","S","V","U","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Fragment","Profiler","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","createRef","forwardRef","isValidElement","lazy","_ctor","_status","_result","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","onError","da","ea","fa","ha","ia","ja","la","ma","na","oa","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","ua","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","setAttributeNS","Ya","Za","$a","ab","cb","eb","fb","gb","hb","ib","jb","lb","mb","nb","pb","qb","_debugOwner","_debugSource","fileName","lineNumber","sb","nodeName","xb","_valueTracker","stopTracking","tb","yb","checked","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","Gb","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","Rb","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","transition","Xb","Yb","Zb","$b","ac","bc","cc","dc","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","kd","ld","md","nd","menuitem","area","br","hr","keygen","meta","param","track","wbr","od","is","qd","rd","sd","td","ud","vd","xd","HTMLIFrameElement","contentWindow","location","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","Ld","random","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","returnValue","eventPool","fe","destructor","de","getPooled","persist","he","ie","je","ke","documentMode","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","se","ve","locale","te","ue","we","date","datetime","email","month","password","tel","time","week","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","clientY","pageX","pageY","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","parentWindow","$e","af","bf","cf","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","sf","dataTransfer","tf","targetTouches","changedTouches","uf","vf","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","shared","effects","vg","wg","suspenseConfig","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","Lg","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","xh","yh","zh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","pendingContext","ni","pi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","li","isBackwards","rendering","renderingStartTime","tailExpiration","tailMode","mi","ri","si","wasMultiple","onClick","onclick","ti","ui","wi","xi","yi","zi","Ai","Bi","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","timeout","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","vb","Uj","Vj","Wj","hidden","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hk","jk","kk","unmount","form","Lj","lk","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","port2","port1","onmessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","awrap","async","skipTempReset","stop","rootRecord","rval","exception","handle","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","baseIsEqual","baseIsEqualDeep","equalArrays","equalByTag","equalObjects","getTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","setCacheAdd","setCacheHas","mapToArray","setToArray","symbolProto","symbolValueOf","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseGetAllKeys","getSymbols","arrayPush","symbolsFunc","arrayFilter","stubArray","nativeGetSymbols","resIndex","baseKeys","nativeKeys","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","that","encodingOrOffset","fromArrayLike","fromArrayBuffer","isEncoding","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","indexSize","valLength","readUInt16BE","foundIndex","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","b64","lens","getLens","validLen","placeHoldersLen","Arr","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","isLE","mLen","eLen","eMax","eBias","nBits","rt","LN2"],"mappings":"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G,EAAG,QAC3B,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,KAAQ,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,MAAS,CAAC,EAAG,OAAS,EAAG,EAAG,QAC5B,MAAS,CAAC,EAAG,OAAS,EAAG,EAAG,QAC5B,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,EAAG,OAAS,OAAS,EAAG,QAClC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,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,EAAE,OAAS,OAAS,EAAG,EAAG,MAChC,GAAM,EAAE,OAAS,OAAS,EAAG,EAAG,MAChC,GAAM,EAAE,OAAS,OAAS,EAAG,EAAG,MAChC,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,OAAS,EAAG,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAC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,CACH,KAAQ,MACR,KAAQ,cAEV,SAAK,CACH,KAAQ,QAGRC,GAAiB,CACnB,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,UA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","file":"static/js/2.c8ea490a.chunk.js","sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap}\n * @private\n */\nconst privateData = new WeakMap()\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap}\n * @private\n */\nconst wrappers = new WeakMap()\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event)\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n )\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n )\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault()\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n })\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true })\n\n // Define accessors\n const keys = Object.keys(event)\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i]\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key))\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this)\n\n data.stopped = true\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation()\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this)\n\n data.stopped = true\n data.immediateStopped = true\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation()\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this))\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this)\n\n data.stopped = true\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this))\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n}\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n})\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype)\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event)\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto)\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event)\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n })\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i]\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key)\n const isFunc = typeof descriptor.value === \"function\"\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n )\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto)\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto)\n wrappers.set(proto, wrapper)\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nexport function wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event))\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nexport function isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nexport function setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nexport function setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nexport function setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener\n}\n","import {\n isStopped,\n setCurrentTarget,\n setEventPhase,\n setPassiveListener,\n wrapEvent,\n} from \"./event.mjs\"\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap>}\n * @private\n */\nconst listenersMap = new WeakMap()\n\n// Listener types\nconst CAPTURE = 1\nconst BUBBLE = 2\nconst ATTRIBUTE = 3\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget)\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this)\n let node = listeners.get(eventName)\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this)\n\n // Traverse to the tail while removing old value.\n let prev = null\n let node = listeners.get(eventName)\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n } else {\n prev = node\n }\n\n node = node.next\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n }\n if (prev === null) {\n listeners.set(eventName, newNode)\n } else {\n prev.next = newNode\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n )\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this)\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n })\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i])\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map())\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length)\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i]\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this)\n const optionsIsObj = isObject(options)\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options)\n const listenerType = capture ? CAPTURE : BUBBLE\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n }\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName)\n if (node === undefined) {\n listeners.set(eventName, newNode)\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node\n node = node.next\n }\n\n // Add it.\n prev.next = newNode\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this)\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options)\n const listenerType = capture ? CAPTURE : BUBBLE\n\n let prev = null\n let node = listeners.get(eventName)\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n return\n }\n\n prev = node\n node = node.next\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this)\n const eventName = event.type\n let node = listeners.get(eventName)\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event)\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n } else {\n prev = node\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n )\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent)\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err)\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent)\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next\n }\n setPassiveListener(wrappedEvent, null)\n setEventPhase(wrappedEvent, 0)\n setCurrentTarget(wrappedEvent, null)\n\n return !wrappedEvent.defaultPrevented\n },\n}\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n})\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype)\n}\n\nexport { defineEventAttribute, EventTarget }\nexport default EventTarget\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _AwaitValue(value) {\n this.wrapped = value;\n}","import AwaitValue from \"./AwaitValue\";\nexport default function _awaitAsyncGenerator(value) {\n return new AwaitValue(value);\n}","import AwaitValue from \"./AwaitValue\";\nexport default function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n var wrappedAwait = value instanceof AwaitValue;\n Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {\n if (wrappedAwait) {\n resume(key === \"return\" ? \"return\" : \"next\", arg);\n return;\n }\n\n settle(result.done ? \"return\" : \"normal\", arg);\n }, function (err) {\n resume(\"throw\", err);\n });\n } catch (err) {\n settle(\"throw\", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case \"return\":\n front.resolve({\n value: value,\n done: true\n });\n break;\n\n case \"throw\":\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen[\"return\"] !== \"function\") {\n this[\"return\"] = undefined;\n }\n}\n\nif (typeof Symbol === \"function\" && Symbol.asyncIterator) {\n AsyncGenerator.prototype[Symbol.asyncIterator] = function () {\n return this;\n };\n}\n\nAsyncGenerator.prototype.next = function (arg) {\n return this._invoke(\"next\", arg);\n};\n\nAsyncGenerator.prototype[\"throw\"] = function (arg) {\n return this._invoke(\"throw\", arg);\n};\n\nAsyncGenerator.prototype[\"return\"] = function (arg) {\n return this._invoke(\"return\", arg);\n};","import AsyncGenerator from \"./AsyncGenerator\";\nexport default function _wrapAsyncGenerator(fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n}","export default function _asyncIterator(iterable) {\n var method;\n\n if (typeof Symbol !== \"undefined\") {\n if (Symbol.asyncIterator) {\n method = iterable[Symbol.asyncIterator];\n if (method != null) return method.call(iterable);\n }\n\n if (Symbol.iterator) {\n method = iterable[Symbol.iterator];\n if (method != null) return method.call(iterable);\n }\n }\n\n throw new TypeError(\"Object is not async iterable\");\n}","export default function _asyncGeneratorDelegate(inner, awaitWrap) {\n var iter = {},\n waiting = false;\n\n function pump(key, value) {\n waiting = true;\n value = new Promise(function (resolve) {\n resolve(inner[key](value));\n });\n return {\n done: false,\n value: awaitWrap(value)\n };\n }\n\n ;\n\n if (typeof Symbol === \"function\" && Symbol.iterator) {\n iter[Symbol.iterator] = function () {\n return this;\n };\n }\n\n iter.next = function (value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n\n return pump(\"next\", value);\n };\n\n if (typeof inner[\"throw\"] === \"function\") {\n iter[\"throw\"] = function (value) {\n if (waiting) {\n waiting = false;\n throw value;\n }\n\n return pump(\"throw\", value);\n };\n }\n\n if (typeof inner[\"return\"] === \"function\") {\n iter[\"return\"] = function (value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n\n return pump(\"return\", value);\n };\n }\n\n return iter;\n}","/// @file\n/// @addtogroup flatbuffers_javascript_api\n/// @{\n/// @cond FLATBUFFERS_INTERNAL\n\n/**\n * @fileoverview\n *\n * Need to suppress 'global this' error so the Node.js export line doesn't cause\n * closure compile to error out.\n * @suppress {globalThis}\n */\n\n/**\n * @const\n * @namespace\n */\nvar flatbuffers = {};\n\n/**\n * @typedef {number}\n */\nflatbuffers.Offset;\n\n/**\n * @typedef {{\n * bb: flatbuffers.ByteBuffer,\n * bb_pos: number\n * }}\n */\nflatbuffers.Table;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.SIZEOF_SHORT = 2;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.SIZEOF_INT = 4;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.FILE_IDENTIFIER_LENGTH = 4;\n\n/**\n * @enum {number}\n */\nflatbuffers.Encoding = {\n UTF8_BYTES: 1,\n UTF16_STRING: 2\n};\n\n/**\n * @type {Int32Array}\n * @const\n */\nflatbuffers.int32 = new Int32Array(2);\n\n/**\n * @type {Float32Array}\n * @const\n */\nflatbuffers.float32 = new Float32Array(flatbuffers.int32.buffer);\n\n/**\n * @type {Float64Array}\n * @const\n */\nflatbuffers.float64 = new Float64Array(flatbuffers.int32.buffer);\n\n/**\n * @type {boolean}\n * @const\n */\nflatbuffers.isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1;\n\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @constructor\n * @param {number} low\n * @param {number} high\n */\nflatbuffers.Long = function(low, high) {\n /**\n * @type {number}\n * @const\n */\n this.low = low | 0;\n\n /**\n * @type {number}\n * @const\n */\n this.high = high | 0;\n};\n\n/**\n * @param {number} low\n * @param {number} high\n * @returns {flatbuffers.Long}\n */\nflatbuffers.Long.create = function(low, high) {\n // Special-case zero to avoid GC overhead for default values\n return low == 0 && high == 0 ? flatbuffers.Long.ZERO : new flatbuffers.Long(low, high);\n};\n\n/**\n * @returns {number}\n */\nflatbuffers.Long.prototype.toFloat64 = function() {\n return (this.low >>> 0) + this.high * 0x100000000;\n};\n\n/**\n * @param {flatbuffers.Long} other\n * @returns {boolean}\n */\nflatbuffers.Long.prototype.equals = function(other) {\n return this.low == other.low && this.high == other.high;\n};\n\n/**\n * @type {flatbuffers.Long}\n * @const\n */\nflatbuffers.Long.ZERO = new flatbuffers.Long(0, 0);\n\n/// @endcond\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a FlatBufferBuilder.\n *\n * @constructor\n * @param {number=} opt_initial_size\n */\nflatbuffers.Builder = function(opt_initial_size) {\n if (!opt_initial_size) {\n var initial_size = 1024;\n } else {\n var initial_size = opt_initial_size;\n }\n\n /**\n * @type {flatbuffers.ByteBuffer}\n * @private\n */\n this.bb = flatbuffers.ByteBuffer.allocate(initial_size);\n\n /**\n * Remaining space in the ByteBuffer.\n *\n * @type {number}\n * @private\n */\n this.space = initial_size;\n\n /**\n * Minimum alignment encountered so far.\n *\n * @type {number}\n * @private\n */\n this.minalign = 1;\n\n /**\n * The vtable for the current table.\n *\n * @type {Array.}\n * @private\n */\n this.vtable = null;\n\n /**\n * The amount of fields we're actually using.\n *\n * @type {number}\n * @private\n */\n this.vtable_in_use = 0;\n\n /**\n * Whether we are currently serializing a table.\n *\n * @type {boolean}\n * @private\n */\n this.isNested = false;\n\n /**\n * Starting offset of the current struct/table.\n *\n * @type {number}\n * @private\n */\n this.object_start = 0;\n\n /**\n * List of offsets of all vtables.\n *\n * @type {Array.}\n * @private\n */\n this.vtables = [];\n\n /**\n * For the current vector being built.\n *\n * @type {number}\n * @private\n */\n this.vector_num_elems = 0;\n\n /**\n * False omits default values from the serialized data\n *\n * @type {boolean}\n * @private\n */\n this.force_defaults = false;\n};\n\nflatbuffers.Builder.prototype.clear = function() {\n this.bb.clear();\n this.space = this.bb.capacity();\n this.minalign = 1;\n this.vtable = null;\n this.vtable_in_use = 0;\n this.isNested = false;\n this.object_start = 0;\n this.vtables = [];\n this.vector_num_elems = 0;\n this.force_defaults = false;\n};\n\n/**\n * In order to save space, fields that are set to their default value\n * don't get serialized into the buffer. Forcing defaults provides a\n * way to manually disable this optimization.\n *\n * @param {boolean} forceDefaults true always serializes default values\n */\nflatbuffers.Builder.prototype.forceDefaults = function(forceDefaults) {\n this.force_defaults = forceDefaults;\n};\n\n/**\n * Get the ByteBuffer representing the FlatBuffer. Only call this after you've\n * called finish(). The actual data starts at the ByteBuffer's current position,\n * not necessarily at 0.\n *\n * @returns {flatbuffers.ByteBuffer}\n */\nflatbuffers.Builder.prototype.dataBuffer = function() {\n return this.bb;\n};\n\n/**\n * Get the bytes representing the FlatBuffer. Only call this after you've\n * called finish().\n *\n * @returns {Uint8Array}\n */\nflatbuffers.Builder.prototype.asUint8Array = function() {\n return this.bb.bytes().subarray(this.bb.position(), this.bb.position() + this.offset());\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Prepare to write an element of `size` after `additional_bytes` have been\n * written, e.g. if you write a string, you need to align such the int length\n * field is aligned to 4 bytes, and the string data follows it directly. If all\n * you need to do is alignment, `additional_bytes` will be 0.\n *\n * @param {number} size This is the of the new element to write\n * @param {number} additional_bytes The padding size\n */\nflatbuffers.Builder.prototype.prep = function(size, additional_bytes) {\n // Track the biggest thing we've ever aligned to.\n if (size > this.minalign) {\n this.minalign = size;\n }\n\n // Find the amount of alignment needed such that `size` is properly\n // aligned after `additional_bytes`\n var align_size = ((~(this.bb.capacity() - this.space + additional_bytes)) + 1) & (size - 1);\n\n // Reallocate the buffer if needed.\n while (this.space < align_size + size + additional_bytes) {\n var old_buf_size = this.bb.capacity();\n this.bb = flatbuffers.Builder.growByteBuffer(this.bb);\n this.space += this.bb.capacity() - old_buf_size;\n }\n\n this.pad(align_size);\n};\n\n/**\n * @param {number} byte_size\n */\nflatbuffers.Builder.prototype.pad = function(byte_size) {\n for (var i = 0; i < byte_size; i++) {\n this.bb.writeInt8(--this.space, 0);\n }\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt8 = function(value) {\n this.bb.writeInt8(this.space -= 1, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt16 = function(value) {\n this.bb.writeInt16(this.space -= 2, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt32 = function(value) {\n this.bb.writeInt32(this.space -= 4, value);\n};\n\n/**\n * @param {flatbuffers.Long} value\n */\nflatbuffers.Builder.prototype.writeInt64 = function(value) {\n this.bb.writeInt64(this.space -= 8, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeFloat32 = function(value) {\n this.bb.writeFloat32(this.space -= 4, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeFloat64 = function(value) {\n this.bb.writeFloat64(this.space -= 8, value);\n};\n/// @endcond\n\n/**\n * Add an `int8` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int8` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt8 = function(value) {\n this.prep(1, 0);\n this.writeInt8(value);\n};\n\n/**\n * Add an `int16` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int16` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt16 = function(value) {\n this.prep(2, 0);\n this.writeInt16(value);\n};\n\n/**\n * Add an `int32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int32` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt32 = function(value) {\n this.prep(4, 0);\n this.writeInt32(value);\n};\n\n/**\n * Add an `int64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {flatbuffers.Long} value The `int64` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt64 = function(value) {\n this.prep(8, 0);\n this.writeInt64(value);\n};\n\n/**\n * Add a `float32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `float32` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addFloat32 = function(value) {\n this.prep(4, 0);\n this.writeFloat32(value);\n};\n\n/**\n * Add a `float64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `float64` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addFloat64 = function(value) {\n this.prep(8, 0);\n this.writeFloat64(value);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt8 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt8(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt16 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt16(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt32 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt32(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {flatbuffers.Long} value\n * @param {flatbuffers.Long} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt64 = function(voffset, value, defaultValue) {\n if (this.force_defaults || !value.equals(defaultValue)) {\n this.addInt64(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldFloat32 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addFloat32(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldFloat64 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addFloat64(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {flatbuffers.Offset} value\n * @param {flatbuffers.Offset} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldOffset = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addOffset(value);\n this.slot(voffset);\n }\n};\n\n/**\n * Structs are stored inline, so nothing additional is being added. `d` is always 0.\n *\n * @param {number} voffset\n * @param {flatbuffers.Offset} value\n * @param {flatbuffers.Offset} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldStruct = function(voffset, value, defaultValue) {\n if (value != defaultValue) {\n this.nested(value);\n this.slot(voffset);\n }\n};\n\n/**\n * Structures are always stored inline, they need to be created right\n * where they're used. You'll get this assertion failure if you\n * created it elsewhere.\n *\n * @param {flatbuffers.Offset} obj The offset of the created object\n */\nflatbuffers.Builder.prototype.nested = function(obj) {\n if (obj != this.offset()) {\n throw new Error('FlatBuffers: struct must be serialized inline.');\n }\n};\n\n/**\n * Should not be creating any other object, string or vector\n * while an object is being constructed\n */\nflatbuffers.Builder.prototype.notNested = function() {\n if (this.isNested) {\n throw new Error('FlatBuffers: object serialization must not be nested.');\n }\n};\n\n/**\n * Set the current vtable at `voffset` to the current location in the buffer.\n *\n * @param {number} voffset\n */\nflatbuffers.Builder.prototype.slot = function(voffset) {\n this.vtable[voffset] = this.offset();\n};\n\n/**\n * @returns {flatbuffers.Offset} Offset relative to the end of the buffer.\n */\nflatbuffers.Builder.prototype.offset = function() {\n return this.bb.capacity() - this.space;\n};\n\n/**\n * Doubles the size of the backing ByteBuffer and copies the old data towards\n * the end of the new buffer (since we build the buffer backwards).\n *\n * @param {flatbuffers.ByteBuffer} bb The current buffer with the existing data\n * @returns {flatbuffers.ByteBuffer} A new byte buffer with the old data copied\n * to it. The data is located at the end of the buffer.\n *\n * uint8Array.set() formally takes {Array|ArrayBufferView}, so to pass\n * it a uint8Array we need to suppress the type check:\n * @suppress {checkTypes}\n */\nflatbuffers.Builder.growByteBuffer = function(bb) {\n var old_buf_size = bb.capacity();\n\n // Ensure we don't grow beyond what fits in an int.\n if (old_buf_size & 0xC0000000) {\n throw new Error('FlatBuffers: cannot grow buffer beyond 2 gigabytes.');\n }\n\n var new_buf_size = old_buf_size << 1;\n var nbb = flatbuffers.ByteBuffer.allocate(new_buf_size);\n nbb.setPosition(new_buf_size - old_buf_size);\n nbb.bytes().set(bb.bytes(), new_buf_size - old_buf_size);\n return nbb;\n};\n/// @endcond\n\n/**\n * Adds on offset, relative to where it will be written.\n *\n * @param {flatbuffers.Offset} offset The offset to add.\n */\nflatbuffers.Builder.prototype.addOffset = function(offset) {\n this.prep(flatbuffers.SIZEOF_INT, 0); // Ensure alignment is already done.\n this.writeInt32(this.offset() - offset + flatbuffers.SIZEOF_INT);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Start encoding a new object in the buffer. Users will not usually need to\n * call this directly. The FlatBuffers compiler will generate helper methods\n * that call this method internally.\n *\n * @param {number} numfields\n */\nflatbuffers.Builder.prototype.startObject = function(numfields) {\n this.notNested();\n if (this.vtable == null) {\n this.vtable = [];\n }\n this.vtable_in_use = numfields;\n for (var i = 0; i < numfields; i++) {\n this.vtable[i] = 0; // This will push additional elements as needed\n }\n this.isNested = true;\n this.object_start = this.offset();\n};\n\n/**\n * Finish off writing the object that is under construction.\n *\n * @returns {flatbuffers.Offset} The offset to the object inside `dataBuffer`\n */\nflatbuffers.Builder.prototype.endObject = function() {\n if (this.vtable == null || !this.isNested) {\n throw new Error('FlatBuffers: endObject called without startObject');\n }\n\n this.addInt32(0);\n var vtableloc = this.offset();\n\n // Trim trailing zeroes.\n var i = this.vtable_in_use - 1;\n for (; i >= 0 && this.vtable[i] == 0; i--) {}\n var trimmed_size = i + 1;\n\n // Write out the current vtable.\n for (; i >= 0; i--) {\n // Offset relative to the start of the table.\n this.addInt16(this.vtable[i] != 0 ? vtableloc - this.vtable[i] : 0);\n }\n\n var standard_fields = 2; // The fields below:\n this.addInt16(vtableloc - this.object_start);\n var len = (trimmed_size + standard_fields) * flatbuffers.SIZEOF_SHORT;\n this.addInt16(len);\n\n // Search for an existing vtable that matches the current one.\n var existing_vtable = 0;\n var vt1 = this.space;\nouter_loop:\n for (i = 0; i < this.vtables.length; i++) {\n var vt2 = this.bb.capacity() - this.vtables[i];\n if (len == this.bb.readInt16(vt2)) {\n for (var j = flatbuffers.SIZEOF_SHORT; j < len; j += flatbuffers.SIZEOF_SHORT) {\n if (this.bb.readInt16(vt1 + j) != this.bb.readInt16(vt2 + j)) {\n continue outer_loop;\n }\n }\n existing_vtable = this.vtables[i];\n break;\n }\n }\n\n if (existing_vtable) {\n // Found a match:\n // Remove the current vtable.\n this.space = this.bb.capacity() - vtableloc;\n\n // Point table to existing vtable.\n this.bb.writeInt32(this.space, existing_vtable - vtableloc);\n } else {\n // No match:\n // Add the location of the current vtable to the list of vtables.\n this.vtables.push(this.offset());\n\n // Point table to current vtable.\n this.bb.writeInt32(this.bb.capacity() - vtableloc, this.offset() - vtableloc);\n }\n\n this.isNested = false;\n return vtableloc;\n};\n/// @endcond\n\n/**\n * Finalize a buffer, poiting to the given `root_table`.\n *\n * @param {flatbuffers.Offset} root_table\n * @param {string=} opt_file_identifier\n */\nflatbuffers.Builder.prototype.finish = function(root_table, opt_file_identifier) {\n if (opt_file_identifier) {\n var file_identifier = opt_file_identifier;\n this.prep(this.minalign, flatbuffers.SIZEOF_INT +\n flatbuffers.FILE_IDENTIFIER_LENGTH);\n if (file_identifier.length != flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error('FlatBuffers: file identifier must be length ' +\n flatbuffers.FILE_IDENTIFIER_LENGTH);\n }\n for (var i = flatbuffers.FILE_IDENTIFIER_LENGTH - 1; i >= 0; i--) {\n this.writeInt8(file_identifier.charCodeAt(i));\n }\n }\n this.prep(this.minalign, flatbuffers.SIZEOF_INT);\n this.addOffset(root_table);\n this.bb.setPosition(this.space);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * This checks a required field has been set in a given table that has\n * just been constructed.\n *\n * @param {flatbuffers.Offset} table\n * @param {number} field\n */\nflatbuffers.Builder.prototype.requiredField = function(table, field) {\n var table_start = this.bb.capacity() - table;\n var vtable_start = table_start - this.bb.readInt32(table_start);\n var ok = this.bb.readInt16(vtable_start + field) != 0;\n\n // If this fails, the caller will show what field needs to be set.\n if (!ok) {\n throw new Error('FlatBuffers: field ' + field + ' must be set');\n }\n};\n\n/**\n * Start a new array/vector of objects. Users usually will not call\n * this directly. The FlatBuffers compiler will create a start/end\n * method for vector types in generated code.\n *\n * @param {number} elem_size The size of each element in the array\n * @param {number} num_elems The number of elements in the array\n * @param {number} alignment The alignment of the array\n */\nflatbuffers.Builder.prototype.startVector = function(elem_size, num_elems, alignment) {\n this.notNested();\n this.vector_num_elems = num_elems;\n this.prep(flatbuffers.SIZEOF_INT, elem_size * num_elems);\n this.prep(alignment, elem_size * num_elems); // Just in case alignment > int.\n};\n\n/**\n * Finish off the creation of an array and all its elements. The array must be\n * created with `startVector`.\n *\n * @returns {flatbuffers.Offset} The offset at which the newly created array\n * starts.\n */\nflatbuffers.Builder.prototype.endVector = function() {\n this.writeInt32(this.vector_num_elems);\n return this.offset();\n};\n/// @endcond\n\n/**\n * Encode the string `s` in the buffer using UTF-8. If a Uint8Array is passed\n * instead of a string, it is assumed to contain valid UTF-8 encoded data.\n *\n * @param {string|Uint8Array} s The string to encode\n * @return {flatbuffers.Offset} The offset in the buffer where the encoded string starts\n */\nflatbuffers.Builder.prototype.createString = function(s) {\n if (s instanceof Uint8Array) {\n var utf8 = s;\n } else {\n var utf8 = [];\n var i = 0;\n\n while (i < s.length) {\n var codePoint;\n\n // Decode UTF-16\n var a = s.charCodeAt(i++);\n if (a < 0xD800 || a >= 0xDC00) {\n codePoint = a;\n } else {\n var b = s.charCodeAt(i++);\n codePoint = (a << 10) + b + (0x10000 - (0xD800 << 10) - 0xDC00);\n }\n\n // Encode UTF-8\n if (codePoint < 0x80) {\n utf8.push(codePoint);\n } else {\n if (codePoint < 0x800) {\n utf8.push(((codePoint >> 6) & 0x1F) | 0xC0);\n } else {\n if (codePoint < 0x10000) {\n utf8.push(((codePoint >> 12) & 0x0F) | 0xE0);\n } else {\n utf8.push(\n ((codePoint >> 18) & 0x07) | 0xF0,\n ((codePoint >> 12) & 0x3F) | 0x80);\n }\n utf8.push(((codePoint >> 6) & 0x3F) | 0x80);\n }\n utf8.push((codePoint & 0x3F) | 0x80);\n }\n }\n }\n\n this.addInt8(0);\n this.startVector(1, utf8.length, 1);\n this.bb.setPosition(this.space -= utf8.length);\n for (var i = 0, offset = this.space, bytes = this.bb.bytes(); i < utf8.length; i++) {\n bytes[offset++] = utf8[i];\n }\n return this.endVector();\n};\n\n/**\n * A helper function to avoid generated code depending on this file directly.\n *\n * @param {number} low\n * @param {number} high\n * @returns {flatbuffers.Long}\n */\nflatbuffers.Builder.prototype.createLong = function(low, high) {\n return flatbuffers.Long.create(low, high);\n};\n////////////////////////////////////////////////////////////////////////////////\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Create a new ByteBuffer with a given array of bytes (`Uint8Array`).\n *\n * @constructor\n * @param {Uint8Array} bytes\n */\nflatbuffers.ByteBuffer = function(bytes) {\n /**\n * @type {Uint8Array}\n * @private\n */\n this.bytes_ = bytes;\n\n /**\n * @type {number}\n * @private\n */\n this.position_ = 0;\n};\n\n/**\n * Create and allocate a new ByteBuffer with a given size.\n *\n * @param {number} byte_size\n * @returns {flatbuffers.ByteBuffer}\n */\nflatbuffers.ByteBuffer.allocate = function(byte_size) {\n return new flatbuffers.ByteBuffer(new Uint8Array(byte_size));\n};\n\nflatbuffers.ByteBuffer.prototype.clear = function() {\n this.position_ = 0;\n};\n\n/**\n * Get the underlying `Uint8Array`.\n *\n * @returns {Uint8Array}\n */\nflatbuffers.ByteBuffer.prototype.bytes = function() {\n return this.bytes_;\n};\n\n/**\n * Get the buffer's position.\n *\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.position = function() {\n return this.position_;\n};\n\n/**\n * Set the buffer's position.\n *\n * @param {number} position\n */\nflatbuffers.ByteBuffer.prototype.setPosition = function(position) {\n this.position_ = position;\n};\n\n/**\n * Get the buffer's capacity.\n *\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.capacity = function() {\n return this.bytes_.length;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt8 = function(offset) {\n return this.readUint8(offset) << 24 >> 24;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint8 = function(offset) {\n return this.bytes_[offset];\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt16 = function(offset) {\n return this.readUint16(offset) << 16 >> 16;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint16 = function(offset) {\n return this.bytes_[offset] | this.bytes_[offset + 1] << 8;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt32 = function(offset) {\n return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint32 = function(offset) {\n return this.readInt32(offset) >>> 0;\n};\n\n/**\n * @param {number} offset\n * @returns {flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.readInt64 = function(offset) {\n return new flatbuffers.Long(this.readInt32(offset), this.readInt32(offset + 4));\n};\n\n/**\n * @param {number} offset\n * @returns {flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.readUint64 = function(offset) {\n return new flatbuffers.Long(this.readUint32(offset), this.readUint32(offset + 4));\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readFloat32 = function(offset) {\n flatbuffers.int32[0] = this.readInt32(offset);\n return flatbuffers.float32[0];\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readFloat64 = function(offset) {\n flatbuffers.int32[flatbuffers.isLittleEndian ? 0 : 1] = this.readInt32(offset);\n flatbuffers.int32[flatbuffers.isLittleEndian ? 1 : 0] = this.readInt32(offset + 4);\n return flatbuffers.float64[0];\n};\n\n/**\n * @param {number} offset\n * @param {number|boolean} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt8 = function(offset, value) {\n this.bytes_[offset] = /** @type {number} */(value);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint8 = function(offset, value) {\n this.bytes_[offset] = value;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt16 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint16 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt32 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n this.bytes_[offset + 2] = value >> 16;\n this.bytes_[offset + 3] = value >> 24;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint32 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n this.bytes_[offset + 2] = value >> 16;\n this.bytes_[offset + 3] = value >> 24;\n};\n\n/**\n * @param {number} offset\n * @param {flatbuffers.Long} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt64 = function(offset, value) {\n this.writeInt32(offset, value.low);\n this.writeInt32(offset + 4, value.high);\n};\n\n/**\n * @param {number} offset\n * @param {flatbuffers.Long} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint64 = function(offset, value) {\n this.writeUint32(offset, value.low);\n this.writeUint32(offset + 4, value.high);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeFloat32 = function(offset, value) {\n flatbuffers.float32[0] = value;\n this.writeInt32(offset, flatbuffers.int32[0]);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeFloat64 = function(offset, value) {\n flatbuffers.float64[0] = value;\n this.writeInt32(offset, flatbuffers.int32[flatbuffers.isLittleEndian ? 0 : 1]);\n this.writeInt32(offset + 4, flatbuffers.int32[flatbuffers.isLittleEndian ? 1 : 0]);\n};\n\n/**\n * Return the file identifier. Behavior is undefined for FlatBuffers whose\n * schema does not include a file_identifier (likely points at padding or the\n * start of a the root vtable).\n * @returns {string}\n */\nflatbuffers.ByteBuffer.prototype.getBufferIdentifier = function() {\n if (this.bytes_.length < this.position_ + flatbuffers.SIZEOF_INT +\n flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error(\n 'FlatBuffers: ByteBuffer is too short to contain an identifier.');\n }\n var result = \"\";\n for (var i = 0; i < flatbuffers.FILE_IDENTIFIER_LENGTH; i++) {\n result += String.fromCharCode(\n this.readInt8(this.position_ + flatbuffers.SIZEOF_INT + i));\n }\n return result;\n};\n\n/**\n * Look up a field in the vtable, return an offset into the object, or 0 if the\n * field is not present.\n *\n * @param {number} bb_pos\n * @param {number} vtable_offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__offset = function(bb_pos, vtable_offset) {\n var vtable = bb_pos - this.readInt32(bb_pos);\n return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0;\n};\n\n/**\n * Initialize any Table-derived type to point to the union at the given offset.\n *\n * @param {flatbuffers.Table} t\n * @param {number} offset\n * @returns {flatbuffers.Table}\n */\nflatbuffers.ByteBuffer.prototype.__union = function(t, offset) {\n t.bb_pos = offset + this.readInt32(offset);\n t.bb = this;\n return t;\n};\n\n/**\n * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer.\n * This allocates a new string and converts to wide chars upon each access.\n *\n * To avoid the conversion to UTF-16, pass flatbuffers.Encoding.UTF8_BYTES as\n * the \"optionalEncoding\" argument. This is useful for avoiding conversion to\n * and from UTF-16 when the data will just be packaged back up in another\n * FlatBuffer later on.\n *\n * @param {number} offset\n * @param {flatbuffers.Encoding=} opt_encoding Defaults to UTF16_STRING\n * @returns {string|Uint8Array}\n */\nflatbuffers.ByteBuffer.prototype.__string = function(offset, opt_encoding) {\n offset += this.readInt32(offset);\n\n var length = this.readInt32(offset);\n var result = '';\n var i = 0;\n\n offset += flatbuffers.SIZEOF_INT;\n\n if (opt_encoding === flatbuffers.Encoding.UTF8_BYTES) {\n return this.bytes_.subarray(offset, offset + length);\n }\n\n while (i < length) {\n var codePoint;\n\n // Decode UTF-8\n var a = this.readUint8(offset + i++);\n if (a < 0xC0) {\n codePoint = a;\n } else {\n var b = this.readUint8(offset + i++);\n if (a < 0xE0) {\n codePoint =\n ((a & 0x1F) << 6) |\n (b & 0x3F);\n } else {\n var c = this.readUint8(offset + i++);\n if (a < 0xF0) {\n codePoint =\n ((a & 0x0F) << 12) |\n ((b & 0x3F) << 6) |\n (c & 0x3F);\n } else {\n var d = this.readUint8(offset + i++);\n codePoint =\n ((a & 0x07) << 18) |\n ((b & 0x3F) << 12) |\n ((c & 0x3F) << 6) |\n (d & 0x3F);\n }\n }\n }\n\n // Encode UTF-16\n if (codePoint < 0x10000) {\n result += String.fromCharCode(codePoint);\n } else {\n codePoint -= 0x10000;\n result += String.fromCharCode(\n (codePoint >> 10) + 0xD800,\n (codePoint & ((1 << 10) - 1)) + 0xDC00);\n }\n }\n\n return result;\n};\n\n/**\n * Retrieve the relative offset stored at \"offset\"\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__indirect = function(offset) {\n return offset + this.readInt32(offset);\n};\n\n/**\n * Get the start of data of a vector whose offset is stored at \"offset\" in this object.\n *\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__vector = function(offset) {\n return offset + this.readInt32(offset) + flatbuffers.SIZEOF_INT; // data starts after the length\n};\n\n/**\n * Get the length of a vector whose offset is stored at \"offset\" in this object.\n *\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__vector_len = function(offset) {\n return this.readInt32(offset + this.readInt32(offset));\n};\n\n/**\n * @param {string} ident\n * @returns {boolean}\n */\nflatbuffers.ByteBuffer.prototype.__has_identifier = function(ident) {\n if (ident.length != flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error('FlatBuffers: file identifier must be length ' +\n flatbuffers.FILE_IDENTIFIER_LENGTH);\n }\n for (var i = 0; i < flatbuffers.FILE_IDENTIFIER_LENGTH; i++) {\n if (ident.charCodeAt(i) != this.readInt8(this.position_ + flatbuffers.SIZEOF_INT + i)) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * A helper function to avoid generated code depending on this file directly.\n *\n * @param {number} low\n * @param {number} high\n * @returns {flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.createLong = function(low, high) {\n return flatbuffers.Long.create(low, high);\n};\n\n// Exports for Node.js and RequireJS\nexport { flatbuffers };\n\n/// @endcond\n/// @}\n","'use strict';\n\n// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\n//\n// Utilities\n//\n\n/**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\nfunction inRange(a, min, max) {\n return min <= a && a <= max;\n}\n\n/**\n * @param {*} o\n * @return {Object}\n */\nfunction ToDictionary(o) {\n if (o === undefined) return {};\n if (o === Object(o)) return o;\n throw TypeError('Could not convert argument to dictionary');\n}\n\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.} Code points.\n */\nfunction stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n // 1. Let S be the DOMString value.\n var s = String(string);\n\n // 2. Let n be the length of S.\n var n = s.length;\n\n // 3. Initialize i to 0.\n var i = 0;\n\n // 4. Initialize U to be an empty sequence of Unicode characters.\n var u = [];\n\n // 5. While i < n:\n while (i < n) {\n\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i);\n\n // 2. Depending on the value of c:\n\n // c < 0xD800 or c > 0xDFFF\n if (c < 0xD800 || c > 0xDFFF) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n }\n\n // 0xDC00 ≤ c ≤ 0xDFFF\n else if (0xDC00 <= c && c <= 0xDFFF) {\n // Append to U a U+FFFD REPLACEMENT CHARACTER.\n u.push(0xFFFD);\n }\n\n // 0xD800 ≤ c ≤ 0xDBFF\n else if (0xD800 <= c && c <= 0xDBFF) {\n // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n // CHARACTER.\n if (i === n - 1) {\n u.push(0xFFFD);\n }\n // 2. Otherwise, i < n−1:\n else {\n // 1. Let d be the code unit in S at index i+1.\n var d = string.charCodeAt(i + 1);\n\n // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n if (0xDC00 <= d && d <= 0xDFFF) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3FF;\n\n // 2. Let b be d & 0x3FF.\n var b = d & 0x3FF;\n\n // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n u.push(0x10000 + (a << 10) + b);\n\n // 4. Set i to i+1.\n i += 1;\n }\n\n // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xFFFD);\n }\n }\n }\n\n // 3. Set i to i+1.\n i += 1;\n }\n\n // 6. Return U.\n return u;\n}\n\n/**\n * @param {!Array.} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nfunction codePointsToString(code_points) {\n var s = '';\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n if (cp <= 0xFFFF) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xD800,\n (cp & 0x3FF) + 0xDC00);\n }\n }\n return s;\n}\n\n\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n\n//\n// 3. Terminology\n//\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\nfunction Stream(tokens) {\n /** @type {!Array.} */\n this.tokens = [].slice.call(tokens);\n}\n\nStream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function() {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function() {\n if (!this.tokens.length)\n return end_of_stream;\n return this.tokens.shift();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.)} token The token(s) to prepend to the stream.\n */\n prepend: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.unshift(tokens.pop());\n } else {\n this.tokens.unshift(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.)} token The tokens(s) to prepend to the stream.\n */\n push: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.push(tokens.shift());\n } else {\n this.tokens.push(token);\n }\n }\n};\n\n//\n// 4. Encodings\n//\n\n// 4.1 Encoders and decoders\n\n/** @const */\nvar finished = -1;\n\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nfunction decoderError(fatal, opt_code_point) {\n if (fatal)\n throw TypeError('Decoder error');\n return opt_code_point || 0xFFFD;\n}\n\n/** @interface */\nfunction Decoder() {}\nDecoder.prototype = {\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point, or |finished|.\n */\n handler: function(stream, bite) {}\n};\n\n/** @interface */\nfunction Encoder() {}\nEncoder.prototype = {\n /**\n * @param {Stream} stream The stream of code points being encoded.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit, or |finished|.\n */\n handler: function(stream, code_point) {}\n};\n\n//\n// 7. API\n//\n\n/** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n// 7.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextDecoder(encoding, options) {\n if (!(this instanceof TextDecoder)) {\n return new TextDecoder(encoding, options);\n }\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {boolean} */\n this._BOMseen = false;\n /** @private @type {?Decoder} */\n this._decoder = null;\n /** @private @type {boolean} */\n this._fatal = Boolean(options['fatal']);\n /** @private @type {boolean} */\n this._ignoreBOM = Boolean(options['ignoreBOM']);\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n Object.defineProperty(this, 'fatal', {value: this._fatal});\n Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM});\n}\n\nTextDecoder.prototype = {\n /**\n * @param {ArrayBufferView=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\n decode: function decode(input, options) {\n var bytes;\n if (typeof input === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (typeof input === 'object' && 'buffer' in input &&\n input.buffer instanceof ArrayBuffer) {\n bytes = new Uint8Array(input.buffer,\n input.byteOffset,\n input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n if (!this._streaming) {\n this._decoder = new UTF8Decoder({fatal: this._fatal});\n this._BOMseen = false;\n }\n this._streaming = Boolean(options['stream']);\n\n var input_stream = new Stream(bytes);\n\n var code_points = [];\n\n /** @type {?(number|!Array.)} */\n var result;\n\n while (!input_stream.endOfStream()) {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n }\n if (!this._streaming) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n } while (!input_stream.endOfStream());\n this._decoder = null;\n }\n\n if (code_points.length) {\n // If encoding is one of utf-8, utf-16be, and utf-16le, and\n // ignore BOM flag and BOM seen flag are unset, run these\n // subsubsteps:\n if (['utf-8'].indexOf(this.encoding) !== -1 &&\n !this._ignoreBOM && !this._BOMseen) {\n // If token is U+FEFF, set BOM seen flag.\n if (code_points[0] === 0xFEFF) {\n this._BOMseen = true;\n code_points.shift();\n } else {\n // Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to output.\n this._BOMseen = true;\n }\n }\n }\n\n return codePointsToString(code_points);\n }\n};\n\n// 7.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextEncoder(encoding, options) {\n if (!(this instanceof TextEncoder))\n return new TextEncoder(encoding, options);\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {?Encoder} */\n this._encoder = null;\n /** @private @type {{fatal: boolean}} */\n this._options = {fatal: Boolean(options['fatal'])};\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n}\n\nTextEncoder.prototype = {\n /**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n */\n encode: function encode(opt_string, options) {\n opt_string = opt_string ? String(opt_string) : '';\n options = ToDictionary(options);\n\n // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n // so streaming is not necessary.\n if (!this._streaming)\n this._encoder = new UTF8Encoder(this._options);\n this._streaming = Boolean(options['stream']);\n\n var bytes = [];\n var input_stream = new Stream(stringToCodePoints(opt_string));\n /** @type {?(number|!Array.)} */\n var result;\n while (!input_stream.endOfStream()) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n if (!this._streaming) {\n while (true) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n this._encoder = null;\n }\n return new Uint8Array(bytes);\n }\n};\n\n//\n// 8. The encoding\n//\n\n// 8.1 utf-8\n\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Decoder(options) {\n var fatal = options.fatal;\n\n // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n var /** @type {number} */ utf8_code_point = 0,\n /** @type {number} */ utf8_bytes_seen = 0,\n /** @type {number} */ utf8_bytes_needed = 0,\n /** @type {number} */ utf8_lower_boundary = 0x80,\n /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 3. If utf-8 bytes needed is 0, based on byte:\n if (utf8_bytes_needed === 0) {\n\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7F)) {\n // Return a code point whose value is byte.\n return bite;\n }\n\n // 0xC2 to 0xDF\n if (inRange(bite, 0xC2, 0xDF)) {\n // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n // − 0xC0.\n utf8_bytes_needed = 1;\n utf8_code_point = bite - 0xC0;\n }\n\n // 0xE0 to 0xEF\n else if (inRange(bite, 0xE0, 0xEF)) {\n // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n if (bite === 0xE0)\n utf8_lower_boundary = 0xA0;\n // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n if (bite === 0xED)\n utf8_upper_boundary = 0x9F;\n // 3. Set utf-8 bytes needed to 2 and utf-8 code point to\n // byte − 0xE0.\n utf8_bytes_needed = 2;\n utf8_code_point = bite - 0xE0;\n }\n\n // 0xF0 to 0xF4\n else if (inRange(bite, 0xF0, 0xF4)) {\n // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n if (bite === 0xF0)\n utf8_lower_boundary = 0x90;\n // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n if (bite === 0xF4)\n utf8_upper_boundary = 0x8F;\n // 3. Set utf-8 bytes needed to 3 and utf-8 code point to\n // byte − 0xF0.\n utf8_bytes_needed = 3;\n utf8_code_point = bite - 0xF0;\n }\n\n // Otherwise\n else {\n // Return error.\n return decoderError(fatal);\n }\n\n // Then (byte is in the range 0xC2 to 0xF4) set utf-8 code\n // point to utf-8 code point << (6 × utf-8 bytes needed) and\n // return continue.\n utf8_code_point = utf8_code_point << (6 * utf8_bytes_needed);\n return null;\n }\n\n // 4. If byte is not in the range utf-8 lower boundary to utf-8\n // upper boundary, run these substeps:\n if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n\n // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n // utf-8 upper boundary to 0xBF.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Return error.\n return decoderError(fatal);\n }\n\n // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n // to 0xBF.\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 6. Increase utf-8 bytes seen by one and set utf-8 code point\n // to utf-8 code point + (byte − 0x80) << (6 × (utf-8 bytes\n // needed − utf-8 bytes seen)).\n utf8_bytes_seen += 1;\n utf8_code_point += (bite - 0x80) << (6 * (utf8_bytes_needed - utf8_bytes_seen));\n\n // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n if (utf8_bytes_seen !== utf8_bytes_needed)\n return null;\n\n // 8. Let code point be utf-8 code point.\n var code_point = utf8_code_point;\n\n // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n // 10. Return a code point whose value is code point.\n return code_point;\n };\n}\n\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Encoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is in the range U+0000 to U+007F, return a\n // byte whose value is code point.\n if (inRange(code_point, 0x0000, 0x007f))\n return code_point;\n\n // 3. Set count and offset based on the range code point is in:\n var count, offset;\n // U+0080 to U+07FF: 1 and 0xC0\n if (inRange(code_point, 0x0080, 0x07FF)) {\n count = 1;\n offset = 0xC0;\n }\n // U+0800 to U+FFFF: 2 and 0xE0\n else if (inRange(code_point, 0x0800, 0xFFFF)) {\n count = 2;\n offset = 0xE0;\n }\n // U+10000 to U+10FFFF: 3 and 0xF0\n else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n count = 3;\n offset = 0xF0;\n }\n\n // 4.Let bytes be a byte sequence whose first byte is (code\n // point >> (6 × count)) + offset.\n var bytes = [(code_point >> (6 * count)) + offset];\n\n // 5. Run these substeps while count is greater than 0:\n while (count > 0) {\n\n // 1. Set temp to code point >> (6 × (count − 1)).\n var temp = code_point >> (6 * (count - 1));\n\n // 2. Append to bytes 0x80 | (temp & 0x3F).\n bytes.push(0x80 | (temp & 0x3F));\n\n // 3. Decrease count by one.\n count -= 1;\n }\n\n // 6. Return bytes bytes, in order.\n return bytes;\n };\n}\n\nexport {TextEncoder, TextDecoder};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { toUint8Array } from './buffer';\nimport {\n TextDecoder as TextDecoderPolyfill,\n TextEncoder as TextEncoderPolyfill,\n} from 'text-encoding-utf-8';\n\n/** @ignore @suppress {missingRequire} */\nconst _Buffer = typeof Buffer === 'function' ? Buffer : null;\n/** @ignore */\nconst useNativeEncoders = typeof TextDecoder === 'function' && typeof TextEncoder === 'function';\n\n/** @ignore */\nexport const decodeUtf8 = ((TextDecoder) => {\n if (useNativeEncoders || !_Buffer) {\n const decoder = new TextDecoder('utf-8');\n return (buffer?: ArrayBuffer | ArrayBufferView) => decoder.decode(buffer);\n }\n return (input: ArrayBufferLike | ArrayBufferView) => {\n const { buffer, byteOffset, length } = toUint8Array(input);\n return _Buffer.from(buffer, byteOffset, length).toString();\n };\n})(typeof TextDecoder !== 'undefined' ? TextDecoder : TextDecoderPolyfill);\n\n/** @ignore */\nexport const encodeUtf8 = ((TextEncoder) => {\n if (useNativeEncoders || !_Buffer) {\n const encoder = new TextEncoder();\n return (value?: string) => encoder.encode(value);\n }\n return (input = '') => toUint8Array(_Buffer.from(input, 'utf8'));\n})(typeof TextEncoder !== 'undefined' ? TextEncoder : TextEncoderPolyfill);\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport streamAdapters from './adapters';\n\n/** @ignore */\nexport const ITERATOR_DONE: any = Object.freeze({ done: true, value: void (0) });\n\n/** @ignore */\nexport type FileHandle = import('fs').promises.FileHandle;\n/** @ignore */\nexport type ArrowJSONLike = { schema: any; batches?: any[]; dictionaries?: any[]; };\n/** @ignore */\nexport type ReadableDOMStreamOptions = { type: 'bytes' | undefined, autoAllocateChunkSize?: number, highWaterMark?: number };\n\n/** @ignore */\nexport class ArrowJSON {\n // @ts-ignore\n constructor(private _json: ArrowJSONLike) {}\n public get schema(): any { return this._json['schema']; }\n public get batches(): any[] { return (this._json['batches'] || []) as any[]; }\n public get dictionaries(): any[] { return (this._json['dictionaries'] || []) as any[]; }\n}\n\n/** @ignore */\nexport interface Readable {\n\n readonly closed: Promise;\n cancel(reason?: any): Promise;\n\n read(size?: number | null): Promise;\n peek(size?: number | null): Promise;\n throw(value?: any): Promise>;\n return(value?: any): Promise>;\n next(size?: number | null): Promise>;\n}\n\n/** @ignore */\nexport interface Writable {\n readonly closed: Promise;\n close(): void;\n write(chunk: T): void;\n abort(reason?: any): void;\n}\n\n/** @ignore */\nexport interface ReadableWritable extends Readable, Writable {\n [Symbol.asyncIterator](): AsyncIterableIterator;\n toDOMStream(options?: ReadableDOMStreamOptions): ReadableStream;\n toNodeStream(options?: import('stream').ReadableOptions): import('stream').Readable;\n}\n\n/** @ignore */\nexport abstract class ReadableInterop {\n\n public abstract toDOMStream(options?: ReadableDOMStreamOptions): ReadableStream;\n public abstract toNodeStream(options?: import('stream').ReadableOptions): import('stream').Readable;\n\n public tee(): [ReadableStream, ReadableStream] {\n return this._getDOMStream().tee();\n }\n public pipe(writable: R, options?: { end?: boolean; }) {\n return this._getNodeStream().pipe(writable, options);\n }\n public pipeTo(writable: WritableStream, options?: PipeOptions) { return this._getDOMStream().pipeTo(writable, options); }\n public pipeThrough>(duplex: { writable: WritableStream, readable: R }, options?: PipeOptions) {\n return this._getDOMStream().pipeThrough(duplex, options);\n }\n\n protected _DOMStream?: ReadableStream;\n private _getDOMStream() {\n return this._DOMStream || (this._DOMStream = this.toDOMStream());\n }\n\n protected _nodeStream?: import('stream').Readable;\n private _getNodeStream() {\n return this._nodeStream || (this._nodeStream = this.toNodeStream());\n }\n}\n\n/** @ignore */\ntype Resolution = { resolve: (value?: T | PromiseLike) => void; reject: (reason?: any) => void; };\n\n/** @ignore */\nexport class AsyncQueue extends ReadableInterop\n implements AsyncIterableIterator, ReadableWritable {\n\n protected _values: TWritable[] = [];\n protected _error?: { error: any; };\n protected _closedPromise: Promise;\n protected _closedPromiseResolve?: (value?: any) => void;\n protected resolvers: Resolution>[] = [];\n\n constructor() {\n super();\n this._closedPromise = new Promise((r) => this._closedPromiseResolve = r);\n }\n\n public get closed(): Promise { return this._closedPromise; }\n public async cancel(reason?: any) { await this.return(reason); }\n public write(value: TWritable) {\n if (this._ensureOpen()) {\n this.resolvers.length <= 0\n ? (this._values.push(value))\n : (this.resolvers.shift()!.resolve({ done: false, value } as any));\n }\n }\n public abort(value?: any) {\n if (this._closedPromiseResolve) {\n this.resolvers.length <= 0\n ? (this._error = { error: value })\n : (this.resolvers.shift()!.reject({ done: true, value }));\n }\n }\n public close() {\n if (this._closedPromiseResolve) {\n const { resolvers } = this;\n while (resolvers.length > 0) {\n resolvers.shift()!.resolve(ITERATOR_DONE);\n }\n this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n }\n }\n\n public [Symbol.asyncIterator]() { return this; }\n public toDOMStream(options?: ReadableDOMStreamOptions) {\n return streamAdapters.toDOMStream(\n (this._closedPromiseResolve || this._error)\n ? (this as AsyncIterable)\n : (this._values as any) as Iterable,\n options);\n }\n public toNodeStream(options?: import('stream').ReadableOptions) {\n return streamAdapters.toNodeStream(\n (this._closedPromiseResolve || this._error)\n ? (this as AsyncIterable)\n : (this._values as any) as Iterable,\n options);\n }\n public async throw(_?: any) { await this.abort(_); return ITERATOR_DONE; }\n public async return(_?: any) { await this.close(); return ITERATOR_DONE; }\n\n public async read(size?: number | null): Promise { return (await this.next(size, 'read')).value; }\n public async peek(size?: number | null): Promise { return (await this.next(size, 'peek')).value; }\n public next(..._args: any[]): Promise> {\n if (this._values.length > 0) {\n return Promise.resolve({ done: false, value: this._values.shift()! } as any);\n } else if (this._error) {\n return Promise.reject({ done: true, value: this._error.error });\n } else if (!this._closedPromiseResolve) {\n return Promise.resolve(ITERATOR_DONE);\n } else {\n return new Promise>((resolve, reject) => {\n this.resolvers.push({ resolve, reject });\n });\n }\n }\n\n protected _ensureOpen() {\n if (this._closedPromiseResolve) {\n return true;\n }\n throw new Error(`${this} is closed`);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { ReadableInterop, ArrowJSONLike } from '../io/interfaces';\n\n/** @ignore */\ntype FSReadStream = import('fs').ReadStream;\n/** @ignore */\ntype FileHandle = import('fs').promises.FileHandle;\n\n/** @ignore */\nexport interface Subscription {\n unsubscribe: () => void;\n}\n\n/** @ignore */\nexport interface Observer {\n closed?: boolean;\n next: (value: T) => void;\n error: (err: any) => void;\n complete: () => void;\n}\n\n/** @ignore */\nexport interface Observable {\n subscribe: (observer: Observer) => Subscription;\n}\n\n/** @ignore */\nconst [BigIntCtor, BigIntAvailable] = (() => {\n const BigIntUnavailableError = () => { throw new Error('BigInt is not available in this environment'); };\n function BigIntUnavailable() { throw BigIntUnavailableError(); }\n BigIntUnavailable.asIntN = () => { throw BigIntUnavailableError(); };\n BigIntUnavailable.asUintN = () => { throw BigIntUnavailableError(); };\n return typeof BigInt !== 'undefined' ? [BigInt, true] : [ BigIntUnavailable, false];\n})() as [BigIntConstructor, boolean];\n\n/** @ignore */\nconst [BigInt64ArrayCtor, BigInt64ArrayAvailable] = (() => {\n const BigInt64ArrayUnavailableError = () => { throw new Error('BigInt64Array is not available in this environment'); };\n class BigInt64ArrayUnavailable {\n static get BYTES_PER_ELEMENT() { return 8; }\n static of() { throw BigInt64ArrayUnavailableError(); }\n static from() { throw BigInt64ArrayUnavailableError(); }\n constructor() { throw BigInt64ArrayUnavailableError(); }\n }\n return typeof BigInt64Array !== 'undefined' ? [BigInt64Array, true] : [ BigInt64ArrayUnavailable, false];\n})() as [BigInt64ArrayConstructor, boolean];\n\n/** @ignore */\nconst [BigUint64ArrayCtor, BigUint64ArrayAvailable] = (() => {\n const BigUint64ArrayUnavailableError = () => { throw new Error('BigUint64Array is not available in this environment'); };\n class BigUint64ArrayUnavailable {\n static get BYTES_PER_ELEMENT() { return 8; }\n static of() { throw BigUint64ArrayUnavailableError(); }\n static from() { throw BigUint64ArrayUnavailableError(); }\n constructor() { throw BigUint64ArrayUnavailableError(); }\n }\n return typeof BigUint64Array !== 'undefined' ? [BigUint64Array, true] : [ BigUint64ArrayUnavailable, false];\n})() as [BigUint64ArrayConstructor, boolean];\n\nexport { BigIntCtor as BigInt, BigIntAvailable };\nexport { BigInt64ArrayCtor as BigInt64Array, BigInt64ArrayAvailable };\nexport { BigUint64ArrayCtor as BigUint64Array, BigUint64ArrayAvailable };\n\n/** @ignore */ const isNumber = (x: any) => typeof x === 'number';\n/** @ignore */ const isBoolean = (x: any) => typeof x === 'boolean';\n/** @ignore */ const isFunction = (x: any) => typeof x === 'function';\n/** @ignore */\nexport const isObject = (x: any): x is Object => x != null && Object(x) === x;\n\n/** @ignore */\nexport const isPromise = (x: any): x is PromiseLike => {\n return isObject(x) && isFunction(x.then);\n};\n\n/** @ignore */\nexport const isObservable = (x: any): x is Observable => {\n return isObject(x) && isFunction(x.subscribe);\n};\n\n/** @ignore */\nexport const isIterable = (x: any): x is Iterable => {\n return isObject(x) && isFunction(x[Symbol.iterator]);\n};\n\n/** @ignore */\nexport const isAsyncIterable = (x: any): x is AsyncIterable => {\n return isObject(x) && isFunction(x[Symbol.asyncIterator]);\n};\n\n/** @ignore */\nexport const isArrowJSON = (x: any): x is ArrowJSONLike => {\n return isObject(x) && isObject(x['schema']);\n};\n\n/** @ignore */\nexport const isArrayLike = (x: any): x is ArrayLike => {\n return isObject(x) && isNumber(x['length']);\n};\n\n/** @ignore */\nexport const isIteratorResult = (x: any): x is IteratorResult => {\n return isObject(x) && ('done' in x) && ('value' in x);\n};\n\n/** @ignore */\nexport const isUnderlyingSink = (x: any): x is UnderlyingSink => {\n return isObject(x) &&\n isFunction(x['abort']) &&\n isFunction(x['close']) &&\n isFunction(x['start']) &&\n isFunction(x['write']);\n};\n\n/** @ignore */\nexport const isFileHandle = (x: any): x is FileHandle => {\n return isObject(x) && isFunction(x['stat']) && isNumber(x['fd']);\n};\n\n/** @ignore */\nexport const isFSReadStream = (x: any): x is FSReadStream => {\n return isReadableNodeStream(x) && isNumber(( x)['bytesRead']);\n};\n\n/** @ignore */\nexport const isFetchResponse = (x: any): x is Response => {\n return isObject(x) && isReadableDOMStream(x['body']);\n};\n\n/** @ignore */\nexport const isWritableDOMStream = (x: any): x is WritableStream => {\n return isObject(x) &&\n isFunction(x['abort']) &&\n isFunction(x['getWriter']) &&\n !(x instanceof ReadableInterop);\n};\n\n/** @ignore */\nexport const isReadableDOMStream = (x: any): x is ReadableStream => {\n return isObject(x) &&\n isFunction(x['cancel']) &&\n isFunction(x['getReader']) &&\n !(x instanceof ReadableInterop);\n};\n\n/** @ignore */\nexport const isWritableNodeStream = (x: any): x is NodeJS.WritableStream => {\n return isObject(x) &&\n isFunction(x['end']) &&\n isFunction(x['write']) &&\n isBoolean(x['writable']) &&\n !(x instanceof ReadableInterop);\n};\n\n/** @ignore */\nexport const isReadableNodeStream = (x: any): x is NodeJS.ReadableStream => {\n return isObject(x) &&\n isFunction(x['read']) &&\n isFunction(x['pipe']) &&\n isBoolean(x['readable']) &&\n !(x instanceof ReadableInterop);\n};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { flatbuffers } from 'flatbuffers';\nimport { encodeUtf8 } from '../util/utf8';\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport { TypedArray, TypedArrayConstructor } from '../interfaces';\nimport { BigIntArray, BigIntArrayConstructor } from '../interfaces';\nimport { isPromise, isIterable, isAsyncIterable, isIteratorResult, BigInt64Array, BigUint64Array } from './compat';\n\n/** @ignore */\nconst SharedArrayBuf = (typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : ArrayBuffer);\n\n/** @ignore */\nfunction collapseContiguousByteRanges(chunks: Uint8Array[]) {\n let result = chunks[0] ? [chunks[0]] : [];\n let xOffset: number, yOffset: number, xLen: number, yLen: number;\n for (let x, y, i = 0, j = 0, n = chunks.length; ++i < n;) {\n x = result[j];\n y = chunks[i];\n // continue if x and y don't share the same underlying ArrayBuffer, or if x isn't before y\n if (!x || !y || x.buffer !== y.buffer || y.byteOffset < x.byteOffset) {\n y && (result[++j] = y);\n continue;\n }\n ({ byteOffset: xOffset, byteLength: xLen } = x);\n ({ byteOffset: yOffset, byteLength: yLen } = y);\n // continue if the byte ranges of x and y aren't contiguous\n if ((xOffset + xLen) < yOffset || (yOffset + yLen) < xOffset) {\n y && (result[++j] = y);\n continue;\n }\n result[j] = new Uint8Array(x.buffer, xOffset, yOffset - xOffset + yLen);\n }\n return result;\n}\n\n/** @ignore */\nexport function memcpy(target: TTarget, source: TSource, targetByteOffset = 0, sourceByteLength = source.byteLength) {\n const targetByteLength = target.byteLength;\n const dst = new Uint8Array(target.buffer, target.byteOffset, targetByteLength);\n const src = new Uint8Array(source.buffer, source.byteOffset, Math.min(sourceByteLength, targetByteLength));\n dst.set(src, targetByteOffset);\n return target;\n}\n\n/** @ignore */\nexport function joinUint8Arrays(chunks: Uint8Array[], size?: number | null): [Uint8Array, Uint8Array[], number] {\n // collapse chunks that share the same underlying ArrayBuffer and whose byte ranges overlap,\n // to avoid unnecessarily copying the bytes to do this buffer join. This is a common case during\n // streaming, where we may be reading partial byte ranges out of the same underlying ArrayBuffer\n let result = collapseContiguousByteRanges(chunks);\n let byteLength = result.reduce((x, b) => x + b.byteLength, 0);\n let source: Uint8Array, sliced: Uint8Array, buffer: Uint8Array | void;\n let offset = 0, index = -1, length = Math.min(size || Infinity, byteLength);\n for (let n = result.length; ++index < n;) {\n source = result[index];\n sliced = source.subarray(0, Math.min(source.length, length - offset));\n if (length <= (offset + sliced.length)) {\n if (sliced.length < source.length) {\n result[index] = source.subarray(sliced.length);\n } else if (sliced.length === source.length) { index++; }\n buffer ? memcpy(buffer, sliced, offset) : (buffer = sliced);\n break;\n }\n memcpy(buffer || (buffer = new Uint8Array(length)), sliced, offset);\n offset += sliced.length;\n }\n return [buffer || new Uint8Array(0), result.slice(index), byteLength - (buffer ? buffer.byteLength : 0)];\n}\n\n/** @ignore */\nexport type ArrayBufferViewInput = ArrayBufferView | ArrayBufferLike | ArrayBufferView | Iterable | ArrayLike | ByteBuffer | string | null | undefined |\n IteratorResult | ArrayLike | ByteBuffer | string | null | undefined> |\n ReadableStreamReadResult | ArrayLike | ByteBuffer | string | null | undefined> ;\n\n/** @ignore */\nexport function toArrayBufferView(ArrayBufferViewCtor: TypedArrayConstructor, input: ArrayBufferViewInput): T;\nexport function toArrayBufferView(ArrayBufferViewCtor: BigIntArrayConstructor, input: ArrayBufferViewInput): T;\nexport function toArrayBufferView(ArrayBufferViewCtor: any, input: ArrayBufferViewInput) {\n\n let value: any = isIteratorResult(input) ? input.value : input;\n\n if (value instanceof ArrayBufferViewCtor) {\n if (ArrayBufferViewCtor === Uint8Array) {\n // Node's `Buffer` class passes the `instanceof Uint8Array` check, but we need\n // a real Uint8Array, since Buffer#slice isn't the same as Uint8Array#slice :/\n return new ArrayBufferViewCtor(value.buffer, value.byteOffset, value.byteLength);\n }\n return value;\n }\n if (!value) { return new ArrayBufferViewCtor(0); }\n if (typeof value === 'string') { value = encodeUtf8(value); }\n if (value instanceof ArrayBuffer) { return new ArrayBufferViewCtor(value); }\n if (value instanceof SharedArrayBuf) { return new ArrayBufferViewCtor(value); }\n if (value instanceof ByteBuffer) { return toArrayBufferView(ArrayBufferViewCtor, value.bytes()); }\n return !ArrayBuffer.isView(value) ? ArrayBufferViewCtor.from(value) : value.byteLength <= 0 ? new ArrayBufferViewCtor(0)\n : new ArrayBufferViewCtor(value.buffer, value.byteOffset, value.byteLength / ArrayBufferViewCtor.BYTES_PER_ELEMENT);\n}\n\n/** @ignore */ export const toInt8Array = (input: ArrayBufferViewInput) => toArrayBufferView(Int8Array, input);\n/** @ignore */ export const toInt16Array = (input: ArrayBufferViewInput) => toArrayBufferView(Int16Array, input);\n/** @ignore */ export const toInt32Array = (input: ArrayBufferViewInput) => toArrayBufferView(Int32Array, input);\n/** @ignore */ export const toBigInt64Array = (input: ArrayBufferViewInput) => toArrayBufferView(BigInt64Array, input);\n/** @ignore */ export const toUint8Array = (input: ArrayBufferViewInput) => toArrayBufferView(Uint8Array, input);\n/** @ignore */ export const toUint16Array = (input: ArrayBufferViewInput) => toArrayBufferView(Uint16Array, input);\n/** @ignore */ export const toUint32Array = (input: ArrayBufferViewInput) => toArrayBufferView(Uint32Array, input);\n/** @ignore */ export const toBigUint64Array = (input: ArrayBufferViewInput) => toArrayBufferView(BigUint64Array, input);\n/** @ignore */ export const toFloat32Array = (input: ArrayBufferViewInput) => toArrayBufferView(Float32Array, input);\n/** @ignore */ export const toFloat64Array = (input: ArrayBufferViewInput) => toArrayBufferView(Float64Array, input);\n/** @ignore */ export const toUint8ClampedArray = (input: ArrayBufferViewInput) => toArrayBufferView(Uint8ClampedArray, input);\n\n/** @ignore */\ntype ArrayBufferViewIteratorInput = Iterable | ArrayBufferViewInput;\n\n/** @ignore */\nconst pump = | AsyncIterator>(iterator: T) => { iterator.next(); return iterator; };\n\n/** @ignore */\nexport function* toArrayBufferViewIterator(ArrayCtor: TypedArrayConstructor, source: ArrayBufferViewIteratorInput) {\n\n const wrap = function*(x: T) { yield x; };\n const buffers: Iterable =\n (typeof source === 'string') ? wrap(source)\n : (ArrayBuffer.isView(source)) ? wrap(source)\n : (source instanceof ArrayBuffer) ? wrap(source)\n : (source instanceof SharedArrayBuf) ? wrap(source)\n : !isIterable(source) ? wrap(source) : source;\n\n yield* pump((function* (it) {\n let r: IteratorResult = null;\n do {\n r = it.next(yield toArrayBufferView(ArrayCtor, r));\n } while (!r.done);\n })(buffers[Symbol.iterator]()));\n}\n\n/** @ignore */ export const toInt8ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Int8Array, input);\n/** @ignore */ export const toInt16ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Int16Array, input);\n/** @ignore */ export const toInt32ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Int32Array, input);\n/** @ignore */ export const toUint8ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint8Array, input);\n/** @ignore */ export const toUint16ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint16Array, input);\n/** @ignore */ export const toUint32ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint32Array, input);\n/** @ignore */ export const toFloat32ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Float32Array, input);\n/** @ignore */ export const toFloat64ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Float64Array, input);\n/** @ignore */ export const toUint8ClampedArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint8ClampedArray, input);\n\n/** @ignore */\ntype ArrayBufferViewAsyncIteratorInput = AsyncIterable | Iterable | PromiseLike | ArrayBufferViewInput;\n\n/** @ignore */\nexport async function* toArrayBufferViewAsyncIterator(ArrayCtor: TypedArrayConstructor, source: ArrayBufferViewAsyncIteratorInput): AsyncIterableIterator {\n\n // if a Promise, unwrap the Promise and iterate the resolved value\n if (isPromise(source)) {\n return yield* toArrayBufferViewAsyncIterator(ArrayCtor, await source);\n }\n\n const wrap = async function*(x: T) { yield await x; };\n const emit = async function* >(source: T) {\n yield* pump((function*(it: Iterator) {\n let r: IteratorResult = null;\n do {\n r = it.next(yield r && r.value);\n } while (!r.done);\n })(source[Symbol.iterator]()));\n };\n\n const buffers: AsyncIterable =\n (typeof source === 'string') ? wrap(source) // if string, wrap in an AsyncIterableIterator\n : (ArrayBuffer.isView(source)) ? wrap(source) // if TypedArray, wrap in an AsyncIterableIterator\n : (source instanceof ArrayBuffer) ? wrap(source) // if ArrayBuffer, wrap in an AsyncIterableIterator\n : (source instanceof SharedArrayBuf) ? wrap(source) // if SharedArrayBuffer, wrap in an AsyncIterableIterator\n : isIterable(source) ? emit(source) // If Iterable, wrap in an AsyncIterableIterator and compose the `next` values\n : !isAsyncIterable(source) ? wrap(source) // If not an AsyncIterable, treat as a sentinel and wrap in an AsyncIterableIterator\n : source; // otherwise if AsyncIterable, use it\n\n yield* pump((async function* (it) {\n let r: IteratorResult = null;\n do {\n r = await it.next(yield toArrayBufferView(ArrayCtor, r));\n } while (!r.done);\n })(buffers[Symbol.asyncIterator]()));\n}\n\n/** @ignore */ export const toInt8ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Int8Array, input);\n/** @ignore */ export const toInt16ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Int16Array, input);\n/** @ignore */ export const toInt32ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Int32Array, input);\n/** @ignore */ export const toUint8ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint8Array, input);\n/** @ignore */ export const toUint16ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint16Array, input);\n/** @ignore */ export const toUint32ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint32Array, input);\n/** @ignore */ export const toFloat32ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Float32Array, input);\n/** @ignore */ export const toFloat64ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Float64Array, input);\n/** @ignore */ export const toUint8ClampedArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint8ClampedArray, input);\n\n/** @ignore */\nexport function rebaseValueOffsets(offset: number, length: number, valueOffsets: Int32Array) {\n // If we have a non-zero offset, create a new offsets array with the values\n // shifted by the start offset, such that the new start offset is 0\n if (offset !== 0) {\n valueOffsets = valueOffsets.slice(0, length + 1);\n for (let i = -1; ++i <= length;) {\n valueOffsets[i] += offset;\n }\n }\n return valueOffsets;\n}\n\n/** @ignore */\nexport function compareArrayLike>(a: T, b: T) {\n let i = 0, n = a.length;\n if (n !== b.length) { return false; }\n if (n > 0) {\n do { if (a[i] !== b[i]) { return false; } } while (++i < n);\n }\n return true;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport {\n toUint8Array,\n joinUint8Arrays,\n ArrayBufferViewInput,\n toUint8ArrayIterator,\n toUint8ArrayAsyncIterator\n} from '../util/buffer';\n\nimport { ReadableDOMStreamOptions } from './interfaces';\n\n/** @ignore */\nexport default {\n fromIterable(source: Iterable | T): IterableIterator {\n return pump(fromIterable(source));\n },\n fromAsyncIterable(source: AsyncIterable | PromiseLike): AsyncIterableIterator {\n return pump(fromAsyncIterable(source));\n },\n fromDOMStream(source: ReadableStream): AsyncIterableIterator {\n return pump(fromDOMStream(source));\n },\n fromNodeStream(stream: NodeJS.ReadableStream): AsyncIterableIterator {\n return pump(fromNodeStream(stream));\n },\n // @ts-ignore\n toDOMStream(source: Iterable | AsyncIterable, options?: ReadableDOMStreamOptions): ReadableStream {\n throw new Error(`\"toDOMStream\" not available in this environment`);\n },\n // @ts-ignore\n toNodeStream(source: Iterable | AsyncIterable, options?: import('stream').ReadableOptions): import('stream').Readable {\n throw new Error(`\"toNodeStream\" not available in this environment`);\n },\n};\n\n/** @ignore */\nconst pump = | AsyncIterator>(iterator: T) => { iterator.next(); return iterator; };\n\n/** @ignore */\nfunction* fromIterable(source: Iterable | T): IterableIterator {\n\n let done: boolean, threw = false;\n let buffers: Uint8Array[] = [], buffer: Uint8Array;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before creating the source Iterator\n ({ cmd, size } = yield null);\n\n // initialize the iterator\n let it = toUint8ArrayIterator(source)[Symbol.iterator]();\n\n try {\n do {\n // read the next value\n ({ done, value: buffer } = isNaN(size - bufferLength) ?\n it.next(undefined) : it.next(size - bufferLength));\n // if chunk is not null or empty, push it onto the queue\n if (!done && buffer.byteLength > 0) {\n buffers.push(buffer);\n bufferLength += buffer.byteLength;\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n } catch (e) {\n (threw = true) && (typeof it.throw === 'function') && (it.throw(e));\n } finally {\n (threw === false) && (typeof it.return === 'function') && (it.return());\n }\n}\n\n/** @ignore */\nasync function* fromAsyncIterable(source: AsyncIterable | PromiseLike): AsyncIterableIterator {\n\n let done: boolean, threw = false;\n let buffers: Uint8Array[] = [], buffer: Uint8Array;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before creating the source AsyncIterator\n ({ cmd, size } = yield null);\n\n // initialize the iterator\n let it = toUint8ArrayAsyncIterator(source)[Symbol.asyncIterator]();\n\n try {\n do {\n // read the next value\n ({ done, value: buffer } = isNaN(size - bufferLength)\n ? await it.next(undefined)\n : await it.next(size - bufferLength));\n // if chunk is not null or empty, push it onto the queue\n if (!done && buffer.byteLength > 0) {\n buffers.push(buffer);\n bufferLength += buffer.byteLength;\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n } catch (e) {\n (threw = true) && (typeof it.throw === 'function') && (await it.throw(e));\n } finally {\n (threw === false) && (typeof it.return === 'function') && (await it.return());\n }\n}\n\n// All this manual Uint8Array chunk management can be avoided if/when engines\n// add support for ArrayBuffer.transfer() or ArrayBuffer.prototype.realloc():\n// https://github.com/domenic/proposal-arraybuffer-transfer\n/** @ignore */\nasync function* fromDOMStream(source: ReadableStream): AsyncIterableIterator {\n\n let done = false, threw = false;\n let buffers: Uint8Array[] = [], buffer: Uint8Array;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before we establish the ReadableStream lock\n ({ cmd, size } = yield null);\n\n // initialize the reader and lock the stream\n let it = new AdaptiveByteReader(source);\n\n try {\n do {\n // read the next value\n ({ done, value: buffer } = isNaN(size - bufferLength)\n ? await it['read'](undefined)\n : await it['read'](size - bufferLength));\n // if chunk is not null or empty, push it onto the queue\n if (!done && buffer.byteLength > 0) {\n buffers.push(toUint8Array(buffer));\n bufferLength += buffer.byteLength;\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n } catch (e) {\n (threw = true) && (await it['cancel'](e));\n } finally {\n (threw === false) ? (await it['cancel']())\n : source['locked'] && it.releaseLock();\n }\n}\n\n/** @ignore */\nclass AdaptiveByteReader {\n\n private supportsBYOB: boolean;\n private byobReader: ReadableStreamBYOBReader | null = null;\n private defaultReader: ReadableStreamDefaultReader | null = null;\n private reader: ReadableStreamBYOBReader | ReadableStreamDefaultReader | null;\n\n constructor(private source: ReadableStream) {\n try {\n this.supportsBYOB = !!(this.reader = this.getBYOBReader());\n } catch (e) {\n this.supportsBYOB = !!!(this.reader = this.getDefaultReader());\n }\n }\n\n get closed(): Promise {\n return this.reader ? this.reader['closed'].catch(() => {}) : Promise.resolve();\n }\n\n releaseLock(): void {\n if (this.reader) {\n this.reader.releaseLock();\n }\n this.reader = this.byobReader = this.defaultReader = null;\n }\n\n async cancel(reason?: any): Promise {\n const { reader, source } = this;\n reader && (await reader['cancel'](reason).catch(() => {}));\n source && (source['locked'] && this.releaseLock());\n }\n\n async read(size?: number): Promise> {\n if (size === 0) {\n return { done: this.reader == null, value: new Uint8Array(0) };\n }\n const result = !this.supportsBYOB || typeof size !== 'number'\n ? await this.getDefaultReader().read()\n : await this.readFromBYOBReader(size);\n !result.done && (result.value = toUint8Array(result as ReadableStreamReadResult));\n return result as ReadableStreamReadResult;\n }\n\n private getDefaultReader() {\n if (this.byobReader) { this.releaseLock(); }\n if (!this.defaultReader) {\n this.defaultReader = this.source['getReader']();\n // We have to catch and swallow errors here to avoid uncaught promise rejection exceptions\n // that seem to be raised when we call `releaseLock()` on this reader. I'm still mystified\n // about why these errors are raised, but I'm sure there's some important spec reason that\n // I haven't considered. I hate to employ such an anti-pattern here, but it seems like the\n // only solution in this case :/\n this.defaultReader['closed'].catch(() => {});\n }\n return (this.reader = this.defaultReader);\n }\n\n private getBYOBReader() {\n if (this.defaultReader) { this.releaseLock(); }\n if (!this.byobReader) {\n this.byobReader = this.source['getReader']({ mode: 'byob' });\n // We have to catch and swallow errors here to avoid uncaught promise rejection exceptions\n // that seem to be raised when we call `releaseLock()` on this reader. I'm still mystified\n // about why these errors are raised, but I'm sure there's some important spec reason that\n // I haven't considered. I hate to employ such an anti-pattern here, but it seems like the\n // only solution in this case :/\n this.byobReader['closed'].catch(() => {});\n }\n return (this.reader = this.byobReader);\n }\n\n // This strategy plucked from the example in the streams spec:\n // https://streams.spec.whatwg.org/#example-manual-read-bytes\n private async readFromBYOBReader(size: number) {\n return await readInto(this.getBYOBReader(), new ArrayBuffer(size), 0, size);\n }\n}\n\n/** @ignore */\nasync function readInto(reader: ReadableStreamBYOBReader, buffer: ArrayBufferLike, offset: number, size: number): Promise> {\n if (offset >= size) {\n return { done: false, value: new Uint8Array(buffer, 0, size) };\n }\n const { done, value } = await reader.read(new Uint8Array(buffer, offset, size - offset));\n if (((offset += value.byteLength) < size) && !done) {\n return await readInto(reader, value.buffer, offset, size);\n }\n return { done, value: new Uint8Array(value.buffer, 0, offset) };\n}\n\n/** @ignore */\ntype EventName = 'end' | 'error' | 'readable';\n/** @ignore */\ntype Event = [EventName, (_: any) => void, Promise<[EventName, Error | null]>];\n/** @ignore */\nconst onEvent = (stream: NodeJS.ReadableStream, event: T) => {\n let handler = (_: any) => resolve([event, _]);\n let resolve: (value?: [T, any] | PromiseLike<[T, any]>) => void;\n return [event, handler, new Promise<[T, any]>(\n (r) => (resolve = r) && stream['once'](event, handler)\n )] as Event;\n};\n\n/** @ignore */\nasync function* fromNodeStream(stream: NodeJS.ReadableStream): AsyncIterableIterator {\n\n let events: Event[] = [];\n let event: EventName = 'error';\n let done = false, err: Error | null = null;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n let buffers: Uint8Array[] = [], buffer: Uint8Array | Buffer | string;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before we\n // add the listener for the source stream's 'readable' event.\n ({ cmd, size } = yield null);\n\n // ignore stdin if it's a TTY\n if ((stream as any)['isTTY']) { return yield new Uint8Array(0); }\n\n try {\n // initialize the stream event handlers\n events[0] = onEvent(stream, 'end');\n events[1] = onEvent(stream, 'error');\n\n do {\n events[2] = onEvent(stream, 'readable');\n\n // wait on the first message event from the stream\n [event, err] = await Promise.race(events.map((x) => x[2]));\n\n // if the stream emitted an Error, rethrow it\n if (event === 'error') { break; }\n if (!(done = event === 'end')) {\n // If the size is NaN, request to read everything in the stream's internal buffer\n if (!isFinite(size - bufferLength)) {\n buffer = toUint8Array(stream['read'](undefined));\n } else {\n buffer = toUint8Array(stream['read'](size - bufferLength));\n // If the byteLength is 0, then the requested amount is more than the stream has\n // in its internal buffer. In this case the stream needs a \"kick\" to tell it to\n // continue emitting readable events, so request to read everything the stream\n // has in its internal buffer right now.\n if (buffer.byteLength < (size - bufferLength)) {\n buffer = toUint8Array(stream['read'](undefined));\n }\n }\n // if chunk is not null or empty, push it onto the queue\n if (buffer.byteLength > 0) {\n buffers.push(buffer);\n bufferLength += buffer.byteLength;\n }\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n } finally {\n await cleanup(events, event === 'error' ? err : null);\n }\n\n function cleanup(events: Event[], err?: T) {\n buffer = buffers = null;\n return new Promise(async (resolve, reject) => {\n for (const [evt, fn] of events) {\n stream['off'](evt, fn);\n }\n try {\n // Some stream implementations don't call the destroy callback,\n // because it's really a node-internal API. Just calling `destroy`\n // here should be enough to conform to the ReadableStream contract\n const destroy = (stream as any)['destroy'];\n destroy && destroy.call(stream, err);\n err = undefined;\n } catch (e) { err = e || err; } finally {\n err != null ? reject(err) : resolve();\n }\n });\n }\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { DataType } from './type';\nimport { Chunked } from './vector/chunked';\n\n/** @ignore */\nexport interface Clonable {\n clone(...args: any[]): R;\n}\n\n/** @ignore */\nexport interface Sliceable {\n slice(begin?: number, end?: number): R;\n}\n\n/** @ignore */\nexport interface Applicative {\n concat(...others: Vector[]): R;\n readonly [Symbol.isConcatSpreadable]: boolean;\n}\n\nexport interface AbstractVector\n extends Clonable>,\n Sliceable>,\n Applicative> {\n\n readonly TType: T['TType'];\n readonly TArray: T['TArray'];\n readonly TValue: T['TValue'];\n}\n\nexport abstract class AbstractVector implements Iterable {\n\n public abstract readonly data: Data;\n public abstract readonly type: T;\n public abstract readonly typeId: T['TType'];\n public abstract readonly length: number;\n public abstract readonly stride: number;\n public abstract readonly nullCount: number;\n public abstract readonly byteLength: number;\n public abstract readonly numChildren: number;\n\n public abstract readonly ArrayType: T['ArrayType'];\n\n public abstract isValid(index: number): boolean;\n public abstract get(index: number): T['TValue'] | null;\n public abstract set(index: number, value: T['TValue'] | null): void;\n public abstract indexOf(value: T['TValue'] | null, fromIndex?: number): number;\n public abstract [Symbol.iterator](): IterableIterator;\n\n public abstract toArray(): T['TArray'];\n public abstract getChildAt(index: number): Vector | null;\n}\n\nexport { AbstractVector as Vector };\n","/* tslint:disable:class-name */\n\n// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum MetadataVersion {\n /**\n * 0.1.0\n */\n V1 = 0,\n\n /**\n * 0.2.0\n */\n V2 = 1,\n\n /**\n * 0.3.0 -> 0.7.1\n */\n V3 = 2,\n\n /**\n * >= 0.8.0\n */\n V4 = 3\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum UnionMode {\n Sparse = 0,\n Dense = 1\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum Precision {\n HALF = 0,\n SINGLE = 1,\n DOUBLE = 2\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum DateUnit {\n DAY = 0,\n MILLISECOND = 1\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum TimeUnit {\n SECOND = 0,\n MILLISECOND = 1,\n MICROSECOND = 2,\n NANOSECOND = 3\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum IntervalUnit {\n YEAR_MONTH = 0,\n DAY_TIME = 1\n }\n}\n\n/**\n * ----------------------------------------------------------------------\n * Top-level Type value, enabling extensible type-specific metadata. We can\n * add new logical types to Type without breaking backwards compatibility\n *\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum Type {\n NONE = 0,\n Null = 1,\n Int = 2,\n FloatingPoint = 3,\n Binary = 4,\n Utf8 = 5,\n Bool = 6,\n Decimal = 7,\n Date = 8,\n Time = 9,\n Timestamp = 10,\n Interval = 11,\n List = 12,\n Struct_ = 13,\n Union = 14,\n FixedSizeBinary = 15,\n FixedSizeList = 16,\n Map = 17,\n Duration = 18,\n LargeBinary = 19,\n LargeUtf8 = 20,\n LargeList = 21\n }\n}\n\n/**\n * ----------------------------------------------------------------------\n * Endianness of the platform producing the data\n *\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum Endianness {\n Little = 0,\n Big = 1\n }\n}\n\n/**\n * These are stored in the flatbuffer in the Type union below\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Null {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Null\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Null {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Null= obj\n * @returns Null\n */\n static getRootAsNull(bb: flatbuffers.ByteBuffer, obj?: Null): Null {\n return (obj || new Null).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startNull(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endNull(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createNull(builder: flatbuffers.Builder): flatbuffers.Offset {\n Null.startNull(builder);\n return Null.endNull(builder);\n }\n }\n}\n/**\n * A Struct_ in the flatbuffer metadata is the same as an Arrow Struct\n * (according to the physical memory layout). We used Struct_ here as\n * Struct is a reserved word in Flatbuffers\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Struct_ {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Struct_\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Struct_ {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Struct_= obj\n * @returns Struct_\n */\n static getRootAsStruct_(bb: flatbuffers.ByteBuffer, obj?: Struct_): Struct_ {\n return (obj || new Struct_).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startStruct_(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endStruct_(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createStruct_(builder: flatbuffers.Builder): flatbuffers.Offset {\n Struct_.startStruct_(builder);\n return Struct_.endStruct_(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class List {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns List\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): List {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param List= obj\n * @returns List\n */\n static getRootAsList(bb: flatbuffers.ByteBuffer, obj?: List): List {\n return (obj || new List).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startList(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endList(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createList(builder: flatbuffers.Builder): flatbuffers.Offset {\n List.startList(builder);\n return List.endList(builder);\n }\n }\n}\n/**\n * Same as List, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class LargeList {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeList\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): LargeList {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeList= obj\n * @returns LargeList\n */\n static getRootAsLargeList(bb: flatbuffers.ByteBuffer, obj?: LargeList): LargeList {\n return (obj || new LargeList).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeList(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeList(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createLargeList(builder: flatbuffers.Builder): flatbuffers.Offset {\n LargeList.startLargeList(builder);\n return LargeList.endLargeList(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FixedSizeList {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FixedSizeList\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FixedSizeList {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeList= obj\n * @returns FixedSizeList\n */\n static getRootAsFixedSizeList(bb: flatbuffers.ByteBuffer, obj?: FixedSizeList): FixedSizeList {\n return (obj || new FixedSizeList).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Number of list items per value\n *\n * @returns number\n */\n listSize(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFixedSizeList(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number listSize\n */\n static addListSize(builder: flatbuffers.Builder, listSize: number) {\n builder.addFieldInt32(0, listSize, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFixedSizeList(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createFixedSizeList(builder: flatbuffers.Builder, listSize: number): flatbuffers.Offset {\n FixedSizeList.startFixedSizeList(builder);\n FixedSizeList.addListSize(builder, listSize);\n return FixedSizeList.endFixedSizeList(builder);\n }\n }\n}\n/**\n * A Map is a logical nested type that is represented as\n *\n * List>\n *\n * In this layout, the keys and values are each respectively contiguous. We do\n * not constrain the key and value types, so the application is responsible\n * for ensuring that the keys are hashable and unique. Whether the keys are sorted\n * may be set in the metadata for this field\n *\n * In a Field with Map type, the Field has a child Struct field, which then\n * has two children: key type and the second the value type. The names of the\n * child fields may be respectively \"entry\", \"key\", and \"value\", but this is\n * not enforced\n *\n * Map\n * - child[0] entry: Struct\n * - child[0] key: K\n * - child[1] value: V\n *\n * Neither the \"entry\" field nor the \"key\" field may be nullable.\n *\n * The metadata is structured so that Arrow systems without special handling\n * for Map can make Map an alias for List. The \"layout\" attribute for the Map\n * field must have the same contents as a List.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Map {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Map\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Map {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Map= obj\n * @returns Map\n */\n static getRootAsMap(bb: flatbuffers.ByteBuffer, obj?: Map): Map {\n return (obj || new Map).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Set to true if the keys within each value are sorted\n *\n * @returns boolean\n */\n keysSorted(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startMap(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean keysSorted\n */\n static addKeysSorted(builder: flatbuffers.Builder, keysSorted: boolean) {\n builder.addFieldInt8(0, +keysSorted, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endMap(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createMap(builder: flatbuffers.Builder, keysSorted: boolean): flatbuffers.Offset {\n Map.startMap(builder);\n Map.addKeysSorted(builder, keysSorted);\n return Map.endMap(builder);\n }\n }\n}\n/**\n * A union is a complex type with children in Field\n * By default ids in the type vector refer to the offsets in the children\n * optionally typeIds provides an indirection between the child offset and the type id\n * for each child typeIds[offset] is the id used in the type vector\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Union {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Union\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Union {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Union= obj\n * @returns Union\n */\n static getRootAsUnion(bb: flatbuffers.ByteBuffer, obj?: Union): Union {\n return (obj || new Union).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.UnionMode\n */\n mode(): org.apache.arrow.flatbuf.UnionMode {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.UnionMode.Sparse;\n }\n\n /**\n * @param number index\n * @returns number\n */\n typeIds(index: number): number | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt32(this.bb!.__vector(this.bb_pos + offset) + index * 4) : 0;\n }\n\n /**\n * @returns number\n */\n typeIdsLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @returns Int32Array\n */\n typeIdsArray(): Int32Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? new Int32Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startUnion(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.UnionMode mode\n */\n static addMode(builder: flatbuffers.Builder, mode: org.apache.arrow.flatbuf.UnionMode) {\n builder.addFieldInt16(0, mode, org.apache.arrow.flatbuf.UnionMode.Sparse);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset typeIdsOffset\n */\n static addTypeIds(builder: flatbuffers.Builder, typeIdsOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, typeIdsOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createTypeIdsVector(builder: flatbuffers.Builder, data: number[] | Int32Array): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addInt32(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startTypeIdsVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endUnion(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createUnion(builder: flatbuffers.Builder, mode: org.apache.arrow.flatbuf.UnionMode, typeIdsOffset: flatbuffers.Offset): flatbuffers.Offset {\n Union.startUnion(builder);\n Union.addMode(builder, mode);\n Union.addTypeIds(builder, typeIdsOffset);\n return Union.endUnion(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Int {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Int\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Int {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Int= obj\n * @returns Int\n */\n static getRootAsInt(bb: flatbuffers.ByteBuffer, obj?: Int): Int {\n return (obj || new Int).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns number\n */\n bitWidth(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @returns boolean\n */\n isSigned(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startInt(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number bitWidth\n */\n static addBitWidth(builder: flatbuffers.Builder, bitWidth: number) {\n builder.addFieldInt32(0, bitWidth, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isSigned\n */\n static addIsSigned(builder: flatbuffers.Builder, isSigned: boolean) {\n builder.addFieldInt8(1, +isSigned, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endInt(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createInt(builder: flatbuffers.Builder, bitWidth: number, isSigned: boolean): flatbuffers.Offset {\n Int.startInt(builder);\n Int.addBitWidth(builder, bitWidth);\n Int.addIsSigned(builder, isSigned);\n return Int.endInt(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FloatingPoint {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FloatingPoint\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FloatingPoint {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FloatingPoint= obj\n * @returns FloatingPoint\n */\n static getRootAsFloatingPoint(bb: flatbuffers.ByteBuffer, obj?: FloatingPoint): FloatingPoint {\n return (obj || new FloatingPoint).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.Precision\n */\n precision(): org.apache.arrow.flatbuf.Precision {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Precision.HALF;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFloatingPoint(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.Precision precision\n */\n static addPrecision(builder: flatbuffers.Builder, precision: org.apache.arrow.flatbuf.Precision) {\n builder.addFieldInt16(0, precision, org.apache.arrow.flatbuf.Precision.HALF);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFloatingPoint(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createFloatingPoint(builder: flatbuffers.Builder, precision: org.apache.arrow.flatbuf.Precision): flatbuffers.Offset {\n FloatingPoint.startFloatingPoint(builder);\n FloatingPoint.addPrecision(builder, precision);\n return FloatingPoint.endFloatingPoint(builder);\n }\n }\n}\n/**\n * Unicode with UTF-8 encoding\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Utf8 {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Utf8\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Utf8 {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Utf8= obj\n * @returns Utf8\n */\n static getRootAsUtf8(bb: flatbuffers.ByteBuffer, obj?: Utf8): Utf8 {\n return (obj || new Utf8).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startUtf8(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n Utf8.startUtf8(builder);\n return Utf8.endUtf8(builder);\n }\n }\n}\n/**\n * Opaque binary data\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Binary {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Binary\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Binary {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Binary= obj\n * @returns Binary\n */\n static getRootAsBinary(bb: flatbuffers.ByteBuffer, obj?: Binary): Binary {\n return (obj || new Binary).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startBinary(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n Binary.startBinary(builder);\n return Binary.endBinary(builder);\n }\n }\n}\n/**\n * Same as Utf8, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class LargeUtf8 {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeUtf8\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): LargeUtf8 {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeUtf8= obj\n * @returns LargeUtf8\n */\n static getRootAsLargeUtf8(bb: flatbuffers.ByteBuffer, obj?: LargeUtf8): LargeUtf8 {\n return (obj || new LargeUtf8).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeUtf8(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createLargeUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n LargeUtf8.startLargeUtf8(builder);\n return LargeUtf8.endLargeUtf8(builder);\n }\n }\n}\n/**\n * Same as Binary, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class LargeBinary {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeBinary\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): LargeBinary {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeBinary= obj\n * @returns LargeBinary\n */\n static getRootAsLargeBinary(bb: flatbuffers.ByteBuffer, obj?: LargeBinary): LargeBinary {\n return (obj || new LargeBinary).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeBinary(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createLargeBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n LargeBinary.startLargeBinary(builder);\n return LargeBinary.endLargeBinary(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FixedSizeBinary {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FixedSizeBinary\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FixedSizeBinary {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeBinary= obj\n * @returns FixedSizeBinary\n */\n static getRootAsFixedSizeBinary(bb: flatbuffers.ByteBuffer, obj?: FixedSizeBinary): FixedSizeBinary {\n return (obj || new FixedSizeBinary).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Number of bytes per value\n *\n * @returns number\n */\n byteWidth(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFixedSizeBinary(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number byteWidth\n */\n static addByteWidth(builder: flatbuffers.Builder, byteWidth: number) {\n builder.addFieldInt32(0, byteWidth, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFixedSizeBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createFixedSizeBinary(builder: flatbuffers.Builder, byteWidth: number): flatbuffers.Offset {\n FixedSizeBinary.startFixedSizeBinary(builder);\n FixedSizeBinary.addByteWidth(builder, byteWidth);\n return FixedSizeBinary.endFixedSizeBinary(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Bool {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Bool\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Bool {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Bool= obj\n * @returns Bool\n */\n static getRootAsBool(bb: flatbuffers.ByteBuffer, obj?: Bool): Bool {\n return (obj || new Bool).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startBool(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endBool(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createBool(builder: flatbuffers.Builder): flatbuffers.Offset {\n Bool.startBool(builder);\n return Bool.endBool(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Decimal {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Decimal\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Decimal {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Decimal= obj\n * @returns Decimal\n */\n static getRootAsDecimal(bb: flatbuffers.ByteBuffer, obj?: Decimal): Decimal {\n return (obj || new Decimal).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Total number of decimal digits\n *\n * @returns number\n */\n precision(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * Number of digits after the decimal point \".\"\n *\n * @returns number\n */\n scale(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDecimal(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number precision\n */\n static addPrecision(builder: flatbuffers.Builder, precision: number) {\n builder.addFieldInt32(0, precision, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number scale\n */\n static addScale(builder: flatbuffers.Builder, scale: number) {\n builder.addFieldInt32(1, scale, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDecimal(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDecimal(builder: flatbuffers.Builder, precision: number, scale: number): flatbuffers.Offset {\n Decimal.startDecimal(builder);\n Decimal.addPrecision(builder, precision);\n Decimal.addScale(builder, scale);\n return Decimal.endDecimal(builder);\n }\n }\n}\n/**\n * Date is either a 32-bit or 64-bit type representing elapsed time since UNIX\n * epoch (1970-01-01), stored in either of two units:\n *\n * * Milliseconds (64 bits) indicating UNIX time elapsed since the epoch (no\n * leap seconds), where the values are evenly divisible by 86400000\n * * Days (32 bits) since the UNIX epoch\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Date {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Date\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Date {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Date= obj\n * @returns Date\n */\n static getRootAsDate(bb: flatbuffers.ByteBuffer, obj?: Date): Date {\n return (obj || new Date).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.DateUnit\n */\n unit(): org.apache.arrow.flatbuf.DateUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.DateUnit.MILLISECOND;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDate(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.DateUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.DateUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.DateUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDate(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDate(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.DateUnit): flatbuffers.Offset {\n Date.startDate(builder);\n Date.addUnit(builder, unit);\n return Date.endDate(builder);\n }\n }\n}\n/**\n * Time type. The physical storage type depends on the unit\n * - SECOND and MILLISECOND: 32 bits\n * - MICROSECOND and NANOSECOND: 64 bits\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Time {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Time\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Time {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Time= obj\n * @returns Time\n */\n static getRootAsTime(bb: flatbuffers.ByteBuffer, obj?: Time): Time {\n return (obj || new Time).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.TimeUnit\n */\n unit(): org.apache.arrow.flatbuf.TimeUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.MILLISECOND;\n }\n\n /**\n * @returns number\n */\n bitWidth(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 32;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startTime(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number bitWidth\n */\n static addBitWidth(builder: flatbuffers.Builder, bitWidth: number) {\n builder.addFieldInt32(1, bitWidth, 32);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endTime(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createTime(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit, bitWidth: number): flatbuffers.Offset {\n Time.startTime(builder);\n Time.addUnit(builder, unit);\n Time.addBitWidth(builder, bitWidth);\n return Time.endTime(builder);\n }\n }\n}\n/**\n * Time elapsed from the Unix epoch, 00:00:00.000 on 1 January 1970, excluding\n * leap seconds, as a 64-bit integer. Note that UNIX time does not include\n * leap seconds.\n *\n * The Timestamp metadata supports both \"time zone naive\" and \"time zone\n * aware\" timestamps. Read about the timezone attribute for more detail\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Timestamp {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Timestamp\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Timestamp {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Timestamp= obj\n * @returns Timestamp\n */\n static getRootAsTimestamp(bb: flatbuffers.ByteBuffer, obj?: Timestamp): Timestamp {\n return (obj || new Timestamp).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.TimeUnit\n */\n unit(): org.apache.arrow.flatbuf.TimeUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.SECOND;\n }\n\n /**\n * The time zone is a string indicating the name of a time zone, one of:\n *\n * * As used in the Olson time zone database (the \"tz database\" or\n * \"tzdata\"), such as \"America/New_York\"\n * * An absolute time zone offset of the form +XX:XX or -XX:XX, such as +07:30\n *\n * Whether a timezone string is present indicates different semantics about\n * the data:\n *\n * * If the time zone is null or equal to an empty string, the data is \"time\n * zone naive\" and shall be displayed *as is* to the user, not localized\n * to the locale of the user. This data can be though of as UTC but\n * without having \"UTC\" as the time zone, it is not considered to be\n * localized to any time zone\n *\n * * If the time zone is set to a valid value, values can be displayed as\n * \"localized\" to that time zone, even though the underlying 64-bit\n * integers are identical to the same data stored in UTC. Converting\n * between time zones is a metadata-only operation and does not change the\n * underlying values\n *\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n timezone(): string | null;\n timezone(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n timezone(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startTimestamp(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.SECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset timezoneOffset\n */\n static addTimezone(builder: flatbuffers.Builder, timezoneOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, timezoneOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endTimestamp(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createTimestamp(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit, timezoneOffset: flatbuffers.Offset): flatbuffers.Offset {\n Timestamp.startTimestamp(builder);\n Timestamp.addUnit(builder, unit);\n Timestamp.addTimezone(builder, timezoneOffset);\n return Timestamp.endTimestamp(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Interval {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Interval\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Interval {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Interval= obj\n * @returns Interval\n */\n static getRootAsInterval(bb: flatbuffers.ByteBuffer, obj?: Interval): Interval {\n return (obj || new Interval).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.IntervalUnit\n */\n unit(): org.apache.arrow.flatbuf.IntervalUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startInterval(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.IntervalUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.IntervalUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endInterval(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createInterval(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.IntervalUnit): flatbuffers.Offset {\n Interval.startInterval(builder);\n Interval.addUnit(builder, unit);\n return Interval.endInterval(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Duration {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Duration\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Duration {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Duration= obj\n * @returns Duration\n */\n static getRootAsDuration(bb: flatbuffers.ByteBuffer, obj?: Duration): Duration {\n return (obj || new Duration).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.TimeUnit\n */\n unit(): org.apache.arrow.flatbuf.TimeUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.MILLISECOND;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDuration(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDuration(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDuration(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit): flatbuffers.Offset {\n Duration.startDuration(builder);\n Duration.addUnit(builder, unit);\n return Duration.endDuration(builder);\n }\n }\n}\n/**\n * ----------------------------------------------------------------------\n * user defined key value pairs to add custom metadata to arrow\n * key namespacing is the responsibility of the user\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class KeyValue {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns KeyValue\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): KeyValue {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param KeyValue= obj\n * @returns KeyValue\n */\n static getRootAsKeyValue(bb: flatbuffers.ByteBuffer, obj?: KeyValue): KeyValue {\n return (obj || new KeyValue).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n key(): string | null;\n key(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n key(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n value(): string | null;\n value(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n value(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startKeyValue(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset keyOffset\n */\n static addKey(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset) {\n builder.addFieldOffset(0, keyOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset valueOffset\n */\n static addValue(builder: flatbuffers.Builder, valueOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, valueOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endKeyValue(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createKeyValue(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset, valueOffset: flatbuffers.Offset): flatbuffers.Offset {\n KeyValue.startKeyValue(builder);\n KeyValue.addKey(builder, keyOffset);\n KeyValue.addValue(builder, valueOffset);\n return KeyValue.endKeyValue(builder);\n }\n }\n}\n/**\n * ----------------------------------------------------------------------\n * Dictionary encoding metadata\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class DictionaryEncoding {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns DictionaryEncoding\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): DictionaryEncoding {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param DictionaryEncoding= obj\n * @returns DictionaryEncoding\n */\n static getRootAsDictionaryEncoding(bb: flatbuffers.ByteBuffer, obj?: DictionaryEncoding): DictionaryEncoding {\n return (obj || new DictionaryEncoding).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * The known dictionary id in the application where this data is used. In\n * the file or streaming formats, the dictionary ids are found in the\n * DictionaryBatch messages\n *\n * @returns flatbuffers.Long\n */\n id(): flatbuffers.Long {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * The dictionary indices are constrained to be positive integers. If this\n * field is null, the indices must be signed int32\n *\n * @param org.apache.arrow.flatbuf.Int= obj\n * @returns org.apache.arrow.flatbuf.Int|null\n */\n indexType(obj?: org.apache.arrow.flatbuf.Int): org.apache.arrow.flatbuf.Int | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.Int).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * By default, dictionaries are not ordered, or the order does not have\n * semantic meaning. In some statistical, applications, dictionary-encoding\n * is used to represent ordered categorical data, and we provide a way to\n * preserve that metadata here\n *\n * @returns boolean\n */\n isOrdered(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDictionaryEncoding(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long id\n */\n static addId(builder: flatbuffers.Builder, id: flatbuffers.Long) {\n builder.addFieldInt64(0, id, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset indexTypeOffset\n */\n static addIndexType(builder: flatbuffers.Builder, indexTypeOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, indexTypeOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isOrdered\n */\n static addIsOrdered(builder: flatbuffers.Builder, isOrdered: boolean) {\n builder.addFieldInt8(2, +isOrdered, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDictionaryEncoding(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDictionaryEncoding(builder: flatbuffers.Builder, id: flatbuffers.Long, indexTypeOffset: flatbuffers.Offset, isOrdered: boolean): flatbuffers.Offset {\n DictionaryEncoding.startDictionaryEncoding(builder);\n DictionaryEncoding.addId(builder, id);\n DictionaryEncoding.addIndexType(builder, indexTypeOffset);\n DictionaryEncoding.addIsOrdered(builder, isOrdered);\n return DictionaryEncoding.endDictionaryEncoding(builder);\n }\n }\n}\n/**\n * ----------------------------------------------------------------------\n * A field represents a named column in a record / row batch or child of a\n * nested type.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Field {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Field\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Field {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Field= obj\n * @returns Field\n */\n static getRootAsField(bb: flatbuffers.ByteBuffer, obj?: Field): Field {\n return (obj || new Field).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Name is not required, in i.e. a List\n *\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n name(): string | null;\n name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n name(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * Whether or not this field can contain nulls. Should be true in general.\n *\n * @returns boolean\n */\n nullable(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.Type\n */\n typeType(): org.apache.arrow.flatbuf.Type {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? /** */ (this.bb!.readUint8(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Type.NONE;\n }\n\n /**\n * This is the type of the decoded value if the field is dictionary encoded.\n *\n * @param flatbuffers.Table obj\n * @returns ?flatbuffers.Table\n */\n type(obj: T): T | null {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n }\n\n /**\n * Present only if the field is dictionary encoded.\n *\n * @param org.apache.arrow.flatbuf.DictionaryEncoding= obj\n * @returns org.apache.arrow.flatbuf.DictionaryEncoding|null\n */\n dictionary(obj?: org.apache.arrow.flatbuf.DictionaryEncoding): org.apache.arrow.flatbuf.DictionaryEncoding | null {\n let offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? (obj || new org.apache.arrow.flatbuf.DictionaryEncoding).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * children apply only to nested data types like Struct, List and Union. For\n * primitive types children will have length 0.\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.Field= obj\n * @returns org.apache.arrow.flatbuf.Field\n */\n children(index: number, obj?: org.apache.arrow.flatbuf.Field): org.apache.arrow.flatbuf.Field | null {\n let offset = this.bb!.__offset(this.bb_pos, 14);\n return offset ? (obj || new org.apache.arrow.flatbuf.Field).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n childrenLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 14);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * User-defined metadata\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.KeyValue= obj\n * @returns org.apache.arrow.flatbuf.KeyValue\n */\n customMetadata(index: number, obj?: org.apache.arrow.flatbuf.KeyValue): org.apache.arrow.flatbuf.KeyValue | null {\n let offset = this.bb!.__offset(this.bb_pos, 16);\n return offset ? (obj || new org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 16);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startField(builder: flatbuffers.Builder) {\n builder.startObject(7);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset nameOffset\n */\n static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset) {\n builder.addFieldOffset(0, nameOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean nullable\n */\n static addNullable(builder: flatbuffers.Builder, nullable: boolean) {\n builder.addFieldInt8(1, +nullable, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.Type typeType\n */\n static addTypeType(builder: flatbuffers.Builder, typeType: org.apache.arrow.flatbuf.Type) {\n builder.addFieldInt8(2, typeType, org.apache.arrow.flatbuf.Type.NONE);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset typeOffset\n */\n static addType(builder: flatbuffers.Builder, typeOffset: flatbuffers.Offset) {\n builder.addFieldOffset(3, typeOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dictionaryOffset\n */\n static addDictionary(builder: flatbuffers.Builder, dictionaryOffset: flatbuffers.Offset) {\n builder.addFieldOffset(4, dictionaryOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset childrenOffset\n */\n static addChildren(builder: flatbuffers.Builder, childrenOffset: flatbuffers.Offset) {\n builder.addFieldOffset(5, childrenOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createChildrenVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startChildrenVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(6, customMetadataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endField(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createField(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset, nullable: boolean, typeType: org.apache.arrow.flatbuf.Type, typeOffset: flatbuffers.Offset, dictionaryOffset: flatbuffers.Offset, childrenOffset: flatbuffers.Offset, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {\n Field.startField(builder);\n Field.addName(builder, nameOffset);\n Field.addNullable(builder, nullable);\n Field.addTypeType(builder, typeType);\n Field.addType(builder, typeOffset);\n Field.addDictionary(builder, dictionaryOffset);\n Field.addChildren(builder, childrenOffset);\n Field.addCustomMetadata(builder, customMetadataOffset);\n return Field.endField(builder);\n }\n }\n}\n/**\n * ----------------------------------------------------------------------\n * A Buffer represents a single contiguous memory segment\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Buffer {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Buffer\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Buffer {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * The relative offset into the shared memory page where the bytes for this\n * buffer starts\n *\n * @returns flatbuffers.Long\n */\n offset(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos);\n }\n\n /**\n * The absolute length (in bytes) of the memory buffer. The memory is found\n * from offset (inclusive) to offset + length (non-inclusive).\n *\n * @returns flatbuffers.Long\n */\n length(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos + 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long offset\n * @param flatbuffers.Long length\n * @returns flatbuffers.Offset\n */\n static createBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Long, length: flatbuffers.Long): flatbuffers.Offset {\n builder.prep(8, 16);\n builder.writeInt64(length);\n builder.writeInt64(offset);\n return builder.offset();\n }\n\n }\n}\n/**\n * ----------------------------------------------------------------------\n * A Schema describes the columns in a row batch\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Schema {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Schema\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Schema {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Schema= obj\n * @returns Schema\n */\n static getRootAsSchema(bb: flatbuffers.ByteBuffer, obj?: Schema): Schema {\n return (obj || new Schema).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * endianness of the buffer\n * it is Little Endian by default\n * if endianness doesn't match the underlying system then the vectors need to be converted\n *\n * @returns org.apache.arrow.flatbuf.Endianness\n */\n endianness(): org.apache.arrow.flatbuf.Endianness {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Endianness.Little;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.Field= obj\n * @returns org.apache.arrow.flatbuf.Field\n */\n fields(index: number, obj?: org.apache.arrow.flatbuf.Field): org.apache.arrow.flatbuf.Field | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.Field).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n fieldsLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.KeyValue= obj\n * @returns org.apache.arrow.flatbuf.KeyValue\n */\n customMetadata(index: number, obj?: org.apache.arrow.flatbuf.KeyValue): org.apache.arrow.flatbuf.KeyValue | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startSchema(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.Endianness endianness\n */\n static addEndianness(builder: flatbuffers.Builder, endianness: org.apache.arrow.flatbuf.Endianness) {\n builder.addFieldInt16(0, endianness, org.apache.arrow.flatbuf.Endianness.Little);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset fieldsOffset\n */\n static addFields(builder: flatbuffers.Builder, fieldsOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, fieldsOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createFieldsVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startFieldsVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, customMetadataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endSchema(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishSchemaBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset);\n }\n\n static createSchema(builder: flatbuffers.Builder, endianness: org.apache.arrow.flatbuf.Endianness, fieldsOffset: flatbuffers.Offset, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {\n Schema.startSchema(builder);\n Schema.addEndianness(builder, endianness);\n Schema.addFields(builder, fieldsOffset);\n Schema.addCustomMetadata(builder, customMetadataOffset);\n return Schema.endSchema(builder);\n }\n }\n}\n","// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as NS7624605610262437867 from './Schema';\nexport namespace org.apache.arrow.flatbuf {\n export import Schema = NS7624605610262437867.org.apache.arrow.flatbuf.Schema;\n}\n/**\n * ----------------------------------------------------------------------\n * The root Message type\n * This union enables us to easily send different message types without\n * redundant storage, and in the future we can easily add new message types.\n *\n * Arrow implementations do not need to implement all of the message types,\n * which may include experimental metadata types. For maximum compatibility,\n * it is best to send data using RecordBatch\n *\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum MessageHeader {\n NONE = 0,\n Schema = 1,\n DictionaryBatch = 2,\n RecordBatch = 3,\n Tensor = 4,\n SparseTensor = 5\n }\n}\n\n/**\n * ----------------------------------------------------------------------\n * Data structures for describing a table row batch (a collection of\n * equal-length Arrow arrays)\n * Metadata about a field at some level of a nested type tree (but not\n * its children).\n *\n * For example, a List with values [[1, 2, 3], null, [4], [5, 6], null]\n * would have {length: 5, null_count: 2} for its List node, and {length: 6,\n * null_count: 0} for its Int16 node, as separate FieldNode structs\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FieldNode {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FieldNode\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FieldNode {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * The number of value slots in the Arrow array at this level of a nested\n * tree\n *\n * @returns flatbuffers.Long\n */\n length(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos);\n }\n\n /**\n * The number of observed nulls. Fields with null_count == 0 may choose not\n * to write their physical validity bitmap out as a materialized buffer,\n * instead setting the length of the bitmap buffer to 0.\n *\n * @returns flatbuffers.Long\n */\n nullCount(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos + 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long length\n * @param flatbuffers.Long null_count\n * @returns flatbuffers.Offset\n */\n static createFieldNode(builder: flatbuffers.Builder, length: flatbuffers.Long, null_count: flatbuffers.Long): flatbuffers.Offset {\n builder.prep(8, 16);\n builder.writeInt64(null_count);\n builder.writeInt64(length);\n return builder.offset();\n }\n\n }\n}\n/**\n * A data header describing the shared memory layout of a \"record\" or \"row\"\n * batch. Some systems call this a \"row batch\" internally and others a \"record\n * batch\".\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class RecordBatch {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns RecordBatch\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): RecordBatch {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param RecordBatch= obj\n * @returns RecordBatch\n */\n static getRootAsRecordBatch(bb: flatbuffers.ByteBuffer, obj?: RecordBatch): RecordBatch {\n return (obj || new RecordBatch).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * number of records / rows. The arrays in the batch should all have this\n * length\n *\n * @returns flatbuffers.Long\n */\n length(): flatbuffers.Long {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * Nodes correspond to the pre-ordered flattened logical schema\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.FieldNode= obj\n * @returns org.apache.arrow.flatbuf.FieldNode\n */\n nodes(index: number, obj?: org.apache.arrow.flatbuf.FieldNode): org.apache.arrow.flatbuf.FieldNode | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.FieldNode).__init(this.bb!.__vector(this.bb_pos + offset) + index * 16, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n nodesLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * Buffers correspond to the pre-ordered flattened buffer tree\n *\n * The number of buffers appended to this list depends on the schema. For\n * example, most primitive arrays will have 2 buffers, 1 for the validity\n * bitmap and 1 for the values. For struct arrays, there will only be a\n * single buffer for the validity (nulls) bitmap\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.Buffer= obj\n * @returns org.apache.arrow.flatbuf.Buffer\n */\n buffers(index: number, obj?: NS7624605610262437867.org.apache.arrow.flatbuf.Buffer): NS7624605610262437867.org.apache.arrow.flatbuf.Buffer | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new NS7624605610262437867.org.apache.arrow.flatbuf.Buffer).__init(this.bb!.__vector(this.bb_pos + offset) + index * 16, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n buffersLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startRecordBatch(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long length\n */\n static addLength(builder: flatbuffers.Builder, length: flatbuffers.Long) {\n builder.addFieldInt64(0, length, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset nodesOffset\n */\n static addNodes(builder: flatbuffers.Builder, nodesOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, nodesOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startNodesVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(16, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset buffersOffset\n */\n static addBuffers(builder: flatbuffers.Builder, buffersOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, buffersOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startBuffersVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(16, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endRecordBatch(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createRecordBatch(builder: flatbuffers.Builder, length: flatbuffers.Long, nodesOffset: flatbuffers.Offset, buffersOffset: flatbuffers.Offset): flatbuffers.Offset {\n RecordBatch.startRecordBatch(builder);\n RecordBatch.addLength(builder, length);\n RecordBatch.addNodes(builder, nodesOffset);\n RecordBatch.addBuffers(builder, buffersOffset);\n return RecordBatch.endRecordBatch(builder);\n }\n }\n}\n/**\n * For sending dictionary encoding information. Any Field can be\n * dictionary-encoded, but in this case none of its children may be\n * dictionary-encoded.\n * There is one vector / column per dictionary, but that vector / column\n * may be spread across multiple dictionary batches by using the isDelta\n * flag\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class DictionaryBatch {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns DictionaryBatch\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): DictionaryBatch {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param DictionaryBatch= obj\n * @returns DictionaryBatch\n */\n static getRootAsDictionaryBatch(bb: flatbuffers.ByteBuffer, obj?: DictionaryBatch): DictionaryBatch {\n return (obj || new DictionaryBatch).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns flatbuffers.Long\n */\n id(): flatbuffers.Long {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * @param org.apache.arrow.flatbuf.RecordBatch= obj\n * @returns org.apache.arrow.flatbuf.RecordBatch|null\n */\n data(obj?: org.apache.arrow.flatbuf.RecordBatch): org.apache.arrow.flatbuf.RecordBatch | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.RecordBatch).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * If isDelta is true the values in the dictionary are to be appended to a\n * dictionary with the indicated id\n *\n * @returns boolean\n */\n isDelta(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDictionaryBatch(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long id\n */\n static addId(builder: flatbuffers.Builder, id: flatbuffers.Long) {\n builder.addFieldInt64(0, id, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dataOffset\n */\n static addData(builder: flatbuffers.Builder, dataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, dataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isDelta\n */\n static addIsDelta(builder: flatbuffers.Builder, isDelta: boolean) {\n builder.addFieldInt8(2, +isDelta, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDictionaryBatch(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDictionaryBatch(builder: flatbuffers.Builder, id: flatbuffers.Long, dataOffset: flatbuffers.Offset, isDelta: boolean): flatbuffers.Offset {\n DictionaryBatch.startDictionaryBatch(builder);\n DictionaryBatch.addId(builder, id);\n DictionaryBatch.addData(builder, dataOffset);\n DictionaryBatch.addIsDelta(builder, isDelta);\n return DictionaryBatch.endDictionaryBatch(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Message {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Message\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Message {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Message= obj\n * @returns Message\n */\n static getRootAsMessage(bb: flatbuffers.ByteBuffer, obj?: Message): Message {\n return (obj || new Message).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.MetadataVersion\n */\n version(): NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1;\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.MessageHeader\n */\n headerType(): org.apache.arrow.flatbuf.MessageHeader {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? /** */ (this.bb!.readUint8(this.bb_pos + offset)) : org.apache.arrow.flatbuf.MessageHeader.NONE;\n }\n\n /**\n * @param flatbuffers.Table obj\n * @returns ?flatbuffers.Table\n */\n header(obj: T): T | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n }\n\n /**\n * @returns flatbuffers.Long\n */\n bodyLength(): flatbuffers.Long {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.KeyValue= obj\n * @returns org.apache.arrow.flatbuf.KeyValue\n */\n customMetadata(index: number, obj?: NS7624605610262437867.org.apache.arrow.flatbuf.KeyValue): NS7624605610262437867.org.apache.arrow.flatbuf.KeyValue | null {\n let offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? (obj || new NS7624605610262437867.org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startMessage(builder: flatbuffers.Builder) {\n builder.startObject(5);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.MetadataVersion version\n */\n static addVersion(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion) {\n builder.addFieldInt16(0, version, NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.MessageHeader headerType\n */\n static addHeaderType(builder: flatbuffers.Builder, headerType: org.apache.arrow.flatbuf.MessageHeader) {\n builder.addFieldInt8(1, headerType, org.apache.arrow.flatbuf.MessageHeader.NONE);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset headerOffset\n */\n static addHeader(builder: flatbuffers.Builder, headerOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, headerOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long bodyLength\n */\n static addBodyLength(builder: flatbuffers.Builder, bodyLength: flatbuffers.Long) {\n builder.addFieldInt64(3, bodyLength, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(4, customMetadataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endMessage(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishMessageBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset);\n }\n\n static createMessage(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion, headerType: org.apache.arrow.flatbuf.MessageHeader, headerOffset: flatbuffers.Offset, bodyLength: flatbuffers.Long, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {\n Message.startMessage(builder);\n Message.addVersion(builder, version);\n Message.addHeaderType(builder, headerType);\n Message.addHeader(builder, headerOffset);\n Message.addBodyLength(builder, bodyLength);\n Message.addCustomMetadata(builder, customMetadataOffset);\n return Message.endMessage(builder);\n }\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport * as Schema_ from './fb/Schema';\nimport * as Message_ from './fb/Message';\n\nexport import ArrowType = Schema_.org.apache.arrow.flatbuf.Type;\nexport import DateUnit = Schema_.org.apache.arrow.flatbuf.DateUnit;\nexport import TimeUnit = Schema_.org.apache.arrow.flatbuf.TimeUnit;\nexport import Precision = Schema_.org.apache.arrow.flatbuf.Precision;\nexport import UnionMode = Schema_.org.apache.arrow.flatbuf.UnionMode;\nexport import IntervalUnit = Schema_.org.apache.arrow.flatbuf.IntervalUnit;\nexport import MessageHeader = Message_.org.apache.arrow.flatbuf.MessageHeader;\nexport import MetadataVersion = Schema_.org.apache.arrow.flatbuf.MetadataVersion;\n\n/**\n * Main data type enumeration.\n *\n * Data types in this library are all *logical*. They can be expressed as\n * either a primitive physical type (bytes or bits of some fixed size), a\n * nested type consisting of other data types, or another data type (e.g. a\n * timestamp encoded as an int64).\n *\n * **Note**: Only enum values 0-17 (NONE through Map) are written to an Arrow\n * IPC payload.\n *\n * The rest of the values are specified here so TypeScript can narrow the type\n * signatures further beyond the base Arrow Types. The Arrow DataTypes include\n * metadata like `bitWidth` that impact the type signatures of the values we\n * accept and return.\n *\n * For example, the `Int8Vector` reads 1-byte numbers from an `Int8Array`, an\n * `Int32Vector` reads a 4-byte number from an `Int32Array`, and an `Int64Vector`\n * reads a pair of 4-byte lo, hi 32-bit integers as a zero-copy slice from the\n * underlying `Int32Array`.\n *\n * Library consumers benefit by knowing the narrowest type, since we can ensure\n * the types across all public methods are propagated, and never bail to `any`.\n * These values are _never_ used at runtime, and they will _never_ be written\n * to the flatbuffers metadata of serialized Arrow IPC payloads.\n */\nexport enum Type {\n /** The default placeholder type */\n NONE = 0,\n /** A NULL type having no physical storage */\n Null = 1,\n /** Signed or unsigned 8, 16, 32, or 64-bit little-endian integer */\n Int = 2,\n /** 2, 4, or 8-byte floating point value */\n Float = 3,\n /** Variable-length bytes (no guarantee of UTF8-ness) */\n Binary = 4,\n /** UTF8 variable-length string as List */\n Utf8 = 5,\n /** Boolean as 1 bit, LSB bit-packed ordering */\n Bool = 6,\n /** Precision-and-scale-based decimal type. Storage type depends on the parameters. */\n Decimal = 7,\n /** int32_t days or int64_t milliseconds since the UNIX epoch */\n Date = 8,\n /** Time as signed 32 or 64-bit integer, representing either seconds, milliseconds, microseconds, or nanoseconds since midnight since midnight */\n Time = 9,\n /** Exact timestamp encoded with int64 since UNIX epoch (Default unit millisecond) */\n Timestamp = 10,\n /** YEAR_MONTH or DAY_TIME interval in SQL style */\n Interval = 11,\n /** A list of some logical data type */\n List = 12,\n /** Struct of logical types */\n Struct = 13,\n /** Union of logical types */\n Union = 14,\n /** Fixed-size binary. Each value occupies the same number of bytes */\n FixedSizeBinary = 15,\n /** Fixed-size list. Each value occupies the same number of bytes */\n FixedSizeList = 16,\n /** Map of named logical types */\n Map = 17,\n\n /** Dictionary aka Category type */\n Dictionary = -1,\n Int8 = -2,\n Int16 = -3,\n Int32 = -4,\n Int64 = -5,\n Uint8 = -6,\n Uint16 = -7,\n Uint32 = -8,\n Uint64 = -9,\n Float16 = -10,\n Float32 = -11,\n Float64 = -12,\n DateDay = -13,\n DateMillisecond = -14,\n TimestampSecond = -15,\n TimestampMillisecond = -16,\n TimestampMicrosecond = -17,\n TimestampNanosecond = -18,\n TimeSecond = -19,\n TimeMillisecond = -20,\n TimeMicrosecond = -21,\n TimeNanosecond = -22,\n DenseUnion = -23,\n SparseUnion = -24,\n IntervalDayTime = -25,\n IntervalYearMonth = -26,\n}\n\nexport enum BufferType {\n /**\n * used in List type, Dense Union and variable length primitive types (String, Binary)\n */\n OFFSET = 0,\n\n /**\n * actual data, either wixed width primitive types in slots or variable width delimited by an OFFSET vector\n */\n DATA = 1,\n\n /**\n * Bit vector indicating if each value is null\n */\n VALIDITY = 2,\n\n /**\n * Type vector used in Union type\n */\n TYPE = 3\n }\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */\nexport function getBool(_data: any, _index: number, byte: number, bit: number) {\n return (byte & 1 << bit) !== 0;\n}\n\n/** @ignore */\nexport function getBit(_data: any, _index: number, byte: number, bit: number): 0 | 1 {\n return (byte & 1 << bit) >> bit as (0 | 1);\n}\n\n/** @ignore */\nexport function setBool(bytes: Uint8Array, index: number, value: any) {\n return value ?\n !!(bytes[index >> 3] |= (1 << (index % 8))) || true :\n !(bytes[index >> 3] &= ~(1 << (index % 8))) && false ;\n}\n\n/** @ignore */\nexport function truncateBitmap(offset: number, length: number, bitmap: Uint8Array) {\n const alignedSize = (bitmap.byteLength + 7) & ~7;\n if (offset > 0 || bitmap.byteLength < alignedSize) {\n const bytes = new Uint8Array(alignedSize);\n // If the offset is a multiple of 8 bits, it's safe to slice the bitmap\n bytes.set(offset % 8 === 0 ? bitmap.subarray(offset >> 3) :\n // Otherwise iterate each bit from the offset and return a new one\n packBools(iterateBits(bitmap, offset, length, null, getBool)).subarray(0, alignedSize));\n return bytes;\n }\n return bitmap;\n}\n\n/** @ignore */\nexport function packBools(values: Iterable) {\n let xs: number[] = [];\n let i = 0, bit = 0, byte = 0;\n for (const value of values) {\n value && (byte |= 1 << bit);\n if (++bit === 8) {\n xs[i++] = byte;\n byte = bit = 0;\n }\n }\n if (i === 0 || bit > 0) { xs[i++] = byte; }\n let b = new Uint8Array((xs.length + 7) & ~7);\n b.set(xs);\n return b;\n}\n\n/** @ignore */\nexport function* iterateBits(bytes: Uint8Array, begin: number, length: number, context: any,\n get: (context: any, index: number, byte: number, bit: number) => T) {\n let bit = begin % 8;\n let byteIndex = begin >> 3;\n let index = 0, remaining = length;\n for (; remaining > 0; bit = 0) {\n let byte = bytes[byteIndex++];\n do {\n yield get(context, index++, byte, bit);\n } while (--remaining > 0 && ++bit < 8);\n }\n}\n\n/**\n * Compute the population count (the number of bits set to 1) for a range of bits in a Uint8Array.\n * @param vector The Uint8Array of bits for which to compute the population count.\n * @param lhs The range's left-hand side (or start) bit\n * @param rhs The range's right-hand side (or end) bit\n */\n/** @ignore */\nexport function popcnt_bit_range(data: Uint8Array, lhs: number, rhs: number): number {\n if (rhs - lhs <= 0) { return 0; }\n // If the bit range is less than one byte, sum the 1 bits in the bit range\n if (rhs - lhs < 8) {\n let sum = 0;\n for (const bit of iterateBits(data, lhs, rhs - lhs, data, getBit)) {\n sum += bit;\n }\n return sum;\n }\n // Get the next lowest multiple of 8 from the right hand side\n const rhsInside = rhs >> 3 << 3;\n // Get the next highest multiple of 8 from the left hand side\n const lhsInside = lhs + (lhs % 8 === 0 ? 0 : 8 - lhs % 8);\n return (\n // Get the popcnt of bits between the left hand side, and the next highest multiple of 8\n popcnt_bit_range(data, lhs, lhsInside) +\n // Get the popcnt of bits between the right hand side, and the next lowest multiple of 8\n popcnt_bit_range(data, rhsInside, rhs) +\n // Get the popcnt of all bits between the left and right hand sides' multiples of 8\n popcnt_array(data, lhsInside >> 3, (rhsInside - lhsInside) >> 3)\n );\n}\n\n/** @ignore */\nexport function popcnt_array(arr: ArrayBufferView, byteOffset?: number, byteLength?: number) {\n let cnt = 0, pos = byteOffset! | 0;\n const view = new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n const len = byteLength === void 0 ? arr.byteLength : pos + byteLength;\n while (len - pos >= 4) {\n cnt += popcnt_uint32(view.getUint32(pos));\n pos += 4;\n }\n while (len - pos >= 2) {\n cnt += popcnt_uint32(view.getUint16(pos));\n pos += 2;\n }\n while (len - pos >= 1) {\n cnt += popcnt_uint32(view.getUint8(pos));\n pos += 1;\n }\n return cnt;\n}\n\n/** @ignore */\nexport function popcnt_uint32(uint32: number): number {\n let i = uint32 | 0;\n i = i - ((i >>> 1) & 0x55555555);\n i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);\n return (((i + (i >>> 4)) & 0x0F0F0F0F) * 0x01010101) >>> 24;\n}\n","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Vector } from './vector';\nimport { Type, Precision, DateUnit, TimeUnit, IntervalUnit, UnionMode } from './enum';\nimport { DataType, Float, Int, Date_, Interval, Time, Timestamp, Union, } from './type';\n\nexport abstract class Visitor {\n public visitMany(nodes: any[], ...args: any[][]) {\n return nodes.map((node, i) => this.visit(node, ...args.map((x) => x[i])));\n }\n public visit(...args: any[]) {\n return this.getVisitFn(args[0], false).apply(this, args);\n }\n public getVisitFn(node: any, throwIfNotFound = true) {\n return getVisitFn(this, node, throwIfNotFound);\n }\n public visitNull (_node: any, ..._args: any[]): any { return null; }\n public visitBool (_node: any, ..._args: any[]): any { return null; }\n public visitInt (_node: any, ..._args: any[]): any { return null; }\n public visitFloat (_node: any, ..._args: any[]): any { return null; }\n public visitUtf8 (_node: any, ..._args: any[]): any { return null; }\n public visitBinary (_node: any, ..._args: any[]): any { return null; }\n public visitFixedSizeBinary (_node: any, ..._args: any[]): any { return null; }\n public visitDate (_node: any, ..._args: any[]): any { return null; }\n public visitTimestamp (_node: any, ..._args: any[]): any { return null; }\n public visitTime (_node: any, ..._args: any[]): any { return null; }\n public visitDecimal (_node: any, ..._args: any[]): any { return null; }\n public visitList (_node: any, ..._args: any[]): any { return null; }\n public visitStruct (_node: any, ..._args: any[]): any { return null; }\n public visitUnion (_node: any, ..._args: any[]): any { return null; }\n public visitDictionary (_node: any, ..._args: any[]): any { return null; }\n public visitInterval (_node: any, ..._args: any[]): any { return null; }\n public visitFixedSizeList (_node: any, ..._args: any[]): any { return null; }\n public visitMap (_node: any, ..._args: any[]): any { return null; }\n}\n\n/** @ignore */\nfunction getVisitFn(visitor: Visitor, node: any, throwIfNotFound = true) {\n let fn: any = null;\n let dtype: T['TType'] = Type.NONE;\n // tslint:disable\n if (node instanceof Data ) { dtype = inferDType(node.type as T); }\n else if (node instanceof Vector ) { dtype = inferDType(node.type as T); }\n else if (node instanceof DataType) { dtype = inferDType(node as T); }\n else if (typeof (dtype = node) !== 'number') { dtype = Type[node] as any as T['TType']; }\n\n switch (dtype) {\n case Type.Null: fn = visitor.visitNull; break;\n case Type.Bool: fn = visitor.visitBool; break;\n case Type.Int: fn = visitor.visitInt; break;\n case Type.Int8: fn = visitor.visitInt8 || visitor.visitInt; break;\n case Type.Int16: fn = visitor.visitInt16 || visitor.visitInt; break;\n case Type.Int32: fn = visitor.visitInt32 || visitor.visitInt; break;\n case Type.Int64: fn = visitor.visitInt64 || visitor.visitInt; break;\n case Type.Uint8: fn = visitor.visitUint8 || visitor.visitInt; break;\n case Type.Uint16: fn = visitor.visitUint16 || visitor.visitInt; break;\n case Type.Uint32: fn = visitor.visitUint32 || visitor.visitInt; break;\n case Type.Uint64: fn = visitor.visitUint64 || visitor.visitInt; break;\n case Type.Float: fn = visitor.visitFloat; break;\n case Type.Float16: fn = visitor.visitFloat16 || visitor.visitFloat; break;\n case Type.Float32: fn = visitor.visitFloat32 || visitor.visitFloat; break;\n case Type.Float64: fn = visitor.visitFloat64 || visitor.visitFloat; break;\n case Type.Utf8: fn = visitor.visitUtf8; break;\n case Type.Binary: fn = visitor.visitBinary; break;\n case Type.FixedSizeBinary: fn = visitor.visitFixedSizeBinary; break;\n case Type.Date: fn = visitor.visitDate; break;\n case Type.DateDay: fn = visitor.visitDateDay || visitor.visitDate; break;\n case Type.DateMillisecond: fn = visitor.visitDateMillisecond || visitor.visitDate; break;\n case Type.Timestamp: fn = visitor.visitTimestamp; break;\n case Type.TimestampSecond: fn = visitor.visitTimestampSecond || visitor.visitTimestamp; break;\n case Type.TimestampMillisecond: fn = visitor.visitTimestampMillisecond || visitor.visitTimestamp; break;\n case Type.TimestampMicrosecond: fn = visitor.visitTimestampMicrosecond || visitor.visitTimestamp; break;\n case Type.TimestampNanosecond: fn = visitor.visitTimestampNanosecond || visitor.visitTimestamp; break;\n case Type.Time: fn = visitor.visitTime; break;\n case Type.TimeSecond: fn = visitor.visitTimeSecond || visitor.visitTime; break;\n case Type.TimeMillisecond: fn = visitor.visitTimeMillisecond || visitor.visitTime; break;\n case Type.TimeMicrosecond: fn = visitor.visitTimeMicrosecond || visitor.visitTime; break;\n case Type.TimeNanosecond: fn = visitor.visitTimeNanosecond || visitor.visitTime; break;\n case Type.Decimal: fn = visitor.visitDecimal; break;\n case Type.List: fn = visitor.visitList; break;\n case Type.Struct: fn = visitor.visitStruct; break;\n case Type.Union: fn = visitor.visitUnion; break;\n case Type.DenseUnion: fn = visitor.visitDenseUnion || visitor.visitUnion; break;\n case Type.SparseUnion: fn = visitor.visitSparseUnion || visitor.visitUnion; break;\n case Type.Dictionary: fn = visitor.visitDictionary; break;\n case Type.Interval: fn = visitor.visitInterval; break;\n case Type.IntervalDayTime: fn = visitor.visitIntervalDayTime || visitor.visitInterval; break;\n case Type.IntervalYearMonth: fn = visitor.visitIntervalYearMonth || visitor.visitInterval; break;\n case Type.FixedSizeList: fn = visitor.visitFixedSizeList; break;\n case Type.Map: fn = visitor.visitMap; break;\n }\n if (typeof fn === 'function') return fn;\n if (!throwIfNotFound) return () => null;\n throw new Error(`Unrecognized type '${Type[dtype]}'`);\n}\n\n/** @ignore */\nfunction inferDType(type: T): Type {\n switch (type.typeId) {\n case Type.Null: return Type.Null;\n case Type.Int:\n const { bitWidth, isSigned } = (type as any as Int);\n switch (bitWidth) {\n case 8: return isSigned ? Type.Int8 : Type.Uint8 ;\n case 16: return isSigned ? Type.Int16 : Type.Uint16;\n case 32: return isSigned ? Type.Int32 : Type.Uint32;\n case 64: return isSigned ? Type.Int64 : Type.Uint64;\n }\n return Type.Int;\n case Type.Float:\n switch((type as any as Float).precision) {\n case Precision.HALF: return Type.Float16;\n case Precision.SINGLE: return Type.Float32;\n case Precision.DOUBLE: return Type.Float64;\n }\n return Type.Float;\n case Type.Binary: return Type.Binary;\n case Type.Utf8: return Type.Utf8;\n case Type.Bool: return Type.Bool;\n case Type.Decimal: return Type.Decimal;\n case Type.Time:\n switch ((type as any as Time).unit) {\n case TimeUnit.SECOND: return Type.TimeSecond;\n case TimeUnit.MILLISECOND: return Type.TimeMillisecond;\n case TimeUnit.MICROSECOND: return Type.TimeMicrosecond;\n case TimeUnit.NANOSECOND: return Type.TimeNanosecond;\n }\n return Type.Time;\n case Type.Timestamp:\n switch ((type as any as Timestamp).unit) {\n case TimeUnit.SECOND: return Type.TimestampSecond;\n case TimeUnit.MILLISECOND: return Type.TimestampMillisecond;\n case TimeUnit.MICROSECOND: return Type.TimestampMicrosecond;\n case TimeUnit.NANOSECOND: return Type.TimestampNanosecond;\n }\n return Type.Timestamp;\n case Type.Date:\n switch ((type as any as Date_).unit) {\n case DateUnit.DAY: return Type.DateDay;\n case DateUnit.MILLISECOND: return Type.DateMillisecond;\n }\n return Type.Date;\n case Type.Interval:\n switch ((type as any as Interval).unit) {\n case IntervalUnit.DAY_TIME: return Type.IntervalDayTime;\n case IntervalUnit.YEAR_MONTH: return Type.IntervalYearMonth;\n }\n return Type.Interval;\n case Type.Map: return Type.Map;\n case Type.List: return Type.List;\n case Type.Struct: return Type.Struct;\n case Type.Union:\n switch ((type as any as Union).mode) {\n case UnionMode.Dense: return Type.DenseUnion;\n case UnionMode.Sparse: return Type.SparseUnion;\n }\n return Type.Union;\n case Type.FixedSizeBinary: return Type.FixedSizeBinary;\n case Type.FixedSizeList: return Type.FixedSizeList;\n case Type.Dictionary: return Type.Dictionary;\n }\n throw new Error(`Unrecognized type '${Type[type.typeId]}'`);\n}\n\nexport interface Visitor {\n visitNull (node: any, ...args: any[]): any;\n visitBool (node: any, ...args: any[]): any;\n visitInt (node: any, ...args: any[]): any;\n visitInt8? (node: any, ...args: any[]): any;\n visitInt16? (node: any, ...args: any[]): any;\n visitInt32? (node: any, ...args: any[]): any;\n visitInt64? (node: any, ...args: any[]): any;\n visitUint8? (node: any, ...args: any[]): any;\n visitUint16? (node: any, ...args: any[]): any;\n visitUint32? (node: any, ...args: any[]): any;\n visitUint64? (node: any, ...args: any[]): any;\n visitFloat (node: any, ...args: any[]): any;\n visitFloat16? (node: any, ...args: any[]): any;\n visitFloat32? (node: any, ...args: any[]): any;\n visitFloat64? (node: any, ...args: any[]): any;\n visitUtf8 (node: any, ...args: any[]): any;\n visitBinary (node: any, ...args: any[]): any;\n visitFixedSizeBinary (node: any, ...args: any[]): any;\n visitDate (node: any, ...args: any[]): any;\n visitDateDay? (node: any, ...args: any[]): any;\n visitDateMillisecond? (node: any, ...args: any[]): any;\n visitTimestamp (node: any, ...args: any[]): any;\n visitTimestampSecond? (node: any, ...args: any[]): any;\n visitTimestampMillisecond? (node: any, ...args: any[]): any;\n visitTimestampMicrosecond? (node: any, ...args: any[]): any;\n visitTimestampNanosecond? (node: any, ...args: any[]): any;\n visitTime (node: any, ...args: any[]): any;\n visitTimeSecond? (node: any, ...args: any[]): any;\n visitTimeMillisecond? (node: any, ...args: any[]): any;\n visitTimeMicrosecond? (node: any, ...args: any[]): any;\n visitTimeNanosecond? (node: any, ...args: any[]): any;\n visitDecimal (node: any, ...args: any[]): any;\n visitList (node: any, ...args: any[]): any;\n visitStruct (node: any, ...args: any[]): any;\n visitUnion (node: any, ...args: any[]): any;\n visitDenseUnion? (node: any, ...args: any[]): any;\n visitSparseUnion? (node: any, ...args: any[]): any;\n visitDictionary (node: any, ...args: any[]): any;\n visitInterval (node: any, ...args: any[]): any;\n visitIntervalDayTime? (node: any, ...args: any[]): any;\n visitIntervalYearMonth? (node: any, ...args: any[]): any;\n visitFixedSizeList (node: any, ...args: any[]): any;\n visitMap (node: any, ...args: any[]): any;\n}\n\n// Add these here so they're picked up by the externs creator\n// in the build, and closure-compiler doesn't minify them away\n(Visitor.prototype as any).visitInt8 = null;\n(Visitor.prototype as any).visitInt16 = null;\n(Visitor.prototype as any).visitInt32 = null;\n(Visitor.prototype as any).visitInt64 = null;\n(Visitor.prototype as any).visitUint8 = null;\n(Visitor.prototype as any).visitUint16 = null;\n(Visitor.prototype as any).visitUint32 = null;\n(Visitor.prototype as any).visitUint64 = null;\n(Visitor.prototype as any).visitFloat16 = null;\n(Visitor.prototype as any).visitFloat32 = null;\n(Visitor.prototype as any).visitFloat64 = null;\n(Visitor.prototype as any).visitDateDay = null;\n(Visitor.prototype as any).visitDateMillisecond = null;\n(Visitor.prototype as any).visitTimestampSecond = null;\n(Visitor.prototype as any).visitTimestampMillisecond = null;\n(Visitor.prototype as any).visitTimestampMicrosecond = null;\n(Visitor.prototype as any).visitTimestampNanosecond = null;\n(Visitor.prototype as any).visitTimeSecond = null;\n(Visitor.prototype as any).visitTimeMillisecond = null;\n(Visitor.prototype as any).visitTimeMicrosecond = null;\n(Visitor.prototype as any).visitTimeNanosecond = null;\n(Visitor.prototype as any).visitDenseUnion = null;\n(Visitor.prototype as any).visitSparseUnion = null;\n(Visitor.prototype as any).visitIntervalDayTime = null;\n(Visitor.prototype as any).visitIntervalYearMonth = null;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { Schema, Field } from '../schema';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface TypeComparator extends Visitor {\n visit(type: T, other?: DataType | null): other is T;\n visitMany(nodes: T[], others?: DataType[] | null): boolean[];\n getVisitFn(node: VectorType | Data | T): (other?: DataType | null) => other is T;\n visitNull (type: T, other?: DataType | null): other is T;\n visitBool (type: T, other?: DataType | null): other is T;\n visitInt (type: T, other?: DataType | null): other is T;\n visitInt8 (type: T, other?: DataType | null): other is T;\n visitInt16 (type: T, other?: DataType | null): other is T;\n visitInt32 (type: T, other?: DataType | null): other is T;\n visitInt64 (type: T, other?: DataType | null): other is T;\n visitUint8 (type: T, other?: DataType | null): other is T;\n visitUint16 (type: T, other?: DataType | null): other is T;\n visitUint32 (type: T, other?: DataType | null): other is T;\n visitUint64 (type: T, other?: DataType | null): other is T;\n visitFloat (type: T, other?: DataType | null): other is T;\n visitFloat16 (type: T, other?: DataType | null): other is T;\n visitFloat32 (type: T, other?: DataType | null): other is T;\n visitFloat64 (type: T, other?: DataType | null): other is T;\n visitUtf8 (type: T, other?: DataType | null): other is T;\n visitBinary (type: T, other?: DataType | null): other is T;\n visitFixedSizeBinary (type: T, other?: DataType | null): other is T;\n visitDate (type: T, other?: DataType | null): other is T;\n visitDateDay (type: T, other?: DataType | null): other is T;\n visitDateMillisecond (type: T, other?: DataType | null): other is T;\n visitTimestamp (type: T, other?: DataType | null): other is T;\n visitTimestampSecond (type: T, other?: DataType | null): other is T;\n visitTimestampMillisecond (type: T, other?: DataType | null): other is T;\n visitTimestampMicrosecond (type: T, other?: DataType | null): other is T;\n visitTimestampNanosecond (type: T, other?: DataType | null): other is T;\n visitTime (type: T, other?: DataType | null): other is T;\n visitTimeSecond (type: T, other?: DataType | null): other is T;\n visitTimeMillisecond (type: T, other?: DataType | null): other is T;\n visitTimeMicrosecond (type: T, other?: DataType | null): other is T;\n visitTimeNanosecond (type: T, other?: DataType | null): other is T;\n visitDecimal (type: T, other?: DataType | null): other is T;\n visitList (type: T, other?: DataType | null): other is T;\n visitStruct (type: T, other?: DataType | null): other is T;\n visitUnion (type: T, other?: DataType | null): other is T;\n visitDenseUnion (type: T, other?: DataType | null): other is T;\n visitSparseUnion (type: T, other?: DataType | null): other is T;\n visitDictionary (type: T, other?: DataType | null): other is T;\n visitInterval (type: T, other?: DataType | null): other is T;\n visitIntervalDayTime (type: T, other?: DataType | null): other is T;\n visitIntervalYearMonth (type: T, other?: DataType | null): other is T;\n visitFixedSizeList (type: T, other?: DataType | null): other is T;\n visitMap (type: T, other?: DataType | null): other is T;\n}\n\n/** @ignore */\nexport class TypeComparator extends Visitor {\n compareSchemas(schema: Schema, other?: Schema | null): other is Schema {\n return (schema === other) || (\n other instanceof schema.constructor &&\n instance.compareFields(schema.fields, other.fields)\n );\n }\n compareFields(fields: Field[], others?: Field[] | null): others is Field[] {\n return (fields === others) || (\n Array.isArray(fields) &&\n Array.isArray(others) &&\n fields.length === others.length &&\n fields.every((f, i) => instance.compareField(f, others[i]))\n );\n }\n compareField(field: Field, other?: Field | null): other is Field {\n return (field === other) || (\n other instanceof field.constructor &&\n field.name === other.name &&\n field.nullable === other.nullable &&\n instance.visit(field.type, other.type)\n );\n }\n}\n\nfunction compareConstructor(type: T, other?: DataType | null): other is T {\n return other instanceof type.constructor;\n}\n\nfunction compareAny(type: T, other?: DataType | null): other is T {\n return (type === other) || compareConstructor(type, other);\n}\n\nfunction compareInt(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.bitWidth === other.bitWidth &&\n type.isSigned === other.isSigned\n );\n}\n\nfunction compareFloat(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.precision === other.precision\n );\n}\n\nfunction compareFixedSizeBinary(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.byteWidth === other.byteWidth\n );\n}\n\nfunction compareDate(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit\n );\n}\n\nfunction compareTimestamp(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit &&\n type.timezone === other.timezone\n );\n}\n\nfunction compareTime(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit &&\n type.bitWidth === other.bitWidth\n );\n}\n\nfunction compareList(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareStruct(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareUnion(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.mode === other.mode &&\n type.typeIds.every((x, i) => x === other.typeIds[i]) &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareDictionary(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.id === other.id &&\n type.isOrdered === other.isOrdered &&\n instance.visit( type.indices, other.indices) &&\n instance.visit(type.dictionary, other.dictionary)\n );\n}\n\nfunction compareInterval(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit\n );\n}\n\nfunction compareFixedSizeList(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.listSize === other.listSize &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareMap(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.keysSorted === other.keysSorted &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nTypeComparator.prototype.visitNull = compareAny;\nTypeComparator.prototype.visitBool = compareAny;\nTypeComparator.prototype.visitInt = compareInt;\nTypeComparator.prototype.visitInt8 = compareInt;\nTypeComparator.prototype.visitInt16 = compareInt;\nTypeComparator.prototype.visitInt32 = compareInt;\nTypeComparator.prototype.visitInt64 = compareInt;\nTypeComparator.prototype.visitUint8 = compareInt;\nTypeComparator.prototype.visitUint16 = compareInt;\nTypeComparator.prototype.visitUint32 = compareInt;\nTypeComparator.prototype.visitUint64 = compareInt;\nTypeComparator.prototype.visitFloat = compareFloat;\nTypeComparator.prototype.visitFloat16 = compareFloat;\nTypeComparator.prototype.visitFloat32 = compareFloat;\nTypeComparator.prototype.visitFloat64 = compareFloat;\nTypeComparator.prototype.visitUtf8 = compareAny;\nTypeComparator.prototype.visitBinary = compareAny;\nTypeComparator.prototype.visitFixedSizeBinary = compareFixedSizeBinary;\nTypeComparator.prototype.visitDate = compareDate;\nTypeComparator.prototype.visitDateDay = compareDate;\nTypeComparator.prototype.visitDateMillisecond = compareDate;\nTypeComparator.prototype.visitTimestamp = compareTimestamp;\nTypeComparator.prototype.visitTimestampSecond = compareTimestamp;\nTypeComparator.prototype.visitTimestampMillisecond = compareTimestamp;\nTypeComparator.prototype.visitTimestampMicrosecond = compareTimestamp;\nTypeComparator.prototype.visitTimestampNanosecond = compareTimestamp;\nTypeComparator.prototype.visitTime = compareTime;\nTypeComparator.prototype.visitTimeSecond = compareTime;\nTypeComparator.prototype.visitTimeMillisecond = compareTime;\nTypeComparator.prototype.visitTimeMicrosecond = compareTime;\nTypeComparator.prototype.visitTimeNanosecond = compareTime;\nTypeComparator.prototype.visitDecimal = compareAny;\nTypeComparator.prototype.visitList = compareList;\nTypeComparator.prototype.visitStruct = compareStruct;\nTypeComparator.prototype.visitUnion = compareUnion;\nTypeComparator.prototype.visitDenseUnion = compareUnion;\nTypeComparator.prototype.visitSparseUnion = compareUnion;\nTypeComparator.prototype.visitDictionary = compareDictionary;\nTypeComparator.prototype.visitInterval = compareInterval;\nTypeComparator.prototype.visitIntervalDayTime = compareInterval;\nTypeComparator.prototype.visitIntervalYearMonth = compareInterval;\nTypeComparator.prototype.visitFixedSizeList = compareFixedSizeList;\nTypeComparator.prototype.visitMap = compareMap;\n\n/** @ignore */\nexport const instance = new TypeComparator();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/* tslint:disable:class-name */\n\nimport { Field } from './schema';\nimport { flatbuffers } from 'flatbuffers';\nimport { TypedArrayConstructor } from './interfaces';\nimport { VectorType as V, TypeToDataType } from './interfaces';\nimport { instance as comparer } from './visitor/typecomparator';\n\nimport Long = flatbuffers.Long;\nimport {\n Type,\n Precision, UnionMode,\n DateUnit, TimeUnit, IntervalUnit\n} from './enum';\n\n/** @ignore */\nexport type TimeBitWidth = 32 | 64;\n/** @ignore */\nexport type IntBitWidth = 8 | 16 | 32 | 64;\n/** @ignore */\nexport type IsSigned = { 'true': true; 'false': false };\n/** @ignore */\nexport type RowLike =\n ( Iterable<[string, T[keyof T]['TValue'] | null]> )\n & { [P in keyof T]: T[P]['TValue'] | null }\n & { get(key: K): T[K]['TValue'] | null; }\n & { set(key: K, val: T[K]['TValue'] | null): void; }\n ;\n\n/** @ignore */\nexport type MapLike =\n { [P in K['TValue']]: V['TValue'] | null }\n & ( Map )\n ;\n\nexport interface DataType {\n readonly TType: TType;\n readonly TArray: any;\n readonly TValue: any;\n readonly ArrayType: any;\n readonly children: Field[];\n}\n\n/**\n * An abstract base class for classes that encapsulate metadata about each of\n * the logical types that Arrow can represent.\n */\nexport abstract class DataType {\n\n // @ts-ignore\n public [Symbol.toStringTag]: string;\n\n /** @nocollapse */ static isNull (x: any): x is Null { return x && x.typeId === Type.Null; }\n /** @nocollapse */ static isInt (x: any): x is Int_ { return x && x.typeId === Type.Int; }\n /** @nocollapse */ static isFloat (x: any): x is Float { return x && x.typeId === Type.Float; }\n /** @nocollapse */ static isBinary (x: any): x is Binary { return x && x.typeId === Type.Binary; }\n /** @nocollapse */ static isUtf8 (x: any): x is Utf8 { return x && x.typeId === Type.Utf8; }\n /** @nocollapse */ static isBool (x: any): x is Bool { return x && x.typeId === Type.Bool; }\n /** @nocollapse */ static isDecimal (x: any): x is Decimal { return x && x.typeId === Type.Decimal; }\n /** @nocollapse */ static isDate (x: any): x is Date_ { return x && x.typeId === Type.Date; }\n /** @nocollapse */ static isTime (x: any): x is Time_ { return x && x.typeId === Type.Time; }\n /** @nocollapse */ static isTimestamp (x: any): x is Timestamp_ { return x && x.typeId === Type.Timestamp; }\n /** @nocollapse */ static isInterval (x: any): x is Interval_ { return x && x.typeId === Type.Interval; }\n /** @nocollapse */ static isList (x: any): x is List { return x && x.typeId === Type.List; }\n /** @nocollapse */ static isStruct (x: any): x is Struct { return x && x.typeId === Type.Struct; }\n /** @nocollapse */ static isUnion (x: any): x is Union_ { return x && x.typeId === Type.Union; }\n /** @nocollapse */ static isFixedSizeBinary (x: any): x is FixedSizeBinary { return x && x.typeId === Type.FixedSizeBinary; }\n /** @nocollapse */ static isFixedSizeList (x: any): x is FixedSizeList { return x && x.typeId === Type.FixedSizeList; }\n /** @nocollapse */ static isMap (x: any): x is Map_ { return x && x.typeId === Type.Map; }\n /** @nocollapse */ static isDictionary (x: any): x is Dictionary { return x && x.typeId === Type.Dictionary; }\n\n public get typeId(): TType { return Type.NONE; }\n public compareTo(other: DataType): other is TypeToDataType {\n return comparer.visit(this, other);\n }\n\n protected static [Symbol.toStringTag] = ((proto: DataType) => {\n ( proto).children = null;\n ( proto).ArrayType = Array;\n return proto[Symbol.toStringTag] = 'DataType';\n })(DataType.prototype);\n}\n\n/** @ignore */\nexport interface Null extends DataType { TArray: void; TValue: null; }\n/** @ignore */\nexport class Null extends DataType {\n public toString() { return `Null`; }\n public get typeId() { return Type.Null as Type.Null; }\n protected static [Symbol.toStringTag] = ((proto: Null) => {\n return proto[Symbol.toStringTag] = 'Null';\n })(Null.prototype);\n}\n\n/** @ignore */\ntype Ints = Type.Int | Type.Int8 | Type.Int16 | Type.Int32 | Type.Int64 | Type.Uint8 | Type.Uint16 | Type.Uint32 | Type.Uint64;\n/** @ignore */\ntype IType = {\n [Type.Int ]: { bitWidth: IntBitWidth; isSigned: true | false; TArray: IntArray; TValue: number | bigint | Int32Array | Uint32Array; };\n [Type.Int8 ]: { bitWidth: 8; isSigned: true; TArray: Int8Array; TValue: number; };\n [Type.Int16 ]: { bitWidth: 16; isSigned: true; TArray: Int16Array; TValue: number; };\n [Type.Int32 ]: { bitWidth: 32; isSigned: true; TArray: Int32Array; TValue: number; };\n [Type.Int64 ]: { bitWidth: 64; isSigned: true; TArray: Int32Array; TValue: bigint | Int32Array | Uint32Array; };\n [Type.Uint8 ]: { bitWidth: 8; isSigned: false; TArray: Uint8Array; TValue: number; };\n [Type.Uint16]: { bitWidth: 16; isSigned: false; TArray: Uint16Array; TValue: number; };\n [Type.Uint32]: { bitWidth: 32; isSigned: false; TArray: Uint32Array; TValue: number; };\n [Type.Uint64]: { bitWidth: 64; isSigned: false; TArray: Uint32Array; TValue: bigint | Int32Array | Uint32Array; };\n};\n\n/** @ignore */\ninterface Int_ extends DataType { TArray: IType[T]['TArray']; TValue: IType[T]['TValue']; }\n/** @ignore */\nclass Int_ extends DataType {\n constructor(public readonly isSigned: IType[T]['isSigned'],\n public readonly bitWidth: IType[T]['bitWidth']) {\n super();\n }\n public get typeId() { return Type.Int as T; }\n public get ArrayType(): TypedArrayConstructor {\n switch (this.bitWidth) {\n case 8: return this.isSigned ? Int8Array : Uint8Array;\n case 16: return this.isSigned ? Int16Array : Uint16Array;\n case 32: return this.isSigned ? Int32Array : Uint32Array;\n case 64: return this.isSigned ? Int32Array : Uint32Array;\n }\n throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n }\n public toString() { return `${this.isSigned ? `I` : `Ui`}nt${this.bitWidth}`; }\n protected static [Symbol.toStringTag] = ((proto: Int_) => {\n ( proto).isSigned = null;\n ( proto).bitWidth = null;\n return proto[Symbol.toStringTag] = 'Int';\n })(Int_.prototype);\n}\n\nexport { Int_ as Int };\n\n/** @ignore */\nexport class Int8 extends Int_ { constructor() { super(true, 8); } }\n/** @ignore */\nexport class Int16 extends Int_ { constructor() { super(true, 16); } }\n/** @ignore */\nexport class Int32 extends Int_ { constructor() { super(true, 32); } }\n/** @ignore */\nexport class Int64 extends Int_ { constructor() { super(true, 64); } }\n/** @ignore */\nexport class Uint8 extends Int_ { constructor() { super(false, 8); } }\n/** @ignore */\nexport class Uint16 extends Int_ { constructor() { super(false, 16); } }\n/** @ignore */\nexport class Uint32 extends Int_ { constructor() { super(false, 32); } }\n/** @ignore */\nexport class Uint64 extends Int_ { constructor() { super(false, 64); } }\n\nObject.defineProperty(Int8.prototype, 'ArrayType', { value: Int8Array });\nObject.defineProperty(Int16.prototype, 'ArrayType', { value: Int16Array });\nObject.defineProperty(Int32.prototype, 'ArrayType', { value: Int32Array });\nObject.defineProperty(Int64.prototype, 'ArrayType', { value: Int32Array });\nObject.defineProperty(Uint8.prototype, 'ArrayType', { value: Uint8Array });\nObject.defineProperty(Uint16.prototype, 'ArrayType', { value: Uint16Array });\nObject.defineProperty(Uint32.prototype, 'ArrayType', { value: Uint32Array });\nObject.defineProperty(Uint64.prototype, 'ArrayType', { value: Uint32Array });\n\n/** @ignore */\ntype Floats = Type.Float | Type.Float16 | Type.Float32 | Type.Float64;\n/** @ignore */\ntype FType = {\n [Type.Float ]: { precision: Precision; TArray: FloatArray; TValue: number; };\n [Type.Float16]: { precision: Precision.HALF; TArray: Uint16Array; TValue: number; };\n [Type.Float32]: { precision: Precision.SINGLE; TArray: Float32Array; TValue: number; };\n [Type.Float64]: { precision: Precision.DOUBLE; TArray: Float64Array; TValue: number; };\n};\n\n/** @ignore */\nexport interface Float extends DataType { TArray: FType[T]['TArray']; TValue: number; }\n/** @ignore */\nexport class Float extends DataType {\n constructor(public readonly precision: Precision) {\n super();\n }\n public get typeId() { return Type.Float as T; }\n public get ArrayType(): TypedArrayConstructor {\n switch (this.precision) {\n case Precision.HALF: return Uint16Array;\n case Precision.SINGLE: return Float32Array;\n case Precision.DOUBLE: return Float64Array;\n }\n throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n }\n public toString() { return `Float${(this.precision << 5) || 16}`; }\n protected static [Symbol.toStringTag] = ((proto: Float) => {\n ( proto).precision = null;\n return proto[Symbol.toStringTag] = 'Float';\n })(Float.prototype);\n}\n\n/** @ignore */\nexport class Float16 extends Float { constructor() { super(Precision.HALF); } }\n/** @ignore */\nexport class Float32 extends Float { constructor() { super(Precision.SINGLE); } }\n/** @ignore */\nexport class Float64 extends Float { constructor() { super(Precision.DOUBLE); } }\n\nObject.defineProperty(Float16.prototype, 'ArrayType', { value: Uint16Array });\nObject.defineProperty(Float32.prototype, 'ArrayType', { value: Float32Array });\nObject.defineProperty(Float64.prototype, 'ArrayType', { value: Float64Array });\n\n/** @ignore */\nexport interface Binary extends DataType { TArray: Uint8Array; TValue: Uint8Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Binary extends DataType {\n constructor() {\n super();\n }\n public get typeId() { return Type.Binary as Type.Binary; }\n public toString() { return `Binary`; }\n protected static [Symbol.toStringTag] = ((proto: Binary) => {\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Binary';\n })(Binary.prototype);\n}\n\n/** @ignore */\nexport interface Utf8 extends DataType { TArray: Uint8Array; TValue: string; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Utf8 extends DataType {\n constructor() {\n super();\n }\n public get typeId() { return Type.Utf8 as Type.Utf8; }\n public toString() { return `Utf8`; }\n protected static [Symbol.toStringTag] = ((proto: Utf8) => {\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Utf8';\n })(Utf8.prototype);\n}\n\n/** @ignore */\nexport interface Bool extends DataType { TArray: Uint8Array; TValue: boolean; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Bool extends DataType {\n constructor() {\n super();\n }\n public get typeId() { return Type.Bool as Type.Bool; }\n public toString() { return `Bool`; }\n protected static [Symbol.toStringTag] = ((proto: Bool) => {\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Bool';\n })(Bool.prototype);\n}\n\n/** @ignore */\nexport interface Decimal extends DataType { TArray: Uint32Array; TValue: Uint32Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Decimal extends DataType {\n constructor(public readonly scale: number,\n public readonly precision: number) {\n super();\n }\n public get typeId() { return Type.Decimal as Type.Decimal; }\n public toString() { return `Decimal[${this.precision}e${this.scale > 0 ? `+` : ``}${this.scale}]`; }\n protected static [Symbol.toStringTag] = ((proto: Decimal) => {\n ( proto).scale = null;\n ( proto).precision = null;\n ( proto).ArrayType = Uint32Array;\n return proto[Symbol.toStringTag] = 'Decimal';\n })(Decimal.prototype);\n}\n\n/** @ignore */\nexport type Dates = Type.Date | Type.DateDay | Type.DateMillisecond;\n/** @ignore */\nexport interface Date_ extends DataType { TArray: Int32Array; TValue: Date; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Date_ extends DataType {\n constructor(public readonly unit: DateUnit) {\n super();\n }\n public get typeId() { return Type.Date as T; }\n public toString() { return `Date${(this.unit + 1) * 32}<${DateUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Date_) => {\n ( proto).unit = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Date';\n })(Date_.prototype);\n}\n\n/** @ignore */\nexport class DateDay extends Date_ { constructor() { super(DateUnit.DAY); } }\n/** @ignore */\nexport class DateMillisecond extends Date_ { constructor() { super(DateUnit.MILLISECOND); } }\n\n/** @ignore */\ntype Times = Type.Time | Type.TimeSecond | Type.TimeMillisecond | Type.TimeMicrosecond | Type.TimeNanosecond;\n/** @ignore */\ntype TimesType = {\n [Type.Time ]: { unit: TimeUnit; TValue: number | Int32Array };\n [Type.TimeSecond ]: { unit: TimeUnit.SECOND; TValue: number; };\n [Type.TimeMillisecond]: { unit: TimeUnit.MILLISECOND; TValue: number; };\n [Type.TimeMicrosecond]: { unit: TimeUnit.MICROSECOND; TValue: Int32Array; };\n [Type.TimeNanosecond ]: { unit: TimeUnit.NANOSECOND; TValue: Int32Array; };\n};\n\n/** @ignore */\ninterface Time_ extends DataType { TArray: Int32Array; TValue: TimesType[T]['TValue']; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Time_ extends DataType {\n constructor(public readonly unit: TimesType[T]['unit'],\n public readonly bitWidth: TimeBitWidth) {\n super();\n }\n public get typeId() { return Type.Time as T; }\n public toString() { return `Time${this.bitWidth}<${TimeUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Time_) => {\n ( proto).unit = null;\n ( proto).bitWidth = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Time';\n })(Time_.prototype);\n}\n\nexport { Time_ as Time };\n\n/** @ignore */\nexport class TimeSecond extends Time_ { constructor() { super(TimeUnit.SECOND, 32); } }\n/** @ignore */\nexport class TimeMillisecond extends Time_ { constructor() { super(TimeUnit.MILLISECOND, 32); } }\n/** @ignore */\nexport class TimeMicrosecond extends Time_ { constructor() { super(TimeUnit.MICROSECOND, 64); } }\n/** @ignore */\nexport class TimeNanosecond extends Time_ { constructor() { super(TimeUnit.NANOSECOND, 64); } }\n\n/** @ignore */\ntype Timestamps = Type.Timestamp | Type.TimestampSecond | Type.TimestampMillisecond | Type.TimestampMicrosecond | Type.TimestampNanosecond;\n/** @ignore */\ninterface Timestamp_ extends DataType { TArray: Int32Array; TValue: number; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Timestamp_ extends DataType {\n constructor(public readonly unit: TimeUnit,\n public readonly timezone?: string | null) {\n super();\n }\n public get typeId() { return Type.Timestamp as T; }\n public toString() { return `Timestamp<${TimeUnit[this.unit]}${this.timezone ? `, ${this.timezone}` : ``}>`; }\n protected static [Symbol.toStringTag] = ((proto: Timestamp_) => {\n ( proto).unit = null;\n ( proto).timezone = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Timestamp';\n })(Timestamp_.prototype);\n}\n\nexport { Timestamp_ as Timestamp };\n\n/** @ignore */\nexport class TimestampSecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.SECOND, timezone); } }\n/** @ignore */\nexport class TimestampMillisecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.MILLISECOND, timezone); } }\n/** @ignore */\nexport class TimestampMicrosecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.MICROSECOND, timezone); } }\n/** @ignore */\nexport class TimestampNanosecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.NANOSECOND, timezone); } }\n\n/** @ignore */\ntype Intervals = Type.Interval | Type.IntervalDayTime | Type.IntervalYearMonth;\n/** @ignore */\ninterface Interval_ extends DataType { TArray: Int32Array; TValue: Int32Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Interval_ extends DataType {\n constructor(public readonly unit: IntervalUnit) {\n super();\n }\n public get typeId() { return Type.Interval as T; }\n public toString() { return `Interval<${IntervalUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Interval_) => {\n ( proto).unit = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Interval';\n })(Interval_.prototype);\n}\n\nexport { Interval_ as Interval };\n\n/** @ignore */\nexport class IntervalDayTime extends Interval_ { constructor() { super(IntervalUnit.DAY_TIME); } }\n/** @ignore */\nexport class IntervalYearMonth extends Interval_ { constructor() { super(IntervalUnit.YEAR_MONTH); } }\n\n/** @ignore */\nexport interface List extends DataType { TArray: IterableArrayLike; TValue: V; }\n/** @ignore */\nexport class List extends DataType {\n constructor(child: Field) {\n super();\n this.children = [child];\n }\n public readonly children: Field[];\n public get typeId() { return Type.List as Type.List; }\n public toString() { return `List<${this.valueType}>`; }\n public get valueType(): T { return this.children[0].type as T; }\n public get valueField(): Field { return this.children[0] as Field; }\n public get ArrayType(): T['ArrayType'] { return this.valueType.ArrayType; }\n protected static [Symbol.toStringTag] = ((proto: List) => {\n ( proto).children = null;\n return proto[Symbol.toStringTag] = 'List';\n })(List.prototype);\n}\n\n/** @ignore */\nexport interface Struct extends DataType { TArray: IterableArrayLike>; TValue: RowLike; dataTypes: T; }\n/** @ignore */\nexport class Struct extends DataType {\n public readonly children: Field[];\n constructor(children: Field[]) {\n super();\n this.children = children;\n }\n public get typeId() { return Type.Struct as Type.Struct; }\n public toString() { return `Struct<{${this.children.map((f) => `${f.name}:${f.type}`).join(`, `)}}>`; }\n protected static [Symbol.toStringTag] = ((proto: Struct) => {\n ( proto).children = null;\n return proto[Symbol.toStringTag] = 'Struct';\n })(Struct.prototype);\n}\n\n/** @ignore */\ntype Unions = Type.Union | Type.DenseUnion | Type.SparseUnion;\n/** @ignore */\ninterface Union_ extends DataType { TArray: Int8Array; TValue: any; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Union_ extends DataType {\n public readonly mode: UnionMode;\n public readonly typeIds: Int32Array;\n public readonly children: Field[];\n public readonly typeIdToChildIndex: { [key: number]: number };\n constructor(mode: UnionMode,\n typeIds: number[] | Int32Array,\n children: Field[]) {\n super();\n this.mode = mode;\n this.children = children;\n this.typeIds = typeIds = Int32Array.from(typeIds);\n this.typeIdToChildIndex = typeIds.reduce((typeIdToChildIndex, typeId, idx) => {\n return (typeIdToChildIndex[typeId] = idx) && typeIdToChildIndex || typeIdToChildIndex;\n }, Object.create(null) as { [key: number]: number });\n }\n public get typeId() { return Type.Union as T; }\n public toString() { return `${this[Symbol.toStringTag]}<${\n this.children.map((x) => `${x.type}`).join(` | `)\n }>`; }\n protected static [Symbol.toStringTag] = ((proto: Union_) => {\n ( proto).mode = null;\n ( proto).typeIds = null;\n ( proto).children = null;\n ( proto).typeIdToChildIndex = null;\n ( proto).ArrayType = Int8Array;\n return proto[Symbol.toStringTag] = 'Union';\n })(Union_.prototype);\n}\n\nexport { Union_ as Union };\n\n/** @ignore */\nexport class DenseUnion extends Union_ {\n constructor(typeIds: number[] | Int32Array, children: Field[]) {\n super(UnionMode.Dense, typeIds, children);\n }\n}\n\n/** @ignore */\nexport class SparseUnion extends Union_ {\n constructor(typeIds: number[] | Int32Array, children: Field[]) {\n super(UnionMode.Sparse, typeIds, children);\n }\n}\n\n/** @ignore */\nexport interface FixedSizeBinary extends DataType { TArray: Uint8Array; TValue: Uint8Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class FixedSizeBinary extends DataType {\n constructor(public readonly byteWidth: number) {\n super();\n }\n public get typeId() { return Type.FixedSizeBinary as Type.FixedSizeBinary; }\n public toString() { return `FixedSizeBinary[${this.byteWidth}]`; }\n protected static [Symbol.toStringTag] = ((proto: FixedSizeBinary) => {\n ( proto).byteWidth = null;\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'FixedSizeBinary';\n })(FixedSizeBinary.prototype);\n}\n\n/** @ignore */\nexport interface FixedSizeList extends DataType { TArray: IterableArrayLike; TValue: V; }\n/** @ignore */\nexport class FixedSizeList extends DataType {\n public readonly children: Field[];\n constructor(public readonly listSize: number, child: Field) {\n super();\n this.children = [child];\n }\n public get typeId() { return Type.FixedSizeList as Type.FixedSizeList; }\n public get valueType(): T { return this.children[0].type as T; }\n public get valueField(): Field { return this.children[0] as Field; }\n public get ArrayType(): T['ArrayType'] { return this.valueType.ArrayType; }\n public toString() { return `FixedSizeList[${this.listSize}]<${this.valueType}>`; }\n protected static [Symbol.toStringTag] = ((proto: FixedSizeList) => {\n ( proto).children = null;\n ( proto).listSize = null;\n return proto[Symbol.toStringTag] = 'FixedSizeList';\n })(FixedSizeList.prototype);\n}\n\n/** @ignore */\nexport interface Map_ extends DataType {\n TArray: IterableArrayLike>;\n TChild: Struct<{ key: TKey, value: TValue }>;\n TValue: MapLike;\n}\n\n/** @ignore */\nexport class Map_ extends DataType {\n constructor(child: Field>, keysSorted = false) {\n super();\n this.children = [child];\n this.keysSorted = keysSorted;\n }\n public readonly keysSorted: boolean;\n public readonly children: Field>[];\n public get typeId() { return Type.Map as Type.Map; }\n public get keyType(): TKey { return this.children[0].type.children[0].type as TKey; }\n public get valueType(): TValue { return this.children[0].type.children[1].type as TValue; }\n public toString() { return `Map<{${this.children[0].type.children.map((f) => `${f.name}:${f.type}`).join(`, `)}}>`; }\n protected static [Symbol.toStringTag] = ((proto: Map_) => {\n ( proto).children = null;\n ( proto).keysSorted = null;\n return proto[Symbol.toStringTag] = 'Map_';\n })(Map_.prototype);\n}\n\n/** @ignore */\nconst getId = ((atomicDictionaryId) => () => ++atomicDictionaryId)(-1);\n\n/** @ignore */\nexport type TKeys = Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32;\n\n/** @ignore */\nexport interface Dictionary extends DataType { TArray: TKey['TArray']; TValue: T['TValue']; }\n/** @ignore */\nexport class Dictionary extends DataType {\n public readonly id: number;\n public readonly indices: TKey;\n public readonly dictionary: T;\n public readonly isOrdered: boolean;\n constructor(dictionary: T, indices: TKey, id?: Long | number | null, isOrdered?: boolean | null) {\n super();\n this.indices = indices;\n this.dictionary = dictionary;\n this.isOrdered = isOrdered || false;\n this.id = id == null ? getId() : typeof id === 'number' ? id : id.low;\n }\n public get typeId() { return Type.Dictionary as Type.Dictionary; }\n public get children() { return this.dictionary.children; }\n public get valueType(): T { return this.dictionary as T; }\n public get ArrayType(): T['ArrayType'] { return this.dictionary.ArrayType; }\n public toString() { return `Dictionary<${this.indices}, ${this.dictionary}>`; }\n protected static [Symbol.toStringTag] = ((proto: Dictionary) => {\n ( proto).id = null;\n ( proto).indices = null;\n ( proto).isOrdered = null;\n ( proto).dictionary = null;\n return proto[Symbol.toStringTag] = 'Dictionary';\n })(Dictionary.prototype);\n}\n\n/** @ignore */\nexport interface IterableArrayLike extends ArrayLike, Iterable {}\n/** @ignore */\nexport type FloatArray = Uint16Array | Float32Array | Float64Array;\n/** @ignore */\nexport type IntArray = Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array;\n\n/** @ignore */\nexport function strideForType(type: DataType) {\n let t: any = type;\n switch (type.typeId) {\n case Type.Decimal: return 4;\n case Type.Timestamp: return 2;\n case Type.Date: return 1 + (t as Date_).unit;\n case Type.Interval: return 1 + (t as Interval_).unit;\n case Type.Int: return 1 + +((t as Int_).bitWidth > 32);\n case Type.Time: return 1 + +((t as Time_).bitWidth > 32);\n case Type.FixedSizeList: return (t as FixedSizeList).listSize;\n case Type.FixedSizeBinary: return (t as FixedSizeBinary).byteWidth;\n default: return 1;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from './vector';\nimport { truncateBitmap } from './util/bit';\nimport { popcnt_bit_range } from './util/bit';\nimport { BufferType, UnionMode, Type } from './enum';\nimport { DataType, SparseUnion, DenseUnion, strideForType } from './type';\nimport { toArrayBufferView, toUint8Array, toInt32Array } from './util/buffer';\nimport {\n Dictionary,\n Null, Int, Float,\n Binary, Bool, Utf8, Decimal,\n Date_, Time, Timestamp, Interval,\n List, Struct, Union, FixedSizeBinary, FixedSizeList, Map_,\n} from './type';\n\n// When slicing, we do not know the null count of the sliced range without\n// doing some computation. To avoid doing this eagerly, we set the null count\n// to -1 (any negative number will do). When Vector.nullCount is called the\n// first time, the null count will be computed. See ARROW-33\n/** @ignore */ export type kUnknownNullCount = -1;\n/** @ignore */ export const kUnknownNullCount = -1;\n\n/** @ignore */ export type NullBuffer = Uint8Array | null | undefined;\n/** @ignore */ export type TypeIdsBuffer = Int8Array | ArrayLike | Iterable | undefined;\n/** @ignore */ export type ValueOffsetsBuffer = Int32Array | ArrayLike | Iterable | undefined;\n/** @ignore */ export type DataBuffer = T['TArray'] | ArrayLike | Iterable | undefined;\n\n/** @ignore */\nexport interface Buffers {\n [BufferType.OFFSET]: Int32Array;\n [BufferType.DATA]: T['TArray'];\n [BufferType.VALIDITY]: Uint8Array;\n [BufferType.TYPE]: T['TArray'];\n}\n\n/** @ignore */\nexport interface Data {\n readonly TType: T['TType'];\n readonly TArray: T['TArray'];\n readonly TValue: T['TValue'];\n}\n\n/** @ignore */\nexport class Data {\n\n public readonly type: T;\n public readonly length: number;\n public readonly offset: number;\n public readonly stride: number;\n public readonly childData: Data[];\n\n /**\n * The dictionary for this Vector, if any. Only used for Dictionary type.\n */\n public dictionary?: Vector;\n\n public readonly values: Buffers[BufferType.DATA];\n // @ts-ignore\n public readonly typeIds: Buffers[BufferType.TYPE];\n // @ts-ignore\n public readonly nullBitmap: Buffers[BufferType.VALIDITY];\n // @ts-ignore\n public readonly valueOffsets: Buffers[BufferType.OFFSET];\n\n public get typeId(): T['TType'] { return this.type.typeId; }\n public get ArrayType(): T['ArrayType'] { return this.type.ArrayType; }\n public get buffers() {\n return [this.valueOffsets, this.values, this.nullBitmap, this.typeIds] as Buffers;\n }\n public get byteLength(): number {\n let byteLength = 0;\n let { valueOffsets, values, nullBitmap, typeIds } = this;\n valueOffsets && (byteLength += valueOffsets.byteLength);\n values && (byteLength += values.byteLength);\n nullBitmap && (byteLength += nullBitmap.byteLength);\n typeIds && (byteLength += typeIds.byteLength);\n return this.childData.reduce((byteLength, child) => byteLength + child.byteLength, byteLength);\n }\n\n protected _nullCount: number | kUnknownNullCount;\n\n public get nullCount() {\n let nullCount = this._nullCount;\n let nullBitmap: Uint8Array | undefined;\n if (nullCount <= kUnknownNullCount && (nullBitmap = this.nullBitmap)) {\n this._nullCount = nullCount = this.length - popcnt_bit_range(nullBitmap, this.offset, this.offset + this.length);\n }\n return nullCount;\n }\n\n constructor(type: T, offset: number, length: number, nullCount?: number, buffers?: Partial> | Data, childData?: (Data | Vector)[], dictionary?: Vector) {\n this.type = type;\n this.dictionary = dictionary;\n this.offset = Math.floor(Math.max(offset || 0, 0));\n this.length = Math.floor(Math.max(length || 0, 0));\n this._nullCount = Math.floor(Math.max(nullCount || 0, -1));\n this.childData = (childData || []).map((x) => x instanceof Data ? x : x.data) as Data[];\n let buffer: Buffers[keyof Buffers];\n if (buffers instanceof Data) {\n this.stride = buffers.stride;\n this.values = buffers.values;\n this.typeIds = buffers.typeIds;\n this.nullBitmap = buffers.nullBitmap;\n this.valueOffsets = buffers.valueOffsets;\n } else {\n this.stride = strideForType(type);\n if (buffers) {\n (buffer = (buffers as Buffers)[0]) && (this.valueOffsets = buffer);\n (buffer = (buffers as Buffers)[1]) && (this.values = buffer);\n (buffer = (buffers as Buffers)[2]) && (this.nullBitmap = buffer);\n (buffer = (buffers as Buffers)[3]) && (this.typeIds = buffer);\n }\n }\n }\n\n public clone(type: R, offset = this.offset, length = this.length, nullCount = this._nullCount, buffers: Buffers = this, childData: (Data | Vector)[] = this.childData) {\n return new Data(type, offset, length, nullCount, buffers, childData, this.dictionary);\n }\n\n public slice(offset: number, length: number): Data {\n const { stride, typeId, childData } = this;\n // +true === 1, +false === 0, so this means\n // we keep nullCount at 0 if it's already 0,\n // otherwise set to the invalidated flag -1\n const nullCount = +(this._nullCount === 0) - 1;\n const childStride = typeId === 16 /* FixedSizeList */ ? stride : 1;\n const buffers = this._sliceBuffers(offset, length, stride, typeId);\n return this.clone(this.type, this.offset + offset, length, nullCount, buffers,\n // Don't slice children if we have value offsets (the variable-width types)\n (!childData.length || this.valueOffsets) ? childData : this._sliceChildren(childData, childStride * offset, childStride * length));\n }\n\n public _changeLengthAndBackfillNullBitmap(newLength: number): Data {\n if (this.typeId === Type.Null) {\n return this.clone(this.type, 0, newLength, 0);\n }\n const { length, nullCount } = this;\n // start initialized with 0s (nulls), then fill from 0 to length with 1s (not null)\n const bitmap = new Uint8Array(((newLength + 63) & ~63) >> 3).fill(255, 0, length >> 3);\n // set all the bits in the last byte (up to bit `length - length % 8`) to 1 (not null)\n bitmap[length >> 3] = (1 << (length - (length & ~7))) - 1;\n // if we have a nullBitmap, truncate + slice and set it over the pre-filled 1s\n if (nullCount > 0) {\n bitmap.set(truncateBitmap(this.offset, length, this.nullBitmap), 0);\n }\n const buffers = this.buffers;\n buffers[BufferType.VALIDITY] = bitmap;\n return this.clone(this.type, 0, newLength, nullCount + (newLength - length), buffers);\n }\n\n protected _sliceBuffers(offset: number, length: number, stride: number, typeId: T['TType']): Buffers {\n let arr: any, { buffers } = this;\n // If typeIds exist, slice the typeIds buffer\n (arr = buffers[BufferType.TYPE]) && (buffers[BufferType.TYPE] = arr.subarray(offset, offset + length));\n // If offsets exist, only slice the offsets buffer\n (arr = buffers[BufferType.OFFSET]) && (buffers[BufferType.OFFSET] = arr.subarray(offset, offset + length + 1)) ||\n // Otherwise if no offsets, slice the data buffer. Don't slice the data vector for Booleans, since the offset goes by bits not bytes\n (arr = buffers[BufferType.DATA]) && (buffers[BufferType.DATA] = typeId === 6 ? arr : arr.subarray(stride * offset, stride * (offset + length)));\n return buffers;\n }\n\n protected _sliceChildren(childData: Data[], offset: number, length: number): Data[] {\n return childData.map((child) => child.slice(offset, length));\n }\n\n //\n // Convenience methods for creating Data instances for each of the Arrow Vector types\n //\n /** @nocollapse */\n public static new(type: T, offset: number, length: number, nullCount?: number, buffers?: Partial> | Data, childData?: (Data | Vector)[], dictionary?: Vector): Data {\n if (buffers instanceof Data) { buffers = buffers.buffers; } else if (!buffers) { buffers = [] as Partial>; }\n switch (type.typeId) {\n case Type.Null: return Data.Null( type as Null, offset, length) as Data;\n case Type.Int: return Data.Int( type as Int, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Dictionary: return Data.Dictionary( type as Dictionary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || [], dictionary!) as Data;\n case Type.Float: return Data.Float( type as Float, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Bool: return Data.Bool( type as Bool, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Decimal: return Data.Decimal( type as Decimal, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Date: return Data.Date( type as Date_, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Time: return Data.Time( type as Time, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Timestamp: return Data.Timestamp( type as Timestamp, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Interval: return Data.Interval( type as Interval, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.FixedSizeBinary: return Data.FixedSizeBinary( type as FixedSizeBinary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Binary: return Data.Binary( type as Binary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], buffers[BufferType.DATA] || []) as Data;\n case Type.Utf8: return Data.Utf8( type as Utf8, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], buffers[BufferType.DATA] || []) as Data;\n case Type.List: return Data.List( type as List, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], (childData || [])[0]) as Data;\n case Type.FixedSizeList: return Data.FixedSizeList( type as FixedSizeList, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], (childData || [])[0]) as Data;\n case Type.Struct: return Data.Struct( type as Struct, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], childData || []) as Data;\n case Type.Map: return Data.Map( type as Map_, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], (childData || [])[0]) as Data;\n case Type.Union: return Data.Union( type as Union, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.TYPE] || [], buffers[BufferType.OFFSET] || childData, childData) as Data;\n }\n throw new Error(`Unrecognized typeId ${type.typeId}`);\n }\n\n /** @nocollapse */\n public static Null(type: T, offset: number, length: number) {\n return new Data(type, offset, length, 0);\n }\n /** @nocollapse */\n public static Int(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Dictionary(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer, dictionary: Vector) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.indices.ArrayType, data), toUint8Array(nullBitmap)], [], dictionary);\n }\n /** @nocollapse */\n public static Float(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Bool(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Decimal(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Date(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Time(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Timestamp(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Interval(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static FixedSizeBinary(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Binary(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, data: Uint8Array) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), toUint8Array(data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Utf8(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, data: Uint8Array) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), toUint8Array(data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static List(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, child: Data | Vector) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), undefined, toUint8Array(nullBitmap)], [child]);\n }\n /** @nocollapse */\n public static FixedSizeList(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, child: Data | Vector) {\n return new Data(type, offset, length, nullCount, [undefined, undefined, toUint8Array(nullBitmap)], [child]);\n }\n /** @nocollapse */\n public static Struct(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, children: (Data | Vector)[]) {\n return new Data(type, offset, length, nullCount, [undefined, undefined, toUint8Array(nullBitmap)], children);\n }\n /** @nocollapse */\n public static Map(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, child: (Data | Vector)) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), undefined, toUint8Array(nullBitmap)], [child]);\n }\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, children: (Data | Vector)[], _?: any): Data;\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsets: ValueOffsetsBuffer, children: (Data | Vector)[]): Data;\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsetsOrChildren: ValueOffsetsBuffer | (Data | Vector)[], children?: (Data | Vector)[]): Data;\n /** @nocollapse */\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsetsOrChildren: ValueOffsetsBuffer | (Data | Vector)[], children?: (Data | Vector)[]) {\n const buffers = [\n undefined, undefined,\n toUint8Array(nullBitmap),\n toArrayBufferView(type.ArrayType, typeIds)\n ] as Partial>;\n if (type.mode === UnionMode.Sparse) {\n return new Data(type, offset, length, nullCount, buffers, valueOffsetsOrChildren as (Data | Vector)[]);\n }\n buffers[BufferType.OFFSET] = toInt32Array( valueOffsetsOrChildren);\n return new Data(type, offset, length, nullCount, buffers, children);\n }\n}\n\n(Data.prototype as any).childData = Object.freeze([]);\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */ const undf = void (0);\n\n/** @ignore */\nexport function valueToString(x: any) {\n if (x === null) { return 'null'; }\n if (x === undf) { return 'undefined'; }\n switch (typeof x) {\n case 'number': return `${x}`;\n case 'bigint': return `${x}`;\n case 'string': return `\"${x}\"`;\n }\n // If [Symbol.toPrimitive] is implemented (like in BN)\n // use it instead of JSON.stringify(). This ensures we\n // print BigInts, Decimals, and Binary in their native\n // representation\n if (typeof x[Symbol.toPrimitive] === 'function') {\n return x[Symbol.toPrimitive]('string');\n }\n return ArrayBuffer.isView(x) ? `[${x}]` : JSON.stringify(x);\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DataType } from '../type';\nimport { valueToString } from '../util/pretty';\nimport { BigIntAvailable } from '../util/compat';\n\n/**\n * Dynamically compile the null values into an `isValid()` function whose\n * implementation is a switch statement. Microbenchmarks in v8 indicate\n * this approach is 25% faster than using an ES6 Map.\n *\n * @example\n * console.log(createIsValidFunction([null, 'N/A', NaN]));\n * `function (x) {\n * if (x !== x) return false;\n * switch (x) {\n * case null:\n * case \"N/A\":\n * return false;\n * }\n * return true;\n * }`\n *\n * @ignore\n * @param nullValues\n */\nexport function createIsValidFunction(nullValues?: ReadonlyArray) {\n\n if (!nullValues || nullValues.length <= 0) {\n // @ts-ignore\n return function isValid(value: any) { return true; };\n }\n\n let fnBody = '';\n let noNaNs = nullValues.filter((x) => x === x);\n\n if (noNaNs.length > 0) {\n fnBody = `\n switch (x) {${noNaNs.map((x) => `\n case ${valueToCase(x)}:`).join('')}\n return false;\n }`;\n }\n\n // NaN doesn't equal anything including itself, so it doesn't work as a\n // switch case. Instead we must explicitly check for NaN before the switch.\n if (nullValues.length !== noNaNs.length) {\n fnBody = `if (x !== x) return false;\\n${fnBody}`;\n }\n\n return new Function(`x`, `${fnBody}\\nreturn true;`) as (value: T['TValue'] | TNull) => boolean;\n}\n\n/** @ignore */\nfunction valueToCase(x: any) {\n if (typeof x !== 'bigint') {\n return valueToString(x);\n } else if (BigIntAvailable) {\n return `${valueToString(x)}n`;\n }\n return `\"${valueToString(x)}\"`;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { memcpy } from '../util/buffer';\nimport { BigIntAvailable, BigInt64Array, BigUint64Array } from '../util/compat';\nimport {\n TypedArray, TypedArrayConstructor,\n BigIntArray, BigIntArrayConstructor\n} from '../interfaces';\n\n/** @ignore */ type DataValue = T extends TypedArray ? number : T extends BigIntArray ? WideValue : T;\n/** @ignore */ type WideValue = T extends BigIntArray ? bigint | Int32Array | Uint32Array : never;\n/** @ignore */ type ArrayCtor =\n T extends TypedArray ? TypedArrayConstructor :\n T extends BigIntArray ? BigIntArrayConstructor :\n any;\n\n/** @ignore */\nconst roundLengthUpToNearest64Bytes = (len: number, BPE: number) => ((((len * BPE) + 63) & ~63) || 64) / BPE;\n/** @ignore */\nconst sliceOrExtendArray = (arr: T, len = 0) => (\n arr.length >= len ? arr.subarray(0, len) : memcpy(new (arr.constructor as any)(len), arr, 0)\n) as T;\n\n/** @ignore */\nexport interface BufferBuilder> {\n readonly offset: number;\n}\n\n/** @ignore */\nexport class BufferBuilder> {\n\n constructor(buffer: T, stride = 1) {\n this.buffer = buffer;\n this.stride = stride;\n this.BYTES_PER_ELEMENT = buffer.BYTES_PER_ELEMENT;\n this.ArrayType = buffer.constructor as ArrayCtor;\n this._resize(this.length = buffer.length / stride | 0);\n }\n\n public buffer: T;\n public length: number;\n public readonly stride: number;\n public readonly ArrayType: ArrayCtor;\n public readonly BYTES_PER_ELEMENT: number;\n\n public get byteLength() { return this.length * this.stride * this.BYTES_PER_ELEMENT | 0; }\n public get reservedLength() { return this.buffer.length / this.stride; }\n public get reservedByteLength() { return this.buffer.byteLength; }\n\n // @ts-ignore\n public set(index: number, value: TValue) { return this; }\n public append(value: TValue) { return this.set(this.length, value); }\n public reserve(extra: number) {\n if (extra > 0) {\n this.length += extra;\n const stride = this.stride;\n const length = this.length * stride;\n const reserved = this.buffer.length;\n if (length >= reserved) {\n this._resize(reserved === 0\n ? roundLengthUpToNearest64Bytes(length * 1, this.BYTES_PER_ELEMENT)\n : roundLengthUpToNearest64Bytes(length * 2, this.BYTES_PER_ELEMENT)\n );\n }\n }\n return this;\n }\n public flush(length = this.length) {\n length = roundLengthUpToNearest64Bytes(length * this.stride, this.BYTES_PER_ELEMENT);\n const array = sliceOrExtendArray(this.buffer, length);\n this.clear();\n return array;\n }\n public clear() {\n this.length = 0;\n this._resize(0);\n return this;\n }\n protected _resize(newLength: number) {\n return this.buffer = memcpy(new this.ArrayType(newLength), this.buffer);\n }\n}\n\n(BufferBuilder.prototype as any).offset = 0;\n\n/** @ignore */\nexport class DataBufferBuilder extends BufferBuilder {\n public last() { return this.get(this.length - 1); }\n public get(index: number) { return this.buffer[index]; }\n public set(index: number, value: number) {\n this.reserve(index - this.length + 1);\n this.buffer[index * this.stride] = value;\n return this;\n }\n}\n\n/** @ignore */\nexport class BitmapBufferBuilder extends DataBufferBuilder {\n\n constructor(data = new Uint8Array(0)) { super(data, 1 / 8); }\n\n public numValid = 0;\n public get numInvalid() { return this.length - this.numValid; }\n public get(idx: number) { return this.buffer[idx >> 3] >> idx % 8 & 1; }\n public set(idx: number, val: number) {\n const { buffer } = this.reserve(idx - this.length + 1);\n const byte = idx >> 3, bit = idx % 8, cur = buffer[byte] >> bit & 1;\n // If `val` is truthy and the current bit is 0, flip it to 1 and increment `numValid`.\n // If `val` is falsey and the current bit is 1, flip it to 0 and decrement `numValid`.\n val ? cur === 0 && ((buffer[byte] |= (1 << bit)), ++this.numValid)\n : cur === 1 && ((buffer[byte] &= ~(1 << bit)), --this.numValid);\n return this;\n }\n public clear() {\n this.numValid = 0;\n return super.clear();\n }\n}\n\n/** @ignore */\nexport class OffsetsBufferBuilder extends DataBufferBuilder {\n constructor(data = new Int32Array(1)) { super(data, 1); }\n public append(value: number) {\n return this.set(this.length - 1, value);\n }\n public set(index: number, value: number) {\n const offset = this.length - 1;\n const buffer = this.reserve(index - offset + 1).buffer;\n if (offset < index++) {\n buffer.fill(buffer[offset], offset, index);\n }\n buffer[index] = buffer[index - 1] + value;\n return this;\n }\n public flush(length = this.length - 1) {\n if (length > this.length) {\n this.set(length - 1, 0);\n }\n return super.flush(length + 1);\n }\n}\n\n/** @ignore */\nexport class WideBufferBuilder extends BufferBuilder> {\n // @ts-ignore\n public buffer64: R;\n // @ts-ignore\n protected _ArrayType64: BigIntArrayConstructor;\n public get ArrayType64() {\n return this._ArrayType64 || (this._ArrayType64 = > (this.buffer instanceof Int32Array ? BigInt64Array : BigUint64Array));\n }\n public set(index: number, value: DataValue) {\n this.reserve(index - this.length + 1);\n switch (typeof value) {\n case 'bigint': this.buffer64[index] = value; break;\n case 'number': this.buffer[index * this.stride] = value; break;\n default: this.buffer.set(value as TypedArray, index * this.stride);\n }\n return this;\n }\n protected _resize(newLength: number) {\n const data = super._resize(newLength);\n const length = data.byteLength / (this.BYTES_PER_ELEMENT * this.stride);\n if (BigIntAvailable) {\n this.buffer64 = new this.ArrayType64(data.buffer, data.byteOffset, length);\n }\n return data;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from './vector';\nimport { BufferType } from './enum';\nimport { Data, Buffers } from './data';\nimport { createIsValidFunction } from './builder/valid';\nimport { BuilderType as B, VectorType as V} from './interfaces';\nimport { BufferBuilder, BitmapBufferBuilder, DataBufferBuilder, OffsetsBufferBuilder } from './builder/buffer';\nimport {\n DataType, strideForType,\n Float, Int, Decimal, FixedSizeBinary,\n Date_, Time, Timestamp, Interval,\n Utf8, Binary, List, Map_\n} from './type';\n\n/**\n * A set of options required to create a `Builder` instance for a given `DataType`.\n * @see {@link Builder}\n */\nexport interface BuilderOptions {\n type: T;\n nullValues?: TNull[] | ReadonlyArray | null;\n children?: { [key: string]: BuilderOptions; } | BuilderOptions[];\n}\n\n/**\n * A set of options to create an Iterable or AsyncIterable `Builder` transform function.\n * @see {@link Builder.throughIterable}\n * @see {@link Builder.throughAsyncIterable}\n */\n\nexport interface IterableBuilderOptions extends BuilderOptions {\n highWaterMark?: number;\n queueingStrategy?: 'bytes' | 'count';\n dictionaryHashFunction?: (value: any) => string | number;\n valueToChildTypeId?: (builder: Builder, value: any, offset: number) => number;\n}\n\n/**\n * An abstract base class for types that construct Arrow Vectors from arbitrary JavaScript values.\n *\n * A `Builder` is responsible for writing arbitrary JavaScript values\n * to ArrayBuffers and/or child Builders according to the Arrow specification\n * for each DataType, creating or resizing the underlying ArrayBuffers as necessary.\n *\n * The `Builder` for each Arrow `DataType` handles converting and appending\n * values for a given `DataType`. The high-level {@link Builder.new `Builder.new()`} convenience\n * method creates the specific `Builder` subclass for the supplied `DataType`.\n *\n * Once created, `Builder` instances support both appending values to the end\n * of the `Builder`, and random-access writes to specific indices\n * (`Builder.prototype.append(value)` is a convenience method for\n * `builder.set(builder.length, value)`). Appending or setting values beyond the\n * Builder's current length may cause the builder to grow its underlying buffers\n * or child Builders (if applicable) to accommodate the new values.\n *\n * After enough values have been written to a `Builder`, `Builder.prototype.flush()`\n * will commit the values to the underlying ArrayBuffers (or child Builders). The\n * internal Builder state will be reset, and an instance of `Data` is returned.\n * Alternatively, `Builder.prototype.toVector()` will flush the `Builder` and return\n * an instance of `Vector` instead.\n *\n * When there are no more values to write, use `Builder.prototype.finish()` to\n * finalize the `Builder`. This does not reset the internal state, so it is\n * necessary to call `Builder.prototype.flush()` or `toVector()` one last time\n * if there are still values queued to be flushed.\n *\n * Note: calling `Builder.prototype.finish()` is required when using a `DictionaryBuilder`,\n * because this is when it flushes the values that have been enqueued in its internal\n * dictionary's `Builder`, and creates the `dictionaryVector` for the `Dictionary` `DataType`.\n *\n * ```ts\n * import { Builder, Utf8 } from 'apache-arrow';\n *\n * const utf8Builder = Builder.new({\n * type: new Utf8(),\n * nullValues: [null, 'n/a']\n * });\n *\n * utf8Builder\n * .append('hello')\n * .append('n/a')\n * .append('world')\n * .append(null);\n *\n * const utf8Vector = utf8Builder.finish().toVector();\n *\n * console.log(utf8Vector.toJSON());\n * // > [\"hello\", null, \"world\", null]\n * ```\n *\n * @typeparam T The `DataType` of this `Builder`.\n * @typeparam TNull The type(s) of values which will be considered null-value sentinels.\n */\nexport abstract class Builder {\n\n /**\n * Create a `Builder` instance based on the `type` property of the supplied `options` object.\n * @param {BuilderOptions} options An object with a required `DataType` instance\n * and other optional parameters to be passed to the `Builder` subclass for the given `type`.\n *\n * @typeparam T The `DataType` of the `Builder` to create.\n * @typeparam TNull The type(s) of values which will be considered null-value sentinels.\n * @nocollapse\n */\n // @ts-ignore\n public static new(options: BuilderOptions): B {}\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode(options: import('./io/node/builder').BuilderDuplexOptions): import('stream').Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n // @ts-ignore\n public static throughDOM(options: import('./io/whatwg/builder').BuilderTransformOptions): import('./io/whatwg/builder').BuilderTransform {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n /**\n * Transform a synchronous `Iterable` of arbitrary JavaScript values into a\n * sequence of Arrow Vector following the chunking semantics defined in\n * the supplied `options` argument.\n *\n * This function returns a function that accepts an `Iterable` of values to\n * transform. When called, this function returns an Iterator of `Vector`.\n *\n * The resulting `Iterator>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `Iterator>`\n * will flush the underlying `Builder` (and yield a new `Vector`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `Iterator>` will flush\n * the underlying `Builder` (and yield a new `Vector`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions} options An object of properties which determine the `Builder` to create and the chunking semantics to use.\n * @returns A function which accepts a JavaScript `Iterable` of values to\n * write, and returns an `Iterator` that yields Vectors according\n * to the chunking semantics defined in the `options` argument.\n * @nocollapse\n */\n public static throughIterable(options: IterableBuilderOptions) {\n return throughIterable(options);\n }\n\n /**\n * Transform an `AsyncIterable` of arbitrary JavaScript values into a\n * sequence of Arrow Vector following the chunking semantics defined in\n * the supplied `options` argument.\n *\n * This function returns a function that accepts an `AsyncIterable` of values to\n * transform. When called, this function returns an AsyncIterator of `Vector`.\n *\n * The resulting `AsyncIterator>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `AsyncIterator>`\n * will flush the underlying `Builder` (and yield a new `Vector`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `AsyncIterator>` will flush\n * the underlying `Builder` (and yield a new `Vector`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions} options An object of properties which determine the `Builder` to create and the chunking semantics to use.\n * @returns A function which accepts a JavaScript `AsyncIterable` of values\n * to write, and returns an `AsyncIterator` that yields Vectors\n * according to the chunking semantics defined in the `options`\n * argument.\n * @nocollapse\n */\n public static throughAsyncIterable(options: IterableBuilderOptions) {\n return throughAsyncIterable(options);\n }\n\n /**\n * Construct a builder with the given Arrow DataType with optional null values,\n * which will be interpreted as \"null\" when set or appended to the `Builder`.\n * @param {{ type: T, nullValues?: any[] }} options A `BuilderOptions` object used to create this `Builder`.\n */\n constructor({ 'type': type, 'nullValues': nulls }: BuilderOptions) {\n this.type = type;\n this.children = [];\n this.nullValues = nulls;\n this.stride = strideForType(type);\n this._nulls = new BitmapBufferBuilder();\n if (nulls && nulls.length > 0) {\n this._isValid = createIsValidFunction(nulls);\n }\n }\n\n /**\n * The Builder's `DataType` instance.\n * @readonly\n */\n public type: T;\n /**\n * The number of values written to the `Builder` that haven't been flushed yet.\n * @readonly\n */\n public length = 0;\n /**\n * A boolean indicating whether `Builder.prototype.finish()` has been called on this `Builder`.\n * @readonly\n */\n public finished = false;\n /**\n * The number of elements in the underlying values TypedArray that\n * represent a single logical element, determined by this Builder's\n * `DataType`. This is 1 for most types, but is larger when the `DataType`\n * is `Int64`, `Uint64`, `Decimal`, `DateMillisecond`, certain variants of\n * `Interval`, `Time`, or `Timestamp`, `FixedSizeBinary`, and `FixedSizeList`.\n * @readonly\n */\n public readonly stride: number;\n public readonly children: Builder[];\n /**\n * The list of null-value sentinels for this `Builder`. When one of these values\n * is written to the `Builder` (either via `Builder.prototype.set()` or `Builder.prototype.append()`),\n * a 1-bit is written to this Builder's underlying null BitmapBufferBuilder.\n * @readonly\n */\n public readonly nullValues?: TNull[] | ReadonlyArray | null;\n\n /**\n * Flush the `Builder` and return a `Vector`.\n * @returns {Vector} A `Vector` of the flushed values.\n */\n public toVector() { return Vector.new(this.flush()); }\n\n public get ArrayType() { return this.type.ArrayType; }\n public get nullCount() { return this._nulls.numInvalid; }\n public get numChildren() { return this.children.length; }\n\n /**\n * @returns The aggregate length (in bytes) of the values that have been written.\n */\n public get byteLength(): number {\n let size = 0;\n this._offsets && (size += this._offsets.byteLength);\n this._values && (size += this._values.byteLength);\n this._nulls && (size += this._nulls.byteLength);\n this._typeIds && (size += this._typeIds.byteLength);\n return this.children.reduce((size, child) => size + child.byteLength, size);\n }\n\n /**\n * @returns The aggregate number of rows that have been reserved to write new values.\n */\n public get reservedLength(): number {\n return this._nulls.reservedLength;\n }\n\n /**\n * @returns The aggregate length (in bytes) that has been reserved to write new values.\n */\n public get reservedByteLength(): number {\n let size = 0;\n this._offsets && (size += this._offsets.reservedByteLength);\n this._values && (size += this._values.reservedByteLength);\n this._nulls && (size += this._nulls.reservedByteLength);\n this._typeIds && (size += this._typeIds.reservedByteLength);\n return this.children.reduce((size, child) => size + child.reservedByteLength, size);\n }\n\n // @ts-ignore\n protected _offsets: DataBufferBuilder;\n public get valueOffsets() { return this._offsets ? this._offsets.buffer : null; }\n\n // @ts-ignore\n protected _values: BufferBuilder;\n public get values() { return this._values ? this._values.buffer : null; }\n\n protected _nulls: BitmapBufferBuilder;\n public get nullBitmap() { return this._nulls ? this._nulls.buffer : null; }\n\n // @ts-ignore\n protected _typeIds: DataBufferBuilder;\n public get typeIds() { return this._typeIds ? this._typeIds.buffer : null; }\n\n // @ts-ignore\n protected _isValid: (value: T['TValue'] | TNull) => boolean;\n // @ts-ignore\n protected _setValue: (inst: Builder, index: number, value: T['TValue']) => void;\n\n /**\n * Appends a value (or null) to this `Builder`.\n * This is equivalent to `builder.set(builder.length, value)`.\n * @param {T['TValue'] | TNull } value The value to append.\n */\n public append(value: T['TValue'] | TNull) { return this.set(this.length, value); }\n\n /**\n * Validates whether a value is valid (true), or null (false)\n * @param {T['TValue'] | TNull } value The value to compare against null the value representations\n */\n // @ts-ignore\n public isValid(value: T['TValue'] | TNull): boolean { return this._isValid(value); }\n\n /**\n * Write a value (or null-value sentinel) at the supplied index.\n * If the value matches one of the null-value representations, a 1-bit is\n * written to the null `BitmapBufferBuilder`. Otherwise, a 0 is written to\n * the null `BitmapBufferBuilder`, and the value is passed to\n * `Builder.prototype.setValue()`.\n * @param {number} index The index of the value to write.\n * @param {T['TValue'] | TNull } value The value to write at the supplied index.\n * @returns {this} The updated `Builder` instance.\n */\n public set(index: number, value: T['TValue'] | TNull) {\n if (this.setValid(index, this.isValid(value))) {\n this.setValue(index, value);\n }\n return this;\n }\n\n /**\n * Write a value to the underlying buffers at the supplied index, bypassing\n * the null-value check. This is a low-level method that\n * @param {number} index\n * @param {T['TValue'] | TNull } value\n */\n // @ts-ignore\n public setValue(index: number, value: T['TValue']) { this._setValue(this, index, value); }\n public setValid(index: number, valid: boolean) {\n this.length = this._nulls.set(index, +valid).length;\n return valid;\n }\n\n // @ts-ignore\n public addChild(child: Builder, name = `${this.numChildren}`) {\n throw new Error(`Cannot append children to non-nested type \"${this.type}\"`);\n }\n\n /**\n * Retrieve the child `Builder` at the supplied `index`, or null if no child\n * exists at that index.\n * @param {number} index The index of the child `Builder` to retrieve.\n * @returns {Builder | null} The child Builder at the supplied index or null.\n */\n public getChildAt(index: number): Builder | null {\n return this.children[index] || null;\n }\n\n /**\n * Commit all the values that have been written to their underlying\n * ArrayBuffers, including any child Builders if applicable, and reset\n * the internal `Builder` state.\n * @returns A `Data` of the buffers and childData representing the values written.\n */\n public flush() {\n\n const buffers: any = [];\n const values = this._values;\n const offsets = this._offsets;\n const typeIds = this._typeIds;\n const { length, nullCount } = this;\n\n if (typeIds) { /* Unions */\n buffers[BufferType.TYPE] = typeIds.flush(length);\n // DenseUnions\n offsets && (buffers[BufferType.OFFSET] = offsets.flush(length));\n } else if (offsets) { /* Variable-width primitives (Binary, Utf8) and Lists */\n // Binary, Utf8\n values && (buffers[BufferType.DATA] = values.flush(offsets.last()));\n buffers[BufferType.OFFSET] = offsets.flush(length);\n } else if (values) { /* Fixed-width primitives (Int, Float, Decimal, Time, Timestamp, and Interval) */\n buffers[BufferType.DATA] = values.flush(length);\n }\n\n nullCount > 0 && (buffers[BufferType.VALIDITY] = this._nulls.flush(length));\n\n const data = Data.new(\n this.type, 0, length, nullCount, buffers as Buffers,\n this.children.map((child) => child.flush())) as Data;\n\n this.clear();\n\n return data;\n }\n\n /**\n * Finalize this `Builder`, and child builders if applicable.\n * @returns {this} The finalized `Builder` instance.\n */\n public finish() {\n this.finished = true;\n this.children.forEach((child) => child.finish());\n return this;\n }\n\n /**\n * Clear this Builder's internal state, including child Builders if applicable, and reset the length to 0.\n * @returns {this} The cleared `Builder` instance.\n */\n public clear() {\n this.length = 0;\n this._offsets && (this._offsets.clear());\n this._values && (this._values.clear());\n this._nulls && (this._nulls.clear());\n this._typeIds && (this._typeIds.clear());\n this.children.forEach((child) => child.clear());\n return this;\n }\n}\n\n(Builder.prototype as any).length = 1;\n(Builder.prototype as any).stride = 1;\n(Builder.prototype as any).children = null;\n(Builder.prototype as any).finished = false;\n(Builder.prototype as any).nullValues = null;\n(Builder.prototype as any)._isValid = () => true;\n\n/** @ignore */\nexport abstract class FixedWidthBuilder extends Builder {\n constructor(opts: BuilderOptions) {\n super(opts);\n this._values = new DataBufferBuilder(new this.ArrayType(0), this.stride);\n }\n public setValue(index: number, value: T['TValue']) {\n const values = this._values;\n values.reserve(index - values.length + 1);\n return super.setValue(index, value);\n }\n}\n\n/** @ignore */\nexport abstract class VariableWidthBuilder extends Builder {\n protected _pendingLength: number = 0;\n protected _offsets: OffsetsBufferBuilder;\n protected _pending: Map | undefined;\n constructor(opts: BuilderOptions) {\n super(opts);\n this._offsets = new OffsetsBufferBuilder();\n }\n public setValue(index: number, value: T['TValue']) {\n const pending = this._pending || (this._pending = new Map());\n const current = pending.get(index);\n current && (this._pendingLength -= current.length);\n this._pendingLength += value.length;\n pending.set(index, value);\n }\n public setValid(index: number, isValid: boolean) {\n if (!super.setValid(index, isValid)) {\n (this._pending || (this._pending = new Map())).set(index, undefined);\n return false;\n }\n return true;\n }\n public clear() {\n this._pendingLength = 0;\n this._pending = undefined;\n return super.clear();\n }\n public flush() {\n this._flush();\n return super.flush();\n }\n public finish() {\n this._flush();\n return super.finish();\n }\n protected _flush() {\n const pending = this._pending;\n const pendingLength = this._pendingLength;\n this._pendingLength = 0;\n this._pending = undefined;\n if (pending && pending.size > 0) {\n this._flushPending(pending, pendingLength);\n }\n return this;\n }\n protected abstract _flushPending(pending: Map, pendingLength: number): void;\n}\n\n/** @ignore */\ntype ThroughIterable = (source: Iterable) => IterableIterator>;\n\n/** @ignore */\nfunction throughIterable(options: IterableBuilderOptions): ThroughIterable {\n const { ['queueingStrategy']: queueingStrategy = 'count' } = options;\n const { ['highWaterMark']: highWaterMark = queueingStrategy !== 'bytes' ? 1000 : 2 ** 14 } = options;\n const sizeProperty: 'length' | 'byteLength' = queueingStrategy !== 'bytes' ? 'length' : 'byteLength';\n return function*(source: Iterable) {\n let numChunks = 0;\n let builder = Builder.new(options);\n for (const value of source) {\n if (builder.append(value)[sizeProperty] >= highWaterMark) {\n ++numChunks && (yield builder.toVector());\n }\n }\n if (builder.finish().length > 0 || numChunks === 0) {\n yield builder.toVector();\n }\n };\n}\n\n/** @ignore */\ntype ThroughAsyncIterable = (source: Iterable | AsyncIterable) => AsyncIterableIterator>;\n\n/** @ignore */\nfunction throughAsyncIterable(options: IterableBuilderOptions): ThroughAsyncIterable {\n const { ['queueingStrategy']: queueingStrategy = 'count' } = options;\n const { ['highWaterMark']: highWaterMark = queueingStrategy !== 'bytes' ? 1000 : 2 ** 14 } = options;\n const sizeProperty: 'length' | 'byteLength' = queueingStrategy !== 'bytes' ? 'length' : 'byteLength';\n return async function* (source: Iterable | AsyncIterable) {\n let numChunks = 0;\n let builder = Builder.new(options);\n for await (const value of source) {\n if (builder.append(value)[sizeProperty] >= highWaterMark) {\n ++numChunks && (yield builder.toVector());\n }\n }\n if (builder.finish().length > 0 || numChunks === 0) {\n yield builder.toVector();\n }\n };\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Bool } from '../type';\nimport { BitmapBufferBuilder } from './buffer';\nimport { Builder, BuilderOptions } from '../builder';\n\n/** @ignore */\nexport class BoolBuilder extends Builder {\n constructor(options: BuilderOptions) {\n super(options);\n this._values = new BitmapBufferBuilder();\n }\n public setValue(index: number, value: boolean) {\n this._values.set(index, +value);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Null } from '../type';\nimport { Builder } from '../builder';\n\n/** @ignore */\nexport class NullBuilder extends Builder {\n // @ts-ignore\n public setValue(index: number, value: null) {}\n public setValid(index: number, valid: boolean) {\n this.length = Math.max(index + 1, this.length);\n return valid;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Date_, DateDay, DateMillisecond } from '../type';\n\n/** @ignore */\nexport class DateBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class DateDayBuilder extends DateBuilder {}\n/** @ignore */\nexport class DateMillisecondBuilder extends DateBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Decimal } from '../type';\nimport { FixedWidthBuilder } from '../builder';\n\n/** @ignore */\nexport class DecimalBuilder extends FixedWidthBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { IntBuilder } from './int';\nimport { Dictionary, DataType } from '../type';\nimport { Builder, BuilderOptions } from '../builder';\n\ntype DictionaryHashFunction = (x: any) => string | number;\n\nexport interface DictionaryBuilderOptions extends BuilderOptions {\n dictionaryHashFunction?: DictionaryHashFunction;\n}\n\n/** @ignore */\nexport class DictionaryBuilder extends Builder {\n\n protected _dictionaryOffset: number;\n protected _dictionary?: Vector;\n protected _keysToIndices: { [key: string]: number };\n public readonly indices: IntBuilder;\n public readonly dictionary: Builder;\n\n constructor({ 'type': type, 'nullValues': nulls, 'dictionaryHashFunction': hashFn }: DictionaryBuilderOptions) {\n super({ type: new Dictionary(type.dictionary, type.indices, type.id, type.isOrdered) as T });\n this._nulls = null;\n this._dictionaryOffset = 0;\n this._keysToIndices = Object.create(null);\n this.indices = Builder.new({ 'type': this.type.indices, 'nullValues': nulls }) as IntBuilder;\n this.dictionary = Builder.new({ 'type': this.type.dictionary, 'nullValues': null }) as Builder;\n if (typeof hashFn === 'function') {\n this.valueToKey = hashFn;\n }\n }\n\n public get values() { return this.indices.values; }\n public get nullCount() { return this.indices.nullCount; }\n public get nullBitmap() { return this.indices.nullBitmap; }\n public get byteLength() { return this.indices.byteLength + this.dictionary.byteLength; }\n public get reservedLength() { return this.indices.reservedLength + this.dictionary.reservedLength; }\n public get reservedByteLength() { return this.indices.reservedByteLength + this.dictionary.reservedByteLength; }\n public isValid(value: T['TValue'] | TNull) { return this.indices.isValid(value); }\n public setValid(index: number, valid: boolean) {\n const indices = this.indices;\n valid = indices.setValid(index, valid);\n this.length = indices.length;\n return valid;\n }\n public setValue(index: number, value: T['TValue']) {\n let keysToIndices = this._keysToIndices;\n let key = this.valueToKey(value);\n let idx = keysToIndices[key];\n if (idx === undefined) {\n keysToIndices[key] = idx = this._dictionaryOffset + this.dictionary.append(value).length - 1;\n }\n return this.indices.setValue(index, idx);\n }\n public flush() {\n const type = this.type;\n const prev = this._dictionary;\n const curr = this.dictionary.toVector();\n const data = this.indices.flush().clone(type);\n data.dictionary = prev ? prev.concat(curr) : curr;\n this.finished || (this._dictionaryOffset += curr.length);\n this._dictionary = data.dictionary as Vector;\n this.clear();\n return data;\n }\n public finish() {\n this.indices.finish();\n this.dictionary.finish();\n this._dictionaryOffset = 0;\n this._keysToIndices = Object.create(null);\n return super.finish();\n }\n public clear() {\n this.indices.clear();\n this.dictionary.clear();\n return super.clear();\n }\n public valueToKey(val: any): string | number {\n return typeof val === 'string' ? val : `${val}`;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedSizeBinary } from '../type';\nimport { FixedWidthBuilder } from '../builder';\n\n/** @ignore */\nexport class FixedSizeBinaryBuilder extends FixedWidthBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nconst f64 = new Float64Array(1);\nconst u32 = new Uint32Array(f64.buffer);\n\n/**\n * Convert uint16 (logically a float16) to a JS float64. Inspired by numpy's `npy_half_to_double`:\n * https://github.com/numpy/numpy/blob/5a5987291dc95376bb098be8d8e5391e89e77a2c/numpy/core/src/npymath/halffloat.c#L29\n * @param h {number} the uint16 to convert\n * @private\n * @ignore\n */\nexport function uint16ToFloat64(h: number) {\n let expo = (h & 0x7C00) >> 10;\n let sigf = (h & 0x03FF) / 1024;\n let sign = (-1) ** ((h & 0x8000) >> 15);\n switch (expo) {\n case 0x1F: return sign * (sigf ? NaN : 1 / 0);\n case 0x00: return sign * (sigf ? 6.103515625e-5 * sigf : 0);\n }\n return sign * (2 ** (expo - 15)) * (1 + sigf);\n}\n\n/**\n * Convert a float64 to uint16 (assuming the float64 is logically a float16). Inspired by numpy's `npy_double_to_half`:\n * https://github.com/numpy/numpy/blob/5a5987291dc95376bb098be8d8e5391e89e77a2c/numpy/core/src/npymath/halffloat.c#L43\n * @param d {number} The float64 to convert\n * @private\n * @ignore\n */\nexport function float64ToUint16(d: number) {\n\n if (d !== d) { return 0x7E00; } // NaN\n\n f64[0] = d;\n\n // Magic numbers:\n // 0x80000000 = 10000000 00000000 00000000 00000000 -- masks the 32nd bit\n // 0x7ff00000 = 01111111 11110000 00000000 00000000 -- masks the 21st-31st bits\n // 0x000fffff = 00000000 00001111 11111111 11111111 -- masks the 1st-20th bit\n\n let sign = (u32[1] & 0x80000000) >> 16 & 0xFFFF;\n let expo = (u32[1] & 0x7ff00000), sigf = 0x0000;\n\n if (expo >= 0x40f00000) {\n //\n // If exponent overflowed, the float16 is either NaN or Infinity.\n // Rules to propagate the sign bit: mantissa > 0 ? NaN : +/-Infinity\n //\n // Magic numbers:\n // 0x40F00000 = 01000000 11110000 00000000 00000000 -- 6-bit exponent overflow\n // 0x7C000000 = 01111100 00000000 00000000 00000000 -- masks the 27th-31st bits\n //\n // returns:\n // qNaN, aka 32256 decimal, 0x7E00 hex, or 01111110 00000000 binary\n // sNaN, aka 32000 decimal, 0x7D00 hex, or 01111101 00000000 binary\n // +inf, aka 31744 decimal, 0x7C00 hex, or 01111100 00000000 binary\n // -inf, aka 64512 decimal, 0xFC00 hex, or 11111100 00000000 binary\n //\n // If mantissa is greater than 23 bits, set to +Infinity like numpy\n if (u32[0] > 0) {\n expo = 0x7C00;\n } else {\n expo = (expo & 0x7C000000) >> 16;\n sigf = (u32[1] & 0x000fffff) >> 10;\n }\n } else if (expo <= 0x3f000000) {\n //\n // If exponent underflowed, the float is either signed zero or subnormal.\n //\n // Magic numbers:\n // 0x3F000000 = 00111111 00000000 00000000 00000000 -- 6-bit exponent underflow\n //\n sigf = 0x100000 + (u32[1] & 0x000fffff);\n sigf = 0x100000 + (sigf << ((expo >> 20) - 998)) >> 21;\n expo = 0;\n } else {\n //\n // No overflow or underflow, rebase the exponent and round the mantissa\n // Magic numbers:\n // 0x200 = 00000010 00000000 -- masks off the 10th bit\n //\n\n // Ensure the first mantissa bit (the 10th one) is 1 and round\n expo = (expo - 0x3f000000) >> 10;\n sigf = ((u32[1] & 0x000fffff) + 0x200) >> 10;\n }\n\n return sign | expo | sigf & 0xFFFF;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { float64ToUint16 } from '../util/math';\nimport { FixedWidthBuilder } from '../builder';\nimport { Float, Float16, Float32, Float64 } from '../type';\n\n/** @ignore */\nexport class FloatBuilder extends FixedWidthBuilder {}\n\n/** @ignore */\nexport class Float16Builder extends FloatBuilder {\n public setValue(index: number, value: number) {\n // convert JS float64 to a uint16\n this._values.set(index, float64ToUint16(value));\n }\n}\n\n/** @ignore */\nexport class Float32Builder extends FloatBuilder {\n public setValue(index: number, value: number) {\n this._values.set(index, value);\n }\n}\n\n/** @ignore */\nexport class Float64Builder extends FloatBuilder {\n public setValue(index: number, value: number) {\n this._values.set(index, value);\n }\n}\n","import setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { ArrayBufferViewInput, toArrayBufferView } from './buffer';\nimport { TypedArray, TypedArrayConstructor } from '../interfaces';\nimport { BigIntArray, BigIntArrayConstructor } from '../interfaces';\nimport { BigIntAvailable, BigInt64Array, BigUint64Array } from './compat';\n\n/** @ignore */\nexport const isArrowBigNumSymbol = Symbol.for('isArrowBigNum');\n\n/** @ignore */ type BigNumArray = IntArray | UintArray;\n/** @ignore */ type IntArray = Int8Array | Int16Array | Int32Array;\n/** @ignore */ type UintArray = Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray;\n\n/** @ignore */\nfunction BigNum(this: any, x: any, ...xs: any) {\n if (xs.length === 0) {\n return Object.setPrototypeOf(toArrayBufferView(this['TypedArray'], x), this.constructor.prototype);\n }\n return Object.setPrototypeOf(new this['TypedArray'](x, ...xs), this.constructor.prototype);\n}\n\nBigNum.prototype[isArrowBigNumSymbol] = true;\nBigNum.prototype.toJSON = function>(this: T) { return `\"${bignumToString(this)}\"`; };\nBigNum.prototype.valueOf = function>(this: T) { return bignumToNumber(this); };\nBigNum.prototype.toString = function>(this: T) { return bignumToString(this); };\nBigNum.prototype[Symbol.toPrimitive] = function>(this: T, hint: 'string' | 'number' | 'default' = 'default') {\n switch (hint) {\n case 'number': return bignumToNumber(this);\n case 'string': return bignumToString(this);\n case 'default': return bignumToBigInt(this);\n }\n return bignumToString(this);\n};\n\n/** @ignore */\ntype TypedArrayConstructorArgs =\n [number | void] |\n [Iterable | Iterable] |\n [ArrayBufferLike, number | void, number | void] ;\n\n/** @ignore */\nfunction SignedBigNum(this: any, ...args: TypedArrayConstructorArgs) { return BigNum.apply(this, args); }\n/** @ignore */\nfunction UnsignedBigNum(this: any, ...args: TypedArrayConstructorArgs) { return BigNum.apply(this, args); }\n/** @ignore */\nfunction DecimalBigNum(this: any, ...args: TypedArrayConstructorArgs) { return BigNum.apply(this, args); }\n\nObject.setPrototypeOf(SignedBigNum.prototype, Object.create(Int32Array.prototype));\nObject.setPrototypeOf(UnsignedBigNum.prototype, Object.create(Uint32Array.prototype));\nObject.setPrototypeOf(DecimalBigNum.prototype, Object.create(Uint32Array.prototype));\nObject.assign(SignedBigNum.prototype, BigNum.prototype, { 'constructor': SignedBigNum, 'signed': true, 'TypedArray': Int32Array, 'BigIntArray': BigInt64Array });\nObject.assign(UnsignedBigNum.prototype, BigNum.prototype, { 'constructor': UnsignedBigNum, 'signed': false, 'TypedArray': Uint32Array, 'BigIntArray': BigUint64Array });\nObject.assign(DecimalBigNum.prototype, BigNum.prototype, { 'constructor': DecimalBigNum, 'signed': true, 'TypedArray': Uint32Array, 'BigIntArray': BigUint64Array });\n\n/** @ignore */\nfunction bignumToNumber>(bn: T) {\n let { buffer, byteOffset, length, 'signed': signed } = bn;\n let words = new Int32Array(buffer, byteOffset, length);\n let number = 0, i = 0, n = words.length, hi, lo;\n while (i < n) {\n lo = words[i++];\n hi = words[i++];\n signed || (hi = hi >>> 0);\n number += (lo >>> 0) + (hi * (i ** 32));\n }\n return number;\n}\n\n/** @ignore */\nexport let bignumToString: { >(a: T): string; };\n/** @ignore */\nexport let bignumToBigInt: { >(a: T): bigint; };\n\nif (!BigIntAvailable) {\n bignumToString = decimalToString;\n bignumToBigInt = bignumToString;\n} else {\n bignumToBigInt = (>(a: T) => a.byteLength === 8 ? new a['BigIntArray'](a.buffer, a.byteOffset, 1)[0] : decimalToString(a));\n bignumToString = (>(a: T) => a.byteLength === 8 ? `${new a['BigIntArray'](a.buffer, a.byteOffset, 1)[0]}` : decimalToString(a));\n}\n\n/** @ignore */\nfunction decimalToString>(a: T) {\n let digits = '';\n let base64 = new Uint32Array(2);\n let base32 = new Uint16Array(a.buffer, a.byteOffset, a.byteLength / 2);\n let checks = new Uint32Array((base32 = new Uint16Array(base32).reverse()).buffer);\n let i = -1, n = base32.length - 1;\n do {\n for (base64[0] = base32[i = 0]; i < n;) {\n base32[i++] = base64[1] = base64[0] / 10;\n base64[0] = ((base64[0] - base64[1] * 10) << 16) + base32[i];\n }\n base32[i] = base64[1] = base64[0] / 10;\n base64[0] = base64[0] - base64[1] * 10;\n digits = `${base64[0]}${digits}`;\n } while (checks[0] || checks[1] || checks[2] || checks[3]);\n return digits ? digits : `0`;\n}\n\n/** @ignore */\nexport class BN {\n /** @nocollapse */\n public static new(num: T, isSigned?: boolean): (T & BN) {\n switch (isSigned) {\n case true: return new ( SignedBigNum)(num) as (T & BN);\n case false: return new ( UnsignedBigNum)(num) as (T & BN);\n }\n switch (num.constructor) {\n case Int8Array:\n case Int16Array:\n case Int32Array:\n case BigInt64Array:\n return new ( SignedBigNum)(num) as (T & BN);\n }\n if (num.byteLength === 16) {\n return new ( DecimalBigNum)(num) as (T & BN);\n }\n return new ( UnsignedBigNum)(num) as (T & BN);\n }\n /** @nocollapse */\n public static signed(num: T): (T & BN) {\n return new ( SignedBigNum)(num) as (T & BN);\n }\n /** @nocollapse */\n public static unsigned(num: T): (T & BN) {\n return new ( UnsignedBigNum)(num) as (T & BN);\n }\n /** @nocollapse */\n public static decimal(num: T): (T & BN) {\n return new ( DecimalBigNum)(num) as (T & BN);\n }\n constructor(num: T, isSigned?: boolean) {\n return BN.new(num, isSigned) as any;\n }\n}\n\n/** @ignore */\nexport interface BN extends TypedArrayLike {\n\n new(buffer: T, signed?: boolean): T;\n\n readonly signed: boolean;\n readonly TypedArray: TypedArrayConstructor;\n readonly BigIntArray: BigIntArrayConstructor;\n\n [Symbol.toStringTag]:\n 'Int8Array' |\n 'Int16Array' |\n 'Int32Array' |\n 'Uint8Array' |\n 'Uint16Array' |\n 'Uint32Array' |\n 'Uint8ClampedArray';\n\n /**\n * Convert the bytes to their (positive) decimal representation for printing\n */\n toString(): string;\n /**\n * Down-convert the bytes to a 53-bit precision integer. Invoked by JS for\n * arithmetic operators, like `+`. Easy (and unsafe) way to convert BN to\n * number via `+bn_inst`\n */\n valueOf(): number;\n /**\n * Return the JSON representation of the bytes. Must be wrapped in double-quotes,\n * so it's compatible with JSON.stringify().\n */\n toJSON(): string;\n [Symbol.toPrimitive](hint?: any): number | string | bigint;\n}\n\n/** @ignore */\ninterface TypedArrayLike {\n\n readonly length: number;\n readonly buffer: ArrayBuffer;\n readonly byteLength: number;\n readonly byteOffset: number;\n readonly BYTES_PER_ELEMENT: number;\n\n includes(searchElement: number, fromIndex?: number | undefined): boolean;\n copyWithin(target: number, start: number, end?: number | undefined): this;\n every(callbackfn: (value: number, index: number, array: T) => boolean, thisArg?: any): boolean;\n fill(value: number, start?: number | undefined, end?: number | undefined): this;\n filter(callbackfn: (value: number, index: number, array: T) => boolean, thisArg?: any): T;\n find(predicate: (value: number, index: number, obj: T) => boolean, thisArg?: any): number | undefined;\n findIndex(predicate: (value: number, index: number, obj: T) => boolean, thisArg?: any): number;\n forEach(callbackfn: (value: number, index: number, array: T) => void, thisArg?: any): void;\n indexOf(searchElement: number, fromIndex?: number | undefined): number;\n join(separator?: string | undefined): string;\n lastIndexOf(searchElement: number, fromIndex?: number | undefined): number;\n map(callbackfn: (value: number, index: number, array: T) => number, thisArg?: any): T;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number, initialValue: number): number;\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: T) => U, initialValue: U): U;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number, initialValue: number): number;\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: T) => U, initialValue: U): U;\n reverse(): T;\n set(array: ArrayLike, offset?: number | undefined): void;\n slice(start?: number | undefined, end?: number | undefined): T;\n some(callbackfn: (value: number, index: number, array: T) => boolean, thisArg?: any): boolean;\n sort(compareFn?: ((a: number, b: number) => number) | undefined): this;\n subarray(begin: number, end?: number | undefined): T;\n toLocaleString(): string;\n entries(): IterableIterator<[number, number]>;\n keys(): IterableIterator;\n values(): IterableIterator;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { bignumToBigInt } from '../util/bn';\nimport { WideBufferBuilder } from './buffer';\nimport { BigInt64Array } from '../util/compat';\nimport { FixedWidthBuilder, BuilderOptions } from '../builder';\nimport { Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64 } from '../type';\n\n/** @ignore */\nexport class IntBuilder extends FixedWidthBuilder {\n public setValue(index: number, value: T['TValue']) {\n this._values.set(index, value);\n }\n}\n\n/** @ignore */\nexport class Int8Builder extends IntBuilder {}\n/** @ignore */\nexport class Int16Builder extends IntBuilder {}\n/** @ignore */\nexport class Int32Builder extends IntBuilder {}\n/** @ignore */\nexport class Int64Builder extends IntBuilder {\n protected _values: WideBufferBuilder;\n constructor(options: BuilderOptions) {\n if (options['nullValues']) {\n options['nullValues'] = (options['nullValues'] as TNull[]).map(toBigInt);\n }\n super(options);\n this._values = new WideBufferBuilder(new Int32Array(0), 2);\n }\n public get values64() { return this._values.buffer64; }\n public isValid(value: Int32Array | bigint | TNull) { return super.isValid(toBigInt(value)); }\n}\n\n/** @ignore */\nexport class Uint8Builder extends IntBuilder {}\n/** @ignore */\nexport class Uint16Builder extends IntBuilder {}\n/** @ignore */\nexport class Uint32Builder extends IntBuilder {}\n/** @ignore */\nexport class Uint64Builder extends IntBuilder {\n protected _values: WideBufferBuilder;\n constructor(options: BuilderOptions) {\n if (options['nullValues']) {\n options['nullValues'] = (options['nullValues'] as TNull[]).map(toBigInt);\n }\n super(options);\n this._values = new WideBufferBuilder(new Uint32Array(0), 2);\n }\n public get values64() { return this._values.buffer64; }\n public isValid(value: Uint32Array | bigint | TNull) { return super.isValid(toBigInt(value)); }\n}\n\nconst toBigInt = ((memo: any) => (value: any) => {\n if (ArrayBuffer.isView(value)) {\n memo.buffer = value.buffer;\n memo.byteOffset = value.byteOffset;\n memo.byteLength = value.byteLength;\n value = bignumToBigInt(memo);\n memo.buffer = null;\n }\n return value;\n})({ 'BigIntArray': BigInt64Array });\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond } from '../type';\n\n/** @ignore */\nexport class TimeBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class TimeSecondBuilder extends TimeBuilder {}\n/** @ignore */\nexport class TimeMillisecondBuilder extends TimeBuilder {}\n/** @ignore */\nexport class TimeMicrosecondBuilder extends TimeBuilder {}\n/** @ignore */\nexport class TimeNanosecondBuilder extends TimeBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond } from '../type';\n\n/** @ignore */\nexport class TimestampBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class TimestampSecondBuilder extends TimestampBuilder {}\n/** @ignore */\nexport class TimestampMillisecondBuilder extends TimestampBuilder {}\n/** @ignore */\nexport class TimestampMicrosecondBuilder extends TimestampBuilder {}\n/** @ignore */\nexport class TimestampNanosecondBuilder extends TimestampBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Interval, IntervalDayTime, IntervalYearMonth } from '../type';\n\n/** @ignore */\nexport class IntervalBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class IntervalDayTimeBuilder extends IntervalBuilder {}\n/** @ignore */\nexport class IntervalYearMonthBuilder extends IntervalBuilder {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Binary } from '../type';\nimport { toUint8Array } from '../util/buffer';\nimport { BufferBuilder } from './buffer';\nimport { VariableWidthBuilder, BuilderOptions } from '../builder';\n\n/** @ignore */\nexport class BinaryBuilder extends VariableWidthBuilder {\n constructor(opts: BuilderOptions) {\n super(opts);\n this._values = new BufferBuilder(new Uint8Array(0));\n }\n public get byteLength(): number {\n let size = this._pendingLength + (this.length * 4);\n this._offsets && (size += this._offsets.byteLength);\n this._values && (size += this._values.byteLength);\n this._nulls && (size += this._nulls.byteLength);\n return size;\n }\n public setValue(index: number, value: Uint8Array) {\n return super.setValue(index, toUint8Array(value));\n }\n protected _flushPending(pending: Map, pendingLength: number) {\n const offsets = this._offsets;\n const data = this._values.reserve(pendingLength).buffer;\n let index = 0, length = 0, offset = 0, value: Uint8Array | undefined;\n for ([index, value] of pending) {\n if (value === undefined) {\n offsets.set(index, 0);\n } else {\n length = value.length;\n data.set(value, offset);\n offsets.set(index, length);\n offset += length;\n }\n }\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Utf8 } from '../type';\nimport { encodeUtf8 } from '../util/utf8';\nimport { BinaryBuilder } from './binary';\nimport { BufferBuilder } from './buffer';\nimport { VariableWidthBuilder, BuilderOptions } from '../builder';\n\n/** @ignore */\nexport class Utf8Builder extends VariableWidthBuilder {\n constructor(opts: BuilderOptions) {\n super(opts);\n this._values = new BufferBuilder(new Uint8Array(0));\n }\n public get byteLength(): number {\n let size = this._pendingLength + (this.length * 4);\n this._offsets && (size += this._offsets.byteLength);\n this._values && (size += this._values.byteLength);\n this._nulls && (size += this._nulls.byteLength);\n return size;\n }\n public setValue(index: number, value: string) {\n return super.setValue(index, encodeUtf8(value) as any);\n }\n // @ts-ignore\n protected _flushPending(pending: Map, pendingLength: number): void {}\n}\n\n(Utf8Builder.prototype as any)._flushPending = (BinaryBuilder.prototype as any)._flushPending;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\n\n/** @ignore */\nexport class Run {\n // @ts-ignore\n protected _values: ArrayLike;\n public get length() { return this._values.length; }\n public get(index: number) { return this._values[index]; }\n public clear() { this._values = null; return this; }\n public bind(values: Vector | ArrayLike) {\n if (values instanceof Vector) {\n return values;\n }\n this._values = values;\n return this as any;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { StructVector } from './struct';\nimport { valueToString } from '../util/pretty';\nimport { DataType, Struct, RowLike } from '../type';\n\n/** @ignore */ const kParent = Symbol.for('parent');\n/** @ignore */ const kRowIndex = Symbol.for('rowIndex');\n/** @ignore */ const kKeyToIdx = Symbol.for('keyToIdx');\n/** @ignore */ const kIdxToVal = Symbol.for('idxToVal');\n/** @ignore */ const kCustomInspect = Symbol.for('nodejs.util.inspect.custom');\n\nabstract class Row implements Map {\n\n public readonly size: number;\n public readonly [Symbol.toStringTag]: string;\n\n protected [kRowIndex]: number;\n protected [kParent]: Vector;\n protected [kKeyToIdx]: Map;\n protected [kIdxToVal]: V[];\n\n constructor(parent: Vector, numKeys: number) {\n this[kParent] = parent;\n this.size = numKeys;\n }\n\n public abstract keys(): IterableIterator;\n public abstract values(): IterableIterator;\n public abstract getKey(idx: number): K;\n public abstract getIndex(key: K): number;\n public abstract getValue(idx: number): V;\n public abstract setValue(idx: number, val: V): void;\n\n public entries() { return this[Symbol.iterator](); }\n\n public has(key: K) { return this.get(key) !== undefined; }\n\n public get(key: K) {\n let val = undefined;\n if (key !== null && key !== undefined) {\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n let idx = ktoi.get(key);\n if (idx !== undefined) {\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n ((val = itov[idx]) !== undefined) || (itov[idx] = val = this.getValue(idx));\n } else if ((idx = this.getIndex(key)) > -1) {\n ktoi.set(key, idx);\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n ((val = itov[idx]) !== undefined) || (itov[idx] = val = this.getValue(idx));\n }\n }\n return val;\n }\n\n public set(key: K, val: V) {\n if (key !== null && key !== undefined) {\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n let idx = ktoi.get(key);\n if (idx === undefined) {\n ktoi.set(key, idx = this.getIndex(key));\n }\n if (idx > -1) {\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n itov[idx] = this.setValue(idx, val);\n }\n }\n return this;\n }\n\n public clear(): void { throw new Error(`Clearing ${this[Symbol.toStringTag]} not supported.`); }\n\n public delete(_: K): boolean { throw new Error(`Deleting ${this[Symbol.toStringTag]} values not supported.`); }\n\n public *[Symbol.iterator](): IterableIterator<[K, V]> {\n\n const ki = this.keys();\n const vi = this.values();\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n\n for (let k: K, v: V, i = 0, kr: IteratorResult, vr: IteratorResult;\n !((kr = ki.next()).done || (vr = vi.next()).done);\n ++i\n ) {\n k = kr.value;\n v = vr.value;\n itov[i] = v;\n ktoi.has(k) || ktoi.set(k, i);\n yield [k, v];\n }\n }\n\n public forEach(callbackfn: (value: V, key: K, map: Map) => void, thisArg?: any): void {\n\n const ki = this.keys();\n const vi = this.values();\n const callback = thisArg === undefined ? callbackfn :\n (v: V, k: K, m: Map) => callbackfn.call(thisArg, v, k, m);\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n\n for (let k: K, v: V, i = 0, kr: IteratorResult, vr: IteratorResult;\n !((kr = ki.next()).done || (vr = vi.next()).done);\n ++i\n ) {\n k = kr.value;\n v = vr.value;\n itov[i] = v;\n ktoi.has(k) || ktoi.set(k, i);\n callback(v, k, this);\n }\n }\n\n public toArray() { return [...this.values()]; }\n public toJSON() {\n const obj = {} as any;\n this.forEach((val, key) => obj[key] = val);\n return obj;\n }\n\n public inspect() { return this.toString(); }\n public [kCustomInspect]() { return this.toString(); }\n public toString() {\n const str: string[] = [];\n this.forEach((val, key) => {\n key = valueToString(key);\n val = valueToString(val);\n str.push(`${key}: ${val}`);\n });\n return `{ ${str.join(', ')} }`;\n }\n\n protected static [Symbol.toStringTag] = ((proto: Row) => {\n Object.defineProperties(proto, {\n 'size': { writable: true, enumerable: false, configurable: false, value: 0 },\n [kParent]: { writable: true, enumerable: false, configurable: false, value: null },\n [kRowIndex]: { writable: true, enumerable: false, configurable: false, value: -1 },\n });\n return (proto as any)[Symbol.toStringTag] = 'Row';\n })(Row.prototype);\n}\n\nexport class MapRow extends Row {\n constructor(slice: Vector>) {\n super(slice, slice.length);\n return createRowProxy(this);\n }\n public keys() {\n return this[kParent].getChildAt(0)![Symbol.iterator]();\n }\n public values() {\n return this[kParent].getChildAt(1)![Symbol.iterator]();\n }\n public getKey(idx: number): K['TValue'] {\n return this[kParent].getChildAt(0)!.get(idx);\n }\n public getIndex(key: K['TValue']): number {\n return this[kParent].getChildAt(0)!.indexOf(key);\n }\n public getValue(index: number): V['TValue'] | null {\n return this[kParent].getChildAt(1)!.get(index);\n }\n public setValue(index: number, value: V['TValue'] | null): void {\n this[kParent].getChildAt(1)!.set(index, value);\n }\n}\n\nexport class StructRow extends Row {\n constructor(parent: StructVector) {\n super(parent, parent.type.children.length);\n return defineRowProxyProperties(this);\n }\n public *keys() {\n for (const field of this[kParent].type.children) {\n yield field.name as keyof T;\n }\n }\n public *values() {\n for (const field of this[kParent].type.children) {\n yield (this as RowLike)[field.name];\n }\n }\n public getKey(idx: number): keyof T {\n return this[kParent].type.children[idx].name as keyof T;\n }\n public getIndex(key: keyof T): number {\n return this[kParent].type.children.findIndex((f) => f.name === key);\n }\n public getValue(index: number): T[keyof T]['TValue'] | null {\n return this[kParent].getChildAt(index)!.get(this[kRowIndex]);\n }\n public setValue(index: number, value: T[keyof T]['TValue'] | null): void {\n return this[kParent].getChildAt(index)!.set(this[kRowIndex], value);\n }\n}\n\nObject.setPrototypeOf(Row.prototype, Map.prototype);\n\n/** @ignore */\nconst defineRowProxyProperties = (() => {\n const desc = { enumerable: true, configurable: false, get: null as any, set: null as any };\n return (row: T) => {\n let idx = -1, ktoi = row[kKeyToIdx] || (row[kKeyToIdx] = new Map());\n const getter = (key: any) => function(this: T) { return this.get(key); };\n const setter = (key: any) => function(this: T, val: any) { return this.set(key, val); };\n for (const key of row.keys()) {\n ktoi.set(key, ++idx);\n desc.get = getter(key);\n desc.set = setter(key);\n row.hasOwnProperty(key) || (desc.enumerable = true, Object.defineProperty(row, key, desc));\n row.hasOwnProperty(idx) || (desc.enumerable = false, Object.defineProperty(row, idx, desc));\n }\n desc.get = desc.set = null;\n return row;\n };\n})();\n\n/** @ignore */\nconst createRowProxy = (() => {\n if (typeof Proxy === 'undefined') {\n return defineRowProxyProperties;\n }\n const has = Row.prototype.has;\n const get = Row.prototype.get;\n const set = Row.prototype.set;\n const getKey = Row.prototype.getKey;\n const RowProxyHandler: ProxyHandler = {\n isExtensible() { return false; },\n deleteProperty() { return false; },\n preventExtensions() { return true; },\n ownKeys(row: Row) { return [...row.keys()].map((x) => `${x}`); },\n has(row: Row, key: PropertyKey) {\n switch (key) {\n case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n case Symbol.iterator: case Symbol.toStringTag: case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx: case kCustomInspect:\n return true;\n }\n if (typeof key === 'number' && !row.has(key)) {\n key = row.getKey(key);\n }\n return row.has(key);\n },\n get(row: Row, key: PropertyKey, receiver: any) {\n switch (key) {\n case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n case Symbol.iterator: case Symbol.toStringTag: case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx: case kCustomInspect:\n return Reflect.get(row, key, receiver);\n }\n if (typeof key === 'number' && !has.call(receiver, key)) {\n key = getKey.call(receiver, key);\n }\n return get.call(receiver, key);\n },\n set(row: Row, key: PropertyKey, val: any, receiver: any) {\n switch (key) {\n case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx:\n return Reflect.set(row, key, val, receiver);\n case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n case Symbol.iterator: case Symbol.toStringTag:\n return false;\n }\n if (typeof key === 'number' && !has.call(receiver, key)) {\n key = getKey.call(receiver, key);\n }\n return has.call(receiver, key) ? !!set.call(receiver, key, val) : false;\n },\n };\n return (row: T) => new Proxy(row, RowProxyHandler) as T;\n})();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { MapRow, StructRow } from '../vector/row';\nimport { compareArrayLike } from '../util/buffer';\nimport { BigInt, BigIntAvailable } from './compat';\n\n/** @ignore */\ntype RangeLike = { length: number; stride?: number };\n/** @ignore */\ntype ClampThen = (source: T, index: number) => any;\n/** @ignore */\ntype ClampRangeThen = (source: T, offset: number, length: number) => any;\n\nexport function clampIndex(source: T, index: number): number;\nexport function clampIndex = ClampThen>(source: T, index: number, then: N): ReturnType;\n/** @ignore */\nexport function clampIndex = ClampThen>(source: T, index: number, then?: N) {\n const length = source.length;\n const adjust = index > -1 ? index : (length + (index % length));\n return then ? then(source, adjust) : adjust;\n}\n\n/** @ignore */\nlet tmp: number;\nexport function clampRange(source: T, begin: number | undefined, end: number | undefined): [number, number];\nexport function clampRange = ClampRangeThen>(source: T, begin: number | undefined, end: number | undefined, then: N): ReturnType;\n/** @ignore */\nexport function clampRange = ClampRangeThen>(source: T, begin: number | undefined, end: number | undefined, then?: N) {\n\n // Adjust args similar to Array.prototype.slice. Normalize begin/end to\n // clamp between 0 and length, and wrap around on negative indices, e.g.\n // slice(-1, 5) or slice(5, -1)\n let { length: len = 0 } = source;\n let lhs = typeof begin !== 'number' ? 0 : begin;\n let rhs = typeof end !== 'number' ? len : end;\n // wrap around on negative start/end positions\n (lhs < 0) && (lhs = ((lhs % len) + len) % len);\n (rhs < 0) && (rhs = ((rhs % len) + len) % len);\n // ensure lhs <= rhs\n (rhs < lhs) && (tmp = lhs, lhs = rhs, rhs = tmp);\n // ensure rhs <= length\n (rhs > len) && (rhs = len);\n\n return then ? then(source, lhs, rhs) : [lhs, rhs];\n}\n\nconst big0 = BigIntAvailable ? BigInt(0) : 0;\nconst isNaNFast = (value: any) => value !== value;\n\n/** @ignore */\nexport function createElementComparator(search: any) {\n let typeofSearch = typeof search;\n // Compare primitives\n if (typeofSearch !== 'object' || search === null) {\n // Compare NaN\n if (isNaNFast(search)) {\n return isNaNFast;\n }\n return typeofSearch !== 'bigint'\n ? (value: any) => value === search\n : (value: any) => (big0 + value) === search;\n }\n // Compare Dates\n if (search instanceof Date) {\n const valueOfSearch = search.valueOf();\n return (value: any) => value instanceof Date ? (value.valueOf() === valueOfSearch) : false;\n }\n // Compare TypedArrays\n if (ArrayBuffer.isView(search)) {\n return (value: any) => value ? compareArrayLike(search, value) : false;\n }\n // Compare Maps and Rows\n if (search instanceof Map) { return creatMapComparator(search); }\n // Compare Array-likes\n if (Array.isArray(search)) { return createArrayLikeComparator(search); }\n // Compare Vectors\n if (search instanceof Vector) { return createVectorComparator(search); }\n // Compare non-empty Objects\n return createObjectComparator(search);\n}\n\n/** @ignore */\nfunction createArrayLikeComparator(lhs: ArrayLike) {\n const comparators = [] as ((x: any) => boolean)[];\n for (let i = -1, n = lhs.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs[i]);\n }\n return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction creatMapComparator(lhs: Map) {\n let i = -1;\n const comparators = [] as ((x: any) => boolean)[];\n lhs.forEach((v) => comparators[++i] = createElementComparator(v));\n return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction createVectorComparator(lhs: Vector) {\n const comparators = [] as ((x: any) => boolean)[];\n for (let i = -1, n = lhs.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs.get(i));\n }\n return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction createObjectComparator(lhs: any) {\n const keys = Object.keys(lhs);\n // Only compare non-empty Objects\n if (keys.length === 0) { return () => false; }\n const comparators = [] as ((x: any) => boolean)[];\n for (let i = -1, n = keys.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs[keys[i]]);\n }\n return createSubElementsComparator(comparators, keys);\n}\n\nfunction createSubElementsComparator(comparators: ((x: any) => boolean)[], keys?: Iterable) {\n return (rhs: any) => {\n if (!rhs || typeof rhs !== 'object') {\n return false;\n }\n switch (rhs.constructor) {\n case Array: return compareArray(comparators, rhs);\n case Map:\n case MapRow:\n case StructRow:\n return compareObject(comparators, rhs, rhs.keys());\n case Object:\n case undefined: // support `Object.create(null)` objects\n return compareObject(comparators, rhs, keys || Object.keys(rhs));\n }\n return rhs instanceof Vector ? compareVector(comparators, rhs) : false;\n };\n}\n\nfunction compareArray(comparators: ((x: any) => boolean)[], arr: any[]) {\n const n = comparators.length;\n if (arr.length !== n) { return false; }\n for (let i = -1; ++i < n;) {\n if (!(comparators[i](arr[i]))) { return false; }\n }\n return true;\n}\n\nfunction compareVector(comparators: ((x: any) => boolean)[], vec: Vector) {\n const n = comparators.length;\n if (vec.length !== n) { return false; }\n for (let i = -1; ++i < n;) {\n if (!(comparators[i](vec.get(i)))) { return false; }\n }\n return true;\n}\n\nfunction compareObject(comparators: ((x: any) => boolean)[], obj: Map, keys: Iterable) {\n\n const lKeyItr = keys[Symbol.iterator]();\n const rKeyItr = obj instanceof Map ? obj.keys() : Object.keys(obj)[Symbol.iterator]();\n const rValItr = obj instanceof Map ? obj.values() : Object.values(obj)[Symbol.iterator]();\n\n let i = 0;\n let n = comparators.length;\n let rVal = rValItr.next();\n let lKey = lKeyItr.next();\n let rKey = rKeyItr.next();\n\n for (; i < n && !lKey.done && !rKey.done && !rVal.done;\n ++i, lKey = lKeyItr.next(), rKey = rKeyItr.next(), rVal = rValItr.next()) {\n if (lKey.value !== rKey.value || !comparators[i](rVal.value)) {\n break;\n }\n }\n if (i === n && lKey.done && rKey.done && rVal.done) {\n return true;\n }\n lKeyItr.return && lKeyItr.return();\n rKeyItr.return && rKeyItr.return();\n rValItr.return && rValItr.return();\n return false;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Field } from '../schema';\nimport { clampRange } from '../util/vector';\nimport { DataType, Dictionary } from '../type';\nimport { selectChunkArgs } from '../util/args';\nimport { DictionaryVector } from './dictionary';\nimport { AbstractVector, Vector } from '../vector';\nimport { Clonable, Sliceable, Applicative } from '../vector';\n\n/** @ignore */\ntype ChunkedDict = T extends Dictionary ? Vector : null | never;\n/** @ignore */\ntype ChunkedKeys = T extends Dictionary ? Vector | Chunked : null | never;\n\n/** @ignore */\nexport type SearchContinuation = (column: T, chunkIndex: number, valueIndex: number) => any;\n\n/** @ignore */\nexport class Chunked\n extends AbstractVector\n implements Clonable>,\n Sliceable>,\n Applicative> {\n\n /** @nocollapse */\n public static flatten(...vectors: (Vector | Vector[])[]) {\n return selectChunkArgs>(Vector, vectors);\n }\n\n /** @nocollapse */\n public static concat(...vectors: (Vector | Vector[])[]) {\n const chunks = Chunked.flatten(...vectors);\n return new Chunked(chunks[0].type, chunks);\n }\n\n protected _type: T;\n protected _length: number;\n protected _chunks: Vector[];\n protected _numChildren: number;\n protected _children?: Chunked[];\n protected _nullCount: number = -1;\n protected _chunkOffsets: Uint32Array;\n\n constructor(type: T, chunks: Vector[] = [], offsets = calculateOffsets(chunks)) {\n super();\n this._type = type;\n this._chunks = chunks;\n this._chunkOffsets = offsets;\n this._length = offsets[offsets.length - 1];\n this._numChildren = (this._type.children || []).length;\n }\n\n public get type() { return this._type; }\n public get length() { return this._length; }\n public get chunks() { return this._chunks; }\n public get typeId(): T['TType'] { return this._type.typeId; }\n public get VectorName() { return `Chunked<${this._type}>`; }\n public get data(): Data {\n return this._chunks[0] ? this._chunks[0].data : null;\n }\n\n public get ArrayType() { return this._type.ArrayType; }\n public get numChildren() { return this._numChildren; }\n public get stride() { return this._chunks[0] ? this._chunks[0].stride : 1; }\n public get byteLength(): number {\n return this._chunks.reduce((byteLength, chunk) => byteLength + chunk.byteLength, 0);\n }\n public get nullCount() {\n let nullCount = this._nullCount;\n if (nullCount < 0) {\n this._nullCount = nullCount = this._chunks.reduce((x, { nullCount }) => x + nullCount, 0);\n }\n return nullCount;\n }\n\n protected _indices?: ChunkedKeys;\n public get indices(): ChunkedKeys | null {\n if (DataType.isDictionary(this._type)) {\n if (!this._indices) {\n const chunks = ( this._chunks) as DictionaryVector[];\n this._indices = (chunks.length === 1\n ? chunks[0].indices\n : Chunked.concat(...chunks.map((x) => x.indices))) as ChunkedKeys;\n }\n return this._indices;\n }\n return null;\n }\n public get dictionary(): ChunkedDict | null {\n if (DataType.isDictionary(this._type)) {\n return this._chunks[this._chunks.length - 1].data.dictionary as ChunkedDict;\n }\n return null;\n }\n\n public *[Symbol.iterator](): IterableIterator {\n for (const chunk of this._chunks) {\n yield* chunk;\n }\n }\n\n public clone(chunks = this._chunks): Chunked {\n return new Chunked(this._type, chunks);\n }\n\n public concat(...others: Vector[]): Chunked {\n return this.clone(Chunked.flatten(this, ...others));\n }\n\n public slice(begin?: number, end?: number): Chunked {\n return clampRange(this, begin, end, this._sliceInternal);\n }\n\n public getChildAt(index: number): Chunked | null {\n\n if (index < 0 || index >= this._numChildren) { return null; }\n\n let columns = this._children || (this._children = []);\n let child: Chunked, field: Field, chunks: Vector[];\n\n if (child = columns[index]) { return child; }\n if (field = ((this._type.children || [])[index] as Field)) {\n chunks = this._chunks\n .map((vector) => vector.getChildAt(index))\n .filter((vec): vec is Vector => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Chunked(field.type, chunks));\n }\n }\n\n return null;\n }\n\n public search(index: number): [number, number] | null;\n public search>>(index: number, then?: N): ReturnType;\n public search>>(index: number, then?: N) {\n let idx = index;\n // binary search to find the child vector and value indices\n let offsets = this._chunkOffsets, rhs = offsets.length - 1;\n // return early if out of bounds, or if there's just one child\n if (idx < 0 ) { return null; }\n if (idx >= offsets[rhs]) { return null; }\n if (rhs <= 1 ) { return then ? then(this, 0, idx) : [0, idx]; }\n let lhs = 0, pos = 0, mid = 0;\n do {\n if (lhs + 1 === rhs) {\n return then ? then(this, lhs, idx - pos) : [lhs, idx - pos];\n }\n mid = lhs + ((rhs - lhs) / 2) | 0;\n idx >= offsets[mid] ? (lhs = mid) : (rhs = mid);\n } while (idx < offsets[rhs] && idx >= (pos = offsets[lhs]));\n return null;\n }\n\n public isValid(index: number): boolean {\n return !!this.search(index, this.isValidInternal);\n }\n\n public get(index: number): T['TValue'] | null {\n return this.search(index, this.getInternal);\n }\n\n public set(index: number, value: T['TValue'] | null): void {\n this.search(index, ({ chunks }, i, j) => chunks[i].set(j, value));\n }\n\n public indexOf(element: T['TValue'], offset?: number): number {\n if (offset && typeof offset === 'number') {\n return this.search(offset, (self, i, j) => this.indexOfInternal(self, i, j, element))!;\n }\n return this.indexOfInternal(this, 0, Math.max(0, offset || 0), element);\n }\n\n public toArray(): T['TArray'] {\n const { chunks } = this;\n const n = chunks.length;\n let ArrayType: any = this._type.ArrayType;\n if (n <= 0) { return new ArrayType(0); }\n if (n <= 1) { return chunks[0].toArray(); }\n let len = 0, src = new Array(n);\n for (let i = -1; ++i < n;) {\n len += (src[i] = chunks[i].toArray()).length;\n }\n if (ArrayType !== src[0].constructor) {\n ArrayType = src[0].constructor;\n }\n let dst = new ArrayType(len);\n let set: any = ArrayType === Array ? arraySet : typedSet;\n for (let i = -1, idx = 0; ++i < n;) {\n idx = set(src[i], dst, idx);\n }\n return dst;\n }\n\n protected getInternal({ _chunks }: Chunked, i: number, j: number) { return _chunks[i].get(j); }\n protected isValidInternal({ _chunks }: Chunked, i: number, j: number) { return _chunks[i].isValid(j); }\n protected indexOfInternal({ _chunks }: Chunked, chunkIndex: number, fromIndex: number, element: T['TValue']) {\n let i = chunkIndex - 1, n = _chunks.length;\n let start = fromIndex, offset = 0, found = -1;\n while (++i < n) {\n if (~(found = _chunks[i].indexOf(element, start))) {\n return offset + found;\n }\n start = 0;\n offset += _chunks[i].length;\n }\n return -1;\n }\n\n protected _sliceInternal(self: Chunked, begin: number, end: number) {\n const slices: Vector[] = [];\n const { chunks, _chunkOffsets: chunkOffsets } = self;\n for (let i = -1, n = chunks.length; ++i < n;) {\n const chunk = chunks[i];\n const chunkLength = chunk.length;\n const chunkOffset = chunkOffsets[i];\n // If the child is to the right of the slice boundary, we can stop\n if (chunkOffset >= end) { break; }\n // If the child is to the left of of the slice boundary, exclude\n if (begin >= chunkOffset + chunkLength) { continue; }\n // If the child is between both left and right boundaries, include w/o slicing\n if (chunkOffset >= begin && (chunkOffset + chunkLength) <= end) {\n slices.push(chunk);\n continue;\n }\n // If the child overlaps one of the slice boundaries, include that slice\n const from = Math.max(0, begin - chunkOffset);\n const to = Math.min(end - chunkOffset, chunkLength);\n slices.push(chunk.slice(from, to) as Vector);\n }\n return self.clone(slices);\n }\n}\n\n/** @ignore */\nfunction calculateOffsets(vectors: Vector[]) {\n let offsets = new Uint32Array((vectors || []).length + 1);\n let offset = offsets[0] = 0, length = offsets.length;\n for (let index = 0; ++index < length;) {\n offsets[index] = (offset += vectors[index - 1].length);\n }\n return offsets;\n}\n\n/** @ignore */\nconst typedSet = (src: TypedArray, dst: TypedArray, offset: number) => {\n dst.set(src, offset);\n return (offset + src.length);\n};\n\n/** @ignore */\nconst arraySet = (src: any[], dst: any[], offset: number) => {\n let idx = offset;\n for (let i = -1, n = src.length; ++i < n;) {\n dst[idx++] = src[i];\n }\n return idx;\n};\n\n/** @ignore */\ninterface TypedArray extends ArrayBufferView {\n readonly length: number;\n readonly [n: number]: number;\n set(array: ArrayLike, offset?: number): void;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Field } from './schema';\nimport { DataType } from './type';\nimport { Vector } from './vector';\nimport { Clonable, Sliceable, Applicative } from './vector';\nimport { VectorCtorArgs, VectorType as V } from './interfaces';\nimport { Chunked, SearchContinuation } from './vector/chunked';\n\nexport interface Column {\n typeId: T['TType'];\n concat(...others: Vector[]): Column;\n slice(begin?: number, end?: number): Column;\n clone(chunks?: Vector[], offsets?: Uint32Array): Column;\n}\n\nexport class Column\n extends Chunked\n implements Clonable>,\n Sliceable>,\n Applicative> {\n\n public static new(field: string | Field, ...chunks: (Vector | Vector[])[]): Column;\n public static new(field: string | Field, data: Data, ...args: VectorCtorArgs>): Column;\n /** @nocollapse */\n public static new(field: string | Field, data: Data | Vector | (Data | Vector)[], ...rest: any[]) {\n\n const chunks = Chunked.flatten(\n Array.isArray(data) ? [...data, ...rest] :\n data instanceof Vector ? [data, ...rest] :\n [Vector.new(data, ...rest)]\n );\n\n if (typeof field === 'string') {\n const type = chunks[0].data.type;\n field = new Field(field, type, true);\n } else if (!field.nullable && chunks.some(({ nullCount }) => nullCount > 0)) {\n field = field.clone({ nullable: true });\n }\n return new Column(field, chunks);\n }\n\n constructor(field: Field, vectors: Vector[] = [], offsets?: Uint32Array) {\n vectors = Chunked.flatten(...vectors);\n super(field.type, vectors, offsets);\n this._field = field;\n if (vectors.length === 1 && !(this instanceof SingleChunkColumn)) {\n return new SingleChunkColumn(field, vectors[0], this._chunkOffsets);\n }\n }\n\n protected _field: Field;\n protected _children?: Column[];\n\n public get field() { return this._field; }\n public get name() { return this._field.name; }\n public get nullable() { return this._field.nullable; }\n public get metadata() { return this._field.metadata; }\n\n public clone(chunks = this._chunks) {\n return new Column(this._field, chunks);\n }\n\n public getChildAt(index: number): Column | null {\n\n if (index < 0 || index >= this.numChildren) { return null; }\n\n let columns = this._children || (this._children = []);\n let column: Column, field: Field, chunks: Vector[];\n\n if (column = columns[index]) { return column; }\n if (field = ((this.type.children || [])[index] as Field)) {\n chunks = this._chunks\n .map((vector) => vector.getChildAt(index))\n .filter((vec): vec is Vector => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Column(field, chunks));\n }\n }\n\n return null;\n }\n}\n\n/** @ignore */\nclass SingleChunkColumn extends Column {\n protected _chunk: Vector;\n constructor(field: Field, vector: Vector, offsets?: Uint32Array) {\n super(field, [vector], offsets);\n this._chunk = vector;\n }\n public search(index: number): [number, number] | null;\n public search>>(index: number, then?: N): ReturnType;\n public search>>(index: number, then?: N) {\n return then ? then(this, 0, index) : [0, index];\n }\n public isValid(index: number): boolean {\n return this._chunk.isValid(index);\n }\n public get(index: number): T['TValue'] | null {\n return this._chunk.get(index);\n }\n public set(index: number, value: T['TValue'] | null): void {\n this._chunk.set(index, value);\n }\n public indexOf(element: T['TValue'], offset?: number): number {\n return this._chunk.indexOf(element, offset);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Field } from '../schema';\nimport { Column } from '../column';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Chunked } from '../vector/chunked';\n\ntype RecordBatchCtor = typeof import('../recordbatch').RecordBatch;\n\nconst isArray = Array.isArray;\n\n/** @ignore */\nexport const selectArgs = (Ctor: any, vals: any[]) => _selectArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectColumnArgs = (args: any[]) => {\n const [fields, values] = _selectFieldArgs(args, [[], []]);\n return values.map((x, i) =>\n x instanceof Column ? Column.new(x.field.clone(fields[i]), x) :\n x instanceof Vector ? Column.new(fields[i], x) as Column :\n Column.new(fields[i], [] as Vector[]));\n};\n\n/** @ignore */\nexport const selectFieldArgs = (args: any[]) => _selectFieldArgs(args, [[], []]);\n/** @ignore */\nexport const selectChunkArgs = (Ctor: any, vals: any[]) => _selectChunkArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectVectorChildrenArgs = (Ctor: RecordBatchCtor, vals: any[]) => _selectVectorChildrenArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectColumnChildrenArgs = (Ctor: RecordBatchCtor, vals: any[]) => _selectColumnChildrenArgs(Ctor, vals, [], 0) as T[];\n\n/** @ignore */\nfunction _selectArgs(Ctor: any, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectArgs(Ctor, value, res, j).length;\n } else if (value instanceof Ctor) { res[j++] = value; }\n }\n return res;\n}\n\n/** @ignore */\nfunction _selectChunkArgs(Ctor: any, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectChunkArgs(Ctor, value, res, j).length;\n } else if (value instanceof Chunked) {\n j = _selectChunkArgs(Ctor, value.chunks, res, j).length;\n } else if (value instanceof Ctor) { res[j++] = value; }\n }\n return res;\n}\n\n/** @ignore */\nfunction _selectVectorChildrenArgs(Ctor: RecordBatchCtor, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectVectorChildrenArgs(Ctor, value, res, j).length;\n } else if (value instanceof Ctor) {\n j = _selectArgs(Vector, value.schema.fields.map((_, i) => value.getChildAt(i)!), res, j).length;\n } else if (value instanceof Vector) { res[j++] = value as T; }\n }\n return res;\n}\n\n/** @ignore */\nfunction _selectColumnChildrenArgs(Ctor: RecordBatchCtor, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectColumnChildrenArgs(Ctor, value, res, j).length;\n } else if (value instanceof Ctor) {\n j = _selectArgs(Column, value.schema.fields.map((f, i) => Column.new(f, value.getChildAt(i)!)), res, j).length;\n } else if (value instanceof Column) { res[j++] = value as T; }\n }\n return res;\n}\n\n/** @ignore */\nconst toKeysAndValues = (xs: [any[], any[]], [k, v]: [any, any], i: number) => (xs[0][i] = k, xs[1][i] = v, xs);\n\n/** @ignore */\nfunction _selectFieldArgs(vals: any[], ret: [Field[], Vector[]]): [Field[], (T[keyof T] | Vector)[]] {\n let keys: any[], n: number;\n switch (n = vals.length) {\n case 0: return ret;\n case 1:\n keys = ret[0];\n if (!(vals[0])) { return ret; }\n if (isArray(vals[0])) { return _selectFieldArgs(vals[0], ret); }\n if (!(vals[0] instanceof Data || vals[0] instanceof Vector || vals[0] instanceof DataType)) {\n [keys, vals] = Object.entries(vals[0]).reduce(toKeysAndValues, ret);\n }\n break;\n default:\n !isArray(keys = vals[n - 1])\n ? (vals = isArray(vals[0]) ? vals[0] : vals, keys = [])\n : (vals = isArray(vals[0]) ? vals[0] : vals.slice(0, n - 1));\n }\n\n let fieldIndex = -1;\n let valueIndex = -1;\n let idx = -1, len = vals.length;\n let field: number | string | Field;\n let val: Vector | Data;\n let [fields, values] = ret as [Field[], any[]];\n\n while (++idx < len) {\n val = vals[idx];\n if (val instanceof Column && (values[++valueIndex] = val)) {\n fields[++fieldIndex] = val.field.clone(keys[idx], val.type, true);\n } else {\n ({ [idx]: field = idx } = keys);\n if (val instanceof DataType && (values[++valueIndex] = val)) {\n fields[++fieldIndex] = Field.new(field, val as DataType, true) as Field;\n } else if (val && val.type && (values[++valueIndex] = val)) {\n val instanceof Data && (values[valueIndex] = val = Vector.new(val) as Vector);\n fields[++fieldIndex] = Field.new(field, val.type, true) as Field;\n }\n }\n }\n return ret;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Vector } from './vector';\nimport { DataType } from './type';\nimport { selectArgs } from './util/args';\nimport { selectFieldArgs } from './util/args';\nimport { instance as comparer } from './visitor/typecomparator';\n\ntype VectorMap = { [key: string]: Vector };\ntype Fields = (keyof T)[] | Field[];\ntype ChildData = T[keyof T][] | Data[] | Vector[];\n\nexport class Schema {\n\n public static from(children: T): Schema;\n public static from(children: T): Schema<{ [P in keyof T]: T[P]['type'] }>;\n public static from(children: ChildData, fields?: Fields): Schema;\n /** @nocollapse */\n public static from(...args: any[]) {\n return Schema.new(args[0], args[1]);\n }\n\n public static new(children: T): Schema;\n public static new(children: T): Schema<{ [P in keyof T]: T[P]['type'] }>;\n public static new(children: ChildData, fields?: Fields): Schema;\n /** @nocollapse */\n public static new(...args: any[]) {\n return new Schema(selectFieldArgs(args)[0]);\n }\n\n public readonly fields: Field[];\n public readonly metadata: Map;\n public readonly dictionaries: Map;\n\n constructor(fields: Field[] = [],\n metadata?: Map | null,\n dictionaries?: Map | null) {\n this.fields = (fields || []) as Field[];\n this.metadata = metadata || new Map();\n if (!dictionaries) {\n dictionaries = generateDictionaryMap(fields);\n }\n this.dictionaries = dictionaries;\n }\n public get [Symbol.toStringTag]() { return 'Schema'; }\n public toString() {\n return `Schema<{ ${this.fields.map((f, i) => `${i}: ${f}`).join(', ')} }>`;\n }\n\n public compareTo(other?: Schema | null): other is Schema {\n return comparer.compareSchemas(this, other);\n }\n\n public select(...columnNames: K[]) {\n const names = columnNames.reduce((xs, x) => (xs[x] = true) && xs, Object.create(null));\n return new Schema<{ [P in K]: T[P] }>(this.fields.filter((f) => names[f.name]), this.metadata);\n }\n public selectAt(...columnIndices: number[]) {\n return new Schema<{ [key: string]: K }>(columnIndices.map((i) => this.fields[i]).filter(Boolean), this.metadata);\n }\n\n public assign(schema: Schema): Schema;\n public assign(...fields: (Field | Field[])[]): Schema;\n public assign(...args: (Schema | Field | Field[])[]) {\n\n const other = args[0] instanceof Schema ? args[0] as Schema\n : new Schema(selectArgs>(Field, args));\n\n const curFields = [...this.fields] as Field[];\n const metadata = mergeMaps(mergeMaps(new Map(), this.metadata), other.metadata);\n const newFields = other.fields.filter((f2) => {\n const i = curFields.findIndex((f) => f.name === f2.name);\n return ~i ? (curFields[i] = f2.clone({\n metadata: mergeMaps(mergeMaps(new Map(), curFields[i].metadata), f2.metadata)\n })) && false : true;\n }) as Field[];\n\n const newDictionaries = generateDictionaryMap(newFields, new Map());\n\n return new Schema(\n [...curFields, ...newFields], metadata,\n new Map([...this.dictionaries, ...newDictionaries])\n );\n }\n}\n\nexport class Field {\n\n public static new(props: { name: string | number, type: T, nullable?: boolean, metadata?: Map | null }): Field;\n public static new(name: string | number | Field, type: T, nullable?: boolean, metadata?: Map | null): Field;\n /** @nocollapse */\n public static new(...args: any[]) {\n let [name, type, nullable, metadata] = args;\n if (args[0] && typeof args[0] === 'object') {\n ({ name } = args[0]);\n (type === undefined) && (type = args[0].type);\n (nullable === undefined) && (nullable = args[0].nullable);\n (metadata === undefined) && (metadata = args[0].metadata);\n }\n return new Field(`${name}`, type, nullable, metadata);\n }\n\n public readonly type: T;\n public readonly name: string;\n public readonly nullable: boolean;\n public readonly metadata: Map;\n\n constructor(name: string, type: T, nullable = false, metadata?: Map | null) {\n this.name = name;\n this.type = type;\n this.nullable = nullable;\n this.metadata = metadata || new Map();\n }\n\n public get typeId() { return this.type.typeId; }\n public get [Symbol.toStringTag]() { return 'Field'; }\n public toString() { return `${this.name}: ${this.type}`; }\n public compareTo(other?: Field | null): other is Field {\n return comparer.compareField(this, other);\n }\n public clone(props: { name?: string | number, type?: R, nullable?: boolean, metadata?: Map | null }): Field;\n public clone(name?: string | number | Field, type?: R, nullable?: boolean, metadata?: Map | null): Field;\n public clone(...args: any[]) {\n let [name, type, nullable, metadata] = args;\n (!args[0] || typeof args[0] !== 'object')\n ? ([name = this.name, type = this.type, nullable = this.nullable, metadata = this.metadata] = args)\n : ({name = this.name, type = this.type, nullable = this.nullable, metadata = this.metadata} = args[0]);\n return Field.new(name, type, nullable, metadata);\n }\n}\n\n/** @ignore */\nfunction mergeMaps(m1?: Map | null, m2?: Map | null): Map {\n return new Map([...(m1 || new Map()), ...(m2 || new Map())]);\n}\n\n/** @ignore */\nfunction generateDictionaryMap(fields: Field[], dictionaries = new Map()): Map {\n\n for (let i = -1, n = fields.length; ++i < n;) {\n const field = fields[i];\n const type = field.type;\n if (DataType.isDictionary(type)) {\n if (!dictionaries.has(type.id)) {\n dictionaries.set(type.id, type.dictionary);\n } else if (dictionaries.get(type.id) !== type.dictionary) {\n throw new Error(`Cannot create Schema containing two different dictionaries with the same Id`);\n }\n }\n if (type.children && type.children.length > 0) {\n generateDictionaryMap(type.children, dictionaries);\n }\n }\n\n return dictionaries;\n}\n\n// Add these here so they're picked up by the externs creator\n// in the build, and closure-compiler doesn't minify them away\n(Schema.prototype as any).fields = null;\n(Schema.prototype as any).metadata = null;\n(Schema.prototype as any).dictionaries = null;\n\n(Field.prototype as any).type = null;\n(Field.prototype as any).name = null;\n(Field.prototype as any).nullable = null;\n(Field.prototype as any).metadata = null;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Run } from './run';\nimport { Field } from '../schema';\nimport { DataType, List } from '../type';\nimport { OffsetsBufferBuilder } from './buffer';\nimport { Builder, BuilderOptions, VariableWidthBuilder } from '../builder';\n\n/** @ignore */\nexport class ListBuilder extends VariableWidthBuilder, TNull> {\n protected _run = new Run();\n protected _offsets: OffsetsBufferBuilder;\n constructor(opts: BuilderOptions, TNull>) {\n super(opts);\n this._offsets = new OffsetsBufferBuilder();\n }\n public addChild(child: Builder, name = '0') {\n if (this.numChildren > 0) {\n throw new Error('ListBuilder can only have one child.');\n }\n this.children[this.numChildren] = child;\n this.type = new List(new Field(name, child.type, true));\n return this.numChildren - 1;\n }\n public clear() {\n this._run.clear();\n return super.clear();\n }\n protected _flushPending(pending: Map) {\n const run = this._run;\n const offsets = this._offsets;\n const setValue = this._setValue;\n let index = 0, value: Uint8Array | undefined;\n for ([index, value] of pending) {\n if (value === undefined) {\n offsets.set(index, 0);\n } else {\n offsets.set(index, value.length);\n setValue(this, index, run.bind(value));\n }\n }\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Run } from './run';\nimport { Field } from '../schema';\nimport { Builder } from '../builder';\nimport { DataType, FixedSizeList } from '../type';\n\n/** @ignore */\nexport class FixedSizeListBuilder extends Builder, TNull> {\n protected _run = new Run();\n public setValue(index: number, value: T['TValue']) {\n super.setValue(index, this._run.bind(value));\n }\n public addChild(child: Builder, name = '0') {\n if (this.numChildren > 0) {\n throw new Error('FixedSizeListBuilder can only have one child.');\n }\n const childIndex = this.children.push(child);\n this.type = new FixedSizeList(this.type.listSize, new Field(name, child.type, true));\n return childIndex;\n }\n public clear() {\n this._run.clear();\n return super.clear();\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Field } from '../schema';\nimport { DataType, Map_, Struct } from '../type';\nimport { Builder, VariableWidthBuilder } from '../builder';\n\n/** @ignore */ type MapValue = Map_['TValue'];\n/** @ignore */ type MapValues = Map | undefined>;\n/** @ignore */ type MapValueExt = MapValue | { [key: string]: V } | { [key: number]: V } ;\n\n/** @ignore */\nexport class MapBuilder extends VariableWidthBuilder, TNull> {\n\n protected _pending: MapValues | undefined;\n public set(index: number, value: MapValueExt | TNull) {\n return super.set(index, value as MapValue | TNull);\n }\n\n public setValue(index: number, value: MapValueExt) {\n value = value instanceof Map ? value : new Map(Object.entries(value));\n const pending = this._pending || (this._pending = new Map() as MapValues);\n const current = pending.get(index);\n current && (this._pendingLength -= current.size);\n this._pendingLength += value.size;\n pending.set(index, value);\n }\n\n public addChild(child: Builder>, name = `${this.numChildren}`) {\n if (this.numChildren > 0) {\n throw new Error('ListBuilder can only have one child.');\n }\n this.children[this.numChildren] = child;\n this.type = new Map_(new Field(name, child.type, true), this.type.keysSorted);\n return this.numChildren - 1;\n }\n\n protected _flushPending(pending: MapValues) {\n const offsets = this._offsets;\n const setValue = this._setValue;\n pending.forEach((value, index) => {\n if (value === undefined) {\n offsets.set(index, 0);\n } else {\n offsets.set(index, value.size);\n setValue(this, index, value);\n }\n });\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Field } from '../schema';\nimport { Builder } from '../builder';\nimport { DataType, Struct } from '../type';\n\n/** @ignore */\nexport class StructBuilder extends Builder, TNull> {\n public addChild(child: Builder, name = `${this.numChildren}`) {\n const childIndex = this.children.push(child);\n this.type = new Struct([...this.type.children, new Field(name, child.type, true)]);\n return childIndex;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Field } from '../schema';\nimport { DataBufferBuilder } from './buffer';\nimport { Builder, BuilderOptions } from '../builder';\nimport { Union, SparseUnion, DenseUnion } from '../type';\n\nexport interface UnionBuilderOptions extends BuilderOptions {\n valueToChildTypeId?: (builder: UnionBuilder, value: any, offset: number) => number;\n}\n\n/** @ignore */\nexport abstract class UnionBuilder extends Builder {\n\n protected _typeIds: DataBufferBuilder;\n\n constructor(options: UnionBuilderOptions) {\n super(options);\n this._typeIds = new DataBufferBuilder(new Int8Array(0), 1);\n if (typeof options['valueToChildTypeId'] === 'function') {\n this._valueToChildTypeId = options['valueToChildTypeId'];\n }\n }\n\n public get typeIdToChildIndex() { return this.type.typeIdToChildIndex; }\n\n public append(value: T['TValue'] | TNull, childTypeId?: number) {\n return this.set(this.length, value, childTypeId);\n }\n\n public set(index: number, value: T['TValue'] | TNull, childTypeId?: number) {\n if (childTypeId === undefined) {\n childTypeId = this._valueToChildTypeId(this, value, index);\n }\n if (this.setValid(index, this.isValid(value))) {\n this.setValue(index, value, childTypeId);\n }\n return this;\n }\n\n // @ts-ignore\n public setValue(index: number, value: T['TValue'], childTypeId?: number) {\n this._typeIds.set(index, childTypeId!);\n super.setValue(index, value);\n }\n\n // @ts-ignore\n public addChild(child: Builder, name = `${this.children.length}`) {\n const childTypeId = this.children.push(child);\n const { type: { children, mode, typeIds } } = this;\n const fields = [...children, new Field(name, child.type)];\n this.type = new Union(mode, [...typeIds, childTypeId], fields);\n return childTypeId;\n }\n\n /** @ignore */\n // @ts-ignore\n protected _valueToChildTypeId(builder: UnionBuilder, value: any, offset: number): number {\n throw new Error(`Cannot map UnionBuilder value to child typeId. \\\nPass the \\`childTypeId\\` as the second argument to unionBuilder.append(), \\\nor supply a \\`valueToChildTypeId\\` function as part of the UnionBuilder constructor options.`);\n }\n}\n\n/** @ignore */\nexport class SparseUnionBuilder extends UnionBuilder {}\n/** @ignore */\nexport class DenseUnionBuilder extends UnionBuilder {\n\n protected _offsets: DataBufferBuilder;\n\n constructor(options: UnionBuilderOptions) {\n super(options);\n this._offsets = new DataBufferBuilder(new Int32Array(0));\n }\n\n /** @ignore */\n public setValue(index: number, value: T['TValue'], childTypeId?: number) {\n const childIndex = this.type.typeIdToChildIndex[childTypeId!];\n this._offsets.set(index, this.getChildAt(childIndex)!.length);\n return super.setValue(index, value, childTypeId);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Field } from '../schema';\nimport { Vector } from '../vector';\nimport { Visitor } from '../visitor';\nimport { encodeUtf8 } from '../util/utf8';\nimport { VectorType } from '../interfaces';\nimport { float64ToUint16 } from '../util/math';\nimport { toArrayBufferView } from '../util/buffer';\nimport { Type, UnionMode, Precision, DateUnit, TimeUnit, IntervalUnit } from '../enum';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface SetVisitor extends Visitor {\n visit(node: T, index: number, value: T['TValue']): void;\n visitMany(nodes: T[], indices: number[], values: T['TValue'][]): void[];\n getVisitFn(node: T): (vector: VectorType, index: number, value: VectorType['TValue']) => void;\n getVisitFn(node: VectorType | Data | T): (vector: VectorType, index: number, value: VectorType['TValue']) => void;\n visitNull (vector: VectorType, index: number, value: T['TValue']): void;\n visitBool (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt8 (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt16 (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt32 (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt64 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint8 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint16 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint32 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint64 (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat16 (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat32 (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat64 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUtf8 (vector: VectorType, index: number, value: T['TValue']): void;\n visitBinary (vector: VectorType, index: number, value: T['TValue']): void;\n visitFixedSizeBinary (vector: VectorType, index: number, value: T['TValue']): void;\n visitDate (vector: VectorType, index: number, value: T['TValue']): void;\n visitDateDay (vector: VectorType, index: number, value: T['TValue']): void;\n visitDateMillisecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestamp (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampSecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampMillisecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampMicrosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampNanosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTime (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeSecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeMillisecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeMicrosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeNanosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitDecimal (vector: VectorType, index: number, value: T['TValue']): void;\n visitList (vector: VectorType, index: number, value: T['TValue']): void;\n visitStruct (vector: VectorType, index: number, value: T['TValue']): void;\n visitUnion (vector: VectorType, index: number, value: T['TValue']): void;\n visitDenseUnion (vector: VectorType, index: number, value: T['TValue']): void;\n visitSparseUnion (vector: VectorType, index: number, value: T['TValue']): void;\n visitDictionary (vector: VectorType, index: number, value: T['TValue']): void;\n visitInterval (vector: VectorType, index: number, value: T['TValue']): void;\n visitIntervalDayTime (vector: VectorType, index: number, value: T['TValue']): void;\n visitIntervalYearMonth (vector: VectorType, index: number, value: T['TValue']): void;\n visitFixedSizeList (vector: VectorType, index: number, value: T['TValue']): void;\n visitMap (vector: VectorType, index: number, value: T['TValue']): void;\n}\n\n/** @ignore */\nexport class SetVisitor extends Visitor {}\n\n/** @ignore */\nconst setEpochMsToDays = (data: Int32Array, index: number, epochMs: number) => { data[index] = (epochMs / 86400000) | 0; };\n/** @ignore */\nconst setEpochMsToMillisecondsLong = (data: Int32Array, index: number, epochMs: number) => {\n data[index] = (epochMs % 4294967296) | 0;\n data[index + 1] = (epochMs / 4294967296) | 0;\n};\n/** @ignore */\nconst setEpochMsToMicrosecondsLong = (data: Int32Array, index: number, epochMs: number) => {\n data[index] = ((epochMs * 1000) % 4294967296) | 0;\n data[index + 1] = ((epochMs * 1000) / 4294967296) | 0;\n};\n/** @ignore */\nconst setEpochMsToNanosecondsLong = (data: Int32Array, index: number, epochMs: number) => {\n data[index] = ((epochMs * 1000000) % 4294967296) | 0;\n data[index + 1] = ((epochMs * 1000000) / 4294967296) | 0;\n};\n\n/** @ignore */\nconst setVariableWidthBytes = (values: Uint8Array, valueOffsets: Int32Array, index: number, value: Uint8Array) => {\n const { [index]: x, [index + 1]: y } = valueOffsets;\n if (x != null && y != null) {\n values.set(value.subarray(0, y - x), x);\n }\n};\n\n/** @ignore */\nconst setBool = ({ offset, values }: VectorType, index: number, val: boolean) => {\n const idx = offset + index;\n val ? (values[idx >> 3] |= (1 << (idx % 8))) // true\n : (values[idx >> 3] &= ~(1 << (idx % 8))); // false\n\n};\n\n/** @ignore */ type Numeric1X = Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32 | Float32 | Float64;\n/** @ignore */ type Numeric2X = Int64 | Uint64;\n\n/** @ignore */\nconst setDateDay = ({ values }: VectorType, index: number, value: T['TValue']): void => { setEpochMsToDays(values, index, value.valueOf()); };\n/** @ignore */\nconst setDateMillisecond = ({ values }: VectorType, index: number, value: T['TValue']): void => { setEpochMsToMillisecondsLong(values, index * 2, value.valueOf()); };\n/** @ignore */\nconst setNumeric = ({ stride, values }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setFloat16 = ({ stride, values }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = float64ToUint16(value); };\n/** @ignore */\nconst setNumericX2 = (vector: VectorType, index: number, value: T['TValue']): void => {\n switch (typeof value) {\n case 'bigint': vector.values64[index] = value; break;\n case 'number': vector.values[index * vector.stride] = value; break;\n default:\n const val = value as T['TArray'];\n const { stride, ArrayType } = vector;\n const long = toArrayBufferView(ArrayType, val);\n vector.values.set(long.subarray(0, stride), stride * index);\n }\n};\n/** @ignore */\nconst setFixedSizeBinary = ({ stride, values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, stride), stride * index); };\n\n/** @ignore */\nconst setBinary = ({ values, valueOffsets }: VectorType, index: number, value: T['TValue']) => setVariableWidthBytes(values, valueOffsets, index, value);\n/** @ignore */\nconst setUtf8 = ({ values, valueOffsets }: VectorType, index: number, value: T['TValue']) => {\n setVariableWidthBytes(values, valueOffsets, index, encodeUtf8(value));\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setInt = (vector: VectorType, index: number, value: T['TValue']): void => {\n vector.type.bitWidth < 64\n ? setNumeric(vector as VectorType, index, value as Numeric1X['TValue'])\n : setNumericX2(vector as VectorType, index, value as Numeric2X['TValue']);\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setFloat = (vector: VectorType, index: number, value: T['TValue']): void => {\n vector.type.precision !== Precision.HALF\n ? setNumeric(vector as VectorType, index, value)\n : setFloat16(vector as VectorType, index, value);\n};\n\n/* istanbul ignore next */\nconst setDate = (vector: VectorType, index: number, value: T['TValue']): void => {\n vector.type.unit === DateUnit.DAY\n ? setDateDay(vector as VectorType, index, value)\n : setDateMillisecond(vector as VectorType, index, value);\n};\n\n/** @ignore */\nconst setTimestampSecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToMillisecondsLong(values, index * 2, value / 1000);\n/** @ignore */\nconst setTimestampMillisecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToMillisecondsLong(values, index * 2, value);\n/** @ignore */\nconst setTimestampMicrosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToMicrosecondsLong(values, index * 2, value);\n/** @ignore */\nconst setTimestampNanosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToNanosecondsLong(values, index * 2, value);\n/* istanbul ignore next */\n/** @ignore */\nconst setTimestamp = (vector: VectorType, index: number, value: T['TValue']): void => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return setTimestampSecond(vector as VectorType, index, value);\n case TimeUnit.MILLISECOND: return setTimestampMillisecond(vector as VectorType, index, value);\n case TimeUnit.MICROSECOND: return setTimestampMicrosecond(vector as VectorType, index, value);\n case TimeUnit.NANOSECOND: return setTimestampNanosecond(vector as VectorType, index, value);\n }\n};\n\n/** @ignore */\nconst setTimeSecond = ({ values, stride }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setTimeMillisecond = ({ values, stride }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setTimeMicrosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/** @ignore */\nconst setTimeNanosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/* istanbul ignore next */\n/** @ignore */\nconst setTime = (vector: VectorType, index: number, value: T['TValue']): void => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return setTimeSecond(vector as VectorType, index, value as TimeSecond['TValue']);\n case TimeUnit.MILLISECOND: return setTimeMillisecond(vector as VectorType, index, value as TimeMillisecond['TValue']);\n case TimeUnit.MICROSECOND: return setTimeMicrosecond(vector as VectorType, index, value as TimeMicrosecond['TValue']);\n case TimeUnit.NANOSECOND: return setTimeNanosecond(vector as VectorType, index, value as TimeNanosecond['TValue']);\n }\n};\n\n/** @ignore */\nconst setDecimal = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 4), 4 * index); };\n\n/** @ignore */\nconst setList = (vector: VectorType, index: number, value: T['TValue']): void => {\n const values = vector.getChildAt(0)!, valueOffsets = vector.valueOffsets;\n for (let idx = -1, itr = valueOffsets[index], end = valueOffsets[index + 1]; itr < end;) {\n values.set(itr++, value.get(++idx));\n }\n};\n\n/** @ignore */\nconst setMap = (vector: VectorType, index: number, value: T['TValue']) => {\n const values = vector.getChildAt(0)!, valueOffsets = vector.valueOffsets;\n const entries = value instanceof Map ? [...value] : Object.entries(value);\n for (let idx = -1, itr = valueOffsets[index], end = valueOffsets[index + 1]; itr < end;) {\n values.set(itr++, entries[++idx]);\n }\n};\n\n/** @ignore */ const _setStructArrayValue = (o: number, v: any[]) => (c: Vector | null, _: Field, i: number) => c && c.set(o, v[i]);\n/** @ignore */ const _setStructVectorValue = (o: number, v: Vector) => (c: Vector | null, _: Field, i: number) => c && c.set(o, v.get(i));\n/** @ignore */ const _setStructMapValue = (o: number, v: Map) => (c: Vector | null, f: Field, _: number) => c && c.set(o, v.get(f.name));\n/** @ignore */ const _setStructObjectValue = (o: number, v: { [key: string]: any }) => (c: Vector | null, f: Field, _: number) => c && c.set(o, v[f.name]);\n/** @ignore */\nconst setStruct = (vector: VectorType, index: number, value: T['TValue']) => {\n\n const setValue = value instanceof Map ? _setStructMapValue(index, value) :\n value instanceof Vector ? _setStructVectorValue(index, value) :\n Array.isArray(value) ? _setStructArrayValue(index, value) :\n _setStructObjectValue(index, value) ;\n\n vector.type.children.forEach((f: Field, i: number) => setValue(vector.getChildAt(i), f, i));\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setUnion = <\n V extends VectorType | VectorType | VectorType\n>(vector: V, index: number, value: V['TValue']) => {\n vector.type.mode === UnionMode.Dense ?\n setDenseUnion(vector as VectorType, index, value) :\n setSparseUnion(vector as VectorType, index, value);\n};\n\n/** @ignore */\nconst setDenseUnion = (vector: VectorType, index: number, value: T['TValue']): void => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n child && child.set(vector.valueOffsets[index], value);\n};\n\n/** @ignore */\nconst setSparseUnion = (vector: VectorType, index: number, value: T['TValue']): void => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n child && child.set(index, value);\n};\n\n/** @ignore */\nconst setDictionary = (vector: VectorType, index: number, value: T['TValue']): void => {\n const key = vector.getKey(index);\n if (key !== null) {\n vector.setValue(key, value);\n }\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setIntervalValue = (vector: VectorType, index: number, value: T['TValue']): void => {\n (vector.type.unit === IntervalUnit.DAY_TIME)\n ? setIntervalDayTime(vector as VectorType, index, value)\n : setIntervalYearMonth(vector as VectorType, index, value);\n};\n\n/** @ignore */\nconst setIntervalDayTime = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/** @ignore */\nconst setIntervalYearMonth = ({ values }: VectorType, index: number, value: T['TValue']): void => { values[index] = (value[0] * 12) + (value[1] % 12); };\n\n/** @ignore */\nconst setFixedSizeList = (vector: VectorType, index: number, value: T['TValue']): void => {\n const child = vector.getChildAt(0)!, { stride } = vector;\n for (let idx = -1, offset = index * stride; ++idx < stride;) {\n child.set(offset + idx, value.get(idx));\n }\n};\n\nSetVisitor.prototype.visitBool = setBool;\nSetVisitor.prototype.visitInt = setInt;\nSetVisitor.prototype.visitInt8 = setNumeric;\nSetVisitor.prototype.visitInt16 = setNumeric;\nSetVisitor.prototype.visitInt32 = setNumeric;\nSetVisitor.prototype.visitInt64 = setNumericX2;\nSetVisitor.prototype.visitUint8 = setNumeric;\nSetVisitor.prototype.visitUint16 = setNumeric;\nSetVisitor.prototype.visitUint32 = setNumeric;\nSetVisitor.prototype.visitUint64 = setNumericX2;\nSetVisitor.prototype.visitFloat = setFloat;\nSetVisitor.prototype.visitFloat16 = setFloat16;\nSetVisitor.prototype.visitFloat32 = setNumeric;\nSetVisitor.prototype.visitFloat64 = setNumeric;\nSetVisitor.prototype.visitUtf8 = setUtf8;\nSetVisitor.prototype.visitBinary = setBinary;\nSetVisitor.prototype.visitFixedSizeBinary = setFixedSizeBinary;\nSetVisitor.prototype.visitDate = setDate;\nSetVisitor.prototype.visitDateDay = setDateDay;\nSetVisitor.prototype.visitDateMillisecond = setDateMillisecond;\nSetVisitor.prototype.visitTimestamp = setTimestamp;\nSetVisitor.prototype.visitTimestampSecond = setTimestampSecond;\nSetVisitor.prototype.visitTimestampMillisecond = setTimestampMillisecond;\nSetVisitor.prototype.visitTimestampMicrosecond = setTimestampMicrosecond;\nSetVisitor.prototype.visitTimestampNanosecond = setTimestampNanosecond;\nSetVisitor.prototype.visitTime = setTime;\nSetVisitor.prototype.visitTimeSecond = setTimeSecond;\nSetVisitor.prototype.visitTimeMillisecond = setTimeMillisecond;\nSetVisitor.prototype.visitTimeMicrosecond = setTimeMicrosecond;\nSetVisitor.prototype.visitTimeNanosecond = setTimeNanosecond;\nSetVisitor.prototype.visitDecimal = setDecimal;\nSetVisitor.prototype.visitList = setList;\nSetVisitor.prototype.visitStruct = setStruct;\nSetVisitor.prototype.visitUnion = setUnion;\nSetVisitor.prototype.visitDenseUnion = setDenseUnion;\nSetVisitor.prototype.visitSparseUnion = setSparseUnion;\nSetVisitor.prototype.visitDictionary = setDictionary;\nSetVisitor.prototype.visitInterval = setIntervalValue;\nSetVisitor.prototype.visitIntervalDayTime = setIntervalDayTime;\nSetVisitor.prototype.visitIntervalYearMonth = setIntervalYearMonth;\nSetVisitor.prototype.visitFixedSizeList = setFixedSizeList;\nSetVisitor.prototype.visitMap = setMap;\n\n/** @ignore */\nexport const instance = new SetVisitor();\n","// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as NS7624605610262437867 from './Schema';\n/**\n * ----------------------------------------------------------------------\n * Arrow File metadata\n *\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Footer {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Footer\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Footer {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Footer= obj\n * @returns Footer\n */\n static getRootAsFooter(bb: flatbuffers.ByteBuffer, obj?: Footer): Footer {\n return (obj || new Footer).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.MetadataVersion\n */\n version(): NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1;\n }\n\n /**\n * @param org.apache.arrow.flatbuf.Schema= obj\n * @returns org.apache.arrow.flatbuf.Schema|null\n */\n schema(obj?: NS7624605610262437867.org.apache.arrow.flatbuf.Schema): NS7624605610262437867.org.apache.arrow.flatbuf.Schema | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new NS7624605610262437867.org.apache.arrow.flatbuf.Schema).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.Block= obj\n * @returns org.apache.arrow.flatbuf.Block\n */\n dictionaries(index: number, obj?: org.apache.arrow.flatbuf.Block): org.apache.arrow.flatbuf.Block | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new org.apache.arrow.flatbuf.Block).__init(this.bb!.__vector(this.bb_pos + offset) + index * 24, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n dictionariesLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.Block= obj\n * @returns org.apache.arrow.flatbuf.Block\n */\n recordBatches(index: number, obj?: org.apache.arrow.flatbuf.Block): org.apache.arrow.flatbuf.Block | null {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? (obj || new org.apache.arrow.flatbuf.Block).__init(this.bb!.__vector(this.bb_pos + offset) + index * 24, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n recordBatchesLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFooter(builder: flatbuffers.Builder) {\n builder.startObject(4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.MetadataVersion version\n */\n static addVersion(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion) {\n builder.addFieldInt16(0, version, NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset schemaOffset\n */\n static addSchema(builder: flatbuffers.Builder, schemaOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, schemaOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dictionariesOffset\n */\n static addDictionaries(builder: flatbuffers.Builder, dictionariesOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, dictionariesOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startDictionariesVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(24, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset recordBatchesOffset\n */\n static addRecordBatches(builder: flatbuffers.Builder, recordBatchesOffset: flatbuffers.Offset) {\n builder.addFieldOffset(3, recordBatchesOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startRecordBatchesVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(24, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFooter(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishFooterBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset);\n }\n\n static createFooter(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion, schemaOffset: flatbuffers.Offset, dictionariesOffset: flatbuffers.Offset, recordBatchesOffset: flatbuffers.Offset): flatbuffers.Offset {\n Footer.startFooter(builder);\n Footer.addVersion(builder, version);\n Footer.addSchema(builder, schemaOffset);\n Footer.addDictionaries(builder, dictionariesOffset);\n Footer.addRecordBatches(builder, recordBatchesOffset);\n return Footer.endFooter(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Block {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Block\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Block {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * Index to the start of the RecordBlock (note this is past the Message header)\n *\n * @returns flatbuffers.Long\n */\n offset(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos);\n }\n\n /**\n * Length of the metadata\n *\n * @returns number\n */\n metaDataLength(): number {\n return this.bb!.readInt32(this.bb_pos + 8);\n }\n\n /**\n * Length of the data (this is aligned so there can be a gap between this and\n * the metatdata).\n *\n * @returns flatbuffers.Long\n */\n bodyLength(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos + 16);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long offset\n * @param number metaDataLength\n * @param flatbuffers.Long bodyLength\n * @returns flatbuffers.Offset\n */\n static createBlock(builder: flatbuffers.Builder, offset: flatbuffers.Long, metaDataLength: number, bodyLength: flatbuffers.Long): flatbuffers.Offset {\n builder.prep(8, 24);\n builder.writeInt64(bodyLength);\n builder.pad(4);\n builder.writeInt32(metaDataLength);\n builder.writeInt64(offset);\n return builder.offset();\n }\n\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { DataType } from '../type';\nimport { Visitor } from '../visitor';\nimport { VectorType, BuilderCtor } from '../interfaces';\nimport { BinaryBuilder } from '../builder/binary';\nimport { BoolBuilder } from '../builder/bool';\nimport { DateBuilder, DateDayBuilder, DateMillisecondBuilder } from '../builder/date';\nimport { DecimalBuilder } from '../builder/decimal';\nimport { DictionaryBuilder } from '../builder/dictionary';\nimport { FixedSizeBinaryBuilder } from '../builder/fixedsizebinary';\nimport { FixedSizeListBuilder } from '../builder/fixedsizelist';\nimport { FloatBuilder, Float16Builder, Float32Builder, Float64Builder } from '../builder/float';\nimport { IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder } from '../builder/interval';\nimport { IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder } from '../builder/int';\nimport { ListBuilder } from '../builder/list';\nimport { MapBuilder } from '../builder/map';\nimport { NullBuilder } from '../builder/null';\nimport { StructBuilder } from '../builder/struct';\nimport { TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder } from '../builder/timestamp';\nimport { TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder } from '../builder/time';\nimport { UnionBuilder, DenseUnionBuilder, SparseUnionBuilder } from '../builder/union';\nimport { Utf8Builder } from '../builder/utf8';\n\n/** @ignore */\nexport interface GetBuilderCtor extends Visitor {\n visit(type: T): BuilderCtor;\n visitMany(types: T[]): BuilderCtor[];\n getVisitFn(type: T): () => BuilderCtor;\n getVisitFn(node: VectorType | Data | T): () => BuilderCtor;\n}\n\n/** @ignore */\nexport class GetBuilderCtor extends Visitor {\n public visitNull () { return NullBuilder; }\n public visitBool () { return BoolBuilder; }\n public visitInt () { return IntBuilder; }\n public visitInt8 () { return Int8Builder; }\n public visitInt16 () { return Int16Builder; }\n public visitInt32 () { return Int32Builder; }\n public visitInt64 () { return Int64Builder; }\n public visitUint8 () { return Uint8Builder; }\n public visitUint16 () { return Uint16Builder; }\n public visitUint32 () { return Uint32Builder; }\n public visitUint64 () { return Uint64Builder; }\n public visitFloat () { return FloatBuilder; }\n public visitFloat16 () { return Float16Builder; }\n public visitFloat32 () { return Float32Builder; }\n public visitFloat64 () { return Float64Builder; }\n public visitUtf8 () { return Utf8Builder; }\n public visitBinary () { return BinaryBuilder; }\n public visitFixedSizeBinary () { return FixedSizeBinaryBuilder; }\n public visitDate () { return DateBuilder; }\n public visitDateDay () { return DateDayBuilder; }\n public visitDateMillisecond () { return DateMillisecondBuilder; }\n public visitTimestamp () { return TimestampBuilder; }\n public visitTimestampSecond () { return TimestampSecondBuilder; }\n public visitTimestampMillisecond () { return TimestampMillisecondBuilder; }\n public visitTimestampMicrosecond () { return TimestampMicrosecondBuilder; }\n public visitTimestampNanosecond () { return TimestampNanosecondBuilder; }\n public visitTime () { return TimeBuilder; }\n public visitTimeSecond () { return TimeSecondBuilder; }\n public visitTimeMillisecond () { return TimeMillisecondBuilder; }\n public visitTimeMicrosecond () { return TimeMicrosecondBuilder; }\n public visitTimeNanosecond () { return TimeNanosecondBuilder; }\n public visitDecimal () { return DecimalBuilder; }\n public visitList () { return ListBuilder; }\n public visitStruct () { return StructBuilder; }\n public visitUnion () { return UnionBuilder; }\n public visitDenseUnion () { return DenseUnionBuilder; }\n public visitSparseUnion () { return SparseUnionBuilder; }\n public visitDictionary () { return DictionaryBuilder; }\n public visitInterval () { return IntervalBuilder; }\n public visitIntervalDayTime () { return IntervalDayTimeBuilder; }\n public visitIntervalYearMonth () { return IntervalYearMonthBuilder; }\n public visitFixedSizeList () { return FixedSizeListBuilder; }\n public visitMap () { return MapBuilder; }\n}\n\n/** @ignore */\nexport const instance = new GetBuilderCtor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */\nexport { Builder, BuilderOptions } from '../builder';\nexport { BoolBuilder } from './bool';\nexport { NullBuilder } from './null';\nexport { DateBuilder, DateDayBuilder, DateMillisecondBuilder } from './date';\nexport { DecimalBuilder } from './decimal';\nexport { DictionaryBuilder } from './dictionary';\nexport { FixedSizeBinaryBuilder } from './fixedsizebinary';\nexport { FloatBuilder, Float16Builder, Float32Builder, Float64Builder } from './float';\nexport { IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder } from './int';\nexport { TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder } from './time';\nexport { TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder } from './timestamp';\nexport { IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder } from './interval';\nexport { Utf8Builder } from './utf8';\nexport { BinaryBuilder } from './binary';\nexport { ListBuilder } from './list';\nexport { FixedSizeListBuilder } from './fixedsizelist';\nexport { MapBuilder } from './map';\nexport { StructBuilder } from './struct';\nexport { UnionBuilder, SparseUnionBuilder, DenseUnionBuilder } from './union';\n\nimport { Type } from '../enum';\nimport { Field } from '../schema';\nimport { DataType } from '../type';\nimport { Utf8Builder } from './utf8';\nimport { BuilderType as B } from '../interfaces';\nimport { Builder, BuilderOptions } from '../builder';\nimport { instance as setVisitor } from '../visitor/set';\nimport { instance as getBuilderConstructor } from '../visitor/builderctor';\n\n/** @nocollapse */\nBuilder.new = newBuilder;\n\nfunction newBuilder(options: BuilderOptions): B {\n\n const type = options.type;\n const builder = new (getBuilderConstructor.getVisitFn(type)())(options) as Builder;\n\n if (type.children && type.children.length > 0) {\n\n const children = options['children'] || [] as BuilderOptions[];\n const defaultOptions = { 'nullValues': options['nullValues'] };\n const getChildOptions = Array.isArray(children)\n ? ((_: Field, i: number) => children[i] || defaultOptions)\n : (({ name }: Field) => children[name] || defaultOptions);\n\n type.children.forEach((field, index) => {\n const { type } = field;\n const opts = getChildOptions(field, index);\n builder.children.push(newBuilder({ ...opts, type }));\n });\n }\n\n return builder as B;\n}\n\n(Object.keys(Type) as any[])\n .map((T: any) => Type[T] as any)\n .filter((T: any): T is Type => typeof T === 'number' && T !== Type.NONE)\n .forEach((typeId) => {\n const BuilderCtor = getBuilderConstructor.visit(typeId);\n BuilderCtor.prototype._setValue = setVisitor.getVisitFn(typeId);\n });\n\n(Utf8Builder.prototype as any)._setValue = setVisitor.visitBinary;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/* tslint:disable:class-name */\n\nimport * as File_ from '../../fb/File';\nimport { flatbuffers } from 'flatbuffers';\n\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport _Block = File_.org.apache.arrow.flatbuf.Block;\nimport _Footer = File_.org.apache.arrow.flatbuf.Footer;\n\nimport { Schema } from '../../schema';\nimport { MetadataVersion } from '../../enum';\nimport { toUint8Array } from '../../util/buffer';\nimport { ArrayBufferViewInput } from '../../util/buffer';\n\n/** @ignore */\nclass Footer_ {\n\n /** @nocollapse */\n public static decode(buf: ArrayBufferViewInput) {\n buf = new ByteBuffer(toUint8Array(buf));\n const footer = _Footer.getRootAsFooter(buf);\n const schema = Schema.decode(footer.schema()!);\n return new OffHeapFooter(schema, footer) as Footer_;\n }\n\n /** @nocollapse */\n public static encode(footer: Footer_) {\n\n const b: Builder = new Builder();\n const schemaOffset = Schema.encode(b, footer.schema);\n\n _Footer.startRecordBatchesVector(b, footer.numRecordBatches);\n [...footer.recordBatches()].slice().reverse().forEach((rb) => FileBlock.encode(b, rb));\n const recordBatchesOffset = b.endVector();\n\n _Footer.startDictionariesVector(b, footer.numDictionaries);\n [...footer.dictionaryBatches()].slice().reverse().forEach((db) => FileBlock.encode(b, db));\n\n const dictionaryBatchesOffset = b.endVector();\n\n _Footer.startFooter(b);\n _Footer.addSchema(b, schemaOffset);\n _Footer.addVersion(b, MetadataVersion.V4);\n _Footer.addRecordBatches(b, recordBatchesOffset);\n _Footer.addDictionaries(b, dictionaryBatchesOffset);\n _Footer.finishFooterBuffer(b, _Footer.endFooter(b));\n\n return b.asUint8Array();\n }\n\n // @ts-ignore\n protected _recordBatches: FileBlock[];\n // @ts-ignore\n protected _dictionaryBatches: FileBlock[];\n public get numRecordBatches() { return this._recordBatches.length; }\n public get numDictionaries() { return this._dictionaryBatches.length; }\n\n constructor(public schema: Schema,\n public version: MetadataVersion = MetadataVersion.V4,\n recordBatches?: FileBlock[], dictionaryBatches?: FileBlock[]) {\n recordBatches && (this._recordBatches = recordBatches);\n dictionaryBatches && (this._dictionaryBatches = dictionaryBatches);\n }\n\n public *recordBatches(): Iterable {\n for (let block, i = -1, n = this.numRecordBatches; ++i < n;) {\n if (block = this.getRecordBatch(i)) { yield block; }\n }\n }\n\n public *dictionaryBatches(): Iterable {\n for (let block, i = -1, n = this.numDictionaries; ++i < n;) {\n if (block = this.getDictionaryBatch(i)) { yield block; }\n }\n }\n\n public getRecordBatch(index: number) {\n return index >= 0\n && index < this.numRecordBatches\n && this._recordBatches[index] || null;\n }\n\n public getDictionaryBatch(index: number) {\n return index >= 0\n && index < this.numDictionaries\n && this._dictionaryBatches[index] || null;\n }\n}\n\nexport { Footer_ as Footer };\n\n/** @ignore */\nclass OffHeapFooter extends Footer_ {\n\n public get numRecordBatches() { return this._footer.recordBatchesLength(); }\n public get numDictionaries() { return this._footer.dictionariesLength(); }\n\n constructor(schema: Schema, protected _footer: _Footer) {\n super(schema, _footer.version());\n }\n\n public getRecordBatch(index: number) {\n if (index >= 0 && index < this.numRecordBatches) {\n const fileBlock = this._footer.recordBatches(index);\n if (fileBlock) { return FileBlock.decode(fileBlock); }\n }\n return null;\n }\n\n public getDictionaryBatch(index: number) {\n if (index >= 0 && index < this.numDictionaries) {\n const fileBlock = this._footer.dictionaries(index);\n if (fileBlock) { return FileBlock.decode(fileBlock); }\n }\n return null;\n }\n}\n\n/** @ignore */\nexport class FileBlock {\n\n /** @nocollapse */\n public static decode(block: _Block) {\n return new FileBlock(block.metaDataLength(), block.bodyLength(), block.offset());\n }\n\n /** @nocollapse */\n public static encode(b: Builder, fileBlock: FileBlock) {\n const { metaDataLength } = fileBlock;\n const offset = new Long(fileBlock.offset, 0);\n const bodyLength = new Long(fileBlock.bodyLength, 0);\n return _Block.createBlock(b, offset, metaDataLength, bodyLength);\n }\n\n public offset: number;\n public bodyLength: number;\n public metaDataLength: number;\n\n constructor(metaDataLength: number, bodyLength: Long | number, offset: Long | number) {\n this.metaDataLength = metaDataLength;\n this.offset = typeof offset === 'number' ? offset : offset.low;\n this.bodyLength = typeof bodyLength === 'number' ? bodyLength : bodyLength.low;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport streamAdapters from './adapters';\nimport { decodeUtf8 } from '../util/utf8';\nimport { ITERATOR_DONE, Readable, Writable, AsyncQueue } from './interfaces';\nimport { toUint8Array, joinUint8Arrays, ArrayBufferViewInput } from '../util/buffer';\n\nimport {\n isPromise, isFetchResponse,\n isIterable, isAsyncIterable,\n isReadableDOMStream, isReadableNodeStream\n} from '../util/compat';\n\n/** @ignore */\nexport type WritableSink = Writable | WritableStream | NodeJS.WritableStream | null;\n/** @ignore */\nexport type ReadableSource = Readable | PromiseLike | AsyncIterable | ReadableStream | NodeJS.ReadableStream | null;\n\n/** @ignore */\nexport class AsyncByteQueue extends AsyncQueue {\n public write(value: ArrayBufferViewInput | Uint8Array) {\n if ((value = toUint8Array(value)).byteLength > 0) {\n return super.write(value as T);\n }\n }\n public toString(sync: true): string;\n public toString(sync?: false): Promise;\n public toString(sync = false) {\n return sync\n ? decodeUtf8(this.toUint8Array(true))\n : this.toUint8Array(false).then(decodeUtf8);\n }\n public toUint8Array(sync: true): Uint8Array;\n public toUint8Array(sync?: false): Promise;\n public toUint8Array(sync = false) {\n return sync ? joinUint8Arrays(this._values as any[])[0] : (async () => {\n let buffers = [], byteLength = 0;\n for await (const chunk of this) {\n buffers.push(chunk);\n byteLength += chunk.byteLength;\n }\n return joinUint8Arrays(buffers, byteLength)[0];\n })();\n }\n}\n\n/** @ignore */\nexport class ByteStream implements IterableIterator {\n // @ts-ignore\n private source: ByteStreamSource;\n constructor(source?: Iterable | ArrayBufferViewInput) {\n if (source) {\n this.source = new ByteStreamSource(streamAdapters.fromIterable(source));\n }\n }\n [Symbol.iterator]() { return this; }\n public next(value?: any) { return this.source.next(value); }\n public throw(value?: any) { return this.source.throw(value); }\n public return(value?: any) { return this.source.return(value); }\n public peek(size?: number | null) { return this.source.peek(size); }\n public read(size?: number | null) { return this.source.read(size); }\n}\n\n/** @ignore */\nexport class AsyncByteStream implements Readable, AsyncIterableIterator {\n // @ts-ignore\n private source: AsyncByteStreamSource;\n constructor(source?: PromiseLike | Response | ReadableStream | NodeJS.ReadableStream | AsyncIterable | Iterable) {\n if (source instanceof AsyncByteStream) {\n this.source = (source as AsyncByteStream).source;\n } else if (source instanceof AsyncByteQueue) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n } else if (isReadableNodeStream(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromNodeStream(source));\n } else if (isReadableDOMStream(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromDOMStream(source));\n } else if (isFetchResponse(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromDOMStream(source.body!));\n } else if (isIterable(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromIterable(source));\n } else if (isPromise(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n } else if (isAsyncIterable(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n }\n }\n [Symbol.asyncIterator]() { return this; }\n public next(value?: any) { return this.source.next(value); }\n public throw(value?: any) { return this.source.throw(value); }\n public return(value?: any) { return this.source.return(value); }\n public get closed(): Promise { return this.source.closed; }\n public cancel(reason?: any) { return this.source.cancel(reason); }\n public peek(size?: number | null) { return this.source.peek(size); }\n public read(size?: number | null) { return this.source.read(size); }\n}\n\n/** @ignore */\ninterface ByteStreamSourceIterator extends IterableIterator {\n next(value?: { cmd: 'peek' | 'read', size?: number | null }): IteratorResult;\n}\n\n/** @ignore */\ninterface AsyncByteStreamSourceIterator extends AsyncIterableIterator {\n next(value?: { cmd: 'peek' | 'read', size?: number | null }): Promise>;\n}\n\n/** @ignore */\nclass ByteStreamSource {\n constructor(protected source: ByteStreamSourceIterator) {}\n public cancel(reason?: any) { this.return(reason); }\n public peek(size?: number | null): T | null { return this.next(size, 'peek').value; }\n public read(size?: number | null): T | null { return this.next(size, 'read').value; }\n public next(size?: number | null, cmd: 'peek' | 'read' = 'read') { return this.source.next({ cmd, size }); }\n public throw(value?: any) { return Object.create((this.source.throw && this.source.throw(value)) || ITERATOR_DONE); }\n public return(value?: any) { return Object.create((this.source.return && this.source.return(value)) || ITERATOR_DONE); }\n}\n\n/** @ignore */\nclass AsyncByteStreamSource implements Readable {\n\n private _closedPromise: Promise;\n private _closedPromiseResolve?: (value?: any) => void;\n constructor (protected source: ByteStreamSourceIterator | AsyncByteStreamSourceIterator) {\n this._closedPromise = new Promise((r) => this._closedPromiseResolve = r);\n }\n public async cancel(reason?: any) { await this.return(reason); }\n public get closed(): Promise { return this._closedPromise; }\n public async read(size?: number | null): Promise { return (await this.next(size, 'read')).value; }\n public async peek(size?: number | null): Promise { return (await this.next(size, 'peek')).value; }\n public async next(size?: number | null, cmd: 'peek' | 'read' = 'read') { return (await this.source.next({ cmd, size })); }\n public async throw(value?: any) {\n const result = (this.source.throw && await this.source.throw(value)) || ITERATOR_DONE;\n this._closedPromiseResolve && this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n return Object.create(result);\n }\n public async return(value?: any) {\n const result = (this.source.return && await this.source.return(value)) || ITERATOR_DONE;\n this._closedPromiseResolve && this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n return Object.create(result);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { FileHandle } from './interfaces';\nimport { ByteStream, AsyncByteStream } from './stream';\nimport { ArrayBufferViewInput, toUint8Array } from '../util/buffer';\n\n/** @ignore */\nexport class RandomAccessFile extends ByteStream {\n public size: number;\n public position: number = 0;\n protected buffer: Uint8Array | null;\n constructor(buffer: ArrayBufferViewInput, byteLength?: number) {\n super();\n this.buffer = toUint8Array(buffer);\n this.size = typeof byteLength === 'undefined' ? this.buffer.byteLength : byteLength;\n }\n public readInt32(position: number) {\n const { buffer, byteOffset } = this.readAt(position, 4);\n return new DataView(buffer, byteOffset).getInt32(0, true);\n }\n public seek(position: number) {\n this.position = Math.min(position, this.size);\n return position < this.size;\n }\n public read(nBytes?: number | null) {\n const { buffer, size, position } = this;\n if (buffer && position < size) {\n if (typeof nBytes !== 'number') { nBytes = Infinity; }\n this.position = Math.min(size,\n position + Math.min(size - position, nBytes));\n return buffer.subarray(position, this.position);\n }\n return null;\n }\n public readAt(position: number, nBytes: number) {\n const buf = this.buffer;\n const end = Math.min(this.size, position + nBytes);\n return buf ? buf.subarray(position, end) : new Uint8Array(nBytes);\n }\n public close() { this.buffer && (this.buffer = null); }\n public throw(value?: any) { this.close(); return { done: true, value }; }\n public return(value?: any) { this.close(); return { done: true, value }; }\n}\n\n/** @ignore */\nexport class AsyncRandomAccessFile extends AsyncByteStream {\n // @ts-ignore\n public size: number;\n public position: number = 0;\n public _pending?: Promise;\n protected _handle: FileHandle | null;\n constructor(file: FileHandle, byteLength?: number) {\n super();\n this._handle = file;\n if (typeof byteLength === 'number') {\n this.size = byteLength;\n } else {\n this._pending = (async () => {\n this.size = (await file.stat()).size;\n delete this._pending;\n })();\n }\n }\n public async readInt32(position: number) {\n const { buffer, byteOffset } = await this.readAt(position, 4);\n return new DataView(buffer, byteOffset).getInt32(0, true);\n }\n public async seek(position: number) {\n this._pending && await this._pending;\n this.position = Math.min(position, this.size);\n return position < this.size;\n }\n public async read(nBytes?: number | null) {\n this._pending && await this._pending;\n const { _handle: file, size, position } = this;\n if (file && position < size) {\n if (typeof nBytes !== 'number') { nBytes = Infinity; }\n let pos = position, offset = 0, bytesRead = 0;\n let end = Math.min(size, pos + Math.min(size - pos, nBytes));\n let buffer = new Uint8Array(Math.max(0, (this.position = end) - pos));\n while ((pos += bytesRead) < end && (offset += bytesRead) < buffer.byteLength) {\n ({ bytesRead } = await file.read(buffer, offset, buffer.byteLength - offset, pos));\n }\n return buffer;\n }\n return null;\n }\n public async readAt(position: number, nBytes: number) {\n this._pending && await this._pending;\n const { _handle: file, size } = this;\n if (file && (position + nBytes) < size) {\n const end = Math.min(size, position + nBytes);\n const buffer = new Uint8Array(end - position);\n return (await file.read(buffer, 0, nBytes, position)).buffer;\n }\n return new Uint8Array(nBytes);\n }\n public async close() { const f = this._handle; this._handle = null; f && await f.close(); }\n public async throw(value?: any) { await this.close(); return { done: true, value }; }\n public async return(value?: any) { await this.close(); return { done: true, value }; }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */\nconst carryBit16 = 1 << 16;\n\n/** @ignore */\nfunction intAsHex(value: number): string {\n if (value < 0) {\n value = 0xFFFFFFFF + value + 1;\n }\n return `0x${value.toString(16)}`;\n}\n\n/** @ignore */\nconst kInt32DecimalDigits = 8;\n/** @ignore */\nconst kPowersOfTen = [1,\n 10,\n 100,\n 1000,\n 10000,\n 100000,\n 1000000,\n 10000000,\n 100000000];\n\n/** @ignore */\nexport class BaseInt64 {\n constructor (protected buffer: Uint32Array) {}\n\n public high(): number { return this.buffer[1]; }\n public low (): number { return this.buffer[0]; }\n\n protected _times(other: BaseInt64) {\n // Break the left and right numbers into 16 bit chunks\n // so that we can multiply them without overflow.\n const L = new Uint32Array([\n this.buffer[1] >>> 16,\n this.buffer[1] & 0xFFFF,\n this.buffer[0] >>> 16,\n this.buffer[0] & 0xFFFF\n ]);\n\n const R = new Uint32Array([\n other.buffer[1] >>> 16,\n other.buffer[1] & 0xFFFF,\n other.buffer[0] >>> 16,\n other.buffer[0] & 0xFFFF\n ]);\n\n let product = L[3] * R[3];\n this.buffer[0] = product & 0xFFFF;\n\n let sum = product >>> 16;\n\n product = L[2] * R[3];\n sum += product;\n\n product = (L[3] * R[2]) >>> 0;\n sum += product;\n\n this.buffer[0] += sum << 16;\n\n this.buffer[1] = (sum >>> 0 < product ? carryBit16 : 0);\n\n this.buffer[1] += sum >>> 16;\n this.buffer[1] += L[1] * R[3] + L[2] * R[2] + L[3] * R[1];\n this.buffer[1] += (L[0] * R[3] + L[1] * R[2] + L[2] * R[1] + L[3] * R[0]) << 16;\n\n return this;\n }\n\n protected _plus(other: BaseInt64) {\n const sum = (this.buffer[0] + other.buffer[0]) >>> 0;\n this.buffer[1] += other.buffer[1];\n if (sum < (this.buffer[0] >>> 0)) {\n ++this.buffer[1];\n }\n this.buffer[0] = sum;\n }\n\n public lessThan(other: BaseInt64): boolean {\n return this.buffer[1] < other.buffer[1] ||\n (this.buffer[1] === other.buffer[1] && this.buffer[0] < other.buffer[0]);\n }\n\n public equals(other: BaseInt64): boolean {\n return this.buffer[1] === other.buffer[1] && this.buffer[0] == other.buffer[0];\n }\n\n public greaterThan(other: BaseInt64): boolean {\n return other.lessThan(this);\n }\n\n public hex(): string {\n return `${intAsHex(this.buffer[1])} ${intAsHex(this.buffer[0])}`;\n }\n}\n\n/** @ignore */\nexport class Uint64 extends BaseInt64 {\n public times(other: Uint64): Uint64 {\n this._times(other);\n return this;\n }\n\n public plus(other: Uint64): Uint64 {\n this._plus(other);\n return this;\n }\n\n /** @nocollapse */\n public static from(val: any, out_buffer = new Uint32Array(2)): Uint64 {\n return Uint64.fromString(\n typeof(val) === 'string' ? val : val.toString(),\n out_buffer\n );\n }\n\n /** @nocollapse */\n public static fromNumber(num: number, out_buffer = new Uint32Array(2)): Uint64 {\n // Always parse numbers as strings - pulling out high and low bits\n // directly seems to lose precision sometimes\n // For example:\n // > -4613034156400212000 >>> 0\n // 721782784\n // The correct lower 32-bits are 721782752\n return Uint64.fromString(num.toString(), out_buffer);\n }\n\n /** @nocollapse */\n public static fromString(str: string, out_buffer = new Uint32Array(2)): Uint64 {\n const length = str.length;\n\n let out = new Uint64(out_buffer);\n for (let posn = 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Uint64(new Uint32Array([parseInt(str.substr(posn, group), 10), 0]));\n const multiple = new Uint64(new Uint32Array([kPowersOfTen[group], 0]));\n\n out.times(multiple);\n out.plus(chunk);\n\n posn += group;\n }\n\n return out;\n }\n\n /** @nocollapse */\n public static convertArray(values: (string|number)[]): Uint32Array {\n const data = new Uint32Array(values.length * 2);\n for (let i = -1, n = values.length; ++i < n;) {\n Uint64.from(values[i], new Uint32Array(data.buffer, data.byteOffset + 2 * i * 4, 2));\n }\n return data;\n }\n\n /** @nocollapse */\n public static multiply(left: Uint64, right: Uint64): Uint64 {\n let rtrn = new Uint64(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n\n /** @nocollapse */\n public static add(left: Uint64, right: Uint64): Uint64 {\n let rtrn = new Uint64(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n}\n\n/** @ignore */\nexport class Int64 extends BaseInt64 {\n public negate(): Int64 {\n this.buffer[0] = ~this.buffer[0] + 1;\n this.buffer[1] = ~this.buffer[1];\n\n if (this.buffer[0] == 0) { ++this.buffer[1]; }\n return this;\n }\n\n public times(other: Int64): Int64 {\n this._times(other);\n return this;\n }\n\n public plus(other: Int64): Int64 {\n this._plus(other);\n return this;\n }\n\n public lessThan(other: Int64): boolean {\n // force high bytes to be signed\n const this_high = this.buffer[1] << 0;\n const other_high = other.buffer[1] << 0;\n return this_high < other_high ||\n (this_high === other_high && this.buffer[0] < other.buffer[0]);\n }\n\n /** @nocollapse */\n public static from(val: any, out_buffer = new Uint32Array(2)): Int64 {\n return Int64.fromString(\n typeof(val) === 'string' ? val : val.toString(),\n out_buffer\n );\n }\n\n /** @nocollapse */\n public static fromNumber(num: number, out_buffer = new Uint32Array(2)): Int64 {\n // Always parse numbers as strings - pulling out high and low bits\n // directly seems to lose precision sometimes\n // For example:\n // > -4613034156400212000 >>> 0\n // 721782784\n // The correct lower 32-bits are 721782752\n return Int64.fromString(num.toString(), out_buffer);\n }\n\n /** @nocollapse */\n public static fromString(str: string, out_buffer = new Uint32Array(2)): Int64 {\n // TODO: Assert that out_buffer is 0 and length = 2\n const negate = str.startsWith('-');\n const length = str.length;\n\n let out = new Int64(out_buffer);\n for (let posn = negate ? 1 : 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Int64(new Uint32Array([parseInt(str.substr(posn, group), 10), 0]));\n const multiple = new Int64(new Uint32Array([kPowersOfTen[group], 0]));\n\n out.times(multiple);\n out.plus(chunk);\n\n posn += group;\n }\n return negate ? out.negate() : out;\n }\n\n /** @nocollapse */\n public static convertArray(values: (string|number)[]): Uint32Array {\n const data = new Uint32Array(values.length * 2);\n for (let i = -1, n = values.length; ++i < n;) {\n Int64.from(values[i], new Uint32Array(data.buffer, data.byteOffset + 2 * i * 4, 2));\n }\n return data;\n }\n\n /** @nocollapse */\n public static multiply(left: Int64, right: Int64): Int64 {\n let rtrn = new Int64(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n\n /** @nocollapse */\n public static add(left: Int64, right: Int64): Int64 {\n let rtrn = new Int64(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n}\n\n/** @ignore */\nexport class Int128 {\n constructor (private buffer: Uint32Array) {\n // buffer[3] MSB (high)\n // buffer[2]\n // buffer[1]\n // buffer[0] LSB (low)\n }\n\n public high(): Int64 {\n return new Int64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset + 8, 2));\n }\n\n public low(): Int64 {\n return new Int64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset, 2));\n }\n\n public negate(): Int128 {\n this.buffer[0] = ~this.buffer[0] + 1;\n this.buffer[1] = ~this.buffer[1];\n this.buffer[2] = ~this.buffer[2];\n this.buffer[3] = ~this.buffer[3];\n\n if (this.buffer[0] == 0) { ++this.buffer[1]; }\n if (this.buffer[1] == 0) { ++this.buffer[2]; }\n if (this.buffer[2] == 0) { ++this.buffer[3]; }\n return this;\n }\n\n public times(other: Int128): Int128 {\n // Break the left and right numbers into 32 bit chunks\n // so that we can multiply them without overflow.\n const L0 = new Uint64(new Uint32Array([this.buffer[3], 0]));\n const L1 = new Uint64(new Uint32Array([this.buffer[2], 0]));\n const L2 = new Uint64(new Uint32Array([this.buffer[1], 0]));\n const L3 = new Uint64(new Uint32Array([this.buffer[0], 0]));\n\n const R0 = new Uint64(new Uint32Array([other.buffer[3], 0]));\n const R1 = new Uint64(new Uint32Array([other.buffer[2], 0]));\n const R2 = new Uint64(new Uint32Array([other.buffer[1], 0]));\n const R3 = new Uint64(new Uint32Array([other.buffer[0], 0]));\n\n let product = Uint64.multiply(L3, R3);\n this.buffer[0] = product.low();\n\n let sum = new Uint64(new Uint32Array([product.high(), 0]));\n\n product = Uint64.multiply(L2, R3);\n sum.plus(product);\n\n product = Uint64.multiply(L3, R2);\n sum.plus(product);\n\n this.buffer[1] = sum.low();\n\n this.buffer[3] = (sum.lessThan(product) ? 1 : 0);\n\n this.buffer[2] = sum.high();\n let high = new Uint64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset + 8, 2));\n\n high.plus(Uint64.multiply(L1, R3))\n .plus(Uint64.multiply(L2, R2))\n .plus(Uint64.multiply(L3, R1));\n this.buffer[3] += Uint64.multiply(L0, R3)\n .plus(Uint64.multiply(L1, R2))\n .plus(Uint64.multiply(L2, R1))\n .plus(Uint64.multiply(L3, R0)).low();\n\n return this;\n }\n\n public plus(other: Int128): Int128 {\n let sums = new Uint32Array(4);\n sums[3] = (this.buffer[3] + other.buffer[3]) >>> 0;\n sums[2] = (this.buffer[2] + other.buffer[2]) >>> 0;\n sums[1] = (this.buffer[1] + other.buffer[1]) >>> 0;\n sums[0] = (this.buffer[0] + other.buffer[0]) >>> 0;\n\n if (sums[0] < (this.buffer[0] >>> 0)) {\n ++sums[1];\n }\n if (sums[1] < (this.buffer[1] >>> 0)) {\n ++sums[2];\n }\n if (sums[2] < (this.buffer[2] >>> 0)) {\n ++sums[3];\n }\n\n this.buffer[3] = sums[3];\n this.buffer[2] = sums[2];\n this.buffer[1] = sums[1];\n this.buffer[0] = sums[0];\n\n return this;\n }\n\n public hex(): string {\n return `${intAsHex(this.buffer[3])} ${intAsHex(this.buffer[2])} ${intAsHex(this.buffer[1])} ${intAsHex(this.buffer[0])}`;\n }\n\n /** @nocollapse */\n public static multiply(left: Int128, right: Int128): Int128 {\n let rtrn = new Int128(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n\n /** @nocollapse */\n public static add(left: Int128, right: Int128): Int128 {\n let rtrn = new Int128(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n\n /** @nocollapse */\n public static from(val: any, out_buffer = new Uint32Array(4)): Int128 {\n return Int128.fromString(\n typeof(val) === 'string' ? val : val.toString(),\n out_buffer\n );\n }\n\n /** @nocollapse */\n public static fromNumber(num: number, out_buffer = new Uint32Array(4)): Int128 {\n // Always parse numbers as strings - pulling out high and low bits\n // directly seems to lose precision sometimes\n // For example:\n // > -4613034156400212000 >>> 0\n // 721782784\n // The correct lower 32-bits are 721782752\n return Int128.fromString(num.toString(), out_buffer);\n }\n\n /** @nocollapse */\n public static fromString(str: string, out_buffer = new Uint32Array(4)): Int128 {\n // TODO: Assert that out_buffer is 0 and length = 4\n const negate = str.startsWith('-');\n const length = str.length;\n\n let out = new Int128(out_buffer);\n for (let posn = negate ? 1 : 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Int128(new Uint32Array([parseInt(str.substr(posn, group), 10), 0, 0, 0]));\n const multiple = new Int128(new Uint32Array([kPowersOfTen[group], 0, 0, 0]));\n\n out.times(multiple);\n out.plus(chunk);\n\n posn += group;\n }\n\n return negate ? out.negate() : out;\n }\n\n /** @nocollapse */\n public static convertArray(values: (string|number)[]): Uint32Array {\n // TODO: Distinguish between string and number at compile-time\n const data = new Uint32Array(values.length * 4);\n for (let i = -1, n = values.length; ++i < n;) {\n Int128.from(values[i], new Uint32Array(data.buffer, data.byteOffset + 4 * 4 * i, 4));\n }\n return data;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport * as type from '../type';\nimport { Field } from '../schema';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Visitor } from '../visitor';\nimport { packBools } from '../util/bit';\nimport { encodeUtf8 } from '../util/utf8';\nimport { Int64, Int128 } from '../util/int';\nimport { UnionMode, DateUnit } from '../enum';\nimport { toArrayBufferView } from '../util/buffer';\nimport { BufferRegion, FieldNode } from '../ipc/metadata/message';\n\n/** @ignore */\nexport interface VectorLoader extends Visitor {\n visit(node: Field | T): Data;\n visitMany(nodes: (Field | T)[]): Data[];\n}\n\n/** @ignore */\nexport class VectorLoader extends Visitor {\n private bytes: Uint8Array;\n private nodes: FieldNode[];\n private nodesIndex: number = -1;\n private buffers: BufferRegion[];\n private buffersIndex: number = -1;\n private dictionaries: Map>;\n constructor(bytes: Uint8Array, nodes: FieldNode[], buffers: BufferRegion[], dictionaries: Map>) {\n super();\n this.bytes = bytes;\n this.nodes = nodes;\n this.buffers = buffers;\n this.dictionaries = dictionaries;\n }\n\n public visit(node: Field | T): Data {\n return super.visit(node instanceof Field ? node.type : node);\n }\n\n public visitNull (type: T, { length, } = this.nextFieldNode()) { return Data.Null(type, 0, length); }\n public visitBool (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Bool(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitInt (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Int(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitFloat (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Float(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitUtf8 (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Utf8(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.readData(type)); }\n public visitBinary (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Binary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.readData(type)); }\n public visitFixedSizeBinary (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.FixedSizeBinary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitDate (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Date(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitTimestamp (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Timestamp(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitTime (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Time(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitDecimal (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Decimal(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitList (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.List(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.visit(type.children[0])); }\n public visitStruct (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Struct(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.visitMany(type.children)); }\n public visitUnion (type: T ) { return type.mode === UnionMode.Sparse ? this.visitSparseUnion(type as type.SparseUnion) : this.visitDenseUnion(type as type.DenseUnion); }\n public visitDenseUnion (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Union(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readTypeIds(type), this.readOffsets(type), this.visitMany(type.children)); }\n public visitSparseUnion (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Union(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readTypeIds(type), this.visitMany(type.children)); }\n public visitDictionary (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Dictionary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type.indices), this.readDictionary(type)); }\n public visitInterval (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Interval(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitFixedSizeList (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.FixedSizeList(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.visit(type.children[0])); }\n public visitMap (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Map(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.visit(type.children[0])); }\n\n protected nextFieldNode() { return this.nodes[++this.nodesIndex]; }\n protected nextBufferRange() { return this.buffers[++this.buffersIndex]; }\n protected readNullBitmap(type: T, nullCount: number, buffer = this.nextBufferRange()) {\n return nullCount > 0 && this.readData(type, buffer) || new Uint8Array(0);\n }\n protected readOffsets(type: T, buffer?: BufferRegion) { return this.readData(type, buffer); }\n protected readTypeIds(type: T, buffer?: BufferRegion) { return this.readData(type, buffer); }\n protected readData(_type: T, { length, offset } = this.nextBufferRange()) {\n return this.bytes.subarray(offset, offset + length);\n }\n protected readDictionary(type: T): Vector {\n return this.dictionaries.get(type.id)!;\n }\n}\n\n/** @ignore */\nexport class JSONVectorLoader extends VectorLoader {\n private sources: any[][];\n constructor(sources: any[][], nodes: FieldNode[], buffers: BufferRegion[], dictionaries: Map>) {\n super(new Uint8Array(0), nodes, buffers, dictionaries);\n this.sources = sources;\n }\n protected readNullBitmap(_type: T, nullCount: number, { offset } = this.nextBufferRange()) {\n return nullCount <= 0 ? new Uint8Array(0) : packBools(this.sources[offset]);\n }\n protected readOffsets(_type: T, { offset } = this.nextBufferRange()) {\n return toArrayBufferView(Uint8Array, toArrayBufferView(Int32Array, this.sources[offset]));\n }\n protected readTypeIds(type: T, { offset } = this.nextBufferRange()) {\n return toArrayBufferView(Uint8Array, toArrayBufferView(type.ArrayType, this.sources[offset]));\n }\n protected readData(type: T, { offset } = this.nextBufferRange()) {\n const { sources } = this;\n if (DataType.isTimestamp(type)) {\n return toArrayBufferView(Uint8Array, Int64.convertArray(sources[offset] as string[]));\n } else if ((DataType.isInt(type) || DataType.isTime(type)) && type.bitWidth === 64) {\n return toArrayBufferView(Uint8Array, Int64.convertArray(sources[offset] as string[]));\n } else if (DataType.isDate(type) && type.unit === DateUnit.MILLISECOND) {\n return toArrayBufferView(Uint8Array, Int64.convertArray(sources[offset] as string[]));\n } else if (DataType.isDecimal(type)) {\n return toArrayBufferView(Uint8Array, Int128.convertArray(sources[offset] as string[]));\n } else if (DataType.isBinary(type) || DataType.isFixedSizeBinary(type)) {\n return binaryDataFromJSON(sources[offset] as string[]);\n } else if (DataType.isBool(type)) {\n return packBools(sources[offset] as number[]);\n } else if (DataType.isUtf8(type)) {\n return encodeUtf8((sources[offset] as string[]).join(''));\n }\n return toArrayBufferView(Uint8Array, toArrayBufferView(type.ArrayType, sources[offset].map((x) => +x)));\n }\n}\n\n/** @ignore */\nfunction binaryDataFromJSON(values: string[]) {\n // \"DATA\": [\"49BC7D5B6C47D2\",\"3F5FB6D9322026\"]\n // There are definitely more efficient ways to do this... but it gets the\n // job done.\n const joined = values.join('');\n const data = new Uint8Array(joined.length / 2);\n for (let i = 0; i < joined.length; i += 2) {\n data[i >> 1] = parseInt(joined.substr(i, 2), 16);\n }\n return data;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { flatbuffers } from 'flatbuffers';\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport * as Schema_ from '../fb/Schema';\n\nimport * as type from '../type';\nimport { Visitor } from '../visitor';\n\nimport Null = Schema_.org.apache.arrow.flatbuf.Null;\nimport Int = Schema_.org.apache.arrow.flatbuf.Int;\nimport FloatingPoint = Schema_.org.apache.arrow.flatbuf.FloatingPoint;\nimport Binary = Schema_.org.apache.arrow.flatbuf.Binary;\nimport Bool = Schema_.org.apache.arrow.flatbuf.Bool;\nimport Utf8 = Schema_.org.apache.arrow.flatbuf.Utf8;\nimport Decimal = Schema_.org.apache.arrow.flatbuf.Decimal;\nimport Date = Schema_.org.apache.arrow.flatbuf.Date;\nimport Time = Schema_.org.apache.arrow.flatbuf.Time;\nimport Timestamp = Schema_.org.apache.arrow.flatbuf.Timestamp;\nimport Interval = Schema_.org.apache.arrow.flatbuf.Interval;\nimport List = Schema_.org.apache.arrow.flatbuf.List;\nimport Struct = Schema_.org.apache.arrow.flatbuf.Struct_;\nimport Union = Schema_.org.apache.arrow.flatbuf.Union;\nimport DictionaryEncoding = Schema_.org.apache.arrow.flatbuf.DictionaryEncoding;\nimport FixedSizeBinary = Schema_.org.apache.arrow.flatbuf.FixedSizeBinary;\nimport FixedSizeList = Schema_.org.apache.arrow.flatbuf.FixedSizeList;\nimport Map_ = Schema_.org.apache.arrow.flatbuf.Map;\n\n/** @ignore */\nexport interface TypeAssembler extends Visitor {\n visit(node: T, builder: Builder): number | undefined;\n}\n\n/** @ignore */\nexport class TypeAssembler extends Visitor {\n public visit(node: T, builder: Builder): number | undefined {\n return (node == null || builder == null) ? undefined : super.visit(node, builder);\n }\n public visitNull(_node: T, b: Builder) {\n Null.startNull(b);\n return Null.endNull(b);\n }\n public visitInt(node: T, b: Builder) {\n Int.startInt(b);\n Int.addBitWidth(b, node.bitWidth);\n Int.addIsSigned(b, node.isSigned);\n return Int.endInt(b);\n }\n public visitFloat(node: T, b: Builder) {\n FloatingPoint.startFloatingPoint(b);\n FloatingPoint.addPrecision(b, node.precision);\n return FloatingPoint.endFloatingPoint(b);\n }\n public visitBinary(_node: T, b: Builder) {\n Binary.startBinary(b);\n return Binary.endBinary(b);\n }\n public visitBool(_node: T, b: Builder) {\n Bool.startBool(b);\n return Bool.endBool(b);\n }\n public visitUtf8(_node: T, b: Builder) {\n Utf8.startUtf8(b);\n return Utf8.endUtf8(b);\n }\n public visitDecimal(node: T, b: Builder) {\n Decimal.startDecimal(b);\n Decimal.addScale(b, node.scale);\n Decimal.addPrecision(b, node.precision);\n return Decimal.endDecimal(b);\n }\n public visitDate(node: T, b: Builder) {\n Date.startDate(b);\n Date.addUnit(b, node.unit);\n return Date.endDate(b);\n }\n public visitTime(node: T, b: Builder) {\n Time.startTime(b);\n Time.addUnit(b, node.unit);\n Time.addBitWidth(b, node.bitWidth);\n return Time.endTime(b);\n }\n public visitTimestamp(node: T, b: Builder) {\n const timezone = (node.timezone && b.createString(node.timezone)) || undefined;\n Timestamp.startTimestamp(b);\n Timestamp.addUnit(b, node.unit);\n if (timezone !== undefined) {\n Timestamp.addTimezone(b, timezone);\n }\n return Timestamp.endTimestamp(b);\n }\n public visitInterval(node: T, b: Builder) {\n Interval.startInterval(b);\n Interval.addUnit(b, node.unit);\n return Interval.endInterval(b);\n }\n public visitList(_node: T, b: Builder) {\n List.startList(b);\n return List.endList(b);\n }\n public visitStruct(_node: T, b: Builder) {\n Struct.startStruct_(b);\n return Struct.endStruct_(b);\n }\n public visitUnion(node: T, b: Builder) {\n Union.startTypeIdsVector(b, node.typeIds.length);\n const typeIds = Union.createTypeIdsVector(b, node.typeIds);\n Union.startUnion(b);\n Union.addMode(b, node.mode);\n Union.addTypeIds(b, typeIds);\n return Union.endUnion(b);\n }\n public visitDictionary(node: T, b: Builder) {\n const indexType = this.visit(node.indices, b);\n DictionaryEncoding.startDictionaryEncoding(b);\n DictionaryEncoding.addId(b, new Long(node.id, 0));\n DictionaryEncoding.addIsOrdered(b, node.isOrdered);\n if (indexType !== undefined) {\n DictionaryEncoding.addIndexType(b, indexType);\n }\n return DictionaryEncoding.endDictionaryEncoding(b);\n }\n public visitFixedSizeBinary(node: T, b: Builder) {\n FixedSizeBinary.startFixedSizeBinary(b);\n FixedSizeBinary.addByteWidth(b, node.byteWidth);\n return FixedSizeBinary.endFixedSizeBinary(b);\n }\n public visitFixedSizeList(node: T, b: Builder) {\n FixedSizeList.startFixedSizeList(b);\n FixedSizeList.addListSize(b, node.listSize);\n return FixedSizeList.endFixedSizeList(b);\n }\n public visitMap(node: T, b: Builder) {\n Map_.startMap(b);\n Map_.addKeysSorted(b, node.keysSorted);\n return Map_.endMap(b);\n }\n}\n\n/** @ignore */\nexport const instance = new TypeAssembler();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Schema, Field } from '../../schema';\nimport {\n DataType, Dictionary, TimeBitWidth,\n Utf8, Binary, Decimal, FixedSizeBinary,\n List, FixedSizeList, Map_, Struct, Union,\n Bool, Null, Int, Float, Date_, Time, Interval, Timestamp, IntBitWidth, Int32, TKeys,\n} from '../../type';\n\nimport { DictionaryBatch, RecordBatch, FieldNode, BufferRegion } from './message';\nimport { TimeUnit, Precision, IntervalUnit, UnionMode, DateUnit } from '../../enum';\n\n/** @ignore */\nexport function schemaFromJSON(_schema: any, dictionaries: Map = new Map()) {\n return new Schema(\n schemaFieldsFromJSON(_schema, dictionaries),\n customMetadataFromJSON(_schema['customMetadata']),\n dictionaries\n );\n}\n\n/** @ignore */\nexport function recordBatchFromJSON(b: any) {\n return new RecordBatch(\n b['count'],\n fieldNodesFromJSON(b['columns']),\n buffersFromJSON(b['columns'])\n );\n}\n\n/** @ignore */\nexport function dictionaryBatchFromJSON(b: any) {\n return new DictionaryBatch(\n recordBatchFromJSON(b['data']),\n b['id'], b['isDelta']\n );\n}\n\n/** @ignore */\nfunction schemaFieldsFromJSON(_schema: any, dictionaries?: Map) {\n return (_schema['fields'] || []).filter(Boolean).map((f: any) => Field.fromJSON(f, dictionaries));\n}\n\n/** @ignore */\nfunction fieldChildrenFromJSON(_field: any, dictionaries?: Map): Field[] {\n return (_field['children'] || []).filter(Boolean).map((f: any) => Field.fromJSON(f, dictionaries));\n}\n\n/** @ignore */\nfunction fieldNodesFromJSON(xs: any[]): FieldNode[] {\n return (xs || []).reduce((fieldNodes, column: any) => [\n ...fieldNodes,\n new FieldNode(\n column['count'],\n nullCountFromJSON(column['VALIDITY'])\n ),\n ...fieldNodesFromJSON(column['children'])\n ], [] as FieldNode[]);\n}\n\n/** @ignore */\nfunction buffersFromJSON(xs: any[], buffers: BufferRegion[] = []): BufferRegion[] {\n for (let i = -1, n = (xs || []).length; ++i < n;) {\n const column = xs[i];\n column['VALIDITY'] && buffers.push(new BufferRegion(buffers.length, column['VALIDITY'].length));\n column['TYPE'] && buffers.push(new BufferRegion(buffers.length, column['TYPE'].length));\n column['OFFSET'] && buffers.push(new BufferRegion(buffers.length, column['OFFSET'].length));\n column['DATA'] && buffers.push(new BufferRegion(buffers.length, column['DATA'].length));\n buffers = buffersFromJSON(column['children'], buffers);\n }\n return buffers;\n}\n\n/** @ignore */\nfunction nullCountFromJSON(validity: number[]) {\n return (validity || []).reduce((sum, val) => sum + +(val === 0), 0);\n}\n\n/** @ignore */\nexport function fieldFromJSON(_field: any, dictionaries?: Map) {\n\n let id: number;\n let keys: TKeys | null;\n let field: Field | void;\n let dictMeta: any;\n let type: DataType;\n let dictType: Dictionary;\n\n // If no dictionary encoding\n if (!dictionaries || !(dictMeta = _field['dictionary'])) {\n type = typeFromJSON(_field, fieldChildrenFromJSON(_field, dictionaries));\n field = new Field(_field['name'], type, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n // tslint:disable\n // If dictionary encoded and the first time we've seen this dictionary id, decode\n // the data type and child fields, then wrap in a Dictionary type and insert the\n // data type into the dictionary types map.\n else if (!dictionaries.has(id = dictMeta['id'])) {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta['indexType']) ? indexTypeFromJSON(keys) as TKeys : new Int32();\n dictionaries.set(id, type = typeFromJSON(_field, fieldChildrenFromJSON(_field, dictionaries)));\n dictType = new Dictionary(type, keys, id, dictMeta['isOrdered']);\n field = new Field(_field['name'], dictType, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n // If dictionary encoded, and have already seen this dictionary Id in the schema, then reuse the\n // data type and wrap in a new Dictionary type and field.\n else {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta['indexType']) ? indexTypeFromJSON(keys) as TKeys : new Int32();\n dictType = new Dictionary(dictionaries.get(id)!, keys, id, dictMeta['isOrdered']);\n field = new Field(_field['name'], dictType, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n return field || null;\n}\n\n/** @ignore */\nfunction customMetadataFromJSON(_metadata?: object) {\n return new Map(Object.entries(_metadata || {}));\n}\n\n/** @ignore */\nfunction indexTypeFromJSON(_type: any) {\n return new Int(_type['isSigned'], _type['bitWidth']);\n}\n\n/** @ignore */\nfunction typeFromJSON(f: any, children?: Field[]): DataType {\n\n const typeId = f['type']['name'];\n\n switch (typeId) {\n case 'NONE': return new Null();\n case 'null': return new Null();\n case 'binary': return new Binary();\n case 'utf8': return new Utf8();\n case 'bool': return new Bool();\n case 'list': return new List((children || [])[0]);\n case 'struct': return new Struct(children || []);\n case 'struct_': return new Struct(children || []);\n }\n\n switch (typeId) {\n case 'int': {\n const t = f['type'];\n return new Int(t['isSigned'], t['bitWidth'] as IntBitWidth);\n }\n case 'floatingpoint': {\n const t = f['type'];\n return new Float(Precision[t['precision']] as any);\n }\n case 'decimal': {\n const t = f['type'];\n return new Decimal(t['scale'], t['precision']);\n }\n case 'date': {\n const t = f['type'];\n return new Date_(DateUnit[t['unit']] as any);\n }\n case 'time': {\n const t = f['type'];\n return new Time(TimeUnit[t['unit']] as any, t['bitWidth'] as TimeBitWidth);\n }\n case 'timestamp': {\n const t = f['type'];\n return new Timestamp(TimeUnit[t['unit']] as any, t['timezone']);\n }\n case 'interval': {\n const t = f['type'];\n return new Interval(IntervalUnit[t['unit']] as any);\n }\n case 'union': {\n const t = f['type'];\n return new Union(UnionMode[t['mode']] as any, (t['typeIds'] || []), children || []);\n }\n case 'fixedsizebinary': {\n const t = f['type'];\n return new FixedSizeBinary(t['byteWidth']);\n }\n case 'fixedsizelist': {\n const t = f['type'];\n return new FixedSizeList(t['listSize'], (children || [])[0]);\n }\n case 'map': {\n const t = f['type'];\n return new Map_((children || [])[0], t['keysSorted']);\n }\n }\n throw new Error(`Unrecognized type: \"${typeId}\"`);\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as Schema_ from '../../fb/Schema';\nimport * as Message_ from '../../fb/Message';\n\nimport { Schema, Field } from '../../schema';\nimport { toUint8Array } from '../../util/buffer';\nimport { ArrayBufferViewInput } from '../../util/buffer';\nimport { MessageHeader, MetadataVersion } from '../../enum';\nimport { instance as typeAssembler } from '../../visitor/typeassembler';\nimport { fieldFromJSON, schemaFromJSON, recordBatchFromJSON, dictionaryBatchFromJSON } from './json';\n\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport _Int = Schema_.org.apache.arrow.flatbuf.Int;\nimport Type = Schema_.org.apache.arrow.flatbuf.Type;\nimport _Field = Schema_.org.apache.arrow.flatbuf.Field;\nimport _Schema = Schema_.org.apache.arrow.flatbuf.Schema;\nimport _Buffer = Schema_.org.apache.arrow.flatbuf.Buffer;\nimport _Message = Message_.org.apache.arrow.flatbuf.Message;\nimport _KeyValue = Schema_.org.apache.arrow.flatbuf.KeyValue;\nimport _FieldNode = Message_.org.apache.arrow.flatbuf.FieldNode;\nimport _Endianness = Schema_.org.apache.arrow.flatbuf.Endianness;\nimport _RecordBatch = Message_.org.apache.arrow.flatbuf.RecordBatch;\nimport _DictionaryBatch = Message_.org.apache.arrow.flatbuf.DictionaryBatch;\nimport _DictionaryEncoding = Schema_.org.apache.arrow.flatbuf.DictionaryEncoding;\n\nimport {\n DataType, Dictionary, TimeBitWidth,\n Utf8, Binary, Decimal, FixedSizeBinary,\n List, FixedSizeList, Map_, Struct, Union,\n Bool, Null, Int, Float, Date_, Time, Interval, Timestamp, IntBitWidth, Int32, TKeys,\n} from '../../type';\n\n/**\n * @ignore\n * @private\n **/\nexport class Message {\n\n /** @nocollapse */\n public static fromJSON(msg: any, headerType: T): Message {\n const message = new Message(0, MetadataVersion.V4, headerType);\n message._createHeader = messageHeaderFromJSON(msg, headerType);\n return message;\n }\n\n /** @nocollapse */\n public static decode(buf: ArrayBufferViewInput) {\n buf = new ByteBuffer(toUint8Array(buf));\n const _message = _Message.getRootAsMessage(buf);\n const bodyLength: Long = _message.bodyLength()!;\n const version: MetadataVersion = _message.version();\n const headerType: MessageHeader = _message.headerType();\n const message = new Message(bodyLength, version, headerType);\n message._createHeader = decodeMessageHeader(_message, headerType);\n return message;\n }\n\n /** @nocollapse */\n public static encode(message: Message) {\n let b = new Builder(), headerOffset = -1;\n if (message.isSchema()) {\n headerOffset = Schema.encode(b, message.header() as Schema);\n } else if (message.isRecordBatch()) {\n headerOffset = RecordBatch.encode(b, message.header() as RecordBatch);\n } else if (message.isDictionaryBatch()) {\n headerOffset = DictionaryBatch.encode(b, message.header() as DictionaryBatch);\n }\n _Message.startMessage(b);\n _Message.addVersion(b, MetadataVersion.V4);\n _Message.addHeader(b, headerOffset);\n _Message.addHeaderType(b, message.headerType);\n _Message.addBodyLength(b, new Long(message.bodyLength, 0));\n _Message.finishMessageBuffer(b, _Message.endMessage(b));\n return b.asUint8Array();\n }\n\n /** @nocollapse */\n public static from(header: Schema | RecordBatch | DictionaryBatch, bodyLength = 0) {\n if (header instanceof Schema) {\n return new Message(0, MetadataVersion.V4, MessageHeader.Schema, header);\n }\n if (header instanceof RecordBatch) {\n return new Message(bodyLength, MetadataVersion.V4, MessageHeader.RecordBatch, header);\n }\n if (header instanceof DictionaryBatch) {\n return new Message(bodyLength, MetadataVersion.V4, MessageHeader.DictionaryBatch, header);\n }\n throw new Error(`Unrecognized Message header: ${header}`);\n }\n\n // @ts-ignore\n public body: Uint8Array;\n protected _headerType: T;\n protected _bodyLength: number;\n protected _version: MetadataVersion;\n public get type() { return this.headerType; }\n public get version() { return this._version; }\n public get headerType() { return this._headerType; }\n public get bodyLength() { return this._bodyLength; }\n // @ts-ignore\n protected _createHeader: MessageHeaderDecoder;\n public header() { return this._createHeader(); }\n public isSchema(): this is Message { return this.headerType === MessageHeader.Schema; }\n public isRecordBatch(): this is Message { return this.headerType === MessageHeader.RecordBatch; }\n public isDictionaryBatch(): this is Message { return this.headerType === MessageHeader.DictionaryBatch; }\n\n constructor(bodyLength: Long | number, version: MetadataVersion, headerType: T, header?: any) {\n this._version = version;\n this._headerType = headerType;\n this.body = new Uint8Array(0);\n header && (this._createHeader = () => header);\n this._bodyLength = typeof bodyLength === 'number' ? bodyLength : bodyLength.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class RecordBatch {\n protected _length: number;\n protected _nodes: FieldNode[];\n protected _buffers: BufferRegion[];\n public get nodes() { return this._nodes; }\n public get length() { return this._length; }\n public get buffers() { return this._buffers; }\n constructor(length: Long | number, nodes: FieldNode[], buffers: BufferRegion[]) {\n this._nodes = nodes;\n this._buffers = buffers;\n this._length = typeof length === 'number' ? length : length.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class DictionaryBatch {\n\n protected _id: number;\n protected _isDelta: boolean;\n protected _data: RecordBatch;\n public get id() { return this._id; }\n public get data() { return this._data; }\n public get isDelta() { return this._isDelta; }\n public get length(): number { return this.data.length; }\n public get nodes(): FieldNode[] { return this.data.nodes; }\n public get buffers(): BufferRegion[] { return this.data.buffers; }\n\n constructor(data: RecordBatch, id: Long | number, isDelta: boolean = false) {\n this._data = data;\n this._isDelta = isDelta;\n this._id = typeof id === 'number' ? id : id.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class BufferRegion {\n public offset: number;\n public length: number;\n constructor(offset: Long | number, length: Long | number) {\n this.offset = typeof offset === 'number' ? offset : offset.low;\n this.length = typeof length === 'number' ? length : length.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class FieldNode {\n public length: number;\n public nullCount: number;\n constructor(length: Long | number, nullCount: Long | number) {\n this.length = typeof length === 'number' ? length : length.low;\n this.nullCount = typeof nullCount === 'number' ? nullCount : nullCount.low;\n }\n}\n\n/** @ignore */\nfunction messageHeaderFromJSON(message: any, type: MessageHeader) {\n return (() => {\n switch (type) {\n case MessageHeader.Schema: return Schema.fromJSON(message);\n case MessageHeader.RecordBatch: return RecordBatch.fromJSON(message);\n case MessageHeader.DictionaryBatch: return DictionaryBatch.fromJSON(message);\n }\n throw new Error(`Unrecognized Message type: { name: ${MessageHeader[type]}, type: ${type} }`);\n }) as MessageHeaderDecoder;\n}\n\n/** @ignore */\nfunction decodeMessageHeader(message: _Message, type: MessageHeader) {\n return (() => {\n switch (type) {\n case MessageHeader.Schema: return Schema.decode(message.header(new _Schema())!);\n case MessageHeader.RecordBatch: return RecordBatch.decode(message.header(new _RecordBatch())!, message.version());\n case MessageHeader.DictionaryBatch: return DictionaryBatch.decode(message.header(new _DictionaryBatch())!, message.version());\n }\n throw new Error(`Unrecognized Message type: { name: ${MessageHeader[type]}, type: ${type} }`);\n }) as MessageHeaderDecoder;\n}\n\nField['encode'] = encodeField;\nField['decode'] = decodeField;\nField['fromJSON'] = fieldFromJSON;\n\nSchema['encode'] = encodeSchema;\nSchema['decode'] = decodeSchema;\nSchema['fromJSON'] = schemaFromJSON;\n\nRecordBatch['encode'] = encodeRecordBatch;\nRecordBatch['decode'] = decodeRecordBatch;\nRecordBatch['fromJSON'] = recordBatchFromJSON;\n\nDictionaryBatch['encode'] = encodeDictionaryBatch;\nDictionaryBatch['decode'] = decodeDictionaryBatch;\nDictionaryBatch['fromJSON'] = dictionaryBatchFromJSON;\n\nFieldNode['encode'] = encodeFieldNode;\nFieldNode['decode'] = decodeFieldNode;\n\nBufferRegion['encode'] = encodeBufferRegion;\nBufferRegion['decode'] = decodeBufferRegion;\n\ndeclare module '../../schema' {\n namespace Field {\n export { encodeField as encode };\n export { decodeField as decode };\n export { fieldFromJSON as fromJSON };\n }\n namespace Schema {\n export { encodeSchema as encode };\n export { decodeSchema as decode };\n export { schemaFromJSON as fromJSON };\n }\n}\n\ndeclare module './message' {\n namespace RecordBatch {\n export { encodeRecordBatch as encode };\n export { decodeRecordBatch as decode };\n export { recordBatchFromJSON as fromJSON };\n }\n namespace DictionaryBatch {\n export { encodeDictionaryBatch as encode };\n export { decodeDictionaryBatch as decode };\n export { dictionaryBatchFromJSON as fromJSON };\n }\n namespace FieldNode {\n export { encodeFieldNode as encode };\n export { decodeFieldNode as decode };\n }\n namespace BufferRegion {\n export { encodeBufferRegion as encode };\n export { decodeBufferRegion as decode };\n }\n}\n\n/** @ignore */\nfunction decodeSchema(_schema: _Schema, dictionaries: Map = new Map()) {\n const fields = decodeSchemaFields(_schema, dictionaries);\n return new Schema(fields, decodeCustomMetadata(_schema), dictionaries);\n}\n\n/** @ignore */\nfunction decodeRecordBatch(batch: _RecordBatch, version = MetadataVersion.V4) {\n return new RecordBatch(batch.length(), decodeFieldNodes(batch), decodeBuffers(batch, version));\n}\n\n/** @ignore */\nfunction decodeDictionaryBatch(batch: _DictionaryBatch, version = MetadataVersion.V4) {\n return new DictionaryBatch(RecordBatch.decode(batch.data()!, version), batch.id(), batch.isDelta());\n}\n\n/** @ignore */\nfunction decodeBufferRegion(b: _Buffer) {\n return new BufferRegion(b.offset(), b.length());\n}\n\n/** @ignore */\nfunction decodeFieldNode(f: _FieldNode) {\n return new FieldNode(f.length(), f.nullCount());\n}\n\n/** @ignore */\nfunction decodeFieldNodes(batch: _RecordBatch) {\n const nodes = [] as FieldNode[];\n for (let f, i = -1, j = -1, n = batch.nodesLength(); ++i < n;) {\n if (f = batch.nodes(i)) {\n nodes[++j] = FieldNode.decode(f);\n }\n }\n return nodes;\n}\n\n/** @ignore */\nfunction decodeBuffers(batch: _RecordBatch, version: MetadataVersion) {\n const bufferRegions = [] as BufferRegion[];\n for (let b, i = -1, j = -1, n = batch.buffersLength(); ++i < n;) {\n if (b = batch.buffers(i)) {\n // If this Arrow buffer was written before version 4,\n // advance the buffer's bb_pos 8 bytes to skip past\n // the now-removed page_id field\n if (version < MetadataVersion.V4) {\n b.bb_pos += (8 * (i + 1));\n }\n bufferRegions[++j] = BufferRegion.decode(b);\n }\n }\n return bufferRegions;\n}\n\n/** @ignore */\nfunction decodeSchemaFields(schema: _Schema, dictionaries?: Map) {\n const fields = [] as Field[];\n for (let f, i = -1, j = -1, n = schema.fieldsLength(); ++i < n;) {\n if (f = schema.fields(i)) {\n fields[++j] = Field.decode(f, dictionaries);\n }\n }\n return fields;\n}\n\n/** @ignore */\nfunction decodeFieldChildren(field: _Field, dictionaries?: Map): Field[] {\n const children = [] as Field[];\n for (let f, i = -1, j = -1, n = field.childrenLength(); ++i < n;) {\n if (f = field.children(i)) {\n children[++j] = Field.decode(f, dictionaries);\n }\n }\n return children;\n}\n\n/** @ignore */\nfunction decodeField(f: _Field, dictionaries?: Map) {\n\n let id: number;\n let field: Field | void;\n let type: DataType;\n let keys: _Int | TKeys | null;\n let dictType: Dictionary;\n let dictMeta: _DictionaryEncoding | null;\n\n // If no dictionary encoding\n if (!dictionaries || !(dictMeta = f.dictionary())) {\n type = decodeFieldType(f, decodeFieldChildren(f, dictionaries));\n field = new Field(f.name()!, type, f.nullable(), decodeCustomMetadata(f));\n }\n // tslint:disable\n // If dictionary encoded and the first time we've seen this dictionary id, decode\n // the data type and child fields, then wrap in a Dictionary type and insert the\n // data type into the dictionary types map.\n else if (!dictionaries.has(id = dictMeta.id().low)) {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta.indexType()) ? decodeIndexType(keys) as TKeys : new Int32();\n dictionaries.set(id, type = decodeFieldType(f, decodeFieldChildren(f, dictionaries)));\n dictType = new Dictionary(type, keys, id, dictMeta.isOrdered());\n field = new Field(f.name()!, dictType, f.nullable(), decodeCustomMetadata(f));\n }\n // If dictionary encoded, and have already seen this dictionary Id in the schema, then reuse the\n // data type and wrap in a new Dictionary type and field.\n else {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta.indexType()) ? decodeIndexType(keys) as TKeys : new Int32();\n dictType = new Dictionary(dictionaries.get(id)!, keys, id, dictMeta.isOrdered());\n field = new Field(f.name()!, dictType, f.nullable(), decodeCustomMetadata(f));\n }\n return field || null;\n}\n\n/** @ignore */\nfunction decodeCustomMetadata(parent?: _Schema | _Field | null) {\n const data = new Map();\n if (parent) {\n for (let entry, key, i = -1, n = parent.customMetadataLength() | 0; ++i < n;) {\n if ((entry = parent.customMetadata(i)) && (key = entry.key()) != null) {\n data.set(key, entry.value()!);\n }\n }\n }\n return data;\n}\n\n/** @ignore */\nfunction decodeIndexType(_type: _Int) {\n return new Int(_type.isSigned(), _type.bitWidth() as IntBitWidth);\n}\n\n/** @ignore */\nfunction decodeFieldType(f: _Field, children?: Field[]): DataType {\n\n const typeId = f.typeType();\n\n switch (typeId) {\n case Type.NONE: return new Null();\n case Type.Null: return new Null();\n case Type.Binary: return new Binary();\n case Type.Utf8: return new Utf8();\n case Type.Bool: return new Bool();\n case Type.List: return new List((children || [])[0]);\n case Type.Struct_: return new Struct(children || []);\n }\n\n switch (typeId) {\n case Type.Int: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Int())!;\n return new Int(t.isSigned(), t.bitWidth());\n }\n case Type.FloatingPoint: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.FloatingPoint())!;\n return new Float(t.precision());\n }\n case Type.Decimal: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Decimal())!;\n return new Decimal(t.scale(), t.precision());\n }\n case Type.Date: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Date())!;\n return new Date_(t.unit());\n }\n case Type.Time: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Time())!;\n return new Time(t.unit(), t.bitWidth() as TimeBitWidth);\n }\n case Type.Timestamp: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Timestamp())!;\n return new Timestamp(t.unit(), t.timezone());\n }\n case Type.Interval: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Interval())!;\n return new Interval(t.unit());\n }\n case Type.Union: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Union())!;\n return new Union(t.mode(), t.typeIdsArray() || [], children || []);\n }\n case Type.FixedSizeBinary: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.FixedSizeBinary())!;\n return new FixedSizeBinary(t.byteWidth());\n }\n case Type.FixedSizeList: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.FixedSizeList())!;\n return new FixedSizeList(t.listSize(), (children || [])[0]);\n }\n case Type.Map: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Map())!;\n return new Map_((children || [])[0], t.keysSorted());\n }\n }\n throw new Error(`Unrecognized type: \"${Type[typeId]}\" (${typeId})`);\n}\n\n/** @ignore */\nfunction encodeSchema(b: Builder, schema: Schema) {\n\n const fieldOffsets = schema.fields.map((f) => Field.encode(b, f));\n\n _Schema.startFieldsVector(b, fieldOffsets.length);\n\n const fieldsVectorOffset = _Schema.createFieldsVector(b, fieldOffsets);\n\n const metadataOffset = !(schema.metadata && schema.metadata.size > 0) ? -1 :\n _Schema.createCustomMetadataVector(b, [...schema.metadata].map(([k, v]) => {\n const key = b.createString(`${k}`);\n const val = b.createString(`${v}`);\n _KeyValue.startKeyValue(b);\n _KeyValue.addKey(b, key);\n _KeyValue.addValue(b, val);\n return _KeyValue.endKeyValue(b);\n }));\n\n _Schema.startSchema(b);\n _Schema.addFields(b, fieldsVectorOffset);\n _Schema.addEndianness(b, platformIsLittleEndian ? _Endianness.Little : _Endianness.Big);\n\n if (metadataOffset !== -1) { _Schema.addCustomMetadata(b, metadataOffset); }\n\n return _Schema.endSchema(b);\n}\n\n/** @ignore */\nfunction encodeField(b: Builder, field: Field) {\n\n let nameOffset = -1;\n let typeOffset = -1;\n let dictionaryOffset = -1;\n\n let type = field.type;\n let typeId: Type = field.typeId;\n\n if (!DataType.isDictionary(type)) {\n typeOffset = typeAssembler.visit(type, b)!;\n } else {\n typeId = type.dictionary.typeId;\n dictionaryOffset = typeAssembler.visit(type, b)!;\n typeOffset = typeAssembler.visit(type.dictionary, b)!;\n }\n\n const childOffsets = (type.children || []).map((f: Field) => Field.encode(b, f));\n const childrenVectorOffset = _Field.createChildrenVector(b, childOffsets);\n\n const metadataOffset = !(field.metadata && field.metadata.size > 0) ? -1 :\n _Field.createCustomMetadataVector(b, [...field.metadata].map(([k, v]) => {\n const key = b.createString(`${k}`);\n const val = b.createString(`${v}`);\n _KeyValue.startKeyValue(b);\n _KeyValue.addKey(b, key);\n _KeyValue.addValue(b, val);\n return _KeyValue.endKeyValue(b);\n }));\n\n if (field.name) {\n nameOffset = b.createString(field.name);\n }\n\n _Field.startField(b);\n _Field.addType(b, typeOffset);\n _Field.addTypeType(b, typeId);\n _Field.addChildren(b, childrenVectorOffset);\n _Field.addNullable(b, !!field.nullable);\n\n if (nameOffset !== -1) { _Field.addName(b, nameOffset); }\n if (dictionaryOffset !== -1) { _Field.addDictionary(b, dictionaryOffset); }\n if (metadataOffset !== -1) { _Field.addCustomMetadata(b, metadataOffset); }\n\n return _Field.endField(b);\n}\n\n/** @ignore */\nfunction encodeRecordBatch(b: Builder, recordBatch: RecordBatch) {\n\n const nodes = recordBatch.nodes || [];\n const buffers = recordBatch.buffers || [];\n\n _RecordBatch.startNodesVector(b, nodes.length);\n nodes.slice().reverse().forEach((n) => FieldNode.encode(b, n));\n\n const nodesVectorOffset = b.endVector();\n\n _RecordBatch.startBuffersVector(b, buffers.length);\n buffers.slice().reverse().forEach((b_) => BufferRegion.encode(b, b_));\n\n const buffersVectorOffset = b.endVector();\n\n _RecordBatch.startRecordBatch(b);\n _RecordBatch.addLength(b, new Long(recordBatch.length, 0));\n _RecordBatch.addNodes(b, nodesVectorOffset);\n _RecordBatch.addBuffers(b, buffersVectorOffset);\n return _RecordBatch.endRecordBatch(b);\n}\n\n/** @ignore */\nfunction encodeDictionaryBatch(b: Builder, dictionaryBatch: DictionaryBatch) {\n const dataOffset = RecordBatch.encode(b, dictionaryBatch.data);\n _DictionaryBatch.startDictionaryBatch(b);\n _DictionaryBatch.addId(b, new Long(dictionaryBatch.id, 0));\n _DictionaryBatch.addIsDelta(b, dictionaryBatch.isDelta);\n _DictionaryBatch.addData(b, dataOffset);\n return _DictionaryBatch.endDictionaryBatch(b);\n}\n\n/** @ignore */\nfunction encodeFieldNode(b: Builder, node: FieldNode) {\n return _FieldNode.createFieldNode(b, new Long(node.length, 0), new Long(node.nullCount, 0));\n}\n\n/** @ignore */\nfunction encodeBufferRegion(b: Builder, node: BufferRegion) {\n return _Buffer.createBuffer(b, new Long(node.offset, 0), new Long(node.length, 0));\n}\n\n/** @ignore */\nconst platformIsLittleEndian = (function() {\n const buffer = new ArrayBuffer(2);\n new DataView(buffer).setInt16(0, 256, true /* littleEndian */);\n // Int16Array uses the platform's endianness.\n return new Int16Array(buffer)[0] === 256;\n})();\n\n/** @ignore */\ntype MessageHeaderDecoder = () => T extends MessageHeader.Schema ? Schema\n : T extends MessageHeader.RecordBatch ? RecordBatch\n : T extends MessageHeader.DictionaryBatch ? DictionaryBatch : never;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { MessageHeader } from '../enum';\nimport { flatbuffers } from 'flatbuffers';\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport { Message } from './metadata/message';\nimport { isFileHandle } from '../util/compat';\nimport { AsyncRandomAccessFile } from '../io/file';\nimport { toUint8Array, ArrayBufferViewInput } from '../util/buffer';\nimport { ByteStream, ReadableSource, AsyncByteStream } from '../io/stream';\nimport { ArrowJSON, ArrowJSONLike, ITERATOR_DONE, FileHandle } from '../io/interfaces';\n\n/** @ignore */ const invalidMessageType = (type: MessageHeader) => `Expected ${MessageHeader[type]} Message in stream, but was null or length 0.`;\n/** @ignore */ const nullMessage = (type: MessageHeader) => `Header pointer of flatbuffer-encoded ${MessageHeader[type]} Message is null or length 0.`;\n/** @ignore */ const invalidMessageMetadata = (expected: number, actual: number) => `Expected to read ${expected} metadata bytes, but only read ${actual}.`;\n/** @ignore */ const invalidMessageBodyLength = (expected: number, actual: number) => `Expected to read ${expected} bytes for message body, but only read ${actual}.`;\n\n/** @ignore */\nexport class MessageReader implements IterableIterator {\n protected source: ByteStream;\n constructor(source: ByteStream | ArrayBufferViewInput | Iterable) {\n this.source = source instanceof ByteStream ? source : new ByteStream(source);\n }\n public [Symbol.iterator](): IterableIterator { return this as IterableIterator; }\n public next(): IteratorResult {\n let r;\n if ((r = this.readMetadataLength()).done) { return ITERATOR_DONE; }\n // ARROW-6313: If the first 4 bytes are continuation indicator (-1), read\n // the next 4 for the 32-bit metadata length. Otherwise, assume this is a\n // pre-v0.15 message, where the first 4 bytes are the metadata length.\n if ((r.value === -1) &&\n (r = this.readMetadataLength()).done) { return ITERATOR_DONE; }\n if ((r = this.readMetadata(r.value)).done) { return ITERATOR_DONE; }\n return ( r) as IteratorResult;\n }\n public throw(value?: any) { return this.source.throw(value); }\n public return(value?: any) { return this.source.return(value); }\n public readMessage(type?: T | null) {\n let r: IteratorResult>;\n if ((r = this.next()).done) { return null; }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n public readMessageBody(bodyLength: number): Uint8Array {\n if (bodyLength <= 0) { return new Uint8Array(0); }\n const buf = toUint8Array(this.source.read(bodyLength));\n if (buf.byteLength < bodyLength) {\n throw new Error(invalidMessageBodyLength(bodyLength, buf.byteLength));\n }\n // 1. Work around bugs in fs.ReadStream's internal Buffer pooling, see: https://github.com/nodejs/node/issues/24817\n // 2. Work around https://github.com/whatwg/streams/blob/0ebe4b042e467d9876d80ae045de3843092ad797/reference-implementation/lib/helpers.js#L126\n return /* 1. */ (buf.byteOffset % 8 === 0) &&\n /* 2. */ (buf.byteOffset + buf.byteLength) <= buf.buffer.byteLength ? buf : buf.slice();\n }\n public readSchema(throwIfNull = false) {\n const type = MessageHeader.Schema;\n const message = this.readMessage(type);\n const schema = message && message.header();\n if (throwIfNull && !schema) {\n throw new Error(nullMessage(type));\n }\n return schema;\n }\n protected readMetadataLength(): IteratorResult {\n const buf = this.source.read(PADDING);\n const bb = buf && new ByteBuffer(buf);\n const len = bb && bb.readInt32(0) || 0;\n return { done: len === 0, value: len };\n }\n protected readMetadata(metadataLength: number): IteratorResult {\n const buf = this.source.read(metadataLength);\n if (!buf) { return ITERATOR_DONE; }\n if (buf.byteLength < metadataLength) {\n throw new Error(invalidMessageMetadata(metadataLength, buf.byteLength));\n }\n return { done: false, value: Message.decode(buf) };\n }\n}\n\n/** @ignore */\nexport class AsyncMessageReader implements AsyncIterableIterator {\n protected source: AsyncByteStream;\n constructor(source: ReadableSource);\n constructor(source: FileHandle, byteLength?: number);\n constructor(source: any, byteLength?: number) {\n this.source = source instanceof AsyncByteStream ? source\n : isFileHandle(source)\n ? new AsyncRandomAccessFile(source, byteLength!)\n : new AsyncByteStream(source);\n }\n public [Symbol.asyncIterator](): AsyncIterableIterator { return this as AsyncIterableIterator; }\n public async next(): Promise> {\n let r;\n if ((r = await this.readMetadataLength()).done) { return ITERATOR_DONE; }\n // ARROW-6313: If the first 4 bytes are continuation indicator (-1), read\n // the next 4 for the 32-bit metadata length. Otherwise, assume this is a\n // pre-v0.15 message, where the first 4 bytes are the metadata length.\n if ((r.value === -1) &&\n (r = await this.readMetadataLength()).done) { return ITERATOR_DONE; }\n if ((r = await this.readMetadata(r.value)).done) { return ITERATOR_DONE; }\n return ( r) as IteratorResult;\n }\n public async throw(value?: any) { return await this.source.throw(value); }\n public async return(value?: any) { return await this.source.return(value); }\n public async readMessage(type?: T | null) {\n let r: IteratorResult>;\n if ((r = await this.next()).done) { return null; }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n public async readMessageBody(bodyLength: number): Promise {\n if (bodyLength <= 0) { return new Uint8Array(0); }\n const buf = toUint8Array(await this.source.read(bodyLength));\n if (buf.byteLength < bodyLength) {\n throw new Error(invalidMessageBodyLength(bodyLength, buf.byteLength));\n }\n // 1. Work around bugs in fs.ReadStream's internal Buffer pooling, see: https://github.com/nodejs/node/issues/24817\n // 2. Work around https://github.com/whatwg/streams/blob/0ebe4b042e467d9876d80ae045de3843092ad797/reference-implementation/lib/helpers.js#L126\n return /* 1. */ (buf.byteOffset % 8 === 0) &&\n /* 2. */ (buf.byteOffset + buf.byteLength) <= buf.buffer.byteLength ? buf : buf.slice();\n }\n public async readSchema(throwIfNull = false) {\n const type = MessageHeader.Schema;\n const message = await this.readMessage(type);\n const schema = message && message.header();\n if (throwIfNull && !schema) {\n throw new Error(nullMessage(type));\n }\n return schema;\n }\n protected async readMetadataLength(): Promise> {\n const buf = await this.source.read(PADDING);\n const bb = buf && new ByteBuffer(buf);\n const len = bb && bb.readInt32(0) || 0;\n return { done: len === 0, value: len };\n }\n protected async readMetadata(metadataLength: number): Promise> {\n const buf = await this.source.read(metadataLength);\n if (!buf) { return ITERATOR_DONE; }\n if (buf.byteLength < metadataLength) {\n throw new Error(invalidMessageMetadata(metadataLength, buf.byteLength));\n }\n return { done: false, value: Message.decode(buf) };\n }\n}\n\n/** @ignore */\nexport class JSONMessageReader extends MessageReader {\n private _schema = false;\n private _json: ArrowJSON;\n private _body: any[] = [];\n private _batchIndex = 0;\n private _dictionaryIndex = 0;\n constructor(source: ArrowJSON | ArrowJSONLike) {\n super(new Uint8Array(0));\n this._json = source instanceof ArrowJSON ? source : new ArrowJSON(source);\n }\n public next() {\n const { _json } = this;\n if (!this._schema) {\n this._schema = true;\n const message = Message.fromJSON(_json.schema, MessageHeader.Schema);\n return { done: false, value: message };\n }\n if (this._dictionaryIndex < _json.dictionaries.length) {\n const batch = _json.dictionaries[this._dictionaryIndex++];\n this._body = batch['data']['columns'];\n const message = Message.fromJSON(batch, MessageHeader.DictionaryBatch);\n return { done: false, value: message };\n }\n if (this._batchIndex < _json.batches.length) {\n const batch = _json.batches[this._batchIndex++];\n this._body = batch['columns'];\n const message = Message.fromJSON(batch, MessageHeader.RecordBatch);\n return { done: false, value: message };\n }\n this._body = [];\n return ITERATOR_DONE;\n }\n public readMessageBody(_bodyLength?: number) {\n return flattenDataSources(this._body) as any;\n function flattenDataSources(xs: any[]): any[][] {\n return (xs || []).reduce((buffers, column: any) => [\n ...buffers,\n ...(column['VALIDITY'] && [column['VALIDITY']] || []),\n ...(column['TYPE'] && [column['TYPE']] || []),\n ...(column['OFFSET'] && [column['OFFSET']] || []),\n ...(column['DATA'] && [column['DATA']] || []),\n ...flattenDataSources(column['children'])\n ], [] as any[][]);\n }\n }\n public readMessage(type?: T | null) {\n let r: IteratorResult>;\n if ((r = this.next()).done) { return null; }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n public readSchema() {\n const type = MessageHeader.Schema;\n const message = this.readMessage(type);\n const schema = message && message.header();\n if (!message || !schema) {\n throw new Error(nullMessage(type));\n }\n return schema;\n }\n}\n\n/** @ignore */\nexport const PADDING = 4;\n/** @ignore */\nexport const MAGIC_STR = 'ARROW1';\n/** @ignore */\nexport const MAGIC = new Uint8Array(MAGIC_STR.length);\n\nfor (let i = 0; i < MAGIC_STR.length; i += 1 | 0) {\n MAGIC[i] = MAGIC_STR.charCodeAt(i);\n}\n\n/** @ignore */\nexport function checkForMagicArrowString(buffer: Uint8Array, index = 0) {\n for (let i = -1, n = MAGIC.length; ++i < n;) {\n if (MAGIC[i] !== buffer[index + i]) {\n return false;\n }\n }\n return true;\n}\n\n/** @ignore */\nexport const magicLength = MAGIC.length;\n/** @ignore */\nexport const magicAndPadding = magicLength + PADDING;\n/** @ignore */\nexport const magicX2AndPadding = magicLength * 2 + PADDING;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { Visitor } from '../visitor';\nimport { Type, UnionMode } from '../enum';\nimport { RecordBatch } from '../recordbatch';\nimport { VectorType as V } from '../interfaces';\nimport { rebaseValueOffsets } from '../util/buffer';\nimport { packBools, truncateBitmap } from '../util/bit';\nimport { selectVectorChildrenArgs } from '../util/args';\nimport { BufferRegion, FieldNode } from '../ipc/metadata/message';\nimport {\n DataType, Dictionary,\n Float, Int, Date_, Interval, Time, Timestamp, Union,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n} from '../type';\n\n/** @ignore */\nexport interface VectorAssembler extends Visitor {\n visit(node: T): this;\n visitMany(nodes: T[]): this[];\n getVisitFn(node: T): (vector: V) => this;\n getVisitFn(node: V | Data | T): (vector: V) => this;\n\n visitBool (vector: V): this;\n visitInt (vector: V): this;\n visitFloat (vector: V): this;\n visitUtf8 (vector: V): this;\n visitBinary (vector: V): this;\n visitFixedSizeBinary (vector: V): this;\n visitDate (vector: V): this;\n visitTimestamp (vector: V): this;\n visitTime (vector: V): this;\n visitDecimal (vector: V): this;\n visitList (vector: V): this;\n visitStruct (vector: V): this;\n visitUnion (vector: V): this;\n visitInterval (vector: V): this;\n visitFixedSizeList (vector: V): this;\n visitMap (vector: V): this;\n}\n\n/** @ignore */\nexport class VectorAssembler extends Visitor {\n\n /** @nocollapse */\n public static assemble(...args: (T | T[])[]) {\n const assembler = new VectorAssembler();\n const vectorChildren = selectVectorChildrenArgs(RecordBatch, args);\n const [assembleResult = assembler] = assembler.visitMany(vectorChildren);\n return assembleResult;\n }\n\n private constructor() { super(); }\n\n public visit(vector: T): this {\n if (!DataType.isDictionary(vector.type)) {\n const { data, length, nullCount } = vector;\n if (length > 2147483647) {\n /* istanbul ignore next */\n throw new RangeError('Cannot write arrays larger than 2^31 - 1 in length');\n }\n if (!DataType.isNull(vector.type)) {\n addBuffer.call(this, nullCount <= 0\n ? new Uint8Array(0) // placeholder validity buffer\n : truncateBitmap(data.offset, length, data.nullBitmap)\n );\n }\n this.nodes.push(new FieldNode(length, nullCount));\n }\n return super.visit(vector);\n }\n\n public visitNull(_nullV: V) {\n return this;\n }\n public visitDictionary(vector: V) {\n // Assemble the indices here, Dictionary assembled separately.\n return this.visit(vector.indices);\n }\n\n public get nodes() { return this._nodes; }\n public get buffers() { return this._buffers; }\n public get byteLength() { return this._byteLength; }\n public get bufferRegions() { return this._bufferRegions; }\n\n protected _byteLength = 0;\n protected _nodes: FieldNode[] = [];\n protected _buffers: ArrayBufferView[] = [];\n protected _bufferRegions: BufferRegion[] = [];\n}\n\n/** @ignore */\nfunction addBuffer(this: VectorAssembler, values: ArrayBufferView) {\n const byteLength = (values.byteLength + 7) & ~7; // Round up to a multiple of 8\n this.buffers.push(values);\n this.bufferRegions.push(new BufferRegion(this._byteLength, byteLength));\n this._byteLength += byteLength;\n return this;\n}\n\n/** @ignore */\nfunction assembleUnion(this: VectorAssembler, vector: V) {\n const { type, length, typeIds, valueOffsets } = vector;\n // All Union Vectors have a typeIds buffer\n addBuffer.call(this, typeIds);\n // If this is a Sparse Union, treat it like all other Nested types\n if (type.mode === UnionMode.Sparse) {\n return assembleNestedVector.call(this, vector);\n } else if (type.mode === UnionMode.Dense) {\n // If this is a Dense Union, add the valueOffsets buffer and potentially slice the children\n if (vector.offset <= 0) {\n // If the Vector hasn't been sliced, write the existing valueOffsets\n addBuffer.call(this, valueOffsets);\n // We can treat this like all other Nested types\n return assembleNestedVector.call(this, vector);\n } else {\n // A sliced Dense Union is an unpleasant case. Because the offsets are different for\n // each child vector, we need to \"rebase\" the valueOffsets for each child\n // Union typeIds are not necessary 0-indexed\n const maxChildTypeId = typeIds.reduce((x, y) => Math.max(x, y), typeIds[0]);\n const childLengths = new Int32Array(maxChildTypeId + 1);\n // Set all to -1 to indicate that we haven't observed a first occurrence of a particular child yet\n const childOffsets = new Int32Array(maxChildTypeId + 1).fill(-1);\n const shiftedOffsets = new Int32Array(length);\n // If we have a non-zero offset, then the value offsets do not start at\n // zero. We must a) create a new offsets array with shifted offsets and\n // b) slice the values array accordingly\n const unshiftedOffsets = rebaseValueOffsets(-valueOffsets[0], length, valueOffsets);\n for (let typeId, shift, index = -1; ++index < length;) {\n if ((shift = childOffsets[typeId = typeIds[index]]) === -1) {\n shift = childOffsets[typeId] = unshiftedOffsets[typeId];\n }\n shiftedOffsets[index] = unshiftedOffsets[index] - shift;\n ++childLengths[typeId];\n }\n addBuffer.call(this, shiftedOffsets);\n // Slice and visit children accordingly\n for (let child: Vector | null, childIndex = -1, numChildren = type.children.length; ++childIndex < numChildren;) {\n if (child = vector.getChildAt(childIndex)) {\n const typeId = type.typeIds[childIndex];\n const childLength = Math.min(length, childLengths[typeId]);\n this.visit(child.slice(childOffsets[typeId], childLength));\n }\n }\n }\n }\n return this;\n}\n\n/** @ignore */\nfunction assembleBoolVector(this: VectorAssembler, vector: V) {\n // Bool vector is a special case of FlatVector, as its data buffer needs to stay packed\n let values: Uint8Array;\n if (vector.nullCount >= vector.length) {\n // If all values are null, just insert a placeholder empty data buffer (fastest path)\n return addBuffer.call(this, new Uint8Array(0));\n } else if ((values = vector.values) instanceof Uint8Array) {\n // If values is already a Uint8Array, slice the bitmap (fast path)\n return addBuffer.call(this, truncateBitmap(vector.offset, vector.length, values));\n }\n // Otherwise if the underlying data *isn't* a Uint8Array, enumerate the\n // values as bools and re-pack them into a Uint8Array. This code isn't\n // reachable unless you're trying to manipulate the Data internals,\n // we we're only doing this for safety.\n /* istanbul ignore next */\n return addBuffer.call(this, packBools(vector));\n}\n\n/** @ignore */\nfunction assembleFlatVector(this: VectorAssembler, vector: V) {\n return addBuffer.call(this, vector.values.subarray(0, vector.length * vector.stride));\n}\n\n/** @ignore */\nfunction assembleFlatListVector(this: VectorAssembler, vector: V) {\n const { length, values, valueOffsets } = vector;\n const firstOffset = valueOffsets[0];\n const lastOffset = valueOffsets[length];\n const byteLength = Math.min(lastOffset - firstOffset, values.byteLength - firstOffset);\n // Push in the order FlatList types read their buffers\n addBuffer.call(this, rebaseValueOffsets(-valueOffsets[0], length, valueOffsets)); // valueOffsets buffer first\n addBuffer.call(this, values.subarray(firstOffset, firstOffset + byteLength)); // sliced values buffer second\n return this;\n}\n\n/** @ignore */\nfunction assembleListVector(this: VectorAssembler, vector: V) {\n const { length, valueOffsets } = vector;\n // If we have valueOffsets (MapVector, ListVector), push that buffer first\n if (valueOffsets) {\n addBuffer.call(this, rebaseValueOffsets(valueOffsets[0], length, valueOffsets));\n }\n // Then insert the List's values child\n return this.visit(vector.getChildAt(0)!);\n}\n\n/** @ignore */\nfunction assembleNestedVector(this: VectorAssembler, vector: V) {\n return this.visitMany(vector.type.children.map((_, i) => vector.getChildAt(i)!).filter(Boolean))[0];\n}\n\nVectorAssembler.prototype.visitBool = assembleBoolVector;\nVectorAssembler.prototype.visitInt = assembleFlatVector;\nVectorAssembler.prototype.visitFloat = assembleFlatVector;\nVectorAssembler.prototype.visitUtf8 = assembleFlatListVector;\nVectorAssembler.prototype.visitBinary = assembleFlatListVector;\nVectorAssembler.prototype.visitFixedSizeBinary = assembleFlatVector;\nVectorAssembler.prototype.visitDate = assembleFlatVector;\nVectorAssembler.prototype.visitTimestamp = assembleFlatVector;\nVectorAssembler.prototype.visitTime = assembleFlatVector;\nVectorAssembler.prototype.visitDecimal = assembleFlatVector;\nVectorAssembler.prototype.visitList = assembleListVector;\nVectorAssembler.prototype.visitStruct = assembleNestedVector;\nVectorAssembler.prototype.visitUnion = assembleUnion;\nVectorAssembler.prototype.visitInterval = assembleFlatVector;\nVectorAssembler.prototype.visitFixedSizeList = assembleListVector;\nVectorAssembler.prototype.visitMap = assembleListVector;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Table } from '../table';\nimport { MAGIC } from './message';\nimport { Vector } from '../vector';\nimport { Column } from '../column';\nimport { DataType } from '../type';\nimport { Schema, Field } from '../schema';\nimport { Message } from './metadata/message';\nimport * as metadata from './metadata/message';\nimport { FileBlock, Footer } from './metadata/file';\nimport { MessageHeader, MetadataVersion } from '../enum';\nimport { WritableSink, AsyncByteQueue } from '../io/stream';\nimport { VectorAssembler } from '../visitor/vectorassembler';\nimport { JSONTypeAssembler } from '../visitor/jsontypeassembler';\nimport { JSONVectorAssembler } from '../visitor/jsonvectorassembler';\nimport { ArrayBufferViewInput, toUint8Array } from '../util/buffer';\nimport { RecordBatch, _InternalEmptyPlaceholderRecordBatch } from '../recordbatch';\nimport { Writable, ReadableInterop, ReadableDOMStreamOptions } from '../io/interfaces';\nimport { isPromise, isAsyncIterable, isWritableDOMStream, isWritableNodeStream, isIterable, isObject } from '../util/compat';\n\nexport interface RecordBatchStreamWriterOptions {\n /**\n *\n */\n autoDestroy?: boolean;\n /**\n * A flag indicating whether the RecordBatchWriter should construct pre-0.15.0\n * encapsulated IPC Messages, which reserves 4 bytes for the Message metadata\n * length instead of 8.\n * @see https://issues.apache.org/jira/browse/ARROW-6313\n */\n writeLegacyIpcFormat?: boolean;\n}\n\nexport class RecordBatchWriter extends ReadableInterop implements Writable> {\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode(options?: import('stream').DuplexOptions & { autoDestroy: boolean }): import('stream').Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n public static throughDOM(\n // @ts-ignore\n writableStrategy?: QueuingStrategy> & { autoDestroy: boolean },\n // @ts-ignore\n readableStrategy?: { highWaterMark?: number, size?: any }\n ): { writable: WritableStream | RecordBatch>, readable: ReadableStream } {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n constructor(options?: RecordBatchStreamWriterOptions) {\n super();\n isObject(options) || (options = { autoDestroy: true, writeLegacyIpcFormat: false });\n this._autoDestroy = (typeof options.autoDestroy === 'boolean') ? options.autoDestroy : true;\n this._writeLegacyIpcFormat = (typeof options.writeLegacyIpcFormat === 'boolean') ? options.writeLegacyIpcFormat : false;\n }\n\n protected _position = 0;\n protected _started = false;\n protected _autoDestroy: boolean;\n protected _writeLegacyIpcFormat: boolean;\n // @ts-ignore\n protected _sink = new AsyncByteQueue();\n protected _schema: Schema | null = null;\n protected _dictionaryBlocks: FileBlock[] = [];\n protected _recordBatchBlocks: FileBlock[] = [];\n protected _dictionaryDeltaOffsets = new Map();\n\n public toString(sync: true): string;\n public toString(sync?: false): Promise;\n public toString(sync: any = false) {\n return this._sink.toString(sync) as Promise | string;\n }\n public toUint8Array(sync: true): Uint8Array;\n public toUint8Array(sync?: false): Promise;\n public toUint8Array(sync: any = false) {\n return this._sink.toUint8Array(sync) as Promise | Uint8Array;\n }\n\n public writeAll(input: Table | Iterable>): this;\n public writeAll(input: AsyncIterable>): Promise;\n public writeAll(input: PromiseLike>>): Promise;\n public writeAll(input: PromiseLike | Iterable>>): Promise;\n public writeAll(input: PromiseLike | Table | Iterable> | AsyncIterable>) {\n if (isPromise(input)) {\n return input.then((x) => this.writeAll(x));\n } else if (isAsyncIterable>(input)) {\n return writeAllAsync(this, input);\n }\n return writeAll(this, input);\n }\n\n public get closed() { return this._sink.closed; }\n public [Symbol.asyncIterator]() { return this._sink[Symbol.asyncIterator](); }\n public toDOMStream(options?: ReadableDOMStreamOptions) { return this._sink.toDOMStream(options); }\n public toNodeStream(options?: import('stream').ReadableOptions) { return this._sink.toNodeStream(options); }\n\n public close() {\n return this.reset()._sink.close();\n }\n public abort(reason?: any) {\n return this.reset()._sink.abort(reason);\n }\n public finish() {\n this._autoDestroy ? this.close() : this.reset(this._sink, this._schema);\n return this;\n }\n public reset(sink: WritableSink = this._sink, schema: Schema | null = null) {\n\n if ((sink === this._sink) || (sink instanceof AsyncByteQueue)) {\n this._sink = sink as AsyncByteQueue;\n } else {\n this._sink = new AsyncByteQueue();\n if (sink && isWritableDOMStream(sink)) {\n this.toDOMStream({ type: 'bytes' }).pipeTo(sink);\n } else if (sink && isWritableNodeStream(sink)) {\n this.toNodeStream({ objectMode: false }).pipe(sink);\n }\n }\n\n if (this._started && this._schema) {\n this._writeFooter(this._schema);\n }\n\n this._started = false;\n this._dictionaryBlocks = [];\n this._recordBatchBlocks = [];\n this._dictionaryDeltaOffsets = new Map();\n\n if (!schema || !(schema.compareTo(this._schema))) {\n if (schema === null) {\n this._position = 0;\n this._schema = null;\n } else {\n this._started = true;\n this._schema = schema;\n this._writeSchema(schema);\n }\n }\n\n return this;\n }\n\n public write(payload?: Table | RecordBatch | Iterable> | null) {\n\n let schema: Schema | null = null;\n\n if (!this._sink) {\n throw new Error(`RecordBatchWriter is closed`);\n } else if (payload === null || payload === undefined) {\n return this.finish() && undefined;\n } else if (payload instanceof Table && !(schema = payload.schema)) {\n return this.finish() && undefined;\n } else if (payload instanceof RecordBatch && !(schema = payload.schema)) {\n return this.finish() && undefined;\n }\n\n if (schema && !schema.compareTo(this._schema)) {\n if (this._started && this._autoDestroy) {\n return this.close();\n }\n this.reset(this._sink, schema);\n }\n\n if (payload instanceof RecordBatch) {\n if (!(payload instanceof _InternalEmptyPlaceholderRecordBatch)) {\n this._writeRecordBatch(payload);\n }\n } else if (payload instanceof Table) {\n this.writeAll(payload.chunks);\n } else if (isIterable(payload)) {\n this.writeAll(payload);\n }\n }\n\n protected _writeMessage(message: Message, alignment = 8) {\n\n const a = alignment - 1;\n const buffer = Message.encode(message);\n const flatbufferSize = buffer.byteLength;\n const prefixSize = !this._writeLegacyIpcFormat ? 8 : 4;\n const alignedSize = (flatbufferSize + prefixSize + a) & ~a;\n const nPaddingBytes = alignedSize - flatbufferSize - prefixSize;\n\n if (message.headerType === MessageHeader.RecordBatch) {\n this._recordBatchBlocks.push(new FileBlock(alignedSize, message.bodyLength, this._position));\n } else if (message.headerType === MessageHeader.DictionaryBatch) {\n this._dictionaryBlocks.push(new FileBlock(alignedSize, message.bodyLength, this._position));\n }\n\n // If not in legacy pre-0.15.0 mode, write the stream continuation indicator\n if (!this._writeLegacyIpcFormat) {\n this._write(Int32Array.of(-1));\n }\n // Write the flatbuffer size prefix including padding\n this._write(Int32Array.of(alignedSize - prefixSize));\n // Write the flatbuffer\n if (flatbufferSize > 0) { this._write(buffer); }\n // Write any padding\n return this._writePadding(nPaddingBytes);\n }\n\n protected _write(chunk: ArrayBufferViewInput) {\n if (this._started) {\n const buffer = toUint8Array(chunk);\n if (buffer && buffer.byteLength > 0) {\n this._sink.write(buffer);\n this._position += buffer.byteLength;\n }\n }\n return this;\n }\n\n protected _writeSchema(schema: Schema) {\n return this._writeMessage(Message.from(schema));\n }\n\n // @ts-ignore\n protected _writeFooter(schema: Schema) {\n // eos bytes\n return this._writeLegacyIpcFormat\n ? this._write(Int32Array.of(0))\n : this._write(Int32Array.of(-1, 0));\n }\n\n protected _writeMagic() {\n return this._write(MAGIC);\n }\n\n protected _writePadding(nBytes: number) {\n return nBytes > 0 ? this._write(new Uint8Array(nBytes)) : this;\n }\n\n protected _writeRecordBatch(batch: RecordBatch) {\n const { byteLength, nodes, bufferRegions, buffers } = VectorAssembler.assemble(batch);\n const recordBatch = new metadata.RecordBatch(batch.length, nodes, bufferRegions);\n const message = Message.from(recordBatch, byteLength);\n return this\n ._writeDictionaries(batch)\n ._writeMessage(message)\n ._writeBodyBuffers(buffers);\n }\n\n protected _writeDictionaryBatch(dictionary: Vector, id: number, isDelta = false) {\n this._dictionaryDeltaOffsets.set(id, dictionary.length + (this._dictionaryDeltaOffsets.get(id) || 0));\n const { byteLength, nodes, bufferRegions, buffers } = VectorAssembler.assemble(dictionary);\n const recordBatch = new metadata.RecordBatch(dictionary.length, nodes, bufferRegions);\n const dictionaryBatch = new metadata.DictionaryBatch(recordBatch, id, isDelta);\n const message = Message.from(dictionaryBatch, byteLength);\n return this\n ._writeMessage(message)\n ._writeBodyBuffers(buffers);\n }\n\n protected _writeBodyBuffers(buffers: ArrayBufferView[]) {\n let buffer: ArrayBufferView;\n let size: number, padding: number;\n for (let i = -1, n = buffers.length; ++i < n;) {\n if ((buffer = buffers[i]) && (size = buffer.byteLength) > 0) {\n this._write(buffer);\n if ((padding = ((size + 7) & ~7) - size) > 0) {\n this._writePadding(padding);\n }\n }\n }\n return this;\n }\n\n protected _writeDictionaries(batch: RecordBatch) {\n for (let [id, dictionary] of batch.dictionaries) {\n let offset = this._dictionaryDeltaOffsets.get(id) || 0;\n if (offset === 0 || (dictionary = dictionary.slice(offset)).length > 0) {\n const chunks = 'chunks' in dictionary ? (dictionary as any).chunks : [dictionary];\n for (const chunk of chunks) {\n this._writeDictionaryBatch(chunk, id, offset > 0);\n offset += chunk.length;\n }\n }\n }\n return this;\n }\n}\n\n/** @ignore */\nexport class RecordBatchStreamWriter extends RecordBatchWriter {\n public static writeAll(input: Table | Iterable>, options?: RecordBatchStreamWriterOptions): RecordBatchStreamWriter;\n public static writeAll(input: AsyncIterable>, options?: RecordBatchStreamWriterOptions): Promise>;\n public static writeAll(input: PromiseLike>>, options?: RecordBatchStreamWriterOptions): Promise>;\n public static writeAll(input: PromiseLike | Iterable>>, options?: RecordBatchStreamWriterOptions): Promise>;\n /** @nocollapse */\n public static writeAll(input: any, options?: RecordBatchStreamWriterOptions) {\n const writer = new RecordBatchStreamWriter(options);\n if (isPromise(input)) {\n return input.then((x) => writer.writeAll(x));\n } else if (isAsyncIterable>(input)) {\n return writeAllAsync(writer, input);\n }\n return writeAll(writer, input);\n }\n}\n\n/** @ignore */\nexport class RecordBatchFileWriter extends RecordBatchWriter {\n public static writeAll(input: Table | Iterable>): RecordBatchFileWriter;\n public static writeAll(input: AsyncIterable>): Promise>;\n public static writeAll(input: PromiseLike>>): Promise>;\n public static writeAll(input: PromiseLike | Iterable>>): Promise>;\n /** @nocollapse */\n public static writeAll(input: any) {\n const writer = new RecordBatchFileWriter();\n if (isPromise(input)) {\n return input.then((x) => writer.writeAll(x));\n } else if (isAsyncIterable>(input)) {\n return writeAllAsync(writer, input);\n }\n return writeAll(writer, input);\n }\n\n constructor() {\n super();\n this._autoDestroy = true;\n }\n\n // @ts-ignore\n protected _writeSchema(schema: Schema) {\n return this._writeMagic()._writePadding(2);\n }\n\n protected _writeFooter(schema: Schema) {\n const buffer = Footer.encode(new Footer(\n schema, MetadataVersion.V4,\n this._recordBatchBlocks, this._dictionaryBlocks\n ));\n return super\n ._writeFooter(schema) // EOS bytes for sequential readers\n ._write(buffer) // Write the flatbuffer\n ._write(Int32Array.of(buffer.byteLength)) // then the footer size suffix\n ._writeMagic(); // then the magic suffix\n }\n}\n\n/** @ignore */\nexport class RecordBatchJSONWriter extends RecordBatchWriter {\n\n public static writeAll(this: typeof RecordBatchWriter, input: Table | Iterable>): RecordBatchJSONWriter;\n // @ts-ignore\n public static writeAll(this: typeof RecordBatchWriter, input: AsyncIterable>): Promise>;\n public static writeAll(this: typeof RecordBatchWriter, input: PromiseLike>>): Promise>;\n public static writeAll(this: typeof RecordBatchWriter, input: PromiseLike | Iterable>>): Promise>;\n /** @nocollapse */\n public static writeAll(this: typeof RecordBatchWriter, input: any) {\n return new RecordBatchJSONWriter().writeAll(input as any);\n }\n\n private _recordBatches: RecordBatch[];\n private _dictionaries: RecordBatch[];\n\n constructor() {\n super();\n this._autoDestroy = true;\n this._recordBatches = [];\n this._dictionaries = [];\n }\n\n protected _writeMessage() { return this; }\n // @ts-ignore\n protected _writeFooter(schema: Schema) { return this; }\n protected _writeSchema(schema: Schema) {\n return this._write(`{\\n \"schema\": ${\n JSON.stringify({ fields: schema.fields.map(fieldToJSON) }, null, 2)\n }`);\n }\n protected _writeDictionaries(batch: RecordBatch) {\n if (batch.dictionaries.size > 0) {\n this._dictionaries.push(batch);\n }\n return this;\n }\n protected _writeDictionaryBatch(dictionary: Vector, id: number, isDelta = false) {\n this._dictionaryDeltaOffsets.set(id, dictionary.length + (this._dictionaryDeltaOffsets.get(id) || 0));\n this._write(this._dictionaryBlocks.length === 0 ? ` ` : `,\\n `);\n this._write(`${dictionaryBatchToJSON(dictionary, id, isDelta)}`);\n this._dictionaryBlocks.push(new FileBlock(0, 0, 0));\n return this;\n }\n protected _writeRecordBatch(batch: RecordBatch) {\n this._writeDictionaries(batch);\n this._recordBatches.push(batch);\n return this;\n }\n public close() {\n\n if (this._dictionaries.length > 0) {\n this._write(`,\\n \"dictionaries\": [\\n`);\n for (const batch of this._dictionaries) {\n super._writeDictionaries(batch);\n }\n this._write(`\\n ]`);\n }\n\n if (this._recordBatches.length > 0) {\n for (let i = -1, n = this._recordBatches.length; ++i < n;) {\n this._write(i === 0 ? `,\\n \"batches\": [\\n ` : `,\\n `);\n this._write(`${recordBatchToJSON(this._recordBatches[i])}`);\n this._recordBatchBlocks.push(new FileBlock(0, 0, 0));\n }\n this._write(`\\n ]`);\n }\n\n if (this._schema) {\n this._write(`\\n}`);\n }\n\n this._dictionaries = [];\n this._recordBatches = [];\n\n return super.close();\n }\n}\n\n/** @ignore */\nfunction writeAll(writer: RecordBatchWriter, input: Table | Iterable>) {\n let chunks = input as Iterable>;\n if (input instanceof Table) {\n chunks = input.chunks;\n writer.reset(undefined, input.schema);\n }\n for (const batch of chunks) {\n writer.write(batch);\n }\n return writer.finish();\n}\n\n/** @ignore */\nasync function writeAllAsync(writer: RecordBatchWriter, batches: AsyncIterable>) {\n for await (const batch of batches) {\n writer.write(batch);\n }\n return writer.finish();\n}\n\n/** @ignore */\nfunction fieldToJSON({ name, type, nullable }: Field): object {\n const assembler = new JSONTypeAssembler();\n return {\n 'name': name, 'nullable': nullable,\n 'type': assembler.visit(type),\n 'children': (type.children || []).map(fieldToJSON),\n 'dictionary': !DataType.isDictionary(type) ? undefined : {\n 'id': type.id,\n 'isOrdered': type.isOrdered,\n 'indexType': assembler.visit(type.indices)\n }\n };\n}\n\n/** @ignore */\nfunction dictionaryBatchToJSON(dictionary: Vector, id: number, isDelta = false) {\n const field = new Field(`${id}`, dictionary.type, dictionary.nullCount > 0);\n const columns = JSONVectorAssembler.assemble(new Column(field, [dictionary]));\n return JSON.stringify({\n 'id': id,\n 'isDelta': isDelta,\n 'data': {\n 'count': dictionary.length,\n 'columns': columns\n }\n }, null, 2);\n}\n\n/** @ignore */\nfunction recordBatchToJSON(records: RecordBatch) {\n return JSON.stringify({\n 'count': records.length,\n 'columns': JSONVectorAssembler.assemble(records)\n }, null, 2);\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Column } from '../column';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Data, Buffers } from '../data';\nimport { Schema, Field } from '../schema';\nimport { Chunked } from '../vector/chunked';\nimport { RecordBatch } from '../recordbatch';\n\nconst noopBuf = new Uint8Array(0);\nconst nullBufs = (bitmapLength: number) => [\n noopBuf, noopBuf, new Uint8Array(bitmapLength), noopBuf\n] as Buffers;\n\n/** @ignore */\nexport function ensureSameLengthData(\n schema: Schema,\n chunks: Data[],\n batchLength = chunks.reduce((l, c) => Math.max(l, c.length), 0)\n) {\n let data: Data;\n let field: Field;\n let i = -1, n = chunks.length;\n const fields = [...schema.fields];\n const batchData = [] as Data[];\n const bitmapLength = ((batchLength + 63) & ~63) >> 3;\n while (++i < n) {\n if ((data = chunks[i]) && data.length === batchLength) {\n batchData[i] = data;\n } else {\n (field = fields[i]).nullable || (fields[i] = fields[i].clone({ nullable: true }) as Field);\n batchData[i] = data ? data._changeLengthAndBackfillNullBitmap(batchLength)\n : Data.new(field.type, 0, batchLength, batchLength, nullBufs(bitmapLength)) as Data;\n }\n }\n return [new Schema(fields), batchLength, batchData] as [Schema, number, Data[]];\n}\n\n/** @ignore */\nexport function distributeColumnsIntoRecordBatches(columns: Column[]): [Schema, RecordBatch[]] {\n return distributeVectorsIntoRecordBatches(new Schema(columns.map(({ field }) => field)), columns);\n}\n\n/** @ignore */\nexport function distributeVectorsIntoRecordBatches(schema: Schema, vecs: (Vector | Chunked)[]): [Schema, RecordBatch[]] {\n return uniformlyDistributeChunksAcrossRecordBatches(schema, vecs.map((v) => v instanceof Chunked ? v.chunks.map((c) => c.data) : [v.data]));\n}\n\n/** @ignore */\nfunction uniformlyDistributeChunksAcrossRecordBatches(schema: Schema, columns: Data[][]): [Schema, RecordBatch[]] {\n\n const fields = [...schema.fields];\n const batchArgs = [] as [number, Data[]][];\n const memo = { numBatches: columns.reduce((n, c) => Math.max(n, c.length), 0) };\n\n let numBatches = 0, batchLength = 0;\n let i: number = -1, numColumns = columns.length;\n let child: Data, childData: Data[] = [];\n\n while (memo.numBatches-- > 0) {\n\n for (batchLength = Number.POSITIVE_INFINITY, i = -1; ++i < numColumns;) {\n childData[i] = child = columns[i].shift()!;\n batchLength = Math.min(batchLength, child ? child.length : batchLength);\n }\n\n if (isFinite(batchLength)) {\n childData = distributeChildData(fields, batchLength, childData, columns, memo);\n if (batchLength > 0) {\n batchArgs[numBatches++] = [batchLength, childData.slice()];\n }\n }\n }\n return [\n schema = new Schema(fields, schema.metadata),\n batchArgs.map((xs) => new RecordBatch(schema, ...xs))\n ];\n}\n\n/** @ignore */\nfunction distributeChildData(fields: Field[], batchLength: number, childData: Data[], columns: Data[][], memo: { numBatches: number }) {\n let data: Data;\n let field: Field;\n let length = 0, i = -1, n = columns.length;\n const bitmapLength = ((batchLength + 63) & ~63) >> 3;\n while (++i < n) {\n if ((data = childData[i]) && ((length = data.length) >= batchLength)) {\n if (length === batchLength) {\n childData[i] = data;\n } else {\n childData[i] = data.slice(0, batchLength);\n data = data.slice(batchLength, length - batchLength);\n memo.numBatches = Math.max(memo.numBatches, columns[i].unshift(data));\n }\n } else {\n (field = fields[i]).nullable || (fields[i] = field.clone({ nullable: true }) as Field);\n childData[i] = data ? data._changeLengthAndBackfillNullBitmap(batchLength)\n : Data.new(field.type, 0, batchLength, batchLength, nullBufs(bitmapLength)) as Data;\n }\n }\n return childData;\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { DataType } from '../type';\nimport { Chunked } from './chunked';\nimport { clampRange } from '../util/vector';\nimport { VectorType as V } from '../interfaces';\nimport { AbstractVector, Vector, Clonable, Sliceable, Applicative } from '../vector';\n\n/** @ignore */\nexport interface BaseVector extends Clonable>, Sliceable>, Applicative> {\n slice(begin?: number, end?: number): V;\n concat(...others: Vector[]): Chunked;\n clone(data: Data, children?: Vector[]): V;\n}\n\n/** @ignore */\nexport abstract class BaseVector extends AbstractVector\n implements Clonable>, Sliceable>, Applicative> {\n\n protected _children?: Vector[];\n\n constructor(data: Data, children?: Vector[]) {\n super();\n this._children = children;\n this.numChildren = data.childData.length;\n this._bindDataAccessors(this.data = data);\n }\n\n public readonly data: Data;\n public readonly numChildren: number;\n\n public get type() { return this.data.type; }\n public get typeId() { return this.data.typeId; }\n public get length() { return this.data.length; }\n public get offset() { return this.data.offset; }\n public get stride() { return this.data.stride; }\n public get nullCount() { return this.data.nullCount; }\n public get byteLength() { return this.data.byteLength; }\n public get VectorName() { return `${Type[this.typeId]}Vector`; }\n\n public get ArrayType(): T['ArrayType'] { return this.type.ArrayType; }\n\n public get values() { return this.data.values; }\n public get typeIds() { return this.data.typeIds; }\n public get nullBitmap() { return this.data.nullBitmap; }\n public get valueOffsets() { return this.data.valueOffsets; }\n\n public get [Symbol.toStringTag]() { return `${this.VectorName}<${this.type[Symbol.toStringTag]}>`; }\n\n public clone(data: Data, children = this._children) {\n return Vector.new(data, children) as any;\n }\n\n public concat(...others: Vector[]) {\n return Chunked.concat(this, ...others);\n }\n\n public slice(begin?: number, end?: number) {\n // Adjust args similar to Array.prototype.slice. Normalize begin/end to\n // clamp between 0 and length, and wrap around on negative indices, e.g.\n // slice(-1, 5) or slice(5, -1)\n return clampRange(this, begin, end, this._sliceInternal);\n }\n\n public isValid(index: number): boolean {\n if (this.nullCount > 0) {\n const idx = this.offset + index;\n const val = this.nullBitmap[idx >> 3];\n const mask = (val & (1 << (idx % 8)));\n return mask !== 0;\n }\n return true;\n }\n\n public getChildAt(index: number): Vector | null {\n return index < 0 || index >= this.numChildren ? null : (\n (this._children || (this._children = []))[index] ||\n (this._children[index] = Vector.new(this.data.childData[index] as Data))\n ) as Vector;\n }\n\n public toJSON(): any { return [...this]; }\n\n protected _sliceInternal(self: this, begin: number, end: number) {\n return self.clone(self.data.slice(begin, end - begin), null!);\n }\n\n // @ts-ignore\n protected _bindDataAccessors(data: Data) {\n // Implementation in src/vectors/index.ts due to circular dependency/packaging shenanigans\n }\n}\n\n(BaseVector.prototype as any)[Symbol.isConcatSpreadable] = true;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { BaseVector } from './base';\nimport { Binary, Utf8 } from '../type';\n\n/** @ignore */\nexport class BinaryVector extends BaseVector {\n public asUtf8() {\n return Vector.new(this.data.clone(new Utf8()));\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Bool } from '../type';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\n\n/** @ignore */\nexport class BoolVector extends BaseVector {\n public static from(input: Iterable): BoolVector;\n public static from(input: AsyncIterable): Promise;\n public static from(input: VectorBuilderOptions): Chunked;\n public static from(input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(input: Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync) {\n return vectorFromValuesWithType(() => new Bool(), input);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DateUnit } from '../enum';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorType as V } from '../interfaces';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { Date_, DateDay, DateMillisecond } from '../type';\n\n/** @ignore */\ntype FromArgs = [Iterable, T['unit']];\n\n/** @ignore */\nexport class DateVector extends BaseVector {\n public static from(...args: FromArgs): V;\n public static from(...args: FromArgs): V;\n public static from(input: Iterable): V;\n public static from(input: AsyncIterable): Promise>;\n public static from(input: VectorBuilderOptions): Chunked;\n public static from(input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(...args: FromArgs | [Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync]) {\n if (args.length === 2) {\n return vectorFromValuesWithType(() => args[1] === DateUnit.DAY ? new DateDay() : new DateMillisecond() as T, args[0]);\n }\n return vectorFromValuesWithType(() => new DateMillisecond() as T, args[0]);\n }\n}\n\n/** @ignore */\nexport class DateDayVector extends DateVector {}\n\n/** @ignore */\nexport class DateMillisecondVector extends DateVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Decimal } from '../type';\nimport { BaseVector } from './base';\n\n/** @ignore */\nexport class DecimalVector extends BaseVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { BaseVector } from './base';\nimport { VectorType as V } from '../interfaces';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { DataType, Dictionary, TKeys } from '../type';\n\n/** @ignore */\ntype FromArgs = [Vector, TKey, ArrayLike | TKey['TArray']];\n\n/** @ignore */\nexport class DictionaryVector extends BaseVector> {\n public static from(...args: FromArgs): V>;\n public static from(input: VectorBuilderOptions>): Vector>;\n public static from(input: VectorBuilderOptionsAsync>): Promise>>;\n /** @nocollapse */\n public static from(...args: any[]) {\n if (args.length === 3) {\n const [values, indices, keys] = args as FromArgs;\n const type = new Dictionary(values.type, indices, null, null);\n return Vector.new(Data.Dictionary(type, 0, keys.length, 0, null, keys, values));\n }\n return vectorFromValuesWithType(() => args[0].type, args[0]);\n }\n\n constructor(data: Data>) {\n super(data);\n this.indices = Vector.new(data.clone(this.type.indices));\n }\n\n public readonly indices: V;\n\n public get dictionary() { return > this.data.dictionary; }\n public reverseLookup(value: T) { return this.dictionary.indexOf(value); }\n public getKey(idx: number): TKey['TValue'] | null { return this.indices.get(idx); }\n public getValue(key: number): T['TValue'] | null { return this.dictionary.get(key); }\n public setKey(idx: number, key: TKey['TValue'] | null) { return this.indices.set(idx, key); }\n public setValue(key: number, value: T['TValue'] | null) { return this.dictionary.set(key, value); }\n}\n\n(DictionaryVector.prototype as any).indices = null;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { FixedSizeBinary } from '../type';\n\n/** @ignore */\nexport class FixedSizeBinaryVector extends BaseVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { DataType, FixedSizeList } from '../type';\n\n/** @ignore */\nexport class FixedSizeListVector extends BaseVector> {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { Float, Float16, Float32, Float64, FloatArray } from '../type';\nimport { VectorType as V, TypedArrayConstructor } from '../interfaces';\n\n/** @ignore */\ntype FloatVectorConstructors =\n typeof FloatVector |\n typeof Float16Vector |\n typeof Float32Vector |\n typeof Float64Vector ;\n\n/** @ignore */\ntype FromInput =\n FloatArray |\n Iterable |\n AsyncIterable |\n VectorBuilderOptions |\n VectorBuilderOptionsAsync ;\n\n/** @ignore */\ntype FloatArrayCtor = TypedArrayConstructor;\n\n/** @ignore */\nexport class FloatVector extends BaseVector {\n\n // Guaranteed zero-copy variants\n public static from(this: typeof FloatVector, input: Uint16Array): Float16Vector;\n public static from(this: typeof FloatVector, input: Float32Array): Float32Vector;\n public static from(this: typeof FloatVector, input: Float64Array): Float64Vector;\n\n // Zero-copy if input is a TypedArray of the same type as the\n // Vector that from is called on, otherwise uses the Builders\n public static from(this: typeof Float16Vector, input: FromInput): Float16Vector;\n public static from(this: typeof Float32Vector, input: FromInput): Float32Vector;\n public static from(this: typeof Float64Vector, input: FromInput): Float64Vector;\n\n // Not zero-copy\n public static from(this: typeof FloatVector, input: Iterable): V;\n public static from(this: typeof FloatVector, input: AsyncIterable): Promise>;\n public static from(this: typeof FloatVector, input: VectorBuilderOptions): Chunked;\n public static from(this: typeof FloatVector, input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(this: FloatVectorConstructors, input: FromInput) {\n\n let ArrowType = vectorTypeToDataType(this);\n\n if ((input instanceof ArrayBuffer) || ArrayBuffer.isView(input)) {\n let InputType = arrayTypeToDataType(input.constructor as FloatArrayCtor) || ArrowType;\n // Special case, infer the Arrow DataType from the input if calling the base\n // FloatVector.from with a TypedArray, e.g. `FloatVector.from(new Float32Array())`\n if (ArrowType === null) {\n ArrowType = InputType;\n }\n // If the DataType inferred from the Vector constructor matches the\n // DataType inferred from the input arguments, return zero-copy view\n if (ArrowType && ArrowType === InputType) {\n let type = new ArrowType();\n let length = input.byteLength / type.ArrayType.BYTES_PER_ELEMENT;\n // If the ArrowType is Float16 but the input type isn't a Uint16Array,\n // let the Float16Builder handle casting the input values to Uint16s.\n if (!convertTo16Bit(ArrowType, input.constructor)) {\n return Vector.new(Data.Float(type, 0, length, 0, null, input as FloatArray));\n }\n }\n }\n\n if (ArrowType) {\n // If the DataType inferred from the Vector constructor is different than\n // the DataType inferred from the input TypedArray, or if input isn't a\n // TypedArray, use the Builders to construct the result Vector\n return vectorFromValuesWithType(() => new ArrowType!() as T, input);\n }\n\n if ((input instanceof DataView) || (input instanceof ArrayBuffer)) {\n throw new TypeError(`Cannot infer float type from instance of ${input.constructor.name}`);\n }\n\n throw new TypeError('Unrecognized FloatVector input');\n }\n}\n\n/** @ignore */\nexport class Float16Vector extends FloatVector {\n // Since JS doesn't have half floats, `toArray()` returns a zero-copy slice\n // of the underlying Uint16Array data. This behavior ensures we don't incur\n // extra compute or copies if you're calling `toArray()` in order to create\n // a buffer for something like WebGL. Buf if you're using JS and want typed\n // arrays of 4-to-8-byte precision, these methods will enumerate the values\n // and clamp to the desired byte lengths.\n public toFloat32Array() { return new Float32Array(this as Iterable); }\n public toFloat64Array() { return new Float64Array(this as Iterable); }\n}\n\n/** @ignore */\nexport class Float32Vector extends FloatVector {}\n/** @ignore */\nexport class Float64Vector extends FloatVector {}\n\nconst convertTo16Bit = (typeCtor: any, dataCtor: any) => {\n return (typeCtor === Float16) && (dataCtor !== Uint16Array);\n};\n\n/** @ignore */\nconst arrayTypeToDataType = (ctor: FloatArrayCtor) => {\n switch (ctor) {\n case Uint16Array: return Float16;\n case Float32Array: return Float32;\n case Float64Array: return Float64;\n default: return null;\n }\n};\n\n/** @ignore */\nconst vectorTypeToDataType = (ctor: FloatVectorConstructors) => {\n switch (ctor) {\n case Float16Vector: return Float16;\n case Float32Vector: return Float32;\n case Float64Vector: return Float64;\n default: return null;\n }\n};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { Interval, IntervalDayTime, IntervalYearMonth } from '../type';\n\n/** @ignore */\nexport class IntervalVector extends BaseVector {}\n/** @ignore */\nexport class IntervalDayTimeVector extends IntervalVector {}\n/** @ignore */\nexport class IntervalYearMonthVector extends IntervalVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { BigInt64Array, BigUint64Array } from '../util/compat';\nimport { toBigInt64Array, toBigUint64Array } from '../util/buffer';\nimport { Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64, IntArray } from '../type';\nimport { VectorType as V, TypedArrayConstructor, BigIntArrayConstructor, BigIntArray } from '../interfaces';\n\n/** @ignore */\ntype IntVectorConstructors =\n typeof IntVector |\n typeof Int8Vector |\n typeof Int16Vector |\n typeof Int32Vector |\n typeof Uint8Vector |\n typeof Uint16Vector |\n typeof Uint32Vector |\n typeof Int64Vector |\n typeof Uint64Vector ;\n\n/** @ignore */\ntype FromInput =\n IntArray | BigIntArray |\n Iterable |\n AsyncIterable |\n VectorBuilderOptions |\n VectorBuilderOptionsAsync ;\n\n/** @ignore */\ntype FromArgs = [FromInput, boolean?];\n\n/** @ignore */\ntype IntArrayCtor = TypedArrayConstructor | BigIntArrayConstructor;\n\n/** @ignore */\nexport class IntVector extends BaseVector {\n\n // Guaranteed zero-copy variants\n public static from(this: typeof IntVector, input: Int8Array): Int8Vector;\n public static from(this: typeof IntVector, input: Int16Array): Int16Vector;\n public static from(this: typeof IntVector, input: Int32Array): Int32Vector;\n public static from(this: typeof IntVector, input: BigInt64Array): Int64Vector;\n public static from(this: typeof IntVector, input: Int32Array, is64bit: true): Int64Vector;\n public static from(this: typeof IntVector, input: Uint8Array): Uint8Vector;\n public static from(this: typeof IntVector, input: Uint16Array): Uint16Vector;\n public static from(this: typeof IntVector, input: Uint32Array): Uint32Vector;\n public static from(this: typeof IntVector, input: BigUint64Array): Uint64Vector;\n public static from(this: typeof IntVector, input: Uint32Array, is64bit: true): Uint64Vector;\n\n // Zero-copy if input is a TypedArray of the same type as the\n // Vector that from is called on, otherwise uses the Builders\n public static from(this: typeof Int8Vector, input: FromInput): Int8Vector;\n public static from(this: typeof Int16Vector, input: FromInput): Int16Vector;\n public static from(this: typeof Int32Vector, input: FromInput): Int32Vector;\n public static from(this: typeof Int64Vector, input: FromInput): Int64Vector;\n public static from(this: typeof Uint8Vector, input: FromInput): Uint8Vector;\n public static from(this: typeof Uint16Vector, input: FromInput): Uint16Vector;\n public static from(this: typeof Uint32Vector, input: FromInput): Uint32Vector;\n public static from(this: typeof Uint64Vector, input: FromInput): Uint64Vector;\n\n // Not zero-copy\n public static from(this: typeof IntVector, input: Iterable): V;\n public static from(this: typeof IntVector, input: AsyncIterable): Promise>;\n public static from(this: typeof IntVector, input: VectorBuilderOptions): Chunked;\n public static from(this: typeof IntVector, input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(this: IntVectorConstructors, ...args: FromArgs) {\n\n let [input, is64bit = false] = args;\n let ArrowType = vectorTypeToDataType(this, is64bit);\n\n if ((input instanceof ArrayBuffer) || ArrayBuffer.isView(input)) {\n let InputType = arrayTypeToDataType(input.constructor as IntArrayCtor, is64bit) || ArrowType;\n // Special case, infer the Arrow DataType from the input if calling the base\n // IntVector.from with a TypedArray, e.g. `IntVector.from(new Int32Array())`\n if (ArrowType === null) {\n ArrowType = InputType;\n }\n // If the DataType inferred from the Vector constructor matches the\n // DataType inferred from the input arguments, return zero-copy view\n if (ArrowType && ArrowType === InputType) {\n let type = new ArrowType();\n let length = input.byteLength / type.ArrayType.BYTES_PER_ELEMENT;\n // If the ArrowType is 64bit but the input type is 32bit pairs, update the logical length\n if (convert32To64Bit(ArrowType, input.constructor)) {\n length *= 0.5;\n }\n return Vector.new(Data.Int(type, 0, length, 0, null, input as IntArray));\n }\n }\n\n if (ArrowType) {\n // If the DataType inferred from the Vector constructor is different than\n // the DataType inferred from the input TypedArray, or if input isn't a\n // TypedArray, use the Builders to construct the result Vector\n return vectorFromValuesWithType(() => new ArrowType!() as T, input);\n }\n\n if ((input instanceof DataView) || (input instanceof ArrayBuffer)) {\n throw new TypeError(`Cannot infer integer type from instance of ${input.constructor.name}`);\n }\n\n throw new TypeError('Unrecognized IntVector input');\n }\n}\n\n/** @ignore */\nexport class Int8Vector extends IntVector {}\n/** @ignore */\nexport class Int16Vector extends IntVector {}\n/** @ignore */\nexport class Int32Vector extends IntVector {}\n/** @ignore */\nexport class Int64Vector extends IntVector {\n public toBigInt64Array() {\n return toBigInt64Array(this.values);\n }\n // @ts-ignore\n private _values64: BigInt64Array;\n public get values64(): BigInt64Array {\n return this._values64 || (this._values64 = this.toBigInt64Array());\n }\n}\n\n/** @ignore */\nexport class Uint8Vector extends IntVector {}\n/** @ignore */\nexport class Uint16Vector extends IntVector {}\n/** @ignore */\nexport class Uint32Vector extends IntVector {}\n/** @ignore */\nexport class Uint64Vector extends IntVector {\n public toBigUint64Array() {\n return toBigUint64Array(this.values);\n }\n // @ts-ignore\n private _values64: BigUint64Array;\n public get values64(): BigUint64Array {\n return this._values64 || (this._values64 = this.toBigUint64Array());\n }\n}\n\nconst convert32To64Bit = (typeCtor: any, dataCtor: any) => {\n return (typeCtor === Int64 || typeCtor === Uint64) &&\n (dataCtor === Int32Array || dataCtor === Uint32Array);\n};\n\n/** @ignore */\nconst arrayTypeToDataType = (ctor: IntArrayCtor, is64bit: boolean) => {\n switch (ctor) {\n case Int8Array: return Int8;\n case Int16Array: return Int16;\n case Int32Array: return is64bit ? Int64 : Int32;\n case BigInt64Array: return Int64;\n case Uint8Array: return Uint8;\n case Uint16Array: return Uint16;\n case Uint32Array: return is64bit ? Uint64 : Uint32;\n case BigUint64Array: return Uint64;\n default: return null;\n }\n};\n\n/** @ignore */\nconst vectorTypeToDataType = (ctor: IntVectorConstructors, is64bit: boolean) => {\n switch (ctor) {\n case Int8Vector: return Int8;\n case Int16Vector: return Int16;\n case Int32Vector: return is64bit ? Int64 : Int32;\n case Int64Vector: return Int64;\n case Uint8Vector: return Uint8;\n case Uint16Vector: return Uint16;\n case Uint32Vector: return is64bit ? Uint64 : Uint32;\n case Uint64Vector: return Uint64;\n default: return null;\n }\n};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { DataType, List } from '../type';\n\n/** @ignore */\nexport class ListVector extends BaseVector> {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { MapRow } from './row';\nimport { Field } from '../schema';\nimport { Vector } from '../vector';\nimport { BaseVector } from './base';\nimport { DataType, Map_, Struct, List } from '../type';\n\n/** @ignore */\nexport class MapVector extends BaseVector> {\n public asList() {\n const child = this.type.children[0] as Field>;\n return Vector.new(this.data.clone(new List>(child)));\n }\n public bind(index: number): Map_['TValue'] {\n const child = this.getChildAt>(0);\n const { [index]: begin, [index + 1]: end } = this.valueOffsets;\n return new MapRow(child!.slice(begin, end));\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Null } from '../type';\nimport { BaseVector } from './base';\n\n/** @ignore */\nexport class NullVector extends BaseVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { StructRow } from './row';\nimport { BaseVector } from './base';\nimport { DataType, Struct } from '../type';\n\n/** @ignore */ const kRowIndex = Symbol.for('rowIndex');\n/** @ignore */\nexport class StructVector extends BaseVector> {\n // @ts-ignore\n private _row: StructRow;\n public bind(index: number): Struct['TValue'] {\n const proto = this._row || (this._row = new StructRow(this));\n const bound = Object.create(proto);\n bound[kRowIndex] = index;\n return bound;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond } from '../type';\n\n/** @ignore */\nexport class TimestampVector extends BaseVector {}\n/** @ignore */\nexport class TimestampSecondVector extends TimestampVector {}\n/** @ignore */\nexport class TimestampMillisecondVector extends TimestampVector {}\n/** @ignore */\nexport class TimestampMicrosecondVector extends TimestampVector {}\n/** @ignore */\nexport class TimestampNanosecondVector extends TimestampVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond } from '../type';\n\n/** @ignore */\nexport class TimeVector extends BaseVector {}\n/** @ignore */\nexport class TimeSecondVector extends TimeVector {}\n/** @ignore */\nexport class TimeMillisecondVector extends TimeVector {}\n/** @ignore */\nexport class TimeMicrosecondVector extends TimeVector {}\n/** @ignore */\nexport class TimeNanosecondVector extends TimeVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { BaseVector } from './base';\nimport { Union, DenseUnion, SparseUnion} from '../type';\n\n/** @ignore */\nexport class UnionVector extends BaseVector {\n public get typeIdToChildIndex() { return this.data.type.typeIdToChildIndex; }\n}\n\n/** @ignore */\nexport class DenseUnionVector extends UnionVector {\n public get valueOffsets() { return this.data.valueOffsets!; }\n}\n\n/** @ignore */\nexport class SparseUnionVector extends UnionVector {}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { Binary, Utf8 } from '../type';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\n\n/** @ignore */\nexport class Utf8Vector extends BaseVector {\n public static from(input: Iterable): Utf8Vector;\n public static from(input: AsyncIterable): Promise;\n public static from(input: VectorBuilderOptions): Chunked;\n public static from(input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(input: Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync) {\n return vectorFromValuesWithType(() => new Utf8(), input);\n }\n public asBinary() {\n return Vector.new(this.data.clone(new Binary()));\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/** @ignore */\nexport function partial0(visit: (node: T) => any) {\n return function(this: T) { return visit(this); };\n}\n\n/** @ignore */\nexport function partial1(visit: (node: T, a: any) => any) {\n return function(this: T, a: any) { return visit(this, a); };\n}\n\n/** @ignore */\nexport function partial2(visit: (node: T, a: any, b: any) => any) {\n return function(this: T, a: any, b: any) { return visit(this, a, b); };\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { BN } from '../util/bn';\nimport { Visitor } from '../visitor';\nimport { decodeUtf8 } from '../util/utf8';\nimport { VectorType } from '../interfaces';\nimport { uint16ToFloat64 } from '../util/math';\nimport { Type, UnionMode, Precision, DateUnit, TimeUnit, IntervalUnit } from '../enum';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface GetVisitor extends Visitor {\n visit (node: T, index: number): T['TValue'];\n visitMany (nodes: T[], indices: number[]): T['TValue'][];\n getVisitFn (node: T): (vector: VectorType, index: number) => VectorType['TValue'];\n getVisitFn(node: VectorType | Data | T): (vector: VectorType, index: number) => VectorType['TValue'];\n visitNull (vector: VectorType, index: number): T['TValue'];\n visitBool (vector: VectorType, index: number): T['TValue'];\n visitInt (vector: VectorType, index: number): T['TValue'];\n visitInt8 (vector: VectorType, index: number): T['TValue'];\n visitInt16 (vector: VectorType, index: number): T['TValue'];\n visitInt32 (vector: VectorType, index: number): T['TValue'];\n visitInt64 (vector: VectorType, index: number): T['TValue'];\n visitUint8 (vector: VectorType, index: number): T['TValue'];\n visitUint16 (vector: VectorType, index: number): T['TValue'];\n visitUint32 (vector: VectorType, index: number): T['TValue'];\n visitUint64 (vector: VectorType, index: number): T['TValue'];\n visitFloat (vector: VectorType, index: number): T['TValue'];\n visitFloat16 (vector: VectorType, index: number): T['TValue'];\n visitFloat32 (vector: VectorType, index: number): T['TValue'];\n visitFloat64 (vector: VectorType, index: number): T['TValue'];\n visitUtf8 (vector: VectorType, index: number): T['TValue'];\n visitBinary (vector: VectorType, index: number): T['TValue'];\n visitFixedSizeBinary (vector: VectorType, index: number): T['TValue'];\n visitDate (vector: VectorType, index: number): T['TValue'];\n visitDateDay (vector: VectorType, index: number): T['TValue'];\n visitDateMillisecond (vector: VectorType, index: number): T['TValue'];\n visitTimestamp (vector: VectorType, index: number): T['TValue'];\n visitTimestampSecond (vector: VectorType, index: number): T['TValue'];\n visitTimestampMillisecond (vector: VectorType, index: number): T['TValue'];\n visitTimestampMicrosecond (vector: VectorType, index: number): T['TValue'];\n visitTimestampNanosecond (vector: VectorType, index: number): T['TValue'];\n visitTime (vector: VectorType, index: number): T['TValue'];\n visitTimeSecond (vector: VectorType, index: number): T['TValue'];\n visitTimeMillisecond (vector: VectorType, index: number): T['TValue'];\n visitTimeMicrosecond (vector: VectorType, index: number): T['TValue'];\n visitTimeNanosecond (vector: VectorType, index: number): T['TValue'];\n visitDecimal (vector: VectorType, index: number): T['TValue'];\n visitList (vector: VectorType, index: number): T['TValue'];\n visitStruct (vector: VectorType, index: number): T['TValue'];\n visitUnion (vector: VectorType, index: number): T['TValue'];\n visitDenseUnion (vector: VectorType, index: number): T['TValue'];\n visitSparseUnion (vector: VectorType, index: number): T['TValue'];\n visitDictionary (vector: VectorType, index: number): T['TValue'];\n visitInterval (vector: VectorType, index: number): T['TValue'];\n visitIntervalDayTime (vector: VectorType, index: number): T['TValue'];\n visitIntervalYearMonth (vector: VectorType, index: number): T['TValue'];\n visitFixedSizeList (vector: VectorType, index: number): T['TValue'];\n visitMap (vector: VectorType, index: number): T['TValue'];\n}\n\n/** @ignore */\nexport class GetVisitor extends Visitor {}\n\n/** @ignore */const epochDaysToMs = (data: Int32Array, index: number) => 86400000 * data[index];\n/** @ignore */const epochMillisecondsLongToMs = (data: Int32Array, index: number) => 4294967296 * (data[index + 1]) + (data[index] >>> 0);\n/** @ignore */const epochMicrosecondsLongToMs = (data: Int32Array, index: number) => 4294967296 * (data[index + 1] / 1000) + ((data[index] >>> 0) / 1000);\n/** @ignore */const epochNanosecondsLongToMs = (data: Int32Array, index: number) => 4294967296 * (data[index + 1] / 1000000) + ((data[index] >>> 0) / 1000000);\n\n/** @ignore */const epochMillisecondsToDate = (epochMs: number) => new Date(epochMs);\n/** @ignore */const epochDaysToDate = (data: Int32Array, index: number) => epochMillisecondsToDate(epochDaysToMs(data, index));\n/** @ignore */const epochMillisecondsLongToDate = (data: Int32Array, index: number) => epochMillisecondsToDate(epochMillisecondsLongToMs(data, index));\n\n/** @ignore */\nconst getNull = (_vector: VectorType, _index: number): T['TValue'] => null;\n/** @ignore */\nconst getVariableWidthBytes = (values: Uint8Array, valueOffsets: Int32Array, index: number) => {\n const { [index]: x, [index + 1]: y } = valueOffsets;\n return x != null && y != null ? values.subarray(x, y) : null as any;\n};\n\n/** @ignore */\nconst getBool = ({ offset, values }: VectorType, index: number): T['TValue'] => {\n const idx = offset + index;\n const byte = values[idx >> 3];\n return (byte & 1 << (idx % 8)) !== 0;\n};\n\n/** @ignore */\ntype Numeric1X = Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32 | Float32 | Float64;\n/** @ignore */\ntype Numeric2X = Int64 | Uint64;\n\n/** @ignore */\nconst getDateDay = ({ values }: VectorType, index: number): T['TValue'] => epochDaysToDate(values, index);\n/** @ignore */\nconst getDateMillisecond = ({ values }: VectorType, index: number): T['TValue'] => epochMillisecondsLongToDate(values, index * 2);\n/** @ignore */\nconst getNumeric = ({ stride, values }: VectorType, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getFloat16 = ({ stride, values }: VectorType, index: number): T['TValue'] => uint16ToFloat64(values[stride * index]);\n/** @ignore */\nconst getBigInts = ({ stride, values, type }: VectorType, index: number): T['TValue'] => BN.new(values.subarray(stride * index, stride * (index + 1)), type.isSigned);\n/** @ignore */\nconst getFixedSizeBinary = ({ stride, values }: VectorType, index: number): T['TValue'] => values.subarray(stride * index, stride * (index + 1));\n\n/** @ignore */\nconst getBinary = ({ values, valueOffsets }: VectorType, index: number): T['TValue'] => getVariableWidthBytes(values, valueOffsets, index);\n/** @ignore */\nconst getUtf8 = ({ values, valueOffsets }: VectorType, index: number): T['TValue'] => {\n const bytes = getVariableWidthBytes(values, valueOffsets, index);\n return bytes !== null ? decodeUtf8(bytes) : null as any;\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst getInt = (vector: VectorType, index: number): T['TValue'] => (\n vector.type.bitWidth < 64\n ? getNumeric(vector as VectorType, index)\n : getBigInts(vector as VectorType, index)\n);\n\n/* istanbul ignore next */\n/** @ignore */\nconst getFloat = (vector: VectorType, index: number): T['TValue'] => (\n vector.type.precision !== Precision.HALF\n ? getNumeric(vector as VectorType, index)\n : getFloat16(vector as VectorType, index)\n);\n\n/* istanbul ignore next */\n/** @ignore */\nconst getDate = (vector: VectorType, index: number): T['TValue'] => (\n vector.type.unit === DateUnit.DAY\n ? getDateDay(vector as VectorType, index)\n : getDateMillisecond(vector as VectorType, index)\n);\n\n/** @ignore */\nconst getTimestampSecond = ({ values }: VectorType, index: number): T['TValue'] => 1000 * epochMillisecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampMillisecond = ({ values }: VectorType, index: number): T['TValue'] => epochMillisecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampMicrosecond = ({ values }: VectorType, index: number): T['TValue'] => epochMicrosecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampNanosecond = ({ values }: VectorType, index: number): T['TValue'] => epochNanosecondsLongToMs(values, index * 2);\n/* istanbul ignore next */\n/** @ignore */\nconst getTimestamp = (vector: VectorType, index: number): T['TValue'] => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return getTimestampSecond(vector as VectorType, index);\n case TimeUnit.MILLISECOND: return getTimestampMillisecond(vector as VectorType, index);\n case TimeUnit.MICROSECOND: return getTimestampMicrosecond(vector as VectorType, index);\n case TimeUnit.NANOSECOND: return getTimestampNanosecond(vector as VectorType, index);\n }\n};\n\n/** @ignore */\nconst getTimeSecond = ({ values, stride }: VectorType, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getTimeMillisecond = ({ values, stride }: VectorType, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getTimeMicrosecond = ({ values }: VectorType, index: number): T['TValue'] => BN.signed(values.subarray(2 * index, 2 * (index + 1)));\n/** @ignore */\nconst getTimeNanosecond = ({ values }: VectorType, index: number): T['TValue'] => BN.signed(values.subarray(2 * index, 2 * (index + 1)));\n/* istanbul ignore next */\n/** @ignore */\nconst getTime = (vector: VectorType, index: number): T['TValue'] => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return getTimeSecond(vector as VectorType, index);\n case TimeUnit.MILLISECOND: return getTimeMillisecond(vector as VectorType, index);\n case TimeUnit.MICROSECOND: return getTimeMicrosecond(vector as VectorType, index);\n case TimeUnit.NANOSECOND: return getTimeNanosecond(vector as VectorType, index);\n }\n};\n\n/** @ignore */\nconst getDecimal = ({ values }: VectorType, index: number): T['TValue'] => BN.decimal(values.subarray(4 * index, 4 * (index + 1)));\n\n/** @ignore */\nconst getList = (vector: VectorType, index: number): T['TValue'] => {\n const child = vector.getChildAt(0)!, { valueOffsets, stride } = vector;\n return child.slice(valueOffsets[index * stride], valueOffsets[(index * stride) + 1]) as T['TValue'];\n};\n\n/** @ignore */\nconst getMap = (vector: VectorType, index: number): T['TValue'] => {\n return vector.bind(index) as T['TValue'];\n};\n\n/** @ignore */\nconst getStruct = (vector: VectorType, index: number): T['TValue'] => {\n return vector.bind(index) as T['TValue'];\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst getUnion = <\n V extends VectorType | VectorType | VectorType\n>(vector: V, index: number): V['TValue'] => {\n return vector.type.mode === UnionMode.Dense ?\n getDenseUnion(vector as VectorType, index) :\n getSparseUnion(vector as VectorType, index);\n};\n\n/** @ignore */\nconst getDenseUnion = (vector: VectorType, index: number): T['TValue'] => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n return child ? child.get(vector.valueOffsets[index]) : null;\n};\n\n/** @ignore */\nconst getSparseUnion = (vector: VectorType, index: number): T['TValue'] => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n return child ? child.get(index) : null;\n};\n\n/** @ignore */\nconst getDictionary = (vector: VectorType, index: number): T['TValue'] => {\n return vector.getValue(vector.getKey(index)!);\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst getInterval = (vector: VectorType, index: number): T['TValue'] =>\n (vector.type.unit === IntervalUnit.DAY_TIME)\n ? getIntervalDayTime(vector as VectorType, index)\n : getIntervalYearMonth(vector as VectorType, index);\n\n/** @ignore */\nconst getIntervalDayTime = ({ values }: VectorType, index: number): T['TValue'] => values.subarray(2 * index, 2 * (index + 1));\n\n/** @ignore */\nconst getIntervalYearMonth = ({ values }: VectorType, index: number): T['TValue'] => {\n const interval = values[index];\n const int32s = new Int32Array(2);\n int32s[0] = interval / 12 | 0; /* years */\n int32s[1] = interval % 12 | 0; /* months */\n return int32s;\n};\n\n/** @ignore */\nconst getFixedSizeList = (vector: VectorType, index: number): T['TValue'] => {\n const child = vector.getChildAt(0)!, { stride } = vector;\n return child.slice(index * stride, (index + 1) * stride) as T['TValue'];\n};\n\nGetVisitor.prototype.visitNull = getNull;\nGetVisitor.prototype.visitBool = getBool;\nGetVisitor.prototype.visitInt = getInt;\nGetVisitor.prototype.visitInt8 = getNumeric;\nGetVisitor.prototype.visitInt16 = getNumeric;\nGetVisitor.prototype.visitInt32 = getNumeric;\nGetVisitor.prototype.visitInt64 = getBigInts;\nGetVisitor.prototype.visitUint8 = getNumeric;\nGetVisitor.prototype.visitUint16 = getNumeric;\nGetVisitor.prototype.visitUint32 = getNumeric;\nGetVisitor.prototype.visitUint64 = getBigInts;\nGetVisitor.prototype.visitFloat = getFloat;\nGetVisitor.prototype.visitFloat16 = getFloat16;\nGetVisitor.prototype.visitFloat32 = getNumeric;\nGetVisitor.prototype.visitFloat64 = getNumeric;\nGetVisitor.prototype.visitUtf8 = getUtf8;\nGetVisitor.prototype.visitBinary = getBinary;\nGetVisitor.prototype.visitFixedSizeBinary = getFixedSizeBinary;\nGetVisitor.prototype.visitDate = getDate;\nGetVisitor.prototype.visitDateDay = getDateDay;\nGetVisitor.prototype.visitDateMillisecond = getDateMillisecond;\nGetVisitor.prototype.visitTimestamp = getTimestamp;\nGetVisitor.prototype.visitTimestampSecond = getTimestampSecond;\nGetVisitor.prototype.visitTimestampMillisecond = getTimestampMillisecond;\nGetVisitor.prototype.visitTimestampMicrosecond = getTimestampMicrosecond;\nGetVisitor.prototype.visitTimestampNanosecond = getTimestampNanosecond;\nGetVisitor.prototype.visitTime = getTime;\nGetVisitor.prototype.visitTimeSecond = getTimeSecond;\nGetVisitor.prototype.visitTimeMillisecond = getTimeMillisecond;\nGetVisitor.prototype.visitTimeMicrosecond = getTimeMicrosecond;\nGetVisitor.prototype.visitTimeNanosecond = getTimeNanosecond;\nGetVisitor.prototype.visitDecimal = getDecimal;\nGetVisitor.prototype.visitList = getList;\nGetVisitor.prototype.visitStruct = getStruct;\nGetVisitor.prototype.visitUnion = getUnion;\nGetVisitor.prototype.visitDenseUnion = getDenseUnion;\nGetVisitor.prototype.visitSparseUnion = getSparseUnion;\nGetVisitor.prototype.visitDictionary = getDictionary;\nGetVisitor.prototype.visitInterval = getInterval;\nGetVisitor.prototype.visitIntervalDayTime = getIntervalDayTime;\nGetVisitor.prototype.visitIntervalYearMonth = getIntervalYearMonth;\nGetVisitor.prototype.visitFixedSizeList = getFixedSizeList;\nGetVisitor.prototype.visitMap = getMap;\n\n/** @ignore */\nexport const instance = new GetVisitor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { getBool, iterateBits } from '../util/bit';\nimport { createElementComparator } from '../util/vector';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface IndexOfVisitor extends Visitor {\n visit (node: T, value: T['TValue'] | null, index?: number): number;\n visitMany (nodes: T[], values: (T['TValue'] | null)[], indices: (number | undefined)[]): number[];\n getVisitFn (node: T): (vector: VectorType, value: VectorType['TValue'] | null, index?: number) => number;\n getVisitFn(node: VectorType | Data | T): (vector: VectorType, value: T['TValue'] | null, index?: number) => number;\n visitNull (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitBool (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt8 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt16 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt32 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt64 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint8 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint16 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint32 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint64 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat16 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat32 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat64 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUtf8 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitBinary (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFixedSizeBinary (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDate (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDateDay (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDateMillisecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestamp (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampSecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampMillisecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampMicrosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampNanosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTime (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeSecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeMillisecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeMicrosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeNanosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDecimal (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitList (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitStruct (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUnion (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDenseUnion (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitSparseUnion (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDictionary (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInterval (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitIntervalDayTime (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitIntervalYearMonth (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFixedSizeList (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitMap (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n}\n\n/** @ignore */\nexport class IndexOfVisitor extends Visitor {}\n\n/** @ignore */\nfunction nullIndexOf(vector: VectorType, searchElement?: null) {\n // if you're looking for nulls and the vector isn't empty, we've got 'em!\n return searchElement === null && vector.length > 0 ? 0 : -1;\n}\n\n/** @ignore */\nfunction indexOfNull(vector: VectorType, fromIndex?: number): number {\n const { nullBitmap } = vector;\n if (!nullBitmap || vector.nullCount <= 0) {\n return -1;\n }\n let i = 0;\n for (const isValid of iterateBits(nullBitmap, vector.data.offset + (fromIndex || 0), vector.length, nullBitmap, getBool)) {\n if (!isValid) { return i; }\n ++i;\n }\n return -1;\n}\n\n/** @ignore */\nfunction indexOfValue(vector: VectorType, searchElement?: T['TValue'] | null, fromIndex?: number): number {\n if (searchElement === undefined) { return -1; }\n if (searchElement === null) { return indexOfNull(vector, fromIndex); }\n const compare = createElementComparator(searchElement);\n for (let i = (fromIndex || 0) - 1, n = vector.length; ++i < n;) {\n if (compare(vector.get(i))) {\n return i;\n }\n }\n return -1;\n}\n\n/** @ignore */\nfunction indexOfUnion(vector: VectorType, searchElement?: T['TValue'] | null, fromIndex?: number): number {\n // Unions are special -- they do have a nullBitmap, but so can their children.\n // If the searchElement is null, we don't know whether it came from the Union's\n // bitmap or one of its childrens'. So we don't interrogate the Union's bitmap,\n // since that will report the wrong index if a child has a null before the Union.\n const compare = createElementComparator(searchElement);\n for (let i = (fromIndex || 0) - 1, n = vector.length; ++i < n;) {\n if (compare(vector.get(i))) {\n return i;\n }\n }\n return -1;\n}\n\nIndexOfVisitor.prototype.visitNull = nullIndexOf;\nIndexOfVisitor.prototype.visitBool = indexOfValue;\nIndexOfVisitor.prototype.visitInt = indexOfValue;\nIndexOfVisitor.prototype.visitInt8 = indexOfValue;\nIndexOfVisitor.prototype.visitInt16 = indexOfValue;\nIndexOfVisitor.prototype.visitInt32 = indexOfValue;\nIndexOfVisitor.prototype.visitInt64 = indexOfValue;\nIndexOfVisitor.prototype.visitUint8 = indexOfValue;\nIndexOfVisitor.prototype.visitUint16 = indexOfValue;\nIndexOfVisitor.prototype.visitUint32 = indexOfValue;\nIndexOfVisitor.prototype.visitUint64 = indexOfValue;\nIndexOfVisitor.prototype.visitFloat = indexOfValue;\nIndexOfVisitor.prototype.visitFloat16 = indexOfValue;\nIndexOfVisitor.prototype.visitFloat32 = indexOfValue;\nIndexOfVisitor.prototype.visitFloat64 = indexOfValue;\nIndexOfVisitor.prototype.visitUtf8 = indexOfValue;\nIndexOfVisitor.prototype.visitBinary = indexOfValue;\nIndexOfVisitor.prototype.visitFixedSizeBinary = indexOfValue;\nIndexOfVisitor.prototype.visitDate = indexOfValue;\nIndexOfVisitor.prototype.visitDateDay = indexOfValue;\nIndexOfVisitor.prototype.visitDateMillisecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestamp = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampSecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampMillisecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampMicrosecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampNanosecond = indexOfValue;\nIndexOfVisitor.prototype.visitTime = indexOfValue;\nIndexOfVisitor.prototype.visitTimeSecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimeMillisecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimeMicrosecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimeNanosecond = indexOfValue;\nIndexOfVisitor.prototype.visitDecimal = indexOfValue;\nIndexOfVisitor.prototype.visitList = indexOfValue;\nIndexOfVisitor.prototype.visitStruct = indexOfValue;\nIndexOfVisitor.prototype.visitUnion = indexOfValue;\nIndexOfVisitor.prototype.visitDenseUnion = indexOfUnion;\nIndexOfVisitor.prototype.visitSparseUnion = indexOfUnion;\nIndexOfVisitor.prototype.visitDictionary = indexOfValue;\nIndexOfVisitor.prototype.visitInterval = indexOfValue;\nIndexOfVisitor.prototype.visitIntervalDayTime = indexOfValue;\nIndexOfVisitor.prototype.visitIntervalYearMonth = indexOfValue;\nIndexOfVisitor.prototype.visitFixedSizeList = indexOfValue;\nIndexOfVisitor.prototype.visitMap = indexOfValue;\n\n/** @ignore */\nexport const instance = new IndexOfVisitor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { iterateBits } from '../util/bit';\nimport { instance as getVisitor } from './get';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface IteratorVisitor extends Visitor {\n visit(node: T): IterableIterator;\n visitMany (nodes: T[]): IterableIterator[];\n getVisitFn(node: T): (vector: VectorType) => IterableIterator['TValue'] | null>;\n getVisitFn(node: VectorType | Data | T): (vector: VectorType) => IterableIterator['TValue'] | null>;\n visitNull (vector: VectorType): IterableIterator;\n visitBool (vector: VectorType): IterableIterator;\n visitInt (vector: VectorType): IterableIterator;\n visitInt8 (vector: VectorType): IterableIterator;\n visitInt16 (vector: VectorType): IterableIterator;\n visitInt32 (vector: VectorType): IterableIterator;\n visitInt64 (vector: VectorType): IterableIterator;\n visitUint8 (vector: VectorType): IterableIterator;\n visitUint16 (vector: VectorType): IterableIterator;\n visitUint32 (vector: VectorType): IterableIterator;\n visitUint64 (vector: VectorType): IterableIterator;\n visitFloat (vector: VectorType): IterableIterator;\n visitFloat16 (vector: VectorType): IterableIterator;\n visitFloat32 (vector: VectorType): IterableIterator;\n visitFloat64 (vector: VectorType): IterableIterator;\n visitUtf8 (vector: VectorType): IterableIterator;\n visitBinary (vector: VectorType): IterableIterator;\n visitFixedSizeBinary (vector: VectorType): IterableIterator;\n visitDate (vector: VectorType): IterableIterator;\n visitDateDay (vector: VectorType): IterableIterator;\n visitDateMillisecond (vector: VectorType): IterableIterator;\n visitTimestamp (vector: VectorType): IterableIterator;\n visitTimestampSecond (vector: VectorType): IterableIterator;\n visitTimestampMillisecond (vector: VectorType): IterableIterator;\n visitTimestampMicrosecond (vector: VectorType): IterableIterator;\n visitTimestampNanosecond (vector: VectorType): IterableIterator;\n visitTime (vector: VectorType): IterableIterator;\n visitTimeSecond (vector: VectorType): IterableIterator;\n visitTimeMillisecond (vector: VectorType): IterableIterator;\n visitTimeMicrosecond (vector: VectorType): IterableIterator;\n visitTimeNanosecond (vector: VectorType): IterableIterator;\n visitDecimal (vector: VectorType): IterableIterator;\n visitList (vector: VectorType): IterableIterator;\n visitStruct (vector: VectorType): IterableIterator;\n visitUnion (vector: VectorType): IterableIterator;\n visitDenseUnion (vector: VectorType): IterableIterator;\n visitSparseUnion (vector: VectorType): IterableIterator;\n visitDictionary (vector: VectorType): IterableIterator;\n visitInterval (vector: VectorType): IterableIterator;\n visitIntervalDayTime (vector: VectorType): IterableIterator;\n visitIntervalYearMonth (vector: VectorType): IterableIterator;\n visitFixedSizeList (vector: VectorType): IterableIterator;\n visitMap (vector: VectorType): IterableIterator;\n}\n\n/** @ignore */\nexport class IteratorVisitor extends Visitor {}\n\n/** @ignore */\nfunction nullableIterator(vector: VectorType): IterableIterator {\n const getFn = getVisitor.getVisitFn(vector);\n return iterateBits(\n vector.nullBitmap, vector.offset, vector.length, vector,\n (vec: VectorType, idx: number, nullByte: number, nullBit: number) =>\n ((nullByte & 1 << nullBit) !== 0) ? getFn(vec, idx) : null\n );\n}\n\n/** @ignore */\nfunction vectorIterator(vector: VectorType): IterableIterator {\n\n // If nullable, iterate manually\n if (vector.nullCount > 0) {\n return nullableIterator(vector);\n }\n\n const { type, typeId, length } = vector;\n\n // Fast case, defer to native iterators if possible\n if (vector.stride === 1 && (\n (typeId === Type.Timestamp) ||\n (typeId === Type.Int && (type as Int).bitWidth !== 64) ||\n (typeId === Type.Time && (type as Time).bitWidth !== 64) ||\n (typeId === Type.Float && (type as Float).precision > 0 /* Precision.HALF */)\n )) {\n return vector.values.subarray(0, length)[Symbol.iterator]();\n }\n\n // Otherwise, iterate manually\n return (function* (getFn) {\n for (let index = -1; ++index < length;) {\n yield getFn(vector, index);\n }\n })(getVisitor.getVisitFn(vector));\n}\n\nIteratorVisitor.prototype.visitNull = vectorIterator;\nIteratorVisitor.prototype.visitBool = vectorIterator;\nIteratorVisitor.prototype.visitInt = vectorIterator;\nIteratorVisitor.prototype.visitInt8 = vectorIterator;\nIteratorVisitor.prototype.visitInt16 = vectorIterator;\nIteratorVisitor.prototype.visitInt32 = vectorIterator;\nIteratorVisitor.prototype.visitInt64 = vectorIterator;\nIteratorVisitor.prototype.visitUint8 = vectorIterator;\nIteratorVisitor.prototype.visitUint16 = vectorIterator;\nIteratorVisitor.prototype.visitUint32 = vectorIterator;\nIteratorVisitor.prototype.visitUint64 = vectorIterator;\nIteratorVisitor.prototype.visitFloat = vectorIterator;\nIteratorVisitor.prototype.visitFloat16 = vectorIterator;\nIteratorVisitor.prototype.visitFloat32 = vectorIterator;\nIteratorVisitor.prototype.visitFloat64 = vectorIterator;\nIteratorVisitor.prototype.visitUtf8 = vectorIterator;\nIteratorVisitor.prototype.visitBinary = vectorIterator;\nIteratorVisitor.prototype.visitFixedSizeBinary = vectorIterator;\nIteratorVisitor.prototype.visitDate = vectorIterator;\nIteratorVisitor.prototype.visitDateDay = vectorIterator;\nIteratorVisitor.prototype.visitDateMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestamp = vectorIterator;\nIteratorVisitor.prototype.visitTimestampSecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampMicrosecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampNanosecond = vectorIterator;\nIteratorVisitor.prototype.visitTime = vectorIterator;\nIteratorVisitor.prototype.visitTimeSecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeMicrosecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeNanosecond = vectorIterator;\nIteratorVisitor.prototype.visitDecimal = vectorIterator;\nIteratorVisitor.prototype.visitList = vectorIterator;\nIteratorVisitor.prototype.visitStruct = vectorIterator;\nIteratorVisitor.prototype.visitUnion = vectorIterator;\nIteratorVisitor.prototype.visitDenseUnion = vectorIterator;\nIteratorVisitor.prototype.visitSparseUnion = vectorIterator;\nIteratorVisitor.prototype.visitDictionary = vectorIterator;\nIteratorVisitor.prototype.visitInterval = vectorIterator;\nIteratorVisitor.prototype.visitIntervalDayTime = vectorIterator;\nIteratorVisitor.prototype.visitIntervalYearMonth = vectorIterator;\nIteratorVisitor.prototype.visitFixedSizeList = vectorIterator;\nIteratorVisitor.prototype.visitMap = vectorIterator;\n\n/** @ignore */\nexport const instance = new IteratorVisitor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { instance as iteratorVisitor } from './iterator';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface ToArrayVisitor extends Visitor {\n visit(node: T): T['TArray'];\n visitMany(nodes: T[]): T['TArray'][];\n getVisitFn(node: T): (vector: VectorType) => VectorType['TArray'];\n getVisitFn(node: VectorType | Data | T): (vector: VectorType) => VectorType['TArray'];\n visitNull (vector: VectorType): VectorType['TArray'];\n visitBool (vector: VectorType): VectorType['TArray'];\n visitInt (vector: VectorType): VectorType['TArray'];\n visitInt8 (vector: VectorType): VectorType['TArray'];\n visitInt16 (vector: VectorType): VectorType['TArray'];\n visitInt32 (vector: VectorType): VectorType['TArray'];\n visitInt64 (vector: VectorType): VectorType['TArray'];\n visitUint8 (vector: VectorType): VectorType['TArray'];\n visitUint16 (vector: VectorType): VectorType['TArray'];\n visitUint32 (vector: VectorType): VectorType['TArray'];\n visitUint64 (vector: VectorType): VectorType['TArray'];\n visitFloat (vector: VectorType): VectorType['TArray'];\n visitFloat16 (vector: VectorType): VectorType['TArray'];\n visitFloat32 (vector: VectorType): VectorType['TArray'];\n visitFloat64 (vector: VectorType): VectorType['TArray'];\n visitUtf8 (vector: VectorType): VectorType['TArray'];\n visitBinary (vector: VectorType): VectorType['TArray'];\n visitFixedSizeBinary (vector: VectorType): VectorType['TArray'];\n visitDate (vector: VectorType): VectorType['TArray'];\n visitDateDay (vector: VectorType): VectorType['TArray'];\n visitDateMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimestamp (vector: VectorType): VectorType['TArray'];\n visitTimestampSecond (vector: VectorType): VectorType['TArray'];\n visitTimestampMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimestampMicrosecond (vector: VectorType): VectorType['TArray'];\n visitTimestampNanosecond (vector: VectorType): VectorType['TArray'];\n visitTime (vector: VectorType): VectorType['TArray'];\n visitTimeSecond (vector: VectorType): VectorType['TArray'];\n visitTimeMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimeMicrosecond (vector: VectorType): VectorType['TArray'];\n visitTimeNanosecond (vector: VectorType): VectorType['TArray'];\n visitDecimal (vector: VectorType): VectorType['TArray'];\n visitList > (vector: VectorType): VectorType['TArray'];\n visitStruct (vector: VectorType): VectorType['TArray'];\n visitUnion (vector: VectorType): VectorType['TArray'];\n visitDenseUnion (vector: VectorType): VectorType['TArray'];\n visitSparseUnion (vector: VectorType): VectorType['TArray'];\n visitDictionary > (vector: VectorType): VectorType['TArray'];\n visitInterval (vector: VectorType): VectorType['TArray'];\n visitIntervalDayTime (vector: VectorType): VectorType['TArray'];\n visitIntervalYearMonth (vector: VectorType): VectorType['TArray'];\n visitFixedSizeList > (vector: VectorType): VectorType['TArray'];\n visitMap (vector: VectorType): VectorType['TArray'];\n}\n\n/** @ignore */\nexport class ToArrayVisitor extends Visitor {}\n\n/** @ignore */\nfunction arrayOfVector(vector: VectorType): T['TArray'] {\n\n const { type, length, stride } = vector;\n\n // Fast case, return subarray if possible\n switch (type.typeId) {\n case Type.Int:\n case Type.Float: case Type.Decimal:\n case Type.Time: case Type.Timestamp:\n return vector.values.subarray(0, length * stride);\n }\n\n // Otherwise if not primitive, slow copy\n return [...iteratorVisitor.visit(vector)] as T['TArray'];\n}\n\nToArrayVisitor.prototype.visitNull = arrayOfVector;\nToArrayVisitor.prototype.visitBool = arrayOfVector;\nToArrayVisitor.prototype.visitInt = arrayOfVector;\nToArrayVisitor.prototype.visitInt8 = arrayOfVector;\nToArrayVisitor.prototype.visitInt16 = arrayOfVector;\nToArrayVisitor.prototype.visitInt32 = arrayOfVector;\nToArrayVisitor.prototype.visitInt64 = arrayOfVector;\nToArrayVisitor.prototype.visitUint8 = arrayOfVector;\nToArrayVisitor.prototype.visitUint16 = arrayOfVector;\nToArrayVisitor.prototype.visitUint32 = arrayOfVector;\nToArrayVisitor.prototype.visitUint64 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat = arrayOfVector;\nToArrayVisitor.prototype.visitFloat16 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat32 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat64 = arrayOfVector;\nToArrayVisitor.prototype.visitUtf8 = arrayOfVector;\nToArrayVisitor.prototype.visitBinary = arrayOfVector;\nToArrayVisitor.prototype.visitFixedSizeBinary = arrayOfVector;\nToArrayVisitor.prototype.visitDate = arrayOfVector;\nToArrayVisitor.prototype.visitDateDay = arrayOfVector;\nToArrayVisitor.prototype.visitDateMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestamp = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampSecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampMicrosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampNanosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTime = arrayOfVector;\nToArrayVisitor.prototype.visitTimeSecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeMicrosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeNanosecond = arrayOfVector;\nToArrayVisitor.prototype.visitDecimal = arrayOfVector;\nToArrayVisitor.prototype.visitList = arrayOfVector;\nToArrayVisitor.prototype.visitStruct = arrayOfVector;\nToArrayVisitor.prototype.visitUnion = arrayOfVector;\nToArrayVisitor.prototype.visitDenseUnion = arrayOfVector;\nToArrayVisitor.prototype.visitSparseUnion = arrayOfVector;\nToArrayVisitor.prototype.visitDictionary = arrayOfVector;\nToArrayVisitor.prototype.visitInterval = arrayOfVector;\nToArrayVisitor.prototype.visitIntervalDayTime = arrayOfVector;\nToArrayVisitor.prototype.visitIntervalYearMonth = arrayOfVector;\nToArrayVisitor.prototype.visitFixedSizeList = arrayOfVector;\nToArrayVisitor.prototype.visitMap = arrayOfVector;\n\n/** @ignore */\nexport const instance = new ToArrayVisitor();\n","/* istanbul ignore file */\n\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { Type, TimeUnit } from '../enum';\nimport { Schema, Field } from '../schema';\nimport {\n DataType, Dictionary,\n Float, Int, Date_, Interval, Time, Timestamp,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary,\n List, FixedSizeList, Map_, Struct, Union,\n} from '../type';\n\n/** @ignore */ const sum = (x: number, y: number) => x + y;\n/** @ignore */ const variableWidthColumnErrorMessage = (type: DataType) => `Cannot compute the byte width of variable-width column ${type}`;\n\n/** @ignore */\nexport interface ByteWidthVisitor extends Visitor {\n visit(node: T): number;\n visitMany(nodes: T[]): number[];\n getVisitFn (node: T): (type: DataType) => number;\n getVisitFn(node: VectorType | Data | T): (type: T) => number;\n}\n\n/** @ignore */\nexport class ByteWidthVisitor extends Visitor {\n public visitNull (____: Null ) { return 0; }\n public visitInt (type: Int ) { return type.bitWidth / 8; }\n public visitFloat (type: Float ) { return type.ArrayType.BYTES_PER_ELEMENT; }\n public visitBinary (type: Binary ) { throw new Error(variableWidthColumnErrorMessage(type)); }\n public visitUtf8 (type: Utf8 ) { throw new Error(variableWidthColumnErrorMessage(type)); }\n public visitBool (____: Bool ) { return 1 / 8; }\n public visitDecimal (____: Decimal ) { return 16; }\n public visitDate (type: Date_ ) { return (type.unit + 1) * 4; }\n public visitTime (type: Time ) { return type.bitWidth / 8; }\n public visitTimestamp (type: Timestamp ) { return type.unit === TimeUnit.SECOND ? 4 : 8; }\n public visitInterval (type: Interval ) { return (type.unit + 1) * 4; }\n public visitList (type: List ) { throw new Error(variableWidthColumnErrorMessage(type)); }\n public visitStruct (type: Struct ) { return this.visitFields(type.children).reduce(sum, 0); }\n public visitUnion (type: Union ) { return this.visitFields(type.children).reduce(sum, 0); }\n public visitFixedSizeBinary (type: FixedSizeBinary ) { return type.byteWidth; }\n public visitFixedSizeList (type: FixedSizeList ) { return type.listSize * this.visitFields(type.children).reduce(sum, 0); }\n public visitMap (type: Map_ ) { return this.visitFields(type.children).reduce(sum, 0); }\n public visitDictionary (type: Dictionary ) { return this.visit(type.indices); }\n public visitFields (fields: Field[] ) { return (fields || []).map((field) => this.visit(field.type)); }\n public visitSchema (schema: Schema ) { return this.visitFields(schema.fields).reduce(sum, 0); }\n}\n\n/** @ignore */\nexport const instance = new ByteWidthVisitor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { DataType } from '../type';\nimport { Visitor } from '../visitor';\nimport { VectorType, VectorCtor } from '../interfaces';\n\nimport { BinaryVector } from '../vector/binary';\nimport { BoolVector } from '../vector/bool';\nimport { DateVector, DateDayVector, DateMillisecondVector } from '../vector/date';\nimport { DecimalVector } from '../vector/decimal';\nimport { DictionaryVector } from '../vector/dictionary';\nimport { FixedSizeBinaryVector } from '../vector/fixedsizebinary';\nimport { FixedSizeListVector } from '../vector/fixedsizelist';\nimport { FloatVector, Float16Vector, Float32Vector, Float64Vector } from '../vector/float';\nimport { IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector } from '../vector/interval';\nimport { IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector } from '../vector/int';\nimport { ListVector } from '../vector/list';\nimport { MapVector } from '../vector/map';\nimport { NullVector } from '../vector/null';\nimport { StructVector } from '../vector/struct';\nimport { TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector } from '../vector/timestamp';\nimport { TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector } from '../vector/time';\nimport { UnionVector, DenseUnionVector, SparseUnionVector } from '../vector/union';\nimport { Utf8Vector } from '../vector/utf8';\n\n/** @ignore */\nexport interface GetVectorConstructor extends Visitor {\n visit(node: T): VectorCtor;\n visitMany (nodes: T[]): VectorCtor[];\n getVisitFn(node: T): () => VectorCtor;\n getVisitFn(node: VectorType | Data | T): () => VectorCtor;\n}\n\n/** @ignore */\nexport class GetVectorConstructor extends Visitor {\n public visitNull () { return NullVector; }\n public visitBool () { return BoolVector; }\n public visitInt () { return IntVector; }\n public visitInt8 () { return Int8Vector; }\n public visitInt16 () { return Int16Vector; }\n public visitInt32 () { return Int32Vector; }\n public visitInt64 () { return Int64Vector; }\n public visitUint8 () { return Uint8Vector; }\n public visitUint16 () { return Uint16Vector; }\n public visitUint32 () { return Uint32Vector; }\n public visitUint64 () { return Uint64Vector; }\n public visitFloat () { return FloatVector; }\n public visitFloat16 () { return Float16Vector; }\n public visitFloat32 () { return Float32Vector; }\n public visitFloat64 () { return Float64Vector; }\n public visitUtf8 () { return Utf8Vector; }\n public visitBinary () { return BinaryVector; }\n public visitFixedSizeBinary () { return FixedSizeBinaryVector; }\n public visitDate () { return DateVector; }\n public visitDateDay () { return DateDayVector; }\n public visitDateMillisecond () { return DateMillisecondVector; }\n public visitTimestamp () { return TimestampVector; }\n public visitTimestampSecond () { return TimestampSecondVector; }\n public visitTimestampMillisecond () { return TimestampMillisecondVector; }\n public visitTimestampMicrosecond () { return TimestampMicrosecondVector; }\n public visitTimestampNanosecond () { return TimestampNanosecondVector; }\n public visitTime () { return TimeVector; }\n public visitTimeSecond () { return TimeSecondVector; }\n public visitTimeMillisecond () { return TimeMillisecondVector; }\n public visitTimeMicrosecond () { return TimeMicrosecondVector; }\n public visitTimeNanosecond () { return TimeNanosecondVector; }\n public visitDecimal () { return DecimalVector; }\n public visitList () { return ListVector; }\n public visitStruct () { return StructVector; }\n public visitUnion () { return UnionVector; }\n public visitDenseUnion () { return DenseUnionVector; }\n public visitSparseUnion () { return SparseUnionVector; }\n public visitDictionary () { return DictionaryVector; }\n public visitInterval () { return IntervalVector; }\n public visitIntervalDayTime () { return IntervalDayTimeVector; }\n public visitIntervalYearMonth () { return IntervalYearMonthVector; }\n public visitFixedSizeList () { return FixedSizeListVector; }\n public visitMap () { return MapVector; }\n}\n\n/** @ignore */\nexport const instance = new GetVectorConstructor();\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nexport { Vector } from '../vector';\nexport { BaseVector } from './base';\nexport { BinaryVector } from './binary';\nexport { BoolVector } from './bool';\nexport { Chunked } from './chunked';\nexport { DateVector, DateDayVector, DateMillisecondVector } from './date';\nexport { DecimalVector } from './decimal';\nexport { DictionaryVector } from './dictionary';\nexport { FixedSizeBinaryVector } from './fixedsizebinary';\nexport { FixedSizeListVector } from './fixedsizelist';\nexport { FloatVector, Float16Vector, Float32Vector, Float64Vector } from './float';\nexport { IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector } from './interval';\nexport { IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector } from './int';\nexport { ListVector } from './list';\nexport { MapVector } from './map';\nexport { NullVector } from './null';\nexport { StructVector } from './struct';\nexport { TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector } from './timestamp';\nexport { TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector } from './time';\nexport { UnionVector, DenseUnionVector, SparseUnionVector } from './union';\nexport { Utf8Vector } from './utf8';\nexport { MapRow, StructRow } from './row';\n\nimport * as fn from '../util/fn';\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { setBool } from '../util/bit';\nimport { isIterable, isAsyncIterable } from '../util/compat';\nimport { Builder, IterableBuilderOptions } from '../builder';\nimport { VectorType as V, VectorCtorArgs } from '../interfaces';\nimport { instance as getVisitor } from '../visitor/get';\nimport { instance as setVisitor } from '../visitor/set';\nimport { instance as indexOfVisitor } from '../visitor/indexof';\nimport { instance as toArrayVisitor } from '../visitor/toarray';\nimport { instance as iteratorVisitor } from '../visitor/iterator';\nimport { instance as byteWidthVisitor } from '../visitor/bytewidth';\nimport { instance as getVectorConstructor } from '../visitor/vectorctor';\n\ndeclare module '../vector' {\n namespace Vector {\n export { newVector as new };\n export { vectorFrom as from };\n }\n}\n\ndeclare module './base' {\n namespace BaseVector {\n export { vectorFrom as from };\n }\n interface BaseVector {\n get(index: number): T['TValue'] | null;\n set(index: number, value: T['TValue'] | null): void;\n indexOf(value: T['TValue'] | null, fromIndex?: number): number;\n toArray(): T['TArray'];\n getByteWidth(): number;\n [Symbol.iterator](): IterableIterator;\n }\n}\n\n/** @nocollapse */\nVector.new = newVector;\n\n/** @nocollapse */\nVector.from = vectorFrom;\n\n/** @ignore */\nfunction newVector(data: Data, ...args: VectorCtorArgs>): V {\n return new (getVectorConstructor.getVisitFn(data)())(data, ...args) as V;\n}\n\n/** @ignore */\nexport interface VectorBuilderOptions extends IterableBuilderOptions { values: Iterable; }\n/** @ignore */\nexport interface VectorBuilderOptionsAsync extends IterableBuilderOptions { values: AsyncIterable; }\n\n/** @ignore */\nexport function vectorFromValuesWithType(newDataType: () => T, input: Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync) {\n if (isIterable(input)) {\n return Vector.from({ 'nullValues': [null, undefined], type: newDataType(), 'values': input }) as V;\n } else if (isAsyncIterable(input)) {\n return Vector.from({ 'nullValues': [null, undefined], type: newDataType(), 'values': input }) as Promise>;\n }\n const {\n 'values': values = [],\n 'type': type = newDataType(),\n 'nullValues': nullValues = [null, undefined],\n } = { ...input };\n return isIterable(values)\n ? Vector.from({ nullValues, ...input, type } as VectorBuilderOptions)\n : Vector.from({ nullValues, ...input, type } as VectorBuilderOptionsAsync);\n}\n\n/** @ignore */\nfunction vectorFrom(input: VectorBuilderOptions): Vector;\nfunction vectorFrom(input: VectorBuilderOptionsAsync): Promise>;\nfunction vectorFrom(input: VectorBuilderOptions | VectorBuilderOptionsAsync) {\n const { 'values': values = [], ...options } = { 'nullValues': [null, undefined], ...input } as VectorBuilderOptions | VectorBuilderOptionsAsync;\n if (isIterable(values)) {\n const chunks = [...Builder.throughIterable(options)(values)];\n return chunks.length === 1 ? chunks[0] : Chunked.concat(chunks);\n }\n return (async (chunks: V[]) => {\n const transform = Builder.throughAsyncIterable(options);\n for await (const chunk of transform(values)) {\n chunks.push(chunk);\n }\n return chunks.length === 1 ? chunks[0] : Chunked.concat(chunks);\n })([]);\n}\n\n//\n// We provide the following method implementations for code navigability purposes only.\n// They're overridden at runtime below with the specific Visitor implementation for each type,\n// short-circuiting the usual Visitor traversal and reducing intermediate lookups and calls.\n// This comment is here to remind you to not set breakpoints in these function bodies, or to inform\n// you why the breakpoints you have already set are not being triggered. Have a great day!\n//\n\nBaseVector.prototype.get = function baseVectorGet(this: BaseVector, index: number): T['TValue'] | null {\n return getVisitor.visit(this, index);\n};\n\nBaseVector.prototype.set = function baseVectorSet(this: BaseVector, index: number, value: T['TValue'] | null): void {\n return setVisitor.visit(this, index, value);\n};\n\nBaseVector.prototype.indexOf = function baseVectorIndexOf(this: BaseVector, value: T['TValue'] | null, fromIndex?: number): number {\n return indexOfVisitor.visit(this, value, fromIndex);\n};\n\nBaseVector.prototype.toArray = function baseVectorToArray(this: BaseVector): T['TArray'] {\n return toArrayVisitor.visit(this);\n};\n\nBaseVector.prototype.getByteWidth = function baseVectorGetByteWidth(this: BaseVector): number {\n return byteWidthVisitor.visit(this.type);\n};\n\nBaseVector.prototype[Symbol.iterator] = function baseVectorSymbolIterator(this: BaseVector): IterableIterator {\n return iteratorVisitor.visit(this);\n};\n\n(BaseVector.prototype as any)._bindDataAccessors = bindBaseVectorDataAccessors;\n\n// Perf: bind and assign the operator Visitor methods to each of the Vector subclasses for each Type\n(Object.keys(Type) as any[])\n .map((T: any) => Type[T] as any)\n .filter((T: any): T is Type => typeof T === 'number')\n .filter((typeId) => typeId !== Type.NONE)\n .forEach((typeId) => {\n const VectorCtor = getVectorConstructor.visit(typeId);\n VectorCtor.prototype['get'] = fn.partial1(getVisitor.getVisitFn(typeId));\n VectorCtor.prototype['set'] = fn.partial2(setVisitor.getVisitFn(typeId));\n VectorCtor.prototype['indexOf'] = fn.partial2(indexOfVisitor.getVisitFn(typeId));\n VectorCtor.prototype['toArray'] = fn.partial0(toArrayVisitor.getVisitFn(typeId));\n VectorCtor.prototype['getByteWidth'] = partialType0(byteWidthVisitor.getVisitFn(typeId));\n VectorCtor.prototype[Symbol.iterator] = fn.partial0(iteratorVisitor.getVisitFn(typeId));\n });\n\n/** @ignore */\nfunction partialType0(visit: (node: T['type']) => any) {\n return function(this: T) { return visit(this.type); };\n}\n\n/** @ignore */\nfunction wrapNullableGet, F extends (i: number) => any>(fn: F): (...args: Parameters) => ReturnType {\n return function(this: V, i: number) { return this.isValid(i) ? fn.call(this, i) : null; };\n}\n\n/** @ignore */\nfunction wrapNullableSet, F extends (i: number, a: any) => void>(fn: F): (...args: Parameters) => void {\n return function(this: V, i: number, a: any) {\n if (setBool(this.nullBitmap, this.offset + i, !(a === null || a === undefined))) {\n fn.call(this, i, a);\n }\n };\n}\n\n/** @ignore */\nfunction bindBaseVectorDataAccessors(this: BaseVector) {\n const nullBitmap = this.nullBitmap;\n if (nullBitmap && nullBitmap.byteLength > 0) {\n this.get = wrapNullableGet(this.get);\n this.set = wrapNullableSet(this.set);\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Column } from './column';\nimport { Schema, Field } from './schema';\nimport { RecordBatch, _InternalEmptyPlaceholderRecordBatch } from './recordbatch';\nimport { DataFrame } from './compute/dataframe';\nimport { RecordBatchReader } from './ipc/reader';\nimport { DataType, RowLike, Struct } from './type';\nimport { selectColumnArgs, selectArgs } from './util/args';\nimport { Clonable, Sliceable, Applicative } from './vector';\nimport { isPromise, isIterable, isAsyncIterable } from './util/compat';\nimport { RecordBatchFileWriter, RecordBatchStreamWriter } from './ipc/writer';\nimport { distributeColumnsIntoRecordBatches, distributeVectorsIntoRecordBatches } from './util/recordbatch';\nimport { Vector, Chunked, StructVector, VectorBuilderOptions, VectorBuilderOptionsAsync } from './vector/index';\n\ntype VectorMap = { [key: string]: Vector };\ntype Fields = (keyof T)[] | Field[];\ntype ChildData = Data[] | Vector[];\ntype Columns = Column[] | Column[][];\n\nexport interface Table {\n\n get(index: number): Struct['TValue'];\n [Symbol.iterator](): IterableIterator>;\n\n slice(begin?: number, end?: number): Table;\n concat(...others: Vector>[]): Table;\n clone(chunks?: RecordBatch[], offsets?: Uint32Array): Table;\n\n scan(next: import('./compute/dataframe').NextFunc, bind?: import('./compute/dataframe').BindFunc): void;\n scanReverse(next: import('./compute/dataframe').NextFunc, bind?: import('./compute/dataframe').BindFunc): void;\n countBy(name: import('./compute/predicate').Col | string): import('./compute/dataframe').CountByResult;\n filter(predicate: import('./compute/predicate').Predicate): import('./compute/dataframe').FilteredDataFrame;\n}\n\nexport class Table\n extends Chunked>\n implements DataFrame,\n Clonable>,\n Sliceable>,\n Applicative, Table> {\n\n /** @nocollapse */\n public static empty(schema = new Schema([])) { return new Table(schema, []); }\n\n public static from(): Table<{}>;\n public static from(source: RecordBatchReader): Table;\n public static from(source: import('./ipc/reader').FromArg0): Table;\n public static from(source: import('./ipc/reader').FromArg2): Table;\n public static from(source: import('./ipc/reader').FromArg1): Promise>;\n public static from(source: import('./ipc/reader').FromArg3): Promise>;\n public static from(source: import('./ipc/reader').FromArg4): Promise>;\n public static from(source: import('./ipc/reader').FromArg5): Promise>;\n public static from(source: PromiseLike>): Promise>;\n public static from(options: VectorBuilderOptions, TNull>): Table;\n public static from(options: VectorBuilderOptionsAsync, TNull>): Promise>;\n /** @nocollapse */\n public static from(input?: any) {\n\n if (!input) { return Table.empty(); }\n\n if (typeof input === 'object') {\n let table = isIterable(input['values']) ? tableFromIterable(input)\n : isAsyncIterable(input['values']) ? tableFromAsyncIterable(input)\n : null;\n if (table !== null) { return table; }\n }\n\n let reader = RecordBatchReader.from(input) as RecordBatchReader | Promise>;\n\n if (isPromise>(reader)) {\n return (async () => await Table.from(await reader))();\n }\n if (reader.isSync() && (reader = reader.open())) {\n return !reader.schema ? Table.empty() : new Table(reader.schema, [...reader]);\n }\n return (async (opening) => {\n const reader = await opening;\n const schema = reader.schema;\n const batches: RecordBatch[] = [];\n if (schema) {\n for await (let batch of reader) {\n batches.push(batch);\n }\n return new Table(schema, batches);\n }\n return Table.empty();\n })(reader.open());\n }\n\n /** @nocollapse */\n public static async fromAsync(source: import('./ipc/reader').FromArgs): Promise> {\n return await Table.from(source as any);\n }\n\n /** @nocollapse */\n public static fromStruct(vector: Vector>) {\n return Table.new(vector.data.childData as Data[], vector.type.children);\n }\n\n /**\n * @summary Create a new Table from a collection of Columns or Vectors,\n * with an optional list of names or Fields.\n *\n *\n * `Table.new` accepts an Object of\n * Columns or Vectors, where the keys will be used as the field names\n * for the Schema:\n * ```ts\n * const i32s = Int32Vector.from([1, 2, 3]);\n * const f32s = Float32Vector.from([.1, .2, .3]);\n * const table = Table.new({ i32: i32s, f32: f32s });\n * assert(table.schema.fields[0].name === 'i32');\n * ```\n *\n * It also accepts a a list of Vectors with an optional list of names or\n * Fields for the resulting Schema. If the list is omitted or a name is\n * missing, the numeric index of each Vector will be used as the name:\n * ```ts\n * const i32s = Int32Vector.from([1, 2, 3]);\n * const f32s = Float32Vector.from([.1, .2, .3]);\n * const table = Table.new([i32s, f32s], ['i32']);\n * assert(table.schema.fields[0].name === 'i32');\n * assert(table.schema.fields[1].name === '1');\n * ```\n *\n * If the supplied arguments are Columns, `Table.new` will infer the Schema\n * from the Columns:\n * ```ts\n * const i32s = Column.new('i32', Int32Vector.from([1, 2, 3]));\n * const f32s = Column.new('f32', Float32Vector.from([.1, .2, .3]));\n * const table = Table.new(i32s, f32s);\n * assert(table.schema.fields[0].name === 'i32');\n * assert(table.schema.fields[1].name === 'f32');\n * ```\n *\n * If the supplied Vector or Column lengths are unequal, `Table.new` will\n * extend the lengths of the shorter Columns, allocating additional bytes\n * to represent the additional null slots. The memory required to allocate\n * these additional bitmaps can be computed as:\n * ```ts\n * let additionalBytes = 0;\n * for (let vec in shorter_vectors) {\n * additionalBytes += (((longestLength - vec.length) + 63) & ~63) >> 3;\n * }\n * ```\n *\n * For example, an additional null bitmap for one million null values would require\n * 125,000 bytes (`((1e6 + 63) & ~63) >> 3`), or approx. `0.11MiB`\n */\n public static new(...columns: Columns): Table;\n public static new(children: T): Table<{ [P in keyof T]: T[P]['type'] }>;\n public static new(children: ChildData, fields?: Fields): Table;\n /** @nocollapse */\n public static new(...cols: any[]) {\n return new Table(...distributeColumnsIntoRecordBatches(selectColumnArgs(cols)));\n }\n\n constructor(batches: RecordBatch[]);\n constructor(...batches: RecordBatch[]);\n constructor(schema: Schema, batches: RecordBatch[]);\n constructor(schema: Schema, ...batches: RecordBatch[]);\n constructor(...args: any[]) {\n\n let schema: Schema = null!;\n\n if (args[0] instanceof Schema) { schema = args.shift(); }\n\n let chunks = selectArgs>(RecordBatch, args);\n\n if (!schema && !(schema = chunks[0] && chunks[0].schema)) {\n throw new TypeError('Table must be initialized with a Schema or at least one RecordBatch');\n }\n\n chunks[0] || (chunks[0] = new _InternalEmptyPlaceholderRecordBatch(schema));\n\n super(new Struct(schema.fields), chunks);\n\n this._schema = schema;\n this._chunks = chunks;\n }\n\n protected _schema: Schema;\n // List of inner RecordBatches\n protected _chunks: RecordBatch[];\n protected _children?: Column[];\n\n public get schema() { return this._schema; }\n public get length() { return this._length; }\n public get chunks() { return this._chunks; }\n public get numCols() { return this._numChildren; }\n\n public clone(chunks = this._chunks) {\n return new Table(this._schema, chunks);\n }\n\n public getColumn(name: R): Column {\n return this.getColumnAt(this.getColumnIndex(name)) as Column;\n }\n public getColumnAt(index: number): Column | null {\n return this.getChildAt(index);\n }\n public getColumnIndex(name: R) {\n return this._schema.fields.findIndex((f) => f.name === name);\n }\n public getChildAt(index: number): Column | null {\n if (index < 0 || index >= this.numChildren) { return null; }\n let field: Field, child: Column;\n const fields = (this._schema as Schema).fields;\n const columns = this._children || (this._children = []) as Column[];\n if (child = columns[index]) { return child as Column; }\n if (field = fields[index]) {\n const chunks = this._chunks\n .map((chunk) => chunk.getChildAt(index))\n .filter((vec): vec is Vector => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Column(field, chunks));\n }\n }\n return null;\n }\n\n // @ts-ignore\n public serialize(encoding = 'binary', stream = true) {\n const Writer = !stream\n ? RecordBatchFileWriter\n : RecordBatchStreamWriter;\n return Writer.writeAll(this).toUint8Array(true);\n }\n public count(): number {\n return this._length;\n }\n public select(...columnNames: K[]) {\n const nameToIndex = this._schema.fields.reduce((m, f, i) => m.set(f.name as K, i), new Map());\n return this.selectAt(...columnNames.map((columnName) => nameToIndex.get(columnName)!).filter((x) => x > -1));\n }\n public selectAt(...columnIndices: number[]) {\n const schema = this._schema.selectAt(...columnIndices);\n return new Table(schema, this._chunks.map(({ length, data: { childData } }) => {\n return new RecordBatch(schema, length, columnIndices.map((i) => childData[i]).filter(Boolean));\n }));\n }\n public assign(other: Table) {\n\n const fields = this._schema.fields;\n const [indices, oldToNew] = other.schema.fields.reduce((memo, f2, newIdx) => {\n const [indices, oldToNew] = memo;\n const i = fields.findIndex((f) => f.name === f2.name);\n ~i ? (oldToNew[i] = newIdx) : indices.push(newIdx);\n return memo;\n }, [[], []] as number[][]);\n\n const schema = this._schema.assign(other.schema);\n const columns = [\n ...fields.map((_f, i, _fs, j = oldToNew[i]) =>\n (j === undefined ? this.getColumnAt(i) : other.getColumnAt(j))!),\n ...indices.map((i) => other.getColumnAt(i)!)\n ].filter(Boolean) as Column<(T & R)[keyof T | keyof R]>[];\n\n return new Table(...distributeVectorsIntoRecordBatches(schema, columns));\n }\n}\n\nfunction tableFromIterable(input: VectorBuilderOptions, TNull>) {\n const { type } = input;\n if (type instanceof Struct) {\n return Table.fromStruct(StructVector.from(input as VectorBuilderOptions, TNull>));\n }\n return null;\n}\n\nfunction tableFromAsyncIterable(input: VectorBuilderOptionsAsync, TNull>) {\n const { type } = input;\n if (type instanceof Struct) {\n return StructVector.from(input as VectorBuilderOptionsAsync, TNull>).then((vector) => Table.fromStruct(vector));\n }\n return null;\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from './data';\nimport { Table } from './table';\nimport { Vector } from './vector';\nimport { Visitor } from './visitor';\nimport { Schema, Field } from './schema';\nimport { isIterable } from './util/compat';\nimport { Chunked } from './vector/chunked';\nimport { selectFieldArgs } from './util/args';\nimport { DataType, Struct, Dictionary } from './type';\nimport { ensureSameLengthData } from './util/recordbatch';\nimport { Clonable, Sliceable, Applicative } from './vector';\nimport { StructVector, VectorBuilderOptions, VectorBuilderOptionsAsync } from './vector/index';\n\ntype VectorMap = { [key: string]: Vector };\ntype Fields = (keyof T)[] | Field[];\ntype ChildData = (Data | Vector)[];\n\nexport interface RecordBatch {\n concat(...others: Vector>[]): Table;\n slice(begin?: number, end?: number): RecordBatch;\n clone(data: Data>, children?: Vector[]): RecordBatch;\n}\n\nexport class RecordBatch\n extends StructVector\n implements Clonable>,\n Sliceable>,\n Applicative, Table> {\n\n public static from(options: VectorBuilderOptions, TNull>): Table;\n public static from(options: VectorBuilderOptionsAsync, TNull>): Promise>;\n /** @nocollapse */\n public static from(options: VectorBuilderOptions, TNull> | VectorBuilderOptionsAsync, TNull>) {\n if (isIterable<(Struct)['TValue'] | TNull>(options['values'])) {\n return Table.from(options as VectorBuilderOptions, TNull>);\n }\n return Table.from(options as VectorBuilderOptionsAsync, TNull>);\n }\n\n public static new(children: T): RecordBatch<{ [P in keyof T]: T[P]['type'] }>;\n public static new(children: ChildData, fields?: Fields): RecordBatch;\n /** @nocollapse */\n public static new(...args: any[]) {\n const [fs, xs] = selectFieldArgs(args);\n const vs = xs.filter((x): x is Vector => x instanceof Vector);\n return new RecordBatch(...ensureSameLengthData(new Schema(fs), vs.map((x) => x.data)));\n }\n\n protected _schema: Schema;\n protected _dictionaries?: Map;\n\n constructor(schema: Schema, length: number, children: (Data | Vector)[]);\n constructor(schema: Schema, data: Data>, children?: Vector[]);\n constructor(...args: any[]) {\n let data: Data>;\n let schema = args[0] as Schema;\n let children: Vector[] | undefined;\n if (args[1] instanceof Data) {\n [, data, children] = (args as [any, Data>, Vector[]?]);\n } else {\n const fields = schema.fields as Field[];\n const [, length, childData] = args as [any, number, Data[]];\n data = Data.Struct(new Struct(fields), 0, length, 0, null, childData);\n }\n super(data, children);\n this._schema = schema;\n }\n\n public clone(data: Data>, children = this._children) {\n return new RecordBatch(this._schema, data, children);\n }\n\n public concat(...others: Vector>[]): Table {\n const schema = this._schema, chunks = Chunked.flatten(this, ...others);\n return new Table(schema, chunks.map(({ data }) => new RecordBatch(schema, data)));\n }\n\n public get schema() { return this._schema; }\n public get numCols() { return this._schema.fields.length; }\n public get dictionaries() {\n return this._dictionaries || (this._dictionaries = DictionaryCollector.collect(this));\n }\n\n public select(...columnNames: K[]) {\n const nameToIndex = this._schema.fields.reduce((m, f, i) => m.set(f.name as K, i), new Map());\n return this.selectAt(...columnNames.map((columnName) => nameToIndex.get(columnName)!).filter((x) => x > -1));\n }\n public selectAt(...columnIndices: number[]) {\n const schema = this._schema.selectAt(...columnIndices);\n const childData = columnIndices.map((i) => this.data.childData[i]).filter(Boolean);\n return new RecordBatch<{ [key: string]: K }>(schema, this.length, childData);\n }\n}\n\n/**\n * An internal class used by the `RecordBatchReader` and `RecordBatchWriter`\n * implementations to differentiate between a stream with valid zero-length\n * RecordBatches, and a stream with a Schema message, but no RecordBatches.\n * @see https://github.com/apache/arrow/pull/4373\n * @ignore\n * @private\n */\n/* tslint:disable:class-name */\nexport class _InternalEmptyPlaceholderRecordBatch extends RecordBatch {\n constructor(schema: Schema) {\n super(schema, 0, schema.fields.map((f) => Data.new(f.type, 0, 0, 0)));\n }\n}\n\n/** @ignore */\nclass DictionaryCollector extends Visitor {\n public dictionaries = new Map();\n public static collect(batch: T) {\n return new DictionaryCollector().visit(\n batch.data, new Struct(batch.schema.fields)\n ).dictionaries;\n }\n public visit(data: Data, type: DataType) {\n if (DataType.isDictionary(type)) {\n return this.visitDictionary(data, type);\n } else {\n data.childData.forEach((child, i) =>\n this.visit(child, type.children[i].type));\n }\n return this;\n }\n public visitDictionary(data: Data, type: Dictionary) {\n const dictionary = data.dictionary;\n if (dictionary && dictionary.length > 0) {\n this.dictionaries.set(type.id, dictionary);\n }\n return this;\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { MessageHeader } from '../enum';\nimport { Footer } from './metadata/file';\nimport { Schema, Field } from '../schema';\nimport streamAdapters from '../io/adapters';\nimport { Message } from './metadata/message';\nimport * as metadata from './metadata/message';\nimport { ArrayBufferViewInput } from '../util/buffer';\nimport { ByteStream, AsyncByteStream } from '../io/stream';\nimport { RandomAccessFile, AsyncRandomAccessFile } from '../io/file';\nimport { VectorLoader, JSONVectorLoader } from '../visitor/vectorloader';\nimport { RecordBatch, _InternalEmptyPlaceholderRecordBatch } from '../recordbatch';\nimport {\n FileHandle,\n ArrowJSONLike,\n ITERATOR_DONE,\n ReadableInterop,\n} from '../io/interfaces';\nimport {\n MessageReader, AsyncMessageReader, JSONMessageReader,\n checkForMagicArrowString, magicLength, magicAndPadding, magicX2AndPadding\n} from './message';\nimport {\n isPromise,\n isIterable, isAsyncIterable,\n isIteratorResult, isArrowJSON,\n isFileHandle, isFetchResponse,\n isReadableDOMStream, isReadableNodeStream\n} from '../util/compat';\n\n/** @ignore */ export type FromArg0 = ArrowJSONLike;\n/** @ignore */ export type FromArg1 = PromiseLike;\n/** @ignore */ export type FromArg2 = Iterable | ArrayBufferViewInput;\n/** @ignore */ export type FromArg3 = PromiseLike | ArrayBufferViewInput>;\n/** @ignore */ export type FromArg4 = Response | NodeJS.ReadableStream | ReadableStream | AsyncIterable;\n/** @ignore */ export type FromArg5 = FileHandle | PromiseLike | PromiseLike;\n/** @ignore */ export type FromArgs = FromArg0 | FromArg1 | FromArg2 | FromArg3 | FromArg4 | FromArg5;\n\n/** @ignore */ type OpenOptions = { autoDestroy?: boolean; };\n/** @ignore */ type RecordBatchReaders = RecordBatchFileReader | RecordBatchStreamReader;\n/** @ignore */ type AsyncRecordBatchReaders = AsyncRecordBatchFileReader | AsyncRecordBatchStreamReader;\n/** @ignore */ type RecordBatchFileReaders = RecordBatchFileReader | AsyncRecordBatchFileReader;\n/** @ignore */ type RecordBatchStreamReaders = RecordBatchStreamReader | AsyncRecordBatchStreamReader;\n\nexport class RecordBatchReader extends ReadableInterop> {\n\n protected _impl: RecordBatchReaderImpls;\n protected constructor(impl: RecordBatchReaderImpls) {\n super();\n this._impl = impl;\n }\n\n public get closed() { return this._impl.closed; }\n public get schema() { return this._impl.schema; }\n public get autoDestroy() { return this._impl.autoDestroy; }\n public get dictionaries() { return this._impl.dictionaries; }\n public get numDictionaries() { return this._impl.numDictionaries; }\n public get numRecordBatches() { return this._impl.numRecordBatches; }\n public get footer() { return this._impl.isFile() ? this._impl.footer : null; }\n\n public isSync(): this is RecordBatchReaders { return this._impl.isSync(); }\n public isAsync(): this is AsyncRecordBatchReaders { return this._impl.isAsync(); }\n public isFile(): this is RecordBatchFileReaders { return this._impl.isFile(); }\n public isStream(): this is RecordBatchStreamReaders { return this._impl.isStream(); }\n\n public next() {\n return this._impl.next();\n }\n public throw(value?: any) {\n return this._impl.throw(value);\n }\n public return(value?: any) {\n return this._impl.return(value);\n }\n public cancel() {\n return this._impl.cancel();\n }\n public reset(schema?: Schema | null): this {\n this._impl.reset(schema);\n this._DOMStream = undefined;\n this._nodeStream = undefined;\n return this;\n }\n public open(options?: OpenOptions) {\n const opening = this._impl.open(options);\n return isPromise(opening) ? opening.then(() => this) : this;\n }\n public readRecordBatch(index: number): RecordBatch | null | Promise | null> {\n return this._impl.isFile() ? this._impl.readRecordBatch(index) : null;\n }\n public [Symbol.iterator](): IterableIterator> {\n return (>> this._impl)[Symbol.iterator]();\n }\n public [Symbol.asyncIterator](): AsyncIterableIterator> {\n return (>> this._impl)[Symbol.asyncIterator]();\n }\n public toDOMStream() {\n return streamAdapters.toDOMStream>(\n (this.isSync()\n ? { [Symbol.iterator]: () => this } as Iterable>\n : { [Symbol.asyncIterator]: () => this } as AsyncIterable>));\n }\n public toNodeStream() {\n return streamAdapters.toNodeStream>(\n (this.isSync()\n ? { [Symbol.iterator]: () => this } as Iterable>\n : { [Symbol.asyncIterator]: () => this } as AsyncIterable>),\n { objectMode: true });\n }\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode(options?: import('stream').DuplexOptions & { autoDestroy: boolean }): import('stream').Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n public static throughDOM(\n // @ts-ignore\n writableStrategy?: ByteLengthQueuingStrategy,\n // @ts-ignore\n readableStrategy?: { autoDestroy: boolean }\n ): { writable: WritableStream, readable: ReadableStream> } {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n public static from(source: T): T;\n public static from(source: FromArg0): RecordBatchStreamReader;\n public static from(source: FromArg1): Promise>;\n public static from(source: FromArg2): RecordBatchFileReader | RecordBatchStreamReader;\n public static from(source: FromArg3): Promise | RecordBatchStreamReader>;\n public static from(source: FromArg4): Promise | AsyncRecordBatchReaders>;\n public static from(source: FromArg5): Promise | AsyncRecordBatchStreamReader>;\n /** @nocollapse */\n public static from(source: any) {\n if (source instanceof RecordBatchReader) {\n return source;\n } else if (isArrowJSON(source)) {\n return fromArrowJSON(source);\n } else if (isFileHandle(source)) {\n return fromFileHandle(source);\n } else if (isPromise(source)) {\n return (async () => await RecordBatchReader.from(await source))();\n } else if (isFetchResponse(source) || isReadableDOMStream(source) || isReadableNodeStream(source) || isAsyncIterable(source)) {\n return fromAsyncByteStream(new AsyncByteStream(source));\n }\n return fromByteStream(new ByteStream(source));\n }\n\n public static readAll(source: T): T extends RecordBatchReaders ? IterableIterator : AsyncIterableIterator;\n public static readAll(source: FromArg0): IterableIterator>;\n public static readAll(source: FromArg1): AsyncIterableIterator>;\n public static readAll(source: FromArg2): IterableIterator | RecordBatchStreamReader>;\n public static readAll(source: FromArg3): AsyncIterableIterator | RecordBatchStreamReader>;\n public static readAll(source: FromArg4): AsyncIterableIterator | AsyncRecordBatchReaders>;\n public static readAll(source: FromArg5): AsyncIterableIterator | AsyncRecordBatchStreamReader>;\n /** @nocollapse */\n public static readAll(source: any) {\n if (source instanceof RecordBatchReader) {\n return source.isSync() ? readAllSync(source) : readAllAsync(source as AsyncRecordBatchReaders);\n } else if (isArrowJSON(source) || ArrayBuffer.isView(source) || isIterable(source) || isIteratorResult(source)) {\n return readAllSync(source) as IterableIterator>;\n }\n return readAllAsync(source) as AsyncIterableIterator | AsyncRecordBatchReaders>;\n }\n}\n\n//\n// Since TS is a structural type system, we define the following subclass stubs\n// so that concrete types exist to associate with with the interfaces below.\n//\n// The implementation for each RecordBatchReader is hidden away in the set of\n// `RecordBatchReaderImpl` classes in the second half of this file. This allows\n// us to export a single RecordBatchReader class, and swap out the impl based\n// on the io primitives or underlying arrow (JSON, file, or stream) at runtime.\n//\n// Async/await makes our job a bit harder, since it forces everything to be\n// either fully sync or fully async. This is why the logic for the reader impls\n// has been duplicated into both sync and async variants. Since the RBR\n// delegates to its impl, an RBR with an AsyncRecordBatchFileReaderImpl for\n// example will return async/await-friendly Promises, but one with a (sync)\n// RecordBatchStreamReaderImpl will always return values. Nothing should be\n// different about their logic, aside from the async handling. This is also why\n// this code looks highly structured, as it should be nearly identical and easy\n// to follow.\n//\n\n/** @ignore */\nexport class RecordBatchStreamReader extends RecordBatchReader {\n constructor(protected _impl: RecordBatchStreamReaderImpl) { super (_impl); }\n public [Symbol.iterator]() { return (this._impl as IterableIterator>)[Symbol.iterator](); }\n public async *[Symbol.asyncIterator](): AsyncIterableIterator> { yield* this[Symbol.iterator](); }\n}\n/** @ignore */\nexport class AsyncRecordBatchStreamReader extends RecordBatchReader {\n constructor(protected _impl: AsyncRecordBatchStreamReaderImpl) { super (_impl); }\n public [Symbol.iterator](): IterableIterator> { throw new Error(`AsyncRecordBatchStreamReader is not Iterable`); }\n public [Symbol.asyncIterator]() { return (this._impl as AsyncIterableIterator>)[Symbol.asyncIterator](); }\n}\n/** @ignore */\nexport class RecordBatchFileReader extends RecordBatchStreamReader {\n constructor(protected _impl: RecordBatchFileReaderImpl) { super (_impl); }\n}\n/** @ignore */\nexport class AsyncRecordBatchFileReader extends AsyncRecordBatchStreamReader {\n constructor(protected _impl: AsyncRecordBatchFileReaderImpl) { super (_impl); }\n}\n\n//\n// Now override the return types for each sync/async RecordBatchReader variant\n//\n\n/** @ignore */\nexport interface RecordBatchStreamReader extends RecordBatchReader {\n open(options?: OpenOptions | undefined): this;\n cancel(): void;\n throw(value?: any): IteratorResult;\n return(value?: any): IteratorResult;\n next(value?: any): IteratorResult>;\n}\n\n/** @ignore */\nexport interface AsyncRecordBatchStreamReader extends RecordBatchReader {\n open(options?: OpenOptions | undefined): Promise;\n cancel(): Promise;\n throw(value?: any): Promise>;\n return(value?: any): Promise>;\n next(value?: any): Promise>>;\n}\n\n/** @ignore */\nexport interface RecordBatchFileReader extends RecordBatchStreamReader {\n footer: Footer;\n readRecordBatch(index: number): RecordBatch | null;\n}\n\n/** @ignore */\nexport interface AsyncRecordBatchFileReader extends AsyncRecordBatchStreamReader {\n footer: Footer;\n readRecordBatch(index: number): Promise | null>;\n}\n\n/** @ignore */\ntype RecordBatchReaderImpls =\n RecordBatchJSONReaderImpl |\n RecordBatchFileReaderImpl |\n RecordBatchStreamReaderImpl |\n AsyncRecordBatchFileReaderImpl |\n AsyncRecordBatchStreamReaderImpl;\n\n/** @ignore */\ninterface RecordBatchReaderImpl {\n\n closed: boolean;\n schema: Schema;\n autoDestroy: boolean;\n dictionaries: Map;\n\n isFile(): this is RecordBatchFileReaders;\n isStream(): this is RecordBatchStreamReaders;\n isSync(): this is RecordBatchReaders;\n isAsync(): this is AsyncRecordBatchReaders;\n\n reset(schema?: Schema | null): this;\n}\n\n/** @ignore */\ninterface RecordBatchStreamReaderImpl extends RecordBatchReaderImpl {\n\n open(options?: OpenOptions): this;\n cancel(): void;\n\n throw(value?: any): IteratorResult;\n return(value?: any): IteratorResult;\n next(value?: any): IteratorResult>;\n\n [Symbol.iterator](): IterableIterator>;\n}\n\n/** @ignore */\ninterface AsyncRecordBatchStreamReaderImpl extends RecordBatchReaderImpl {\n\n open(options?: OpenOptions): Promise;\n cancel(): Promise;\n\n throw(value?: any): Promise>;\n return(value?: any): Promise>;\n next(value?: any): Promise>>;\n\n [Symbol.asyncIterator](): AsyncIterableIterator>;\n}\n\n/** @ignore */\ninterface RecordBatchFileReaderImpl extends RecordBatchStreamReaderImpl {\n readRecordBatch(index: number): RecordBatch | null;\n}\n\n/** @ignore */\ninterface AsyncRecordBatchFileReaderImpl extends AsyncRecordBatchStreamReaderImpl {\n readRecordBatch(index: number): Promise | null>;\n}\n\n/** @ignore */\nabstract class RecordBatchReaderImpl implements RecordBatchReaderImpl {\n\n // @ts-ignore\n public schema: Schema;\n public closed = false;\n public autoDestroy = true;\n public dictionaries: Map;\n\n protected _dictionaryIndex = 0;\n protected _recordBatchIndex = 0;\n public get numDictionaries() { return this._dictionaryIndex; }\n public get numRecordBatches() { return this._recordBatchIndex; }\n\n constructor(dictionaries = new Map()) {\n this.dictionaries = dictionaries;\n }\n\n public isSync(): this is RecordBatchReaders { return false; }\n public isAsync(): this is AsyncRecordBatchReaders { return false; }\n public isFile(): this is RecordBatchFileReaders { return false; }\n public isStream(): this is RecordBatchStreamReaders { return false; }\n\n public reset(schema?: Schema | null) {\n this._dictionaryIndex = 0;\n this._recordBatchIndex = 0;\n this.schema = schema;\n this.dictionaries = new Map();\n return this;\n }\n\n protected _loadRecordBatch(header: metadata.RecordBatch, body: any) {\n return new RecordBatch(this.schema, header.length, this._loadVectors(header, body, this.schema.fields));\n }\n protected _loadDictionaryBatch(header: metadata.DictionaryBatch, body: any) {\n const { id, isDelta, data } = header;\n const { dictionaries, schema } = this;\n const dictionary = dictionaries.get(id);\n if (isDelta || !dictionary) {\n const type = schema.dictionaries.get(id)!;\n return (dictionary && isDelta ? dictionary.concat(\n Vector.new(this._loadVectors(data, body, [type])[0])) :\n Vector.new(this._loadVectors(data, body, [type])[0])) as Vector;\n }\n return dictionary;\n }\n protected _loadVectors(header: metadata.RecordBatch, body: any, types: (Field | DataType)[]) {\n return new VectorLoader(body, header.nodes, header.buffers, this.dictionaries).visitMany(types);\n }\n}\n\n/** @ignore */\nclass RecordBatchStreamReaderImpl extends RecordBatchReaderImpl implements IterableIterator> {\n\n protected _reader: MessageReader;\n protected _handle: ByteStream | ArrowJSONLike;\n\n constructor(source: ByteStream | ArrowJSONLike, dictionaries?: Map) {\n super(dictionaries);\n this._reader = !isArrowJSON(source)\n ? new MessageReader(this._handle = source)\n : new JSONMessageReader(this._handle = source);\n }\n\n public isSync(): this is RecordBatchReaders { return true; }\n public isStream(): this is RecordBatchStreamReaders { return true; }\n public [Symbol.iterator](): IterableIterator> {\n return this as IterableIterator>;\n }\n public cancel() {\n if (!this.closed && (this.closed = true)) {\n this.reset()._reader.return();\n this._reader = null;\n this.dictionaries = null;\n }\n }\n public open(options?: OpenOptions) {\n if (!this.closed) {\n this.autoDestroy = shouldAutoDestroy(this, options);\n if (!(this.schema || (this.schema = this._reader.readSchema()!))) {\n this.cancel();\n }\n }\n return this;\n }\n public throw(value?: any): IteratorResult {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return this.reset()._reader.throw(value);\n }\n return ITERATOR_DONE;\n }\n public return(value?: any): IteratorResult {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return this.reset()._reader.return(value);\n }\n return ITERATOR_DONE;\n }\n public next(): IteratorResult> {\n if (this.closed) { return ITERATOR_DONE; }\n let message: Message | null, { _reader: reader } = this;\n while (message = this._readNextMessageAndValidate()) {\n if (message.isSchema()) {\n this.reset(message.header());\n } else if (message.isRecordBatch()) {\n this._recordBatchIndex++;\n const header = message.header();\n const buffer = reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return { done: false, value: recordBatch };\n } else if (message.isDictionaryBatch()) {\n this._dictionaryIndex++;\n const header = message.header();\n const buffer = reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n if (this.schema && this._recordBatchIndex === 0) {\n this._recordBatchIndex++;\n return { done: false, value: new _InternalEmptyPlaceholderRecordBatch(this.schema) };\n }\n return this.return();\n }\n protected _readNextMessageAndValidate(type?: T | null) {\n return this._reader.readMessage(type);\n }\n}\n\n/** @ignore */\nclass AsyncRecordBatchStreamReaderImpl extends RecordBatchReaderImpl implements AsyncIterableIterator> {\n\n protected _handle: AsyncByteStream;\n protected _reader: AsyncMessageReader;\n\n constructor(source: AsyncByteStream, dictionaries?: Map) {\n super(dictionaries);\n this._reader = new AsyncMessageReader(this._handle = source);\n }\n public isAsync(): this is AsyncRecordBatchReaders { return true; }\n public isStream(): this is RecordBatchStreamReaders { return true; }\n public [Symbol.asyncIterator](): AsyncIterableIterator> {\n return this as AsyncIterableIterator>;\n }\n public async cancel() {\n if (!this.closed && (this.closed = true)) {\n await this.reset()._reader.return();\n this._reader = null;\n this.dictionaries = null;\n }\n }\n public async open(options?: OpenOptions) {\n if (!this.closed) {\n this.autoDestroy = shouldAutoDestroy(this, options);\n if (!(this.schema || (this.schema = (await this._reader.readSchema())!))) {\n await this.cancel();\n }\n }\n return this;\n }\n public async throw(value?: any): Promise> {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return await this.reset()._reader.throw(value);\n }\n return ITERATOR_DONE;\n }\n public async return(value?: any): Promise> {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return await this.reset()._reader.return(value);\n }\n return ITERATOR_DONE;\n }\n public async next() {\n if (this.closed) { return ITERATOR_DONE; }\n let message: Message | null, { _reader: reader } = this;\n while (message = await this._readNextMessageAndValidate()) {\n if (message.isSchema()) {\n await this.reset(message.header());\n } else if (message.isRecordBatch()) {\n this._recordBatchIndex++;\n const header = message.header();\n const buffer = await reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return { done: false, value: recordBatch };\n } else if (message.isDictionaryBatch()) {\n this._dictionaryIndex++;\n const header = message.header();\n const buffer = await reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n if (this.schema && this._recordBatchIndex === 0) {\n this._recordBatchIndex++;\n return { done: false, value: new _InternalEmptyPlaceholderRecordBatch(this.schema) };\n }\n return await this.return();\n }\n protected async _readNextMessageAndValidate(type?: T | null) {\n return await this._reader.readMessage(type);\n }\n}\n\n/** @ignore */\nclass RecordBatchFileReaderImpl extends RecordBatchStreamReaderImpl {\n\n // @ts-ignore\n protected _footer?: Footer;\n // @ts-ignore\n protected _handle: RandomAccessFile;\n public get footer() { return this._footer!; }\n public get numDictionaries() { return this._footer ? this._footer.numDictionaries : 0; }\n public get numRecordBatches() { return this._footer ? this._footer.numRecordBatches : 0; }\n\n constructor(source: RandomAccessFile | ArrayBufferViewInput, dictionaries?: Map) {\n super(source instanceof RandomAccessFile ? source : new RandomAccessFile(source), dictionaries);\n }\n public isSync(): this is RecordBatchReaders { return true; }\n public isFile(): this is RecordBatchFileReaders { return true; }\n public open(options?: OpenOptions) {\n if (!this.closed && !this._footer) {\n this.schema = (this._footer = this._readFooter()).schema;\n for (const block of this._footer.dictionaryBatches()) {\n block && this._readDictionaryBatch(this._dictionaryIndex++);\n }\n }\n return super.open(options);\n }\n public readRecordBatch(index: number) {\n if (this.closed) { return null; }\n if (!this._footer) { this.open(); }\n const block = this._footer && this._footer.getRecordBatch(index);\n if (block && this._handle.seek(block.offset)) {\n const message = this._reader.readMessage(MessageHeader.RecordBatch);\n if (message && message.isRecordBatch()) {\n const header = message.header();\n const buffer = this._reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return recordBatch;\n }\n }\n return null;\n }\n protected _readDictionaryBatch(index: number) {\n const block = this._footer && this._footer.getDictionaryBatch(index);\n if (block && this._handle.seek(block.offset)) {\n const message = this._reader.readMessage(MessageHeader.DictionaryBatch);\n if (message && message.isDictionaryBatch()) {\n const header = message.header();\n const buffer = this._reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n }\n protected _readFooter() {\n const { _handle } = this;\n const offset = _handle.size - magicAndPadding;\n const length = _handle.readInt32(offset);\n const buffer = _handle.readAt(offset - length, length);\n return Footer.decode(buffer);\n }\n protected _readNextMessageAndValidate(type?: T | null): Message | null {\n if (!this._footer) { this.open(); }\n if (this._footer && this._recordBatchIndex < this.numRecordBatches) {\n const block = this._footer && this._footer.getRecordBatch(this._recordBatchIndex);\n if (block && this._handle.seek(block.offset)) {\n return this._reader.readMessage(type);\n }\n }\n return null;\n }\n}\n\n/** @ignore */\nclass AsyncRecordBatchFileReaderImpl extends AsyncRecordBatchStreamReaderImpl\n implements AsyncRecordBatchFileReaderImpl {\n\n protected _footer?: Footer;\n // @ts-ignore\n protected _handle: AsyncRandomAccessFile;\n public get footer() { return this._footer!; }\n public get numDictionaries() { return this._footer ? this._footer.numDictionaries : 0; }\n public get numRecordBatches() { return this._footer ? this._footer.numRecordBatches : 0; }\n\n constructor(source: FileHandle, byteLength?: number, dictionaries?: Map);\n constructor(source: FileHandle | AsyncRandomAccessFile, dictionaries?: Map);\n constructor(source: FileHandle | AsyncRandomAccessFile, ...rest: any[]) {\n const byteLength = typeof rest[0] !== 'number' ? rest.shift() : undefined;\n const dictionaries = rest[0] instanceof Map ? > rest.shift() : undefined;\n super(source instanceof AsyncRandomAccessFile ? source : new AsyncRandomAccessFile(source, byteLength), dictionaries);\n }\n public isFile(): this is RecordBatchFileReaders { return true; }\n public isAsync(): this is AsyncRecordBatchReaders { return true; }\n public async open(options?: OpenOptions) {\n if (!this.closed && !this._footer) {\n this.schema = (this._footer = await this._readFooter()).schema;\n for (const block of this._footer.dictionaryBatches()) {\n block && await this._readDictionaryBatch(this._dictionaryIndex++);\n }\n }\n return await super.open(options);\n }\n public async readRecordBatch(index: number) {\n if (this.closed) { return null; }\n if (!this._footer) { await this.open(); }\n const block = this._footer && this._footer.getRecordBatch(index);\n if (block && (await this._handle.seek(block.offset))) {\n const message = await this._reader.readMessage(MessageHeader.RecordBatch);\n if (message && message.isRecordBatch()) {\n const header = message.header();\n const buffer = await this._reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return recordBatch;\n }\n }\n return null;\n }\n protected async _readDictionaryBatch(index: number) {\n const block = this._footer && this._footer.getDictionaryBatch(index);\n if (block && (await this._handle.seek(block.offset))) {\n const message = await this._reader.readMessage(MessageHeader.DictionaryBatch);\n if (message && message.isDictionaryBatch()) {\n const header = message.header();\n const buffer = await this._reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n }\n protected async _readFooter() {\n const { _handle } = this;\n _handle._pending && await _handle._pending;\n const offset = _handle.size - magicAndPadding;\n const length = await _handle.readInt32(offset);\n const buffer = await _handle.readAt(offset - length, length);\n return Footer.decode(buffer);\n }\n protected async _readNextMessageAndValidate(type?: T | null): Promise | null> {\n if (!this._footer) { await this.open(); }\n if (this._footer && this._recordBatchIndex < this.numRecordBatches) {\n const block = this._footer.getRecordBatch(this._recordBatchIndex);\n if (block && await this._handle.seek(block.offset)) {\n return await this._reader.readMessage(type);\n }\n }\n return null;\n }\n}\n\n/** @ignore */\nclass RecordBatchJSONReaderImpl extends RecordBatchStreamReaderImpl {\n constructor(source: ArrowJSONLike, dictionaries?: Map) {\n super(source, dictionaries);\n }\n protected _loadVectors(header: metadata.RecordBatch, body: any, types: (Field | DataType)[]) {\n return new JSONVectorLoader(body, header.nodes, header.buffers, this.dictionaries).visitMany(types);\n }\n}\n\n//\n// Define some helper functions and static implementations down here. There's\n// a bit of branching in the static methods that can lead to the same routines\n// being executed, so we've broken those out here for readability.\n//\n\n/** @ignore */\nfunction shouldAutoDestroy(self: { autoDestroy: boolean }, options?: OpenOptions) {\n return options && (typeof options['autoDestroy'] === 'boolean') ? options['autoDestroy'] : self['autoDestroy'];\n}\n\n/** @ignore */\nfunction* readAllSync(source: RecordBatchReaders | FromArg0 | FromArg2) {\n const reader = RecordBatchReader.from( source) as RecordBatchReaders;\n try {\n if (!reader.open({ autoDestroy: false }).closed) {\n do { yield reader; } while (!(reader.reset().open()).closed);\n }\n } finally { reader.cancel(); }\n}\n\n/** @ignore */\nasync function* readAllAsync(source: AsyncRecordBatchReaders | FromArg1 | FromArg3 | FromArg4 | FromArg5) {\n const reader = await RecordBatchReader.from( source) as RecordBatchReader;\n try {\n if (!(await reader.open({ autoDestroy: false })).closed) {\n do { yield reader; } while (!(await reader.reset().open()).closed);\n }\n } finally { await reader.cancel(); }\n}\n\n/** @ignore */\nfunction fromArrowJSON(source: ArrowJSONLike) {\n return new RecordBatchStreamReader(new RecordBatchJSONReaderImpl(source));\n}\n\n/** @ignore */\nfunction fromByteStream(source: ByteStream) {\n const bytes = source.peek((magicLength + 7) & ~7);\n return bytes && bytes.byteLength >= 4 ? !checkForMagicArrowString(bytes)\n ? new RecordBatchStreamReader(new RecordBatchStreamReaderImpl(source))\n : new RecordBatchFileReader(new RecordBatchFileReaderImpl(source.read()))\n : new RecordBatchStreamReader(new RecordBatchStreamReaderImpl(function*(): any {}()));\n}\n\n/** @ignore */\nasync function fromAsyncByteStream(source: AsyncByteStream) {\n const bytes = await source.peek((magicLength + 7) & ~7);\n return bytes && bytes.byteLength >= 4 ? !checkForMagicArrowString(bytes)\n ? new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(source))\n : new RecordBatchFileReader(new RecordBatchFileReaderImpl(await source.read()))\n : new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(async function*(): any {}()));\n}\n\n/** @ignore */\nasync function fromFileHandle(source: FileHandle) {\n const { size } = await source.stat();\n const file = new AsyncRandomAccessFile(source, size);\n if (size >= magicX2AndPadding) {\n if (checkForMagicArrowString(await file.readAt(0, (magicLength + 7) & ~7))) {\n return new AsyncRecordBatchFileReader(new AsyncRecordBatchFileReaderImpl(file));\n }\n }\n return new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(file));\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DataType } from '../../type';\nimport { Vector } from '../../vector';\nimport { VectorType as V } from '../../interfaces';\nimport { Builder, BuilderOptions } from '../../builder/index';\n\n/** @ignore */\nexport interface BuilderTransformOptions extends BuilderOptions {\n queueingStrategy?: 'bytes' | 'count';\n dictionaryHashFunction?: (value: any) => string | number;\n readableStrategy?: { highWaterMark?: number, size?: any, type?: 'bytes'; };\n writableStrategy?: { highWaterMark?: number, size?: any, type?: 'bytes'; };\n valueToChildTypeId?: (builder: Builder, value: any, offset: number) => number;\n}\n\n/** @ignore */\nexport function builderThroughDOMStream(options: BuilderTransformOptions) {\n return new BuilderTransform(options);\n}\n\n/** @ignore */\nexport class BuilderTransform {\n\n public readable: ReadableStream>;\n public writable: WritableStream;\n public _controller: ReadableStreamDefaultController> | null;\n\n private _numChunks = 0;\n private _finished = false;\n private _bufferedSize = 0;\n private _builder: Builder;\n private _getSize: (builder: Builder) => number;\n\n constructor(options: BuilderTransformOptions) {\n\n // Access properties by string indexers to defeat closure compiler\n\n const {\n ['readableStrategy']: readableStrategy,\n ['writableStrategy']: writableStrategy,\n ['queueingStrategy']: queueingStrategy = 'count',\n ...builderOptions\n } = options;\n\n this._controller = null;\n this._builder = Builder.new(builderOptions);\n this._getSize = queueingStrategy !== 'bytes' ? chunkLength : chunkByteLength;\n\n const { ['highWaterMark']: readableHighWaterMark = queueingStrategy === 'bytes' ? 2 ** 14 : 1000 } = { ...readableStrategy };\n const { ['highWaterMark']: writableHighWaterMark = queueingStrategy === 'bytes' ? 2 ** 14 : 1000 } = { ...writableStrategy };\n\n this['readable'] = new ReadableStream>({\n ['cancel']: () => { this._builder.clear(); },\n ['pull']: (c) => { this._maybeFlush(this._builder, this._controller = c); },\n ['start']: (c) => { this._maybeFlush(this._builder, this._controller = c); },\n }, {\n 'highWaterMark': readableHighWaterMark,\n 'size': queueingStrategy !== 'bytes' ? chunkLength : chunkByteLength,\n });\n\n this['writable'] = new WritableStream({\n ['abort']: () => { this._builder.clear(); },\n ['write']: () => { this._maybeFlush(this._builder, this._controller); },\n ['close']: () => { this._maybeFlush(this._builder.finish(), this._controller); },\n }, {\n 'highWaterMark': writableHighWaterMark,\n 'size': (value: T['TValue'] | TNull) => this._writeValueAndReturnChunkSize(value),\n });\n }\n\n private _writeValueAndReturnChunkSize(value: T['TValue'] | TNull) {\n const bufferedSize = this._bufferedSize;\n this._bufferedSize = this._getSize(this._builder.append(value));\n return this._bufferedSize - bufferedSize;\n }\n\n private _maybeFlush(builder: Builder, controller: ReadableStreamDefaultController> | null) {\n if (controller === null) { return; }\n if (this._bufferedSize >= controller.desiredSize!) {\n ++this._numChunks && this._enqueue(controller, builder.toVector());\n }\n if (builder.finished) {\n if (builder.length > 0 || this._numChunks === 0) {\n ++this._numChunks && this._enqueue(controller, builder.toVector());\n }\n if (!this._finished && (this._finished = true)) {\n this._enqueue(controller, null);\n }\n }\n }\n\n private _enqueue(controller: ReadableStreamDefaultController>, chunk: V | null) {\n this._bufferedSize = 0;\n this._controller = null;\n chunk === null ? controller.close() : controller.enqueue(chunk);\n }\n}\n\n/** @ignore */ const chunkLength = (chunk: Vector | Builder) => chunk.length;\n/** @ignore */ const chunkByteLength = (chunk: Vector | Builder) => chunk.byteLength;\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { RecordBatch } from '../recordbatch';\nimport { DictionaryVector } from '../vector/dictionary';\n\n/** @ignore */\nexport type ValueFunc = (idx: number, cols: RecordBatch) => T | null;\n/** @ignore */\nexport type PredicateFunc = (idx: number, cols: RecordBatch) => boolean;\n\n/** @ignore */\nexport abstract class Value {\n eq(other: Value | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new Equals(this, other);\n }\n le(other: Value | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new LTeq(this, other);\n }\n ge(other: Value | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new GTeq(this, other);\n }\n lt(other: Value | T): Predicate {\n return new Not(this.ge(other));\n }\n gt(other: Value | T): Predicate {\n return new Not(this.le(other));\n }\n ne(other: Value | T): Predicate {\n return new Not(this.eq(other));\n }\n}\n\n/** @ignore */\nexport class Literal extends Value {\n constructor(public v: T) { super(); }\n}\n\n/** @ignore */\nexport class Col extends Value {\n // @ts-ignore\n public vector: Vector;\n // @ts-ignore\n public colidx: number;\n\n constructor(public name: string) { super(); }\n bind(batch: RecordBatch): (idx: number, batch?: RecordBatch) => any {\n if (!this.colidx) {\n // Assume column index doesn't change between calls to bind\n //this.colidx = cols.findIndex(v => v.name.indexOf(this.name) != -1);\n this.colidx = -1;\n const fields = batch.schema.fields;\n for (let idx = -1; ++idx < fields.length;) {\n if (fields[idx].name === this.name) {\n this.colidx = idx;\n break;\n }\n }\n if (this.colidx < 0) { throw new Error(`Failed to bind Col \"${this.name}\"`); }\n }\n\n const vec = this.vector = batch.getChildAt(this.colidx)!;\n return (idx: number) => vec.get(idx);\n }\n}\n\n/** @ignore */\nexport abstract class Predicate {\n abstract bind(batch: RecordBatch): PredicateFunc;\n and(...expr: Predicate[]): And { return new And(this, ...expr); }\n or(...expr: Predicate[]): Or { return new Or(this, ...expr); }\n not(): Predicate { return new Not(this); }\n}\n\n/** @ignore */\nexport abstract class ComparisonPredicate extends Predicate {\n constructor(public readonly left: Value, public readonly right: Value) {\n super();\n }\n\n bind(batch: RecordBatch) {\n if (this.left instanceof Literal) {\n if (this.right instanceof Literal) {\n return this._bindLitLit(batch, this.left, this.right);\n } else { // right is a Col\n\n return this._bindLitCol(batch, this.left, this.right as Col);\n }\n } else { // left is a Col\n if (this.right instanceof Literal) {\n return this._bindColLit(batch, this.left as Col, this.right);\n } else { // right is a Col\n return this._bindColCol(batch, this.left as Col, this.right as Col);\n }\n }\n }\n\n protected abstract _bindLitLit(batch: RecordBatch, left: Literal, right: Literal): PredicateFunc;\n protected abstract _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc;\n protected abstract _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc;\n protected abstract _bindLitCol(batch: RecordBatch, lit: Literal, col: Col): PredicateFunc;\n}\n\n/** @ignore */\nexport abstract class CombinationPredicate extends Predicate {\n readonly children: Predicate[];\n constructor(...children: Predicate[]) {\n super();\n this.children = children;\n }\n}\n// add children to prototype so it doesn't get mangled in es2015/umd\n( CombinationPredicate.prototype).children = Object.freeze([]); // freeze for safety\n\n/** @ignore */\nexport class And extends CombinationPredicate {\n constructor(...children: Predicate[]) {\n // Flatten any Ands\n children = children.reduce((accum: Predicate[], p: Predicate): Predicate[] => {\n return accum.concat(p instanceof And ? p.children : p);\n }, []);\n super(...children);\n }\n bind(batch: RecordBatch) {\n const bound = this.children.map((p) => p.bind(batch));\n return (idx: number, batch: RecordBatch) => bound.every((p) => p(idx, batch));\n }\n}\n\n/** @ignore */\nexport class Or extends CombinationPredicate {\n constructor(...children: Predicate[]) {\n // Flatten any Ors\n children = children.reduce((accum: Predicate[], p: Predicate): Predicate[] => {\n return accum.concat(p instanceof Or ? p.children : p);\n }, []);\n super(...children);\n }\n bind(batch: RecordBatch) {\n const bound = this.children.map((p) => p.bind(batch));\n return (idx: number, batch: RecordBatch) => bound.some((p) => p(idx, batch));\n }\n}\n\n/** @ignore */\nexport class Equals extends ComparisonPredicate {\n // Helpers used to cache dictionary reverse lookups between calls to bind\n private lastDictionary: Vector|undefined;\n private lastKey: number|undefined;\n\n protected _bindLitLit(_batch: RecordBatch, left: Literal, right: Literal): PredicateFunc {\n const rtrn: boolean = left.v == right.v;\n return () => rtrn;\n }\n\n protected _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx: number, batch: RecordBatch) => left_func(idx, batch) == right_func(idx, batch);\n }\n\n protected _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc {\n const col_func = col.bind(batch);\n if (col.vector instanceof DictionaryVector) {\n let key: any;\n const vector = col.vector as DictionaryVector;\n if (vector.dictionary !== this.lastDictionary) {\n key = vector.reverseLookup(lit.v);\n this.lastDictionary = vector.dictionary;\n this.lastKey = key;\n } else {\n key = this.lastKey;\n }\n\n if (key === -1) {\n // the value doesn't exist in the dictionary - always return\n // false\n // TODO: special-case of PredicateFunc that encapsulates this\n // \"always false\" behavior. That way filtering operations don't\n // have to bother checking\n return () => false;\n } else {\n return (idx: number) => {\n return vector.getKey(idx) === key;\n };\n }\n } else {\n return (idx: number, cols: RecordBatch) => col_func(idx, cols) == lit.v;\n }\n }\n\n protected _bindLitCol(batch: RecordBatch, lit: Literal, col: Col) {\n // Equals is commutative\n return this._bindColLit(batch, col, lit);\n }\n}\n\n/** @ignore */\nexport class LTeq extends ComparisonPredicate {\n protected _bindLitLit(_batch: RecordBatch, left: Literal, right: Literal): PredicateFunc {\n const rtrn: boolean = left.v <= right.v;\n return () => rtrn;\n }\n\n protected _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx: number, cols: RecordBatch) => left_func(idx, cols) <= right_func(idx, cols);\n }\n\n protected _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => col_func(idx, cols) <= lit.v;\n }\n\n protected _bindLitCol(batch: RecordBatch, lit: Literal, col: Col) {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => lit.v <= col_func(idx, cols);\n }\n}\n\n/** @ignore */\nexport class GTeq extends ComparisonPredicate {\n protected _bindLitLit(_batch: RecordBatch, left: Literal, right: Literal): PredicateFunc {\n const rtrn: boolean = left.v >= right.v;\n return () => rtrn;\n }\n\n protected _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx: number, cols: RecordBatch) => left_func(idx, cols) >= right_func(idx, cols);\n }\n\n protected _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => col_func(idx, cols) >= lit.v;\n }\n\n protected _bindLitCol(batch: RecordBatch, lit: Literal, col: Col) {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => lit.v >= col_func(idx, cols);\n }\n}\n\n/** @ignore */\nexport class Not extends Predicate {\n constructor(public readonly child: Predicate) {\n super();\n }\n\n bind(batch: RecordBatch) {\n const func = this.child.bind(batch);\n return (idx: number, batch: RecordBatch) => !func(idx, batch);\n }\n}\n\n/** @ignore */\nexport class CustomPredicate extends Predicate {\n constructor(private next: PredicateFunc, private bind_: (batch: RecordBatch) => void) {\n super();\n }\n\n bind(batch: RecordBatch) {\n this.bind_(batch);\n return this.next;\n }\n}\n\nexport function lit(v: any): Value { return new Literal(v); }\nexport function col(n: string): Col { return new Col(n); }\nexport function and(...p: Predicate[]): And { return new And(...p); }\nexport function or(...p: Predicate[]): Or { return new Or(...p); }\nexport function custom(next: PredicateFunc, bind: (batch: RecordBatch) => void) {\n return new CustomPredicate(next, bind);\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Table } from '../table';\nimport { Vector } from '../vector';\nimport { IntVector } from '../vector/int';\nimport { Field, Schema } from '../schema';\nimport { Predicate, Col } from './predicate';\nimport { RecordBatch } from '../recordbatch';\nimport { VectorType as V } from '../interfaces';\nimport { DataType, Int, Struct, Dictionary } from '../type';\n\n/** @ignore */\nexport type BindFunc = (batch: RecordBatch) => void;\n/** @ignore */\nexport type NextFunc = (idx: number, batch: RecordBatch) => void;\n\nTable.prototype.countBy = function(this: Table, name: Col | string) { return new DataFrame(this.chunks).countBy(name); };\nTable.prototype.scan = function(this: Table, next: NextFunc, bind?: BindFunc) { return new DataFrame(this.chunks).scan(next, bind); };\nTable.prototype.scanReverse = function(this: Table, next: NextFunc, bind?: BindFunc) { return new DataFrame(this.chunks).scanReverse(next, bind); };\nTable.prototype.filter = function(this: Table, predicate: Predicate): FilteredDataFrame { return new DataFrame(this.chunks).filter(predicate); };\n\nexport class DataFrame extends Table {\n public filter(predicate: Predicate): FilteredDataFrame {\n return new FilteredDataFrame(this.chunks, predicate);\n }\n public scan(next: NextFunc, bind?: BindFunc) {\n const batches = this.chunks, numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n if (bind) { bind(batch); }\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n next(index, batch);\n }\n }\n }\n public scanReverse(next: NextFunc, bind?: BindFunc) {\n const batches = this.chunks, numBatches = batches.length;\n for (let batchIndex = numBatches; --batchIndex >= 0;) {\n // load batches\n const batch = batches[batchIndex];\n if (bind) { bind(batch); }\n // yield all indices\n for (let index = batch.length; --index >= 0;) {\n next(index, batch);\n }\n }\n }\n public countBy(name: Col | string) {\n const batches = this.chunks, numBatches = batches.length;\n const count_by = typeof name === 'string' ? new Col(name) : name as Col;\n // Assume that all dictionary batches are deltas, which means that the\n // last record batch has the most complete dictionary\n count_by.bind(batches[numBatches - 1]);\n const vector = count_by.vector as V;\n if (!DataType.isDictionary(vector.type)) {\n throw new Error('countBy currently only supports dictionary-encoded columns');\n }\n\n const countByteLength = Math.ceil(Math.log(vector.length) / Math.log(256));\n const CountsArrayType = countByteLength == 4 ? Uint32Array :\n countByteLength >= 2 ? Uint16Array : Uint8Array;\n\n const counts = new CountsArrayType(vector.dictionary.length);\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n // rebind the countBy Col\n count_by.bind(batch);\n const keys = (count_by.vector as V).indices;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n let key = keys.get(index);\n if (key !== null) { counts[key]++; }\n }\n }\n return new CountByResult(vector.dictionary, IntVector.from(counts));\n }\n}\n\n/** @ignore */\nexport class CountByResult extends Table<{ values: T, counts: TCount }> {\n constructor(values: Vector, counts: V) {\n type R = { values: T, counts: TCount };\n const schema = new Schema([\n new Field('values', values.type),\n new Field('counts', counts.type)\n ]);\n super(new RecordBatch(schema, counts.length, [values, counts]));\n }\n public toJSON(): Object {\n const values = this.getColumnAt(0)!;\n const counts = this.getColumnAt(1)!;\n const result = {} as { [k: string]: number | null };\n for (let i = -1; ++i < this.length;) {\n result[values.get(i)] = counts.get(i);\n }\n return result;\n }\n}\n\n/** @ignore */\nexport class FilteredDataFrame extends DataFrame {\n private _predicate: Predicate;\n constructor (batches: RecordBatch[], predicate: Predicate) {\n super(batches);\n this._predicate = predicate;\n }\n public scan(next: NextFunc, bind?: BindFunc) {\n // inlined version of this:\n // this.parent.scan((idx, columns) => {\n // if (this.predicate(idx, columns)) next(idx, columns);\n // });\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n let isBound = false;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) {\n // bind batches lazily - if predicate doesn't match anything\n // in the batch we don't need to call bind on the batch\n if (bind && !isBound) {\n bind(batch);\n isBound = true;\n }\n next(index, batch);\n }\n }\n }\n }\n public scanReverse(next: NextFunc, bind?: BindFunc) {\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = numBatches; --batchIndex >= 0;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n let isBound = false;\n // yield all indices\n for (let index = batch.length; --index >= 0;) {\n if (predicate(index, batch)) {\n // bind batches lazily - if predicate doesn't match anything\n // in the batch we don't need to call bind on the batch\n if (bind && !isBound) {\n bind(batch);\n isBound = true;\n }\n next(index, batch);\n }\n }\n }\n }\n public count(): number {\n // inlined version of this:\n // let sum = 0;\n // this.parent.scan((idx, columns) => {\n // if (this.predicate(idx, columns)) ++sum;\n // });\n // return sum;\n let sum = 0;\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) { ++sum; }\n }\n }\n return sum;\n }\n public *[Symbol.iterator](): IterableIterator['TValue']> {\n // inlined version of this:\n // this.parent.scan((idx, columns) => {\n // if (this.predicate(idx, columns)) next(idx, columns);\n // });\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n // TODO: bind batches lazily\n // If predicate doesn't match anything in the batch we don't need\n // to bind the callback\n const predicate = this._predicate.bind(batch);\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) { yield batch.get(index) as any; }\n }\n }\n }\n public filter(predicate: Predicate): FilteredDataFrame {\n return new FilteredDataFrame(\n this._chunks,\n this._predicate.and(predicate)\n );\n }\n public countBy(name: Col | string) {\n const batches = this._chunks, numBatches = batches.length;\n const count_by = typeof name === 'string' ? new Col(name) : name as Col;\n // Assume that all dictionary batches are deltas, which means that the\n // last record batch has the most complete dictionary\n count_by.bind(batches[numBatches - 1]);\n const vector = count_by.vector as V;\n if (!DataType.isDictionary(vector.type)) {\n throw new Error('countBy currently only supports dictionary-encoded columns');\n }\n\n const countByteLength = Math.ceil(Math.log(vector.length) / Math.log(256));\n const CountsArrayType = countByteLength == 4 ? Uint32Array :\n countByteLength >= 2 ? Uint16Array : Uint8Array;\n\n const counts = new CountsArrayType(vector.dictionary.length);\n\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n // rebind the countBy Col\n count_by.bind(batch);\n const keys = (count_by.vector as V).indices;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n let key = keys.get(index);\n if (key !== null && predicate(index, batch)) { counts[key]++; }\n }\n }\n return new CountByResult(vector.dictionary, IntVector.from(counts));\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nexport { ArrowType, DateUnit, IntervalUnit, MessageHeader, MetadataVersion, Precision, TimeUnit, Type, UnionMode, BufferType } from './enum';\nexport { Data } from './data';\nexport {\n DataType,\n Null,\n Bool,\n Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64,\n Float, Float16, Float32, Float64,\n Utf8,\n Binary,\n FixedSizeBinary,\n Date_, DateDay, DateMillisecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Decimal,\n List,\n Struct,\n Union, DenseUnion, SparseUnion,\n Dictionary,\n Interval, IntervalDayTime, IntervalYearMonth,\n FixedSizeList,\n Map_,\n} from './type';\n\nexport { Table } from './table';\nexport { Column } from './column';\nexport { Visitor } from './visitor';\nexport { Schema, Field } from './schema';\nexport {\n Vector,\n BaseVector,\n BinaryVector,\n BoolVector,\n Chunked,\n DateVector, DateDayVector, DateMillisecondVector,\n DecimalVector,\n DictionaryVector,\n FixedSizeBinaryVector,\n FixedSizeListVector,\n FloatVector, Float16Vector, Float32Vector, Float64Vector,\n IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector,\n IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector,\n ListVector,\n MapVector,\n NullVector,\n StructVector,\n TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector,\n TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector,\n UnionVector, DenseUnionVector, SparseUnionVector,\n Utf8Vector,\n} from './vector/index';\n\nexport {\n Builder,\n BinaryBuilder,\n BoolBuilder,\n DateBuilder, DateDayBuilder, DateMillisecondBuilder,\n DecimalBuilder,\n DictionaryBuilder,\n FixedSizeBinaryBuilder,\n FixedSizeListBuilder,\n FloatBuilder, Float16Builder, Float32Builder, Float64Builder,\n IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder,\n IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder,\n ListBuilder,\n MapBuilder,\n NullBuilder,\n StructBuilder,\n TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder,\n TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder,\n UnionBuilder, DenseUnionBuilder, SparseUnionBuilder,\n Utf8Builder,\n} from './builder/index';\n\nexport { ByteStream, AsyncByteStream, AsyncByteQueue, ReadableSource, WritableSink } from './io/stream';\nexport { RecordBatchReader, RecordBatchFileReader, RecordBatchStreamReader, AsyncRecordBatchFileReader, AsyncRecordBatchStreamReader } from './ipc/reader';\nexport { RecordBatchWriter, RecordBatchFileWriter, RecordBatchStreamWriter, RecordBatchJSONWriter } from './ipc/writer';\nexport { MessageReader, AsyncMessageReader, JSONMessageReader } from './ipc/message';\nexport { Message } from './ipc/metadata/message';\nexport { RecordBatch } from './recordbatch';\nexport { ArrowJSONLike, FileHandle, Readable, Writable, ReadableWritable, ReadableDOMStreamOptions } from './io/interfaces';\nexport { DataFrame, FilteredDataFrame, CountByResult, BindFunc, NextFunc } from './compute/dataframe';\n\nimport * as util_bn_ from './util/bn';\nimport * as util_int_ from './util/int';\nimport * as util_bit_ from './util/bit';\nimport * as util_math_ from './util/math';\nimport * as util_buffer_ from './util/buffer';\nimport * as util_vector_ from './util/vector';\nimport * as predicate from './compute/predicate';\n\nexport { predicate };\n/** @ignore */\nexport const util = {\n ...util_bn_,\n ...util_int_,\n ...util_bit_,\n ...util_math_,\n ...util_buffer_,\n ...util_vector_\n};\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport streamAdapters from './io/adapters';\nimport { Builder } from './builder/index';\nimport { RecordBatchReader } from './ipc/reader';\nimport { RecordBatchWriter } from './ipc/writer';\nimport { toDOMStream } from './io/whatwg/iterable';\nimport { builderThroughDOMStream } from './io/whatwg/builder';\nimport { recordBatchReaderThroughDOMStream } from './io/whatwg/reader';\nimport { recordBatchWriterThroughDOMStream } from './io/whatwg/writer';\n\nstreamAdapters.toDOMStream = toDOMStream;\nBuilder['throughDOM'] = builderThroughDOMStream;\nRecordBatchReader['throughDOM'] = recordBatchReaderThroughDOMStream;\nRecordBatchWriter['throughDOM'] = recordBatchWriterThroughDOMStream;\n\nexport {\n ArrowType, DateUnit, IntervalUnit, MessageHeader, MetadataVersion, Precision, TimeUnit, Type, UnionMode, BufferType,\n Data,\n DataType,\n Null,\n Bool,\n Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64,\n Float, Float16, Float32, Float64,\n Utf8,\n Binary,\n FixedSizeBinary,\n Date_, DateDay, DateMillisecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Decimal,\n List,\n Struct,\n Union, DenseUnion, SparseUnion,\n Dictionary,\n Interval, IntervalDayTime, IntervalYearMonth,\n FixedSizeList,\n Map_,\n Table,\n Column,\n Schema, Field,\n Visitor,\n Vector,\n BaseVector,\n BinaryVector,\n BoolVector,\n Chunked,\n DateVector, DateDayVector, DateMillisecondVector,\n DecimalVector,\n DictionaryVector,\n FixedSizeBinaryVector,\n FixedSizeListVector,\n FloatVector, Float16Vector, Float32Vector, Float64Vector,\n IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector,\n IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector,\n ListVector,\n MapVector,\n NullVector,\n StructVector,\n TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector,\n TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector,\n UnionVector, DenseUnionVector, SparseUnionVector,\n Utf8Vector,\n ByteStream, AsyncByteStream, AsyncByteQueue, ReadableSource, WritableSink,\n RecordBatchReader, RecordBatchFileReader, RecordBatchStreamReader, AsyncRecordBatchFileReader, AsyncRecordBatchStreamReader,\n RecordBatchWriter, RecordBatchFileWriter, RecordBatchStreamWriter, RecordBatchJSONWriter,\n MessageReader, AsyncMessageReader, JSONMessageReader,\n Message,\n RecordBatch,\n ArrowJSONLike, FileHandle, Readable, Writable, ReadableWritable, ReadableDOMStreamOptions,\n DataFrame, FilteredDataFrame, CountByResult, BindFunc, NextFunc,\n predicate,\n util,\n Builder,\n BinaryBuilder,\n BoolBuilder,\n DateBuilder, DateDayBuilder, DateMillisecondBuilder,\n DecimalBuilder,\n DictionaryBuilder,\n FixedSizeBinaryBuilder,\n FixedSizeListBuilder,\n FloatBuilder, Float16Builder, Float32Builder, Float64Builder,\n IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder,\n IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder,\n ListBuilder,\n MapBuilder,\n NullBuilder,\n StructBuilder,\n TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder,\n TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder,\n UnionBuilder, DenseUnionBuilder, SparseUnionBuilder,\n Utf8Builder,\n} from './Arrow';\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { toUint8Array } from '../../util/buffer';\nimport { ReadableDOMStreamOptions } from '../../io/interfaces';\nimport { isIterable, isAsyncIterable } from '../../util/compat';\n\n/** @ignore */\nexport function toDOMStream(source: Iterable | AsyncIterable, options?: ReadableDOMStreamOptions): ReadableStream {\n if (isAsyncIterable(source)) { return asyncIterableAsReadableDOMStream(source, options); }\n if (isIterable(source)) { return iterableAsReadableDOMStream(source, options); }\n /* istanbul ignore next */\n throw new Error(`toDOMStream() must be called with an Iterable or AsyncIterable`);\n}\n\n/** @ignore */\nfunction iterableAsReadableDOMStream(source: Iterable, options?: ReadableDOMStreamOptions) {\n\n let it: Iterator | null = null;\n const bm = (options && options.type === 'bytes') || false;\n const hwm = options && options.highWaterMark || (2 ** 24);\n\n return new ReadableStream({\n ...options as any,\n start(controller) { next(controller, it || (it = source[Symbol.iterator]())); },\n pull(controller) { it ? (next(controller, it)) : controller.close(); },\n cancel() { (it && (it.return && it.return()) || true) && (it = null); }\n }, { highWaterMark: bm ? hwm : undefined, ...options });\n\n function next(controller: ReadableStreamDefaultController, it: Iterator) {\n let buf: Uint8Array;\n let r: IteratorResult | null = null;\n let size = controller.desiredSize || null;\n while (!(r = it.next(bm ? size : null)).done) {\n if (ArrayBuffer.isView(r.value) && (buf = toUint8Array(r.value))) {\n size != null && bm && (size = size - buf.byteLength + 1);\n r.value = buf;\n }\n controller.enqueue(r.value);\n if (size != null && --size <= 0) { return; }\n }\n controller.close();\n }\n}\n\n/** @ignore */\nfunction asyncIterableAsReadableDOMStream(source: AsyncIterable, options?: ReadableDOMStreamOptions) {\n\n let it: AsyncIterator | null = null;\n const bm = (options && options.type === 'bytes') || false;\n const hwm = options && options.highWaterMark || (2 ** 24);\n\n return new ReadableStream({\n ...options as any,\n async start(controller) { await next(controller, it || (it = source[Symbol.asyncIterator]())); },\n async pull(controller) { it ? (await next(controller, it)) : controller.close(); },\n async cancel() { (it && (it.return && await it.return()) || true) && (it = null); },\n }, { highWaterMark: bm ? hwm : undefined, ...options });\n\n async function next(controller: ReadableStreamDefaultController, it: AsyncIterator) {\n let buf: Uint8Array;\n let r: IteratorResult | null = null;\n let size = controller.desiredSize || null;\n while (!(r = await it.next(bm ? size : null)).done) {\n if (ArrayBuffer.isView(r.value) && (buf = toUint8Array(r.value))) {\n size != null && bm && (size = size - buf.byteLength + 1);\n r.value = buf;\n }\n controller.enqueue(r.value);\n if (size != null && --size <= 0) { return; }\n }\n controller.close();\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DataType } from '../../type';\nimport { RecordBatch } from '../../recordbatch';\nimport { AsyncByteQueue } from '../../io/stream';\nimport { RecordBatchReader } from '../../ipc/reader';\n\n/** @ignore */\nexport function recordBatchReaderThroughDOMStream(writableStrategy?: ByteLengthQueuingStrategy, readableStrategy?: { autoDestroy: boolean }) {\n\n const queue = new AsyncByteQueue();\n let reader: RecordBatchReader | null = null;\n\n const readable = new ReadableStream>({\n async cancel() { await queue.close(); },\n async start(controller) { await next(controller, reader || (reader = await open())); },\n async pull(controller) { reader ? await next(controller, reader) : controller.close(); }\n });\n\n return { writable: new WritableStream(queue, { 'highWaterMark': 2 ** 14, ...writableStrategy }), readable };\n\n async function open() {\n return await (await RecordBatchReader.from(queue)).open(readableStrategy);\n }\n\n async function next(controller: ReadableStreamDefaultController>, reader: RecordBatchReader) {\n let size = controller.desiredSize;\n let r: IteratorResult> | null = null;\n while (!(r = await reader.next()).done) {\n controller.enqueue(r.value);\n if (size != null && --size <= 0) {\n return;\n }\n }\n controller.close();\n }\n}\n","// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { DataType } from '../../type';\nimport { RecordBatch } from '../../recordbatch';\nimport { AsyncByteStream } from '../../io/stream';\nimport { RecordBatchWriter } from '../../ipc/writer';\n\n/** @ignore */\nexport function recordBatchWriterThroughDOMStream(\n this: typeof RecordBatchWriter,\n writableStrategy?: QueuingStrategy> & { autoDestroy: boolean },\n readableStrategy?: { highWaterMark?: number, size?: any }\n) {\n\n const writer = new this(writableStrategy);\n const reader = new AsyncByteStream(writer);\n const readable = new ReadableStream({\n type: 'bytes',\n async cancel() { await reader.cancel(); },\n async pull(controller) { await next(controller); },\n async start(controller) { await next(controller); },\n }, { 'highWaterMark': 2 ** 14, ...readableStrategy });\n\n return { writable: new WritableStream(writer, writableStrategy), readable };\n\n async function next(controller: ReadableStreamDefaultController) {\n let buf: Uint8Array | null = null;\n let size = controller.desiredSize;\n while (buf = await reader.read(size || null)) {\n controller.enqueue(buf);\n if (size != null && (size -= buf.byteLength) <= 0) { return; }\n }\n controller.close();\n }\n}\n","/**\n * @license\n * Copyright 2018-2019 Streamlit Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Table, Type } from \"apache-arrow\";\nvar ArrowTable = /** @class */ (function () {\n function ArrowTable(dataBuffer, indexBuffer, columnsBuffer, styler) {\n var _this = this;\n this.getCell = function (rowIndex, columnIndex) {\n var isBlankCell = rowIndex < _this.headerRows && columnIndex < _this.headerColumns;\n var isIndexCell = rowIndex >= _this.headerRows && columnIndex < _this.headerColumns;\n var isColumnsCell = rowIndex < _this.headerRows && columnIndex >= _this.headerColumns;\n if (isBlankCell) {\n var classNames = [\"blank\"];\n if (columnIndex > 0) {\n classNames.push(\"level\" + rowIndex);\n }\n return {\n type: \"blank\",\n classNames: classNames.join(\" \"),\n content: \"\"\n };\n }\n else if (isColumnsCell) {\n var dataColumnIndex = columnIndex - _this.headerColumns;\n var classNames = [\n \"col_heading\",\n \"level\" + rowIndex,\n \"col\" + dataColumnIndex\n ];\n return {\n type: \"columns\",\n classNames: classNames.join(\" \"),\n content: _this.getContent(_this.columnsTable, dataColumnIndex, rowIndex)\n };\n }\n else if (isIndexCell) {\n var dataRowIndex = rowIndex - _this.headerRows;\n var classNames = [\n \"row_heading\",\n \"level\" + columnIndex,\n \"row\" + dataRowIndex\n ];\n return {\n type: \"index\",\n id: \"T_\" + _this.uuid + \"level\" + columnIndex + \"_row\" + dataRowIndex,\n classNames: classNames.join(\" \"),\n content: _this.getContent(_this.indexTable, dataRowIndex, columnIndex)\n };\n }\n else {\n var dataRowIndex = rowIndex - _this.headerRows;\n var dataColumnIndex = columnIndex - _this.headerColumns;\n var classNames = [\n \"data\",\n \"row\" + dataRowIndex,\n \"col\" + dataColumnIndex\n ];\n var content = _this.styler\n ? _this.getContent(_this.styler.displayValuesTable, dataRowIndex, dataColumnIndex)\n : _this.getContent(_this.dataTable, dataRowIndex, dataColumnIndex);\n return {\n type: \"data\",\n id: \"T_\" + _this.uuid + \"row\" + dataRowIndex + \"_col\" + dataColumnIndex,\n classNames: classNames.join(\" \"),\n content: content\n };\n }\n };\n this.getContent = function (table, rowIndex, columnIndex) {\n var column = table.getColumnAt(columnIndex);\n if (column === null) {\n return \"\";\n }\n var columnTypeId = _this.getColumnTypeId(table, columnIndex);\n switch (columnTypeId) {\n case Type.Timestamp: {\n return _this.nanosToDate(column.get(rowIndex));\n }\n default: {\n return column.get(rowIndex);\n }\n }\n };\n this.dataTable = Table.from(dataBuffer);\n this.indexTable = Table.from(indexBuffer);\n this.columnsTable = Table.from(columnsBuffer);\n this.styler = styler\n ? {\n caption: styler.caption,\n displayValuesTable: Table.from(styler.displayValues),\n styles: styler.styles,\n uuid: styler.uuid\n }\n : undefined;\n }\n Object.defineProperty(ArrowTable.prototype, \"rows\", {\n get: function () {\n return this.indexTable.length + this.columnsTable.numCols;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"columns\", {\n get: function () {\n return this.indexTable.numCols + this.columnsTable.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"headerRows\", {\n get: function () {\n return this.rows - this.dataRows;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"headerColumns\", {\n get: function () {\n return this.columns - this.dataColumns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"dataRows\", {\n get: function () {\n return this.dataTable.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"dataColumns\", {\n get: function () {\n return this.dataTable.numCols;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"uuid\", {\n get: function () {\n return this.styler && this.styler.uuid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"caption\", {\n get: function () {\n return this.styler && this.styler.caption;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"styles\", {\n get: function () {\n return this.styler && this.styler.styles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"table\", {\n get: function () {\n return this.dataTable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"index\", {\n get: function () {\n return this.indexTable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"columnTable\", {\n get: function () {\n return this.columnsTable;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Serialize arrow table.\n */\n ArrowTable.prototype.serialize = function () {\n return {\n data: this.dataTable.serialize(),\n index: this.indexTable.serialize(),\n columns: this.columnsTable.serialize()\n };\n };\n /**\n * Returns apache-arrow specific typeId of column.\n */\n ArrowTable.prototype.getColumnTypeId = function (table, columnIndex) {\n return table.schema.fields[columnIndex].type.typeId;\n };\n ArrowTable.prototype.nanosToDate = function (nanos) {\n return new Date(nanos / 1e6);\n };\n return ArrowTable;\n}());\nexport { ArrowTable };\n","/**\n * @license\n * Copyright 2018-2020 Streamlit Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// Safari doesn't support the EventTarget class, so we use a shim.\nimport { EventTarget } from \"event-target-shim\";\nimport { ArrowTable } from \"./ArrowTable\";\n/** Messages from Component -> Streamlit */\nvar ComponentMessageType;\n(function (ComponentMessageType) {\n // A component sends this message when it's ready to receive messages\n // from Streamlit. Streamlit won't send any messages until it gets this.\n // Data: { apiVersion: number }\n ComponentMessageType[\"COMPONENT_READY\"] = \"streamlit:componentReady\";\n // The component has a new widget value. Send it back to Streamlit, which\n // will then re-run the app.\n // Data: { value: any }\n ComponentMessageType[\"SET_COMPONENT_VALUE\"] = \"streamlit:setComponentValue\";\n // The component has a new height for its iframe.\n // Data: { height: number }\n ComponentMessageType[\"SET_FRAME_HEIGHT\"] = \"streamlit:setFrameHeight\";\n})(ComponentMessageType || (ComponentMessageType = {}));\n/**\n * Streamlit communication API.\n *\n * Components can send data to Streamlit via the functions defined here,\n * and receive data from Streamlit via the `events` property.\n */\nvar Streamlit = /** @class */ (function () {\n function Streamlit() {\n }\n /**\n * The Streamlit component API version we're targetting.\n * There's currently only 1!\n */\n Streamlit.API_VERSION = 1;\n Streamlit.RENDER_EVENT = \"streamlit:render\";\n /** Dispatches events received from Streamlit. */\n Streamlit.events = new EventTarget();\n Streamlit.registeredMessageListener = false;\n /**\n * Tell Streamlit that the component is ready to start receiving data.\n * Streamlit will defer emitting RENDER events until it receives the\n * COMPONENT_READY message.\n */\n Streamlit.setComponentReady = function () {\n if (!Streamlit.registeredMessageListener) {\n // Register for message events if we haven't already\n window.addEventListener(\"message\", Streamlit.onMessageEvent);\n Streamlit.registeredMessageListener = true;\n }\n Streamlit.sendBackMsg(ComponentMessageType.COMPONENT_READY, {\n apiVersion: Streamlit.API_VERSION\n });\n };\n /**\n * Report the component's height to Streamlit.\n * This should be called every time the component changes its DOM - that is,\n * when it's first loaded, and any time it updates.\n */\n Streamlit.setFrameHeight = function (height) {\n if (height === undefined) {\n // `height` is optional. If undefined, it defaults to scrollHeight,\n // which is the entire height of the element minus its border,\n // scrollbar, and margin.\n height = document.body.scrollHeight;\n }\n if (height === Streamlit.lastFrameHeight) {\n // Don't bother updating if our height hasn't changed.\n return;\n }\n Streamlit.lastFrameHeight = height;\n Streamlit.sendBackMsg(ComponentMessageType.SET_FRAME_HEIGHT, { height: height });\n };\n /**\n * Set the component's value. This value will be returned to the Python\n * script, and the script will be re-run.\n *\n * For example:\n *\n * JavaScript:\n * Streamlit.setComponentValue(\"ahoy!\")\n *\n * Python:\n * value = st.my_component(...)\n * st.write(value) # -> \"ahoy!\"\n *\n * The value must be an ArrowTable, a typed array, an ArrayBuffer, or be\n * serializable to JSON.\n */\n Streamlit.setComponentValue = function (value) {\n var dataType;\n if (value instanceof ArrowTable) {\n dataType = \"dataframe\";\n value = value.serialize();\n }\n else if (isTypedArray(value)) {\n // All typed arrays get sent as Uint8Array, because that's what our\n // protobuf library uses for the \"bytes\" field type.\n dataType = \"bytes\";\n value = new Uint8Array(value.buffer);\n }\n else if (value instanceof ArrayBuffer) {\n dataType = \"bytes\";\n value = new Uint8Array(value);\n }\n else {\n dataType = \"json\";\n }\n Streamlit.sendBackMsg(ComponentMessageType.SET_COMPONENT_VALUE, {\n value: value,\n dataType: dataType\n });\n };\n /** Receive a ForwardMsg from the Streamlit app */\n Streamlit.onMessageEvent = function (event) {\n var type = event.data[\"type\"];\n switch (type) {\n case Streamlit.RENDER_EVENT:\n Streamlit.onRenderMessage(event.data);\n break;\n }\n };\n /**\n * Handle an untyped Streamlit render event and redispatch it as a\n * StreamlitRenderEvent.\n */\n Streamlit.onRenderMessage = function (data) {\n var args = data[\"args\"];\n if (args == null) {\n console.error(\"Got null args in onRenderMessage. This should never happen\");\n args = {};\n }\n // Parse our dataframe arguments with arrow, and merge them into our args dict\n var dataframeArgs = data[\"dfs\"] && data[\"dfs\"].length > 0\n ? Streamlit.argsDataframeToObject(data[\"dfs\"])\n : {};\n args = __assign(__assign({}, args), dataframeArgs);\n var disabled = Boolean(data[\"disabled\"]);\n // Dispatch a render event!\n var eventData = { disabled: disabled, args: args };\n var event = new CustomEvent(Streamlit.RENDER_EVENT, {\n detail: eventData\n });\n Streamlit.events.dispatchEvent(event);\n };\n Streamlit.argsDataframeToObject = function (argsDataframe) {\n var argsDataframeArrow = argsDataframe.map(function (_a) {\n var key = _a.key, value = _a.value;\n return [key, Streamlit.toArrowTable(value)];\n });\n return Object.fromEntries(argsDataframeArrow);\n };\n Streamlit.toArrowTable = function (df) {\n var _a = df.data, data = _a.data, index = _a.index, columns = _a.columns, styler = _a.styler;\n return new ArrowTable(data, index, columns, styler);\n };\n /** Post a message to the Streamlit app. */\n Streamlit.sendBackMsg = function (type, data) {\n window.parent.postMessage(__assign({ isStreamlitMessage: true, type: type }, data), \"*\");\n };\n return Streamlit;\n}());\nexport { Streamlit };\n/** True if the value is a TypedArray. */\nfunction isTypedArray(value) {\n return (value instanceof Int8Array ||\n value instanceof Uint8Array ||\n value instanceof Uint8ClampedArray ||\n value instanceof Int16Array ||\n value instanceof Uint16Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Float32Array ||\n value instanceof Float64Array ||\n value instanceof BigInt64Array ||\n value instanceof BigUint64Array);\n}\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\nimport React from \"react\";\nimport { Streamlit } from \"./streamlit\";\n/**\n * Optional Streamlit React-based component base class.\n *\n * You are not required to extend this base class to create a Streamlit\n * component. If you decide not to extend it, you should implement the\n * `componentDidMount` and `componentDidUpdate` functions in your own class,\n * so that your plugin properly resizes.\n */\nvar StreamlitComponentBase = /** @class */ (function (_super) {\n __extends(StreamlitComponentBase, _super);\n function StreamlitComponentBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StreamlitComponentBase.prototype.componentDidMount = function () {\n // After we're rendered for the first time, tell Streamlit that our height\n // has changed.\n Streamlit.setFrameHeight();\n };\n StreamlitComponentBase.prototype.componentDidUpdate = function () {\n // After we're updated, tell Streamlit that our height may have changed.\n Streamlit.setFrameHeight();\n };\n return StreamlitComponentBase;\n}(React.PureComponent));\nexport { StreamlitComponentBase };\n/**\n * Wrapper for React-based Streamlit components.\n *\n * Bootstraps the communication interface between Streamlit and the component.\n */\nexport function withStreamlitConnection(WrappedComponent) {\n var ComponentWrapper = /** @class */ (function (_super) {\n __extends(ComponentWrapper, _super);\n function ComponentWrapper(props) {\n var _this = _super.call(this, props) || this;\n _this.componentDidMount = function () {\n // Set up event listeners, and signal to Streamlit that we're ready.\n // We won't render the component until we receive the first RENDER_EVENT.\n Streamlit.events.addEventListener(Streamlit.RENDER_EVENT, _this.onRenderEvent);\n Streamlit.setComponentReady();\n };\n _this.componentDidUpdate = function () {\n // If our child threw an error, we display it in render(). In this\n // case, the child won't be mounted and therefore won't call\n // `setFrameHeight` on its own. We do it here so that the rendered\n // error will be visible.\n if (_this.state.componentError != null) {\n Streamlit.setFrameHeight();\n }\n };\n _this.componentWillUnmount = function () {\n Streamlit.events.removeEventListener(Streamlit.RENDER_EVENT, _this.onRenderEvent);\n };\n /**\n * Streamlit is telling this component to redraw.\n * We save the render data in State, so that it can be passed to the\n * component in our own render() function.\n */\n _this.onRenderEvent = function (event) {\n // Update our state with the newest render data\n var renderEvent = event;\n _this.setState({ renderData: renderEvent.detail });\n };\n _this.render = function () {\n // If our wrapped component threw an error, display it.\n if (_this.state.componentError != null) {\n return (React.createElement(\"div\", null,\n React.createElement(\"h1\", null, \"Component Error\"),\n React.createElement(\"span\", null, _this.state.componentError.message)));\n }\n // Don't render until we've gotten our first RENDER_EVENT from Streamlit.\n if (_this.state.renderData == null) {\n return null;\n }\n return (React.createElement(WrappedComponent, { width: window.innerWidth, disabled: _this.state.renderData.disabled, args: _this.state.renderData.args }));\n };\n _this.state = {\n renderData: undefined,\n componentError: undefined\n };\n return _this;\n }\n /**\n * Error boundary function. This will be called if our wrapped\n * component throws an error. We store the caught error in our state,\n * and display it in the next render().\n */\n ComponentWrapper.getDerivedStateFromError = function (error) {\n return { componentError: error };\n };\n return ComponentWrapper;\n }(React.PureComponent));\n return hoistNonReactStatics(ComponentWrapper, WrappedComponent);\n}\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['', '', '', ''].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/*\nReact-Quill\nhttps://github.com/zenoamaro/react-quill\n*/\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport isEqual from 'lodash/isEqual';\n\nimport Quill, {\n QuillOptionsStatic,\n DeltaStatic,\n RangeStatic,\n BoundsStatic,\n StringMap,\n Sources,\n} from 'quill';\n\n// Merged namespace hack to export types along with default object\n// See: https://github.com/Microsoft/TypeScript/issues/2719\nnamespace ReactQuill {\n export type Value = string | DeltaStatic;\n export type Range = RangeStatic | null;\n\n export interface QuillOptions extends QuillOptionsStatic {\n tabIndex?: number,\n }\n\n export interface ReactQuillProps {\n bounds?: string | HTMLElement,\n children?: React.ReactElement,\n className?: string,\n defaultValue?: Value,\n formats?: string[],\n id?: string,\n modules?: StringMap,\n onChange?(\n value: string,\n delta: DeltaStatic,\n source: Sources,\n editor: UnprivilegedEditor,\n ): void,\n onChangeSelection?(\n selection: Range,\n source: Sources,\n editor: UnprivilegedEditor,\n ): void,\n onFocus?(\n selection: Range,\n source: Sources,\n editor: UnprivilegedEditor,\n ): void,\n onBlur?(\n previousSelection: Range,\n source: Sources,\n editor: UnprivilegedEditor,\n ): void,\n onKeyDown?: React.EventHandler,\n onKeyPress?: React.EventHandler,\n onKeyUp?: React.EventHandler,\n placeholder?: string,\n preserveWhitespace?: boolean,\n readOnly?: boolean,\n scrollingContainer?: string | HTMLElement,\n style?: React.CSSProperties,\n tabIndex?: number,\n theme?: string,\n value?: Value,\n }\n\n export interface UnprivilegedEditor {\n getLength(): number;\n getText(index?: number, length?: number): string;\n getHTML(): string;\n getBounds(index: number, length?: number): BoundsStatic;\n getSelection(focus?: boolean): RangeStatic;\n getContents(index?: number, length?: number): DeltaStatic;\n }\n}\n\n// Re-import everything from namespace into scope for comfort\nimport Value = ReactQuill.Value;\nimport Range = ReactQuill.Range;\nimport QuillOptions = ReactQuill.QuillOptions;\nimport ReactQuillProps = ReactQuill.ReactQuillProps;\nimport UnprivilegedEditor = ReactQuill.UnprivilegedEditor;\n\ninterface ReactQuillState {\n generation: number,\n}\n\nclass ReactQuill extends React.Component {\n\n static displayName = 'React Quill'\n\n /*\n Export Quill to be able to call `register`\n */\n static Quill = Quill;\n\n /*\n Changing one of these props should cause a full re-render and a\n re-instantiation of the Quill editor.\n */\n dirtyProps: (keyof ReactQuillProps)[] = [\n 'modules',\n 'formats',\n 'bounds',\n 'theme',\n 'children',\n ]\n\n /*\n Changing one of these props should cause a regular update. These are mostly\n props that act on the container, rather than the quillized editing area.\n */\n cleanProps: (keyof ReactQuillProps)[] = [\n 'id',\n 'className',\n 'style',\n 'placeholder',\n 'tabIndex',\n 'onChange',\n 'onChangeSelection',\n 'onFocus',\n 'onBlur',\n 'onKeyPress',\n 'onKeyDown',\n 'onKeyUp',\n ]\n\n static defaultProps = {\n theme: 'snow',\n modules: {},\n readOnly: false,\n }\n\n state: ReactQuillState = {\n generation: 0,\n }\n\n /*\n The Quill Editor instance.\n */\n editor?: Quill\n\n /*\n Reference to the element holding the Quill editing area.\n */\n editingArea?: React.ReactInstance | null\n\n /*\n Tracks the internal value of the Quill editor\n */\n value: Value\n\n /*\n Tracks the internal selection of the Quill editor\n */\n selection: Range = null\n\n /*\n Used to compare whether deltas from `onChange` are being used as `value`.\n */\n lastDeltaChangeSet?: DeltaStatic\n\n /*\n Stores the contents of the editor to be restored after regeneration.\n */\n regenerationSnapshot?: {\n delta: DeltaStatic,\n selection: Range,\n }\n\n /*\n A weaker, unprivileged proxy for the editor that does not allow accidentally\n modifying editor state.\n */\n unprivilegedEditor?: UnprivilegedEditor\n\n constructor(props: ReactQuillProps) {\n super(props);\n const value = this.isControlled()? props.value : props.defaultValue;\n this.value = value ?? '';\n }\n\n validateProps(props: ReactQuillProps): void {\n if (React.Children.count(props.children) > 1) throw new Error(\n 'The Quill editing area can only be composed of a single React element.'\n );\n\n if (React.Children.count(props.children)) {\n const child = React.Children.only(props.children);\n if (child?.type === 'textarea') throw new Error(\n 'Quill does not support editing on a